@@ -49,6 +49,7 @@ public Title(
4949 Governorship governorship ,
5050 Country country ,
5151 Dictionary < ulong , Character > imperatorCharacters ,
52+ bool regionHasMultipleGovernorships ,
5253 LocalizationMapper localizationMapper ,
5354 LandedTitles landedTitles ,
5455 ProvinceMapper provinceMapper ,
@@ -63,10 +64,10 @@ ImperatorRegionMapper imperatorRegionMapper
6364 governorship ,
6465 country ,
6566 imperatorCharacters ,
67+ regionHasMultipleGovernorships ,
6668 localizationMapper ,
6769 landedTitles ,
6870 provinceMapper ,
69- coaMapper ,
7071 definiteFormMapper ,
7172 imperatorRegionMapper
7273 ) ;
@@ -217,10 +218,10 @@ public static string DetermineName(Governorship governorship, Country country, T
217218 public void InitializeFromGovernorship ( Governorship governorship ,
218219 Country country ,
219220 Dictionary < ulong , Character > imperatorCharacters ,
221+ bool regionHasMultipleGovernorships ,
220222 LocalizationMapper localizationMapper ,
221223 LandedTitles landedTitles ,
222224 ProvinceMapper provinceMapper ,
223- CoaMapper coaMapper ,
224225 DefiniteFormMapper definiteFormMapper ,
225226 ImperatorRegionMapper imperatorRegionMapper
226227 ) {
@@ -280,35 +281,57 @@ ImperatorRegionMapper imperatorRegionMapper
280281 }
281282 }
282283
283- // ------------------ Country Name Locs
284- var nameSet = false ;
285- LocBlock ? regionLocBlock = localizationMapper . GetLocBlockForKey ( governorship . RegionName ) ;
286- country . CK3Title . Localizations . TryGetValue ( country . CK3Title . Name + "_adj" , out var countryAdjectiveLocBlock ) ;
287- if ( regionLocBlock is not null && countryAdjectiveLocBlock is not null ) {
288- var nameLocBlock = new LocBlock ( regionLocBlock ) ;
289- nameLocBlock . ModifyForEveryLanguage ( countryAdjectiveLocBlock ,
290- ( ref string orig , string adj ) => orig = $ "{ adj } { orig } "
291- ) ;
292- Localizations [ Name ] = nameLocBlock ;
293- nameSet = true ;
294- }
295- if ( ! nameSet && regionLocBlock is not null ) {
296- Localizations [ Name ] = new LocBlock ( regionLocBlock ) ;
297- nameSet = true ;
298- }
299- if ( ! nameSet ) {
300- Logger . Warn ( $ "{ Name } needs help with localization!") ;
301- }
284+ TrySetNameFromGovernorship ( governorship , country , regionHasMultipleGovernorships , localizationMapper ) ;
285+ TrySetAdjectiveFromGovernorship ( country ) ;
286+ }
302287
303- // --------------- Adjective Locs
304- var adjSet = false ;
305- if ( countryAdjectiveLocBlock is not null ) {
306- var adjLocBlock = new LocBlock ( countryAdjectiveLocBlock ) ;
307- Localizations . Add ( Name + "_adj" , adjLocBlock ) ;
308- adjSet = true ;
288+ private void TrySetAdjectiveFromGovernorship ( Country country ) {
289+ var adjKey = Name + "_adj" ;
290+ if ( ! Localizations . ContainsKey ( adjKey ) ) {
291+ var adjSet = false ;
292+ var ck3Country = country . CK3Title ;
293+ if ( ck3Country is null ) {
294+ return ;
295+ }
296+ if ( ck3Country . Localizations . TryGetValue ( ck3Country . Name + "_adj" , out var countryAdjectiveLocBlock ) ) {
297+ var adjLocBlock = new LocBlock ( countryAdjectiveLocBlock ) ;
298+ Localizations . Add ( adjKey , adjLocBlock ) ;
299+ adjSet = true ;
300+ }
301+ if ( ! adjSet ) {
302+ Logger . Warn ( $ "{ Name } needs help with adjective localization!") ;
303+ }
309304 }
310- if ( ! adjSet ) {
311- Logger . Warn ( $ "{ Name } needs help with adjective localization!") ;
305+ }
306+
307+ private void TrySetNameFromGovernorship (
308+ Governorship governorship ,
309+ Country country ,
310+ bool regionHasMultipleGovernorships ,
311+ LocalizationMapper localizationMapper
312+ ) {
313+ if ( ! Localizations . ContainsKey ( Name ) ) {
314+ var nameSet = false ;
315+ LocBlock ? regionLocBlock = localizationMapper . GetLocBlockForKey ( governorship . RegionName ) ;
316+
317+ if ( regionHasMultipleGovernorships && regionLocBlock is not null ) {
318+ var ck3Country = country . CK3Title ;
319+ if ( ck3Country is not null && ck3Country . Localizations . TryGetValue ( ck3Country . Name + "_adj" , out var countryAdjectiveLocBlock ) ) {
320+ var nameLocBlock = new LocBlock ( regionLocBlock ) ;
321+ nameLocBlock . ModifyForEveryLanguage ( countryAdjectiveLocBlock ,
322+ ( ref string orig , string adj ) => orig = $ "{ adj } { orig } "
323+ ) ;
324+ Localizations [ Name ] = nameLocBlock ;
325+ nameSet = true ;
326+ }
327+ }
328+ if ( ! nameSet && regionLocBlock is not null ) {
329+ Localizations [ Name ] = new LocBlock ( regionLocBlock ) ;
330+ nameSet = true ;
331+ }
332+ if ( ! nameSet ) {
333+ Logger . Warn ( $ "{ Name } needs help with localization!") ;
334+ }
312335 }
313336 }
314337
0 commit comments