Localisation modding

From Stellaris Wiki
Jump to navigation Jump to search

Version

Outliner top.png
This article may contain outdated information that is inaccurate for the current version of the game. It was last updated for 2.0.

This article is for the PC version of Stellaris only.

Localization is done in .yml files in the localisation/ folder, and is used in literals in the common/random_names/00_war_names.txt file, is used by the in-game log command, and various scripting functions. The naming convention for .yml files is <file>_l_<language>.yml where <file> is the name given for this group of localizations, and <language> is the language the localization is for. Stellaris currently supports braz_por, english, french, german, polish, russian and spanish. The localization tag is followed by a colon, the numeral 0, and the localization text within double quotes (" "). The colon and ending number can be omitted, as it is only useful for Paradox's internal localisation tools.[1]

File Encoding[edit]

Stellaris's localisation files are encoded as UTF-8-BOM. They should be encoded in UTF-8-BOM, as even UTF-8 will fail to be parsed by Stellaris, and your localisation entries will not work. The easiest way to get the correct encoding is to copy an existing stellaris yml file and modify it. Note that the following unicode characters are invalid inside the localisation file and will generate a "?" instead:

„ “ ‚ ‘ – ” ’ … —

Bracket Commands[edit]

Bracket commands are enclosed in brackets ([ ]), start with a primary scope, end with a text retrieval, and can have one or more secondary scopes in between. The fields are separated by periods (.). Text retrievals can be predefined (as per examples below), can mention Variables defined in the scope, or can be a scripted_loc (see common/scripted_loc/ files for for examples). When writing scripted_loc entries, it's important to note that these entries cannot themselves use bracket commands (i.e., a scripted_loc that includes "[Root.GetName]" will literally print "[Root.GetName]").

Primary Scope[edit]

Command Example usage Comments
Actor [Actor.GetAllianceName] Used in diplomatic response messages. The faction initiating an action
Recipient [Recipient.GetName] Used in diplomatic response messages. The faction targeted by the action
Third_party [Third_party.GetName] Used in diplomatic response messages. A third party involved in the action
Root [Root.GetName] The event's ROOT scope
This [This.GetName] The current scope
From [From.From.GetName] The calling event's ROOT scope. For events further back in the call stack, From can also be used as a secondary scope
Prev [Prev.From.GetName] The previous scope. It is not obvious to me what Prev.From points to, but some project descriptions use it
<event target tag> [mytarget.GetName] Event target tags are used without preceding them with event_target: in localization

Secondary Scopes[edit]

Command Example usage Comments
Capital [Root.Capital.GetName] The capital of the current scope
Leader [Root.Leader.GetName] The leader of the current scope (e.g. admiral of fleet, ruler of country)
MainAttacker [This.MainAttacker.GetAllianceName] The main attacker of the current scope (must be used in a war scope), used in war name formats
Owner [Root.Owner.GetName] The current scope's owner
Planet [Root.Planet.GetName] The planet where the current scope is located
Solar_System [Root.Solar_System.GetName] The system where the primary scope is located

Text Retrieval[edit]

