Limbus Company

Limbus Company

Not enough ratings
Custom localization: battle things translation shennigans
By Rijnadel
Well, now the game has an open localization and you don't need to make your own BepInEx Unity mod with all the subsequent hassle and now there are many more people who want to do this, so here will be a short guide on how to use the Limbus Localization UI[github.com] program, which can comfortable edit Skills⋯.json, Bufs⋯.json, BattleKeywords⋯.json, Passive⋯.json, EGOgift⋯.json files and show a preview without having to log into the game to see what it will look like.

Ask anything in comments if something is not clear

(Guide just created, subject to change in the future)
   
Award
Favorite
Favorited
Unfavorite
Setup Limbus Localization UI
So, for comfortable use in the Limbus Localization UI, you can also translate the interface into your language, or just use the English already available:

Language
At ⇲ Assets Directory\[+] Languages copy English.json as source and rewrite as you want, "Font" options for elements can use already installed fonts from computer instead of definig them at bottom of file.
Then, in main config ⇲ Assets Directory\Configurazione.json set your new json file as language:

To highlight keywords in text, you need to create folder in ⇲ Assets Directory\[+] Keywords\Text directory and set its name as selected in config, also create corresponding property with your folder name (Or better to copy english version and change "Folder Name" because there are almost no differences) and change fonts if you use other variants. This folder should contain all Bufs*.json files and SkillTag.json, and more simple way instead of creating new folder you can set it in Keywords Custom Folder to your actual workspace with all localization files and then SkillTag.json with Bufs*.json files will be founded automatically in this folder.
Files navigation
Skills and Passives

Skills and passives of identities and enemies:
  • Skills.json (All skills of identities until season 3)
  • Skills_personality-xx.json (All identities starting from season 3 by sinner number)
  • Same with E.G.O. skills (Skills_Ego{_personality-xx}.json)
  • Skills_Abnormality/Enemy.json with all enemies from Focused Encounters in "Abnormality" and enemies from Regular Encounters in "Enemy" (Until season 3)
  • Skills_Abnormality/Enemy-aXcYpZ.json files enumerated as "Act? X Canto Y Part Z", as example Skills_Abnormality-a1c5p3.json is focused encounters enemy's skills from Canto V dungeon starting with the Skin Prophet and ending with Ahab (Part 3, final)
  • Passives.json contains all passives of all identities, no Passives_personality-xx files provided
  • Passives_check4.json contains some uptied passives of season 1 identities, in Passives.json passives of the same identity from different Uptie Levels usually follow each other with similar IDs: 1040811 as uptie level 1, 1040821 as 2, and 1040831 as 3 for example with "Cleaning Command" passive of Edgar Family Butler Ishmael
  • Passives_Abnormality/Enemy{-aXcYpZ}.json same as Skills
  • Event content has a short name instead of aXcYpZ: walpu Walpurgisnacht, tkt Time killing time, ycgd Yield my flesh to claim their bones, mowe Murder on warp express
    sweep Nocturnal sweeping
  • Assist is for someone as Jia Xichun
  • SkillTag.json contains all skill effect conditions such as [On Hit], [Clash Win] and etc.

Keywords
Presented as BattleKeywords and Bufs json files
  • BattleKeywords contains information about keywords in this small menu that pops up when you click on them in the text
  • Bufs is 90% matches BattleKeywords, but shows as in-battle information on unit status effects or on hit with skills under skill name, contains {n} fragments for inserting something, for example "Speed +{0} for this turn." in Haste keyword with '{0}' for actual speed buff number

EGO gifts
Written EGOgift_x.json files, can be from MirrorDungeron or StoryDungeon

Other stuff
Enemies.json contains the names of all enemies (Including abnormalities)
Personalities.json are the names of all the identities
Json structures
Summary descs
Summary descs exists in Passive files, they displays information on hit about active effects under the skill. You can add them manually to the json file, full desc will be displayed without them. For example, the case when this needs to be done: Firefist Office Gregor doesn't have "summary" desc for passive "I'm the only survivor..." and it took up half the screen on hit, but you can manually add some short version of it as "summary" element after "desc" and it will be correct for the translation QOL.
BattleKeywords items sometimes also have "summary", but seems like its outdated version of in-battle information for keyword with actual values that all moved to Bufs json files.

