I've not mentioned it before, but one important point is that the mod search by territory, and the distance to position is used to determine a name after all other rules are applied.
That means if there is a generic city name at the exact city location, and a culture-related (or alias-related) city name available at a far away position (still in the same territory), the mod will use the far away name.
If there are multiple culture-related names available, it will pick the one closest to the position.
The way my Rosetta mod handles 'related names' is via a backup system which is I think close to what you were saying Gedemon. For example Macedon will try and pull a _MACEDON name first, and if it can't find one it'll look for a _GREECE name.
Yes, exactly like that.
W.I.P. example for reference:
Code:
<CivilizationCityAliases>
<Row Civilization="Civilization_Era1_EgyptianKingdom" Aliases="EGYPT"/>
<Row Civilization="Civilization_Era1_HarappanCivilization" Aliases="INDIA"/>
<Row Civilization="Civilization_Era1_Phoenicia" Aliases="CARTHAGE,ROME,GREECE"/>
<Row Civilization="Civilization_Era1_MycenaeanCivilization" Aliases="GREECE,ROME"/>
<Row Civilization="Civilization_Era1_Nubia" Aliases="NUBIA"/>
<Row Civilization="Civilization_Era1_ZhouChina" Aliases="CHINA"/>
<Row Civilization="Civilization_Era2_RomanEmpire" Aliases="ROME,GREECE"/>
<Row Civilization="Civilization_Era2_Carthage" Aliases="CARTHAGE,ROME,GREECE"/>
<Row Civilization="Civilization_Era2_AncientGreece" Aliases="GREECE,ROME"/>
<Row Civilization="Civilization_Era2_MauryaEmpire" Aliases="INDIA"/>
<Row Civilization="Civilization_Era3_Byzantium" Aliases="BYZANTIUM"/>
<Row Civilization="Civilization_Era3_UmayyadCaliphate" Aliases="ARABIA"/>
<Row Civilization="Civilization_Era4_MingChina" Aliases="CHINA"/>
<Row Civilization="Civilization_Era4_Spain" Aliases="SPAIN"/>
<Row Civilization="Civilization_Era4_PolishKingdom" Aliases="POLAND"/>
<Row Civilization="Civilization_Era4_OttomanEmpire" Aliases="OTTOMAN"/>
<Row Civilization="Civilization_Era4_MughalEmpire" Aliases="INDIA"/>
<Row Civilization="Civilization_Era4_TokugawaShogunate" Aliases="JAPAN"/>
<Row Civilization="Civilization_Era5_AustriaHungary" Aliases="HUNGARY"/>
<Row Civilization="Civilization_Era5_FrenchRepublic" Aliases="FRANCE"/>
<Row Civilization="Civilization_Era5_Germany" Aliases="GERMANY"/>
<Row Civilization="Civilization_Era5_RussianEmpire" Aliases="RUSSIA"/>
<Row Civilization="Civilization_Era6_India" Aliases="INDIA"/>
<Row Civilization="Civilization_Era6_Japan" Aliases="JAPAN"/>
<Row Civilization="Civilization_Era6_USSR" Aliases="RUSSIA"/>
<Row Civilization="Civilization_Era6_China" Aliases="CHINA"/>
</CivilizationCityAliases>
Playing as Phoenicia the mod would look first at "LOC_CITYNAME_Phoenicia" then "LOC_CITYNAME_CARTHAGE", "LOC_CITYNAME_ROME" and finally "LOC_CITYNAME_GREECE", in that order.
For the 'local' name, I meant basically whatever language is native there, although that could bring issues for some names with different 'native' names over time. For Rome it's not really a problem since it's Roma in both Latin and Italian, but Pataliputra/Patna or Edo/Tokyo would be cases where you'd want an era override perhaps.
Yes, going for the first formatting option (and you're right the easiest to manage), I'll include it in the city name tag, but you won't be able to have a tag including both a culture reference and an era reference.
I'm still pondering the naming convention (ie "LOC_CITYNAME_Era2" or "LOC_CITYNAME_CLASSICAL"), but anyway for coding simplification it would define the last era the name is used, not the first.
Now for your examples, the current database has
Code:
<Row Tag="LOC_CITY_NAME_PATNA" Text="Patna" />
<Row Tag="LOC_CITY_NAME_PATNA_INDIA" Text="Pataliputra" />
[...]
<Row Tag="LOC_CITY_NAME_TOKYO" Text="Tokyo" />
Era tag would be used like that, with exception added for (modern) India and the Mughal Empire (maybe? that's the kind of things I'll let you guys decide...) to override the name in the Alias list.
Code:
<Row Tag="LOC_CITY_NAME_PATNA" Text="Patna" />
<Row Tag="LOC_CITY_NAME_PATNA_Era3" Text="Pataliputra" />
<Row Tag="LOC_CITY_NAME_PATNA_INDIA" Text="Pataliputra" />
<Row Tag="LOC_CITY_NAME_PATNA_MughalEmpire" Text="Patna" />
<Row Tag="LOC_CITY_NAME_PATNA_India" Text="Patna" />
[...]
<Row Tag="LOC_CITY_NAME_TOKYO" Text="Tokyo" />
<Row Tag="LOC_CITY_NAME_TOKYO_Era4" Text="Edo" />
The above code would have to be used only if there was more than 2 names referenced (for example for external cultures settling there), in the current case it could be simplified to
Code:
<Row Tag="LOC_CITY_NAME_PATNA" Text="Patna" />
<Row Tag="LOC_CITY_NAME_PATNA_Era3" Text="Pataliputra" />
[...]
<Row Tag="LOC_CITY_NAME_TOKYO" Text="Tokyo" />
<Row Tag="LOC_CITY_NAME_TOKYO_Era4" Text="Edo" />
Also, Gedemon, I'm happy to tap into Rosetta's database to generate names if that's something you'd be interested in.
I'd like that !