For Modders adding new Leaders or Civilizations:
Generally, all you'll need to do is tell the game what language(s) you want your leader or civ to use, and match up your civ's cities to the tags used by Rosetta. I'll include the steps here, but if you have any issues - feel free to message me here or on the Modding Discord; I can also add it on Rosetta's end as well if you let me know!
Step 1 - Create Tables:
You'll need to make sure a few tables are created: Leaders and Civs need
SC_RosettaLanguageAssignments (which tells Rosetta what languages to use for your civ/leader);
only civs need
SC_CityLOCRenameDatabase (which maps your civ's city names to the tags used by Rosetta). Examples of how to create these tables that you can copy/paste into your mod can be found below:
Step 2 - Language Assignments:
Let's define what language(s) your civ or leader uses! You can either do this via sql or xml, depending on your preference, but we'll use a sql example for reference:
SQL:
INSERT OR REPLACE INTO SC_RosettaLanguageAssignments
(CivLeaderTag, Language, Priority, StartYear, EndYear)
VALUES ('CIVILIZATION_INCA', 'AYMARA', 1, null, 1493),
('CIVILIZATION_INCA', 'QUECHUA', 2, null, null),
('CIVILIZATION_INCA', 'AYMARA', 3, null, null),
('CIVILIZATION_INCA', 'LOCAL', 4, null, null);
A civ or leader can have as many languages associated with it as you like, but each must have a different Priority number (and don't skip numbers here either!). The game tries to find a name in ascending priority, and will keep checking until it either finds a name or runs out of languages. In this example, the Inca's first choice is an Aymara name - but only if the in-game year is before 1493! If it can't find one - or if it's after 1493 - it will check for a Quechua name, then an Aymara name (for post-1493 cases), and then a 'Local' (AKA indigenous) name. You can also set a StartYear if you only want a language to be used after a certain year.
If you're civ or leader doesn't need any fancy year shenanigans, you can also use a simplified form of assignment - ignoring the StartYear and EndYear columns, as seen below with Charlemagne:
SQL:
INSERT OR REPLACE INTO SC_RosettaLanguageAssignments
(CivLeaderTag, Language, Priority)
VALUES ('LEADER_CHARLEMAGNE', 'RIPUARIAN', 1),
('LEADER_CHARLEMAGNE', 'PALATINE', 2),
('LEADER_CHARLEMAGNE', 'LUXEMBOURGISH', 3),
('LEADER_CHARLEMAGNE', 'GERMAN', 4);
Here we can see that Charlemagne will try to use different Germanic dialects before defaulting to standard German if no dialectical names can be found.
A list of languages in Rosetta can be found
here under the 'Languages' tab.
Step 3 - City Assignments (civs only!):
Here, you'll just match up your civ's city names to the internal tags used by Rosetta. It's pretty simple, let's look at an example:
SQL:
INSERT OR REPLACE INTO SC_CityLOCRenameDatabase
(LOCName, RosettaTag)
VALUES ('LOC_CITY_NAME_AKSUM1', 'AXUM'), ---Aksum
('LOC_CITY_NAME_AKSUM2', 'ADULIS'), ---Adulis
('LOC_CITY_NAME_AKSUM3', 'MATARA_ERITREA'), ---Matara
('LOC_CITY_NAME_AKSUM4', 'LALIBELA'); ---Lalibela
Just put your civ's city names in the LOCName column, and the corresponding Rosetta Tag in the RosettaTag column.
A list of cities in Rosetta can be found
here under the 'CityTags' tab.
Step 4 - The modinfo file:
Make sure the files with the above info are placed into an UpdateDatabase action that is part of an ActionGroup with a "game" scope and an "always" criteria. And that's it!
Note: If your civ or leader has a language or city that isn't currently included in Rosetta, feel free to shoot me a message either here or on the Modding Discord, and I'll be happy to add it!