Command Example usage Comments
GetAdj [Root.GetAdj] The adjective associated with the current scope
GetAdjective [Root.GetAdjective ] The adjective associated with the current scope
GetAllianceName [This.MainAttacker.GetAllianceName] The name of the alliance the current scope belongs to
GetControllerName [Root.GetControllerName] Name of the current controller (known to work on planets)
GetClassName [Root.GetClassName ] Name of the current planet class
GetFleetName [Root.GetFleetName] The name of the fleet associated with the current scope
GetHeirName [Root.GetHeirName ] The name of the current heir
GetHeirTitle [Root.GetHeirTitle] The title of the current heir
GetHomeWorldName [Root.GetHomeWorldName] The name of the home world of the current scope
GetLeaderName [Root.GetLeaderName] The name of the leader associated with the current scope
GetName [Root.GetName] The name associated with the current scope
GetFirstName [Root.GetFirstName] The name first associated with the current scoped leader
GetSecondName [Root.GetSecondName] The second name associated with the current scoped leader
GetAge [Root.GetAge] The age of the scoped leader
GetNamePlural [Root.GetNamePlural] The plural name associated with the current scope (must be a species)
GetNebula [Root.GetNebula] (unknown)
GetOwnerName [Root.GetOwnerName ] Name of the current owner
GetPersonalityName [Root.GetPersonalityName] Get the name of the current AI personality
GetPlanetMoon [Root.GetPlanetMoon] "planet" or "moon" depending on whether the current scope is a planet or moon
GetPlanetMoonCap [Root.GetPlanetMoonCap ] "Planet" or "Moon" depending on whether the current scope is a planet or moon
GetPopFactionName [Root.GetPopFactionName] The name of the currently scoped pop's faction
GetRandomSpeciesSound [Root.GetRandomSpeciesSound] A sound chosen randomly from a list of sounds associated with current scope's species
GetRegnalName [Root.GetRegnalName] The regnal name of the current scope
GetRulerName [Root.GetRulerName] The name of the ruler associated with the current scope
GetRulerTitle [Root.GetRulerTitle] The title of the ruler associated with the current scope
GetSpeciesAdj [Root.GetSpeciesAdj] The adjective for the species of the current scope
GetSpeciesClass [Root.GetSpeciesClass] The class to which the species of the current scope belongs
GetSpeciesClassPlural [Root.GetSpeciesClassPlural] The plural of the current scope's species' clas
GetSpeciesMouthName [Root.GetSpeciesMouthName] The word for the current scope's species' mouth
GetSpeciesName [Root.GetSpeciesName The name of the current scope's species
GetSpeciesNameCompliment [From.GetSpeciesNameCompliment] A compliment using the current scope's species
GetSpeciesNameInsult [From.From.GetSpeciesNameInsult] An insult using the current scope's species
GetSpeciesNamePlural [This.GetSpeciesNamePlural] The plural of current scope's species' name
GetSpeciesNamePluralCompliment [Root.SpeciesNamePluralCompliment] A compliment using the plural of the current scope's species' name
GetSpeciesNamePluralInsult [From.SpeciesNamePluralInsult] An insult using the plural of the current scope's species' name
GetSpeciesHandName [From.GetSpeciesHandName] The word for the current scope's species' hand
GetSpeciesMouthName [From.GetSpeciesMouthName] The word for the current scope's species' mouth
GetSpeciesOrganName [From.GetSpeciesOrganName] The word for the current scope's species' internal organ
GetSpeciesSpawnName [Root.GetSpeciesSpawnName The word for the children of the current scope's species
GetSpeciesSpawnNamePlural [Root.GetSpeciesSpawnNamePlural The plural word for the children of the current scope's species
GetStarName [Root.Capital.GetStarName] The name of the star where the current scope is located
GetHerHim [admiral.GetHerHim] Prints 'her' or 'him' based on the character's gender.
GetSheHe [abducted_leader.GetSheHe] Prints 'she' or 'he' based on the character's gender.
GetSheHeCap [abducted_leader.GetSheHeCap] Prints 'She' or 'He' based on the character's gender.
GetHomeWorldName [Root.GetHomeWorldName ] The home world name of the selected country
GetHerHis [admiral.GetHerHis] Prints 'her' or 'his' based on the character's gender.
GetHerHisCap [admiral.GetHerHisCap] Prints 'Her' or 'His' based on the character's gender.
LastKilledCountryName [LastKilledCountryName] Prints the name of the last killed country.

Color Codes[edit]

Color codes start with §, which is followed by a single character specifying the color to be used until another color code is detected, or the end of the string. There may be other supported color codes, these are the ones found in a brief perusal of localization files. Within a $ command, the color for the displayed command may also be specified by preceding the closing $ with | and the color code character: $AGE|Y$

Code Color
B Blue
E Teal
G Green
H Orange
L Brown
M Purple
P Light red
R Red
S Dark orange
T Light grey
W White
Y Yellow
! Default

For an example of these color codes in-game, refer to this image.

$ Codes[edit]

$ is used to delimit strings defined elsewhere to be expanded in the current string, or system statistics in GUI elements.

£ Codes[edit]

£ codes are used for the names of various system stats, including energy, minerals, influence, and the three research categories (engineering, physics and society.) More exist than those listed here, such as £ship_stats_hitpoints\armor\shield£, £fleet_template_size£, and £trigger_yes\no£ among others. Search the '£' character using something like Notepad++'s Find in Files feature to find something specific. Remember that £ codes must surround the tag you're inserting, ie. £energy£.

Code Picture
£energy£ Energy Credits.png
£minerals£ Minerals.png
£food£ Food.png
£influence£ Influence.png
£unity£ Unity.png
£physics£ Physics Research.png
£society£ Society Research.png
£engineering£ Engineering Research.png
£pops£ Pop.png
£happiness£ Happiness.png
£opinion£ Opinion.png
£military_ship£ Military Ship (icon).png
£military_power£
£blocker£ Tile Blocker.png
£time£ Time.png

\ Codes[edit]

The sole \ code is \n, which inserts a newline, unless it is inside one of the above codes.

References[edit]