Skills coins and uptie levels
In Skills.json, each skill, including its Uptie Levels, is a different object. Right after "id" comes "levelList" with them, "level" is Uptie Level (In enemy skills uptie level is always 1). "coinlist" contains all coins, and each coin has a list with descs, the "{}" in "coinlist" (or with "coindesc", but empty) means an empty coin without desc
Text tags and keywords
Keywords
To highlight keywords in text, there are currently 3 schemes:
  • Just keyword, which is exactly matches with some keyword from Bufs.json files (Can be prevented by using [TabExplain], as example "Bloodfeast" passive of La Manchaland Don: "Variant Sancho Hardblood[TabExplain] Arts 6 - Whip" skill name in text where Hardblood is can be highlighted as keyword). For example "Burn" will be matched with 'Combustion' id at Bufs.json. In Localization UI presented as "Dynamic Keyw." in settings, keep in enabled.
  • Full text style via tags from Unity TextMeshPro[docs.unity3d.com]: <sprite name="KeywordID"><color=#hexcolor><u><link="KeywordID">Keyword Name</link></u></color>, looks really hard to read (Great example is Firefist Office Gregor passive as json above), but allows to change word and color. (Presented in Localization UI as 'Tags' options in context menu or 'Open Links' in Refractor, about changing word without that mess read about Shorthands in 'Another points' at end of guide)
  • Keyword links: you can attach keyword as [KeywordID] in text and it will match the style described above, [Combustion] as example for Burn (Keyword name is still taken from Bufs.json)
<link="KeywordID"> tag for KeywordID responsible for which keyword information is displayed on click.
(Yes, sometimes keywords have strange id name)


Keyowords in keyword info window
Basically all bove rules except "Full text style" doesn't work there, and I think it's not very good idea for reading, so you can manually insert them by Full text style method, but it will be unable to click on them from this menu and open the same one. As example english version and ru-translated with this trick (BattleKeywords files):
Same with Bufs files and their info in status effects list on unit during encounter.


Skills/Passives/EGO gifts uptie/upgrade highlighting
Highlighting the upgrades of skill elements or passives seems to work automatically, highlighting in color what is changing compared to the past in identity Uptying menu. Can be manually attached with <style="highlight">some upgrade</style> for skills or passives.

In EGO gifts there are no automatic highlight and it's mistake of game, and more than that, some EGO gifts doesn't have this <style>, for EGO gifts its a <style="upgradeHighlight">.
In Localization UI can be inserted from context menu.

Other
Otherwise, Unity TextMeshPro also should work in almost any of other text fields, use its Tags as you see fit.
Another points
Shorthands
It was actually supposed to replace full keyword spelling via tags with [KeywordID:'Changed keyword text'] and was already working in the Crescent Corporation's version of the translation mod as [KeywordID:*Keyword text*], but after the announcement that it forbidden to modify anything in the game data other than text files, its viability is now technically questionable.
Not actually supported in game and all such keywords will be turned into 'Unknown' in text (And anything else in square brackets if it's not keyword id).
Currently used together with full conversion into "Full text style" when publishing a new localization version in Russian translation versions.

For that "full conversion" i made another program called LC Localization Controls[github.com], that can export localization with full conversion of keyword shorthands in any form (Such as [Keyword:`Name`](#color), requires regex pattern change if your's is different) to TextMeshPro version, and also with missing id and files appending to avoid 'Unknown' everywhere.
Some screenshots
1 Comments
Leo The Gamer Kid Apr 13 @ 3:54pm 
Keywords within keywords??? How did PM not know this? This stuff's revolutionary. Can't wait for modders to tidy up almost all of the the text boxes and, if possible, passives (example: one line in Manager Don's "Bloodfeast" passive about not dropping hp below 1 while using enhanced s1 even tho it should be on the skill itself; some odd passives on dongbeak and dongrang listed that either just reiterates what the panic type does or be just be on the skill the passive references). even if that was the passive at work I feel stuff like it should be on the skill instead unless otherwise