Localization and Text Highlighting: Difference between revisions
Added Localizations and Text Highlighting page. |
m minor fomatting tweaks |
||
| Line 7: | Line 7: | ||
The file may have any number of columns. The first column is the translation key and any subsequent columns are translations of the text for a particular language. The locale for each column is specified in the first row. | The file may have any number of columns. The first column is the translation key and any subsequent columns are translations of the text for a particular language. The locale for each column is specified in the first row. | ||
'''<big>Any time you make a change to this file, you must <code>Reimport</code> it for the changes to apply.</big>''' | |||
Translation keys are generally made up of three parts: the prefix, the compcon id of the Resource (and any parent resources), and the suffix. | Translation keys are generally made up of three parts: the prefix, the compcon id of the Resource (and any parent resources), and the suffix. | ||
| Line 43: | Line 44: | ||
For Actions, we use the <code>gear.</code> prefix and include the compcon id of the Kit before the compcon id of the Action. | For Actions, we use the <code>gear.</code> prefix and include the compcon id of the Kit before the compcon id of the Action. | ||
===== Example Frame | ===== Example Frame ===== | ||
id,en, | id,en, | ||
frame.mf_example.name,"Example", | frame.mf_example.name,"Example", | ||
| Line 49: | Line 50: | ||
frame.mf_example.flavor.short,"Helpful Example", | frame.mf_example.flavor.short,"Helpful Example", | ||
===== Example Kit | ===== Example Kit ===== | ||
id,en, | id,en, | ||
gear.ms_example.name,"Example Kit", | gear.ms_example.name,"Example Kit", | ||
gear.ms_example.effect,"Does nothing.", | gear.ms_example.effect,"Does nothing.", | ||
===== Example Kit (with an Action) | ===== Example Kit (with an Action) ===== | ||
id,en, | id,en, | ||
gear.ms_example.name,"Example Kit", | gear.ms_example.name,"Example Kit", | ||
| Line 77: | Line 78: | ||
* Modders often highlight <code>|efficient|</code> even though it is not a keyword in the base game. | * Modders often highlight <code>|efficient|</code> even though it is not a keyword in the base game. | ||
===== Keywords ===== | |||
{| class="wikitable" | {| class="wikitable" | ||
!Type | !Type | ||
| Line 122: | Line 123: | ||
|} | |} | ||
===== Complete example - the Hecatoncheires | ===== Complete example - the Hecatoncheires ===== | ||
id,en, | id,en, | ||
"frame.mf_balor_alt_hecatoncheires.name","Hecatoncheires", | "frame.mf_balor_alt_hecatoncheires.name","Hecatoncheires", | ||
Latest revision as of 11:12, 25 July 2026
Localization
[edit | edit source]All text in Lancer Tactics is translated through Godot's localization system. In the modkit, the complete translations for the game can be found at res://assets/localization/localizations.csv. For mods, the res://unpacked/<MOD_ID>/localization/localizations.csv file will be generated automatically by the mod tool.
It looks something like this:
id,en, mod.yourname-example.name,example,
The file may have any number of columns. The first column is the translation key and any subsequent columns are translations of the text for a particular language. The locale for each column is specified in the first row.
Any time you make a change to this file, you must Reimport it for the changes to apply.
Translation keys are generally made up of three parts: the prefix, the compcon id of the Resource (and any parent resources), and the suffix.
For mods, generally the prefixes we need to worry about are frame. for Frames and gear. for Kits.
The most common suffixes are:
| Suffix | Meaning |
|---|---|
.name
|
The name of the Resource. |
.effect
|
For Kits, this is the main body of the tooltip. |
.flavor
|
Lore text for the Frame or Kit. For Kits, this is usually omitted entirely. |
.flavor.short
|
For Frames, this is the short description of the Frame which appears on the Licenses ring screen. |
.on_attack
|
For Kits with ActionAttacks, this displays any On attack: effects in the tooltip.
|
.on_hit
|
For Kits with ActionAttacks, this displays any On hit: effects in the tooltip.
|
.on_crit
|
For Kits with ActionAttacks, this displays any On crit: effects in the tooltip.
|
.on_miss
|
For Kits with ActionAttacks, this displays any On miss: effects in the tooltip.
|
For Actions, we use the gear. prefix and include the compcon id of the Kit before the compcon id of the Action.
Example Frame
[edit | edit source]id,en, frame.mf_example.name,"Example", frame.mf_example.flavor,"The Example frame was created by GMS to use as an example in their various pieces of documentation. It is unclear if any were ever constructed in reality.", frame.mf_example.flavor.short,"Helpful Example",
Example Kit
[edit | edit source]id,en, gear.ms_example.name,"Example Kit", gear.ms_example.effect,"Does nothing.",
Example Kit (with an Action)
[edit | edit source]id,en, gear.ms_example.name,"Example Kit", gear.ms_example.action_example.name,"Example Action", gear.ms_example.action_example.effect,"Does nothing.",
Text Highlighting
[edit | edit source]Text in Lancer Tactics supports bbcode formatting. This means we can make text bold with [b]text[/b] and italic with [i]text[/i].
The text may also contain keywords, formatted as |keyword|, which are highlighted in orange and display a tooltip explaining their meaning when hovered. The text highlighted with || may also contain a valid dice string such as +2 or 1d6 either before or after the word.
The tooltip for a Kit may be displayed on hover by using |Stabilize=gear.ms_stabilize| where Stabilize is the string and ms_stabilize is the compcon id of the Kit. These will be colored green instead of orange.
Formatting Tips:
[edit | edit source]- Keywords in Lancer Tactics are always lowercase, with the exception of acronyms like
|HP|and|AP|. - The names of Actions, Kits and Deployables are capitalized. Where they cannot be given a green tooltip, they are bolded instead.
- Plurals of a keyword, such as
|protocols|, are usually considered valid. - Highlighting
|1 AP kinetic|will not work, it must be split into|1 AP| |kinetic|. - As
|ranged attack|and|melee attack|are keywords, it is customary to highlight|ranged| or |melee attack|even though the first tooltip will not work. - Although
|teleport|and|teleports|work,|teleported|does not. Use|teleport||ed|instead. - Modders often highlight
|efficient|even though it is not a keyword in the base game.
Keywords
[edit | edit source]| Type | Keywords |
|---|---|
| Actions | |barrage|, |boost|, |free action|, |full action|, |grapple|, |invade|, |overcharge|, |overwatch|, |protocol|, |quick action|, |ram|, |reaction|, |tech|
|
| AOEs | |blast|, |burst|, |chain|, |cone|, |line|, |area|
|
| Attacks | |melee attack|, |ranged attack|, |tech attack|
|
| Checks & Saves | |check|, |save|, |agility save|, |engineering save|, |hull save|, |systems save|
|
| Cover | |cover|, |hard cover|, |soft cover|
|
| Damage | |burn|, |energy|, |explosive|, |heat|, |kinetic|
|
| Gear | |AI|, |deployable|, |drone|, |indestructible|, |limited|, |recharge {x}+|, |{x} heat (self)|, |shield|, |uncharged|, |unique|, |weapon mod|
|
| HASE | |agility|, |engineering|, |grit|, |hull|, |systems|
|
| Stats | |armor|, |e-defense|, |evasion|, |health|/|HP|, |heat cap|, |limited bonus|, |reactions|, |repair cap|, |save target|, |sensor range|/|sensors|, |size|, |speed|, |stress|, |structure|, |system points|/|SP|, |tech attack|
|
| Statuses & Conditions | |blinded|, |danger zone|, |dazed|, |disengaged|, |engaged|, |eva-equipped|, |exiled|, |exposed|, |flying|, |grappled|, |hidden|, |immobilized|, |impaired|, |intangible|, |invisible|, |invulnerable|, |jammed|, |lock on|, |prone|, |shredded|, |shut down|, |slowed|, |stunned|
|
| Terms | |accuracy|, |bonus damage|, |CORE Power|/|CP|, |critical hit|/|crit|, |dangerous terrain|, |difficult terrain|, |difficulty|, |engagement|, |fly|, |free space|/|free|, |full repair|, |immunity|, |invisibility|, |knockback|, |line of sight|, |movement|, |object|, |obstruction|, |overshield|, |range|, |reactor meltdown|/|meltdown|, |reserve|, |resistance|, |rest|, |skirmish|, |teleport|, |zero-g|
|
| Weapons | |accurate|, |armor-piercing|/|AP|, |arcing|, |attack bonus|, |auxiliary|/|aux|, |cannon|, |CQB|, |heavy|, |inaccurate|, |irreducible|, |launcher|, |loading|, |main|, |melee|, |nexus|, |ordnance|, |overkill|, |reliable|, |rifle|, |seeking|, |smart|, |superheavy|, |threat|, |thrown|, |unloaded|
|
| Lore | |NHP|, |General Massive Systems|/|GMS|, |Harrison Armory|/|HA|, |HORUS|, |IPS-Northstar|/|IPS-N|, |Smith-Shimano Corpro|/|SSC|
|
Complete example - the Hecatoncheires
[edit | edit source]id,en, "frame.mf_balor_alt_hecatoncheires.name","Hecatoncheires", "frame.mf_balor_alt_hecatoncheires.flavor","Officially, the Hecatoncheires does not exist. Baronic...", "frame.mf_balor_alt_hecatoncheires.flavor.short","Sneaky Swarm", "gear.cp_myrios_long_leash_directed_greywash_hecatoncheires.name","MYRIOS Long-Leash Directed Greywash", "gear.cp_myrios_long_leash_directed_greywash_hecatoncheires.action_deploy_razor_swarm.name","Deploy Razor Swarm", "gear.cp_myrios_long_leash_directed_greywash_hecatoncheires.action_deploy_razor_swarm.effect","Deploy a [b]Razor Swarm[/b] to a valid |blast 1| area within |sensors| that contains no hostile characters. The Hecatoncheires may only have a single [b]Razor Swarm[/b] deployed at any one time. The [b]Razor Swarm[/b] persists until the end of the scene or until recalled or redeployed as a |quick action|.\nA [b]Razor Swarm[/b] is a |blast 1| area that provides |soft cover| to allied characters that are at least partially within the area. Hostile characters that start their turn at least partially within the area or move into it for the first time in a round take |2 burn|.\nA [b]Razor Swarm[/b] counts as a |drone| for the purposes of your and your allies' systems, talents, traits, and so on, but is not a character and is otherwise treated as a zone on the battlefield. It does not obstruct movement or cause |engagement|, and hostile characters cannot affect the [b]Razor Swarm[/b] in any way.", "frame.dep_razor_swarm_hecatoncheires.name","Razor Swarm", "gear.mt_razor_swarm_hecatoncheires.name","Razor Swarm", "gear.mt_razor_swarm_hecatoncheires.effect","A [b]Razor Swarm[/b] is a |blast 1| area that provides |soft cover| to allied characters that are at least partially within the area. Hostile characters that start their turn at least partially within the area or move into it for the first time in a round take |2 burn|.\nA [b]Razor Swarm[/b] counts as a |drone| for the purposes of your and your allies' systems, talents, traits, and so on, but is not a character and is otherwise treated as a zone on the battlefield. It does not obstruct movement or cause |engagement|, and hostile characters cannot affect the [b]Razor Swarm[/b] in any way.", "gear.cp_myrios_long_leash_directed_greywash_hecatoncheires.action_enrage_swarm.name","Enrage Swarm", "gear.cp_myrios_long_leash_directed_greywash_hecatoncheires.action_enrage_swarm.effect","Each hostile character in one or more areas created by your |drones| takes |4 burn|. This action is |efficient| and will refund |1 CP| at the end of any scene in which this action was used.", "gear.mt_dispersed_profile_hecatoncheires.name","Dispersed Profile", "gear.mt_dispersed_profile_hecatoncheires.effect","When the Hecatoncheires is in |soft cover|, ranged attackers receive |+2 difficulty| instead of |+1 difficulty|.", "gear.mt_smoke_and_mirrors_hecatoncheires.name","Smoke and Mirrors", "gear.mt_smoke_and_mirrors_hecatoncheires.effect","The Hecatoncheires can always |Hide=gear.ms_hide| in an area of |soft cover|, regardless of |engagement| or enemy traits and systems.", "gear.mt_panoptes_targeting_hecatoncheires.name","Panoptes Targeting", "gear.mt_panoptes_targeting_hecatoncheires.effect","The Hecatoncheires' |smart| weapons ignore the |invisible| status of characters within |sensors|.",