How We Localized Brigador

Date: Sat, 15 Apr 2023
Brigador: Up-Armored Edition Game Banner
Genre: Action, Indie
Developer: Stellar Jockeys
Release Date: Thu, 02 Jun 2016
One of the lesser discussed aspects of Brigador: Up-Armored Edition but what has had a subtle impact on its reach is its localization, so we’re going to take a look at how Brigador was localized from a technical and linguistic standpoint, and what sort of challenges were posed by doing so.

📝SOME THINGS TO NOTE



For those unfamiliar, the term “localization” is often used interchangeably with “translation” – for our purposes when we refer to localization we are talking about the process of both translating a text from its source language into its target language (e.g. from English into French) AND having that translation make sense in the target language. Another way to think about this is localization is not a verbatim, or literal “word-for-word” process of translation – it is the communication of the message of the original text using the target language. We will look at a few examples of this later on.

Second, Brigador was never conceived with localization in mind. The game runs on a custom engine and spent several years in development, first appearing as a closed alpha in 2014, then Early Access in 2015 followed by the initial 1.0 release in June 2016. That whole time it was only ever in English with a very simple menu system. Between 2016 and the 2017 Up-Armored Edition re-release, however, the game was localized into five languages: German, Russian, Japanese, French, Spanish and Brazilian Portuguese and several more languages would follow in subsequent years.

Third, the word count of Brigador: Up-Armored Edition sits at about fifty thousand words, which, very broadly is about 200 hours worth of work for a single translator, not counting however many hours editors would spend going over the work.

Lastly, we were extremely fortunate to be able to work with some absurdly talented translators without whom this article would not come to be.

🚧THE TECHNICAL HURDLE(S)



Remember how we said Brigador was never conceived with localization in mind? Here are a few important things you need to be aware of if you ever intend to localize a game that doesn’t have any sort of localization:

  • What fonts and alphabets are currently supported by the game’s engine?
  • What are the character limits in the user interface?
  • Is there any text that gets used in multiple places?
In order for Brigador’s localization to be a success, we needed to answer the above questions, but before we can even do that, part of the game’s engine had to be altered to allow for interface language switching to even happen. For those more familiar with computing terminology, the localization for Brigador is a form of shimming to integrate a set of translation libraries.

In more plain terms, everywhere you find text in Brigador – with the notable exception of “hard” art assets like signage in levels or on some loading splash screens for certain locales – behind the scenes all of it got ripped out of its original spot and replaced with a string. For example, instead of this equipment entry’s title and body:

EMP Grenade

Launches a small yield EMP warhead at low velocity in a high arc. Detonation temporarily disables shielding and drive mechanisms of all vehicles in the blast zone. Anti-grav units with overloaded drives are known to plummet into the ground and nearby friendlies, and radio communications are also rendered inert for a duration.

Particularly effective when used in tandem with artillery or high hull impact munitions.

-Efi
In their place now sat:abilities.special_ability_emp_01.nameandabilities.special_ability_emp_01.descriptionOr visualized side by side in a spreadsheet

A lot of the text entries follow this sort of string-naming scheme and there are roughly 1200 strings that contain Brigador’s ~50k word count. What we haven’t yet explained is why we had to go about ripping out all user interface text and replace it with these string IDs.

In most modern applications, places where text is visible to the end user don’t actually contain the “raw” text. Instead, it’ll contain some kind of variable (in our case a string or, as can be seen from the screenshot an “msgid” or Message Identifier) and this is the thing that points to something else that contains the text we want to display. In Brigador’s case that “something else” is what sits in the game’s \Brigador\assets\text directory:

Seen above are a dozen folders with language codes. Each folder contains an MO file and, unfortunately for the lore hounds out there that want to read all the game’s text in one go, MO files are not human readable. Fortunately, these files are Brigador readable. They are what the game points to at runtime when you launch Brigador, depending on either your operating system’s current language or if you have already switched the game’s language to something else. To get to this point, a text goes through the following abridged steps starting from the translator:

  • Translator receives English source text as a document
  • Translator translates English source text into target language
  • Translator sends translation back to Stellar Jockeys as a document
  • Stellar Jockeys copies and pastes the translated text from the document into an alltext master spreadsheet
  • Alltext master spreadsheet is converted into a csv file, and then into a PO file and then into an MO file
  • Brigador build is compiled with new MO files included into the packfile and pushed publicly for players to enjoy
    This process was repeated for every language. In other words, if we had to hit copy and paste a few hundred times for a language, we had to repeat that copying and pasting ten times more to cover all the current languages. Our producer doesn’t have a picture of their old keyboard, but the Ctrl, C and V keys on it were thoroughly worn out by this process.

    In addition, it was not trivial to bolt on the localization feature to Brigador because:

  • No groundwork existed for this feature beforehand – it all had to be written fresh which was made harder by the fact that
  • The game engine is entirely custom written in C++, unlike established industry engines that already boast localization support such as Unreal or Unity, and
  • At the point of its creation our original engineers had since departed Stellar Jockeys making codebase changes more difficult
    Ultimately the localization feature “works”. We won’t dwell too much on the problems, save for answering these questions we posed at the start now that you’re armed with some knowledge about the process:
    What fonts and alphabets are currently supported by the game engine?We only supported the Latin alphabet with our set of fonts at 1.0. Nowadays we support Chinese, Japanese and Korean alphabets. Most fonts that support the Latin alphabet usually support characters like diacritics which covers most European languages, even alphabets for Russian and Polish. The fonts used in Brigador are Rubik, Iroha Maru Mikamki and Noto Sans. Rubik supports Latin & Cyrillic, Iroha Maru Mikamki supports Japanese, and Noto Sans supports Simplified & Traditional Chinese and Korean.
    What are the character limits in the user interface?The bulk of Brigador’s text is found in the INTEL/ACQUISITIONS lore entries which have plenty of space. Places that had space constraints like the objective counters in a level or SETTINGS menu labels were limited between 10-25 characters including spaces. To know how much space that is at most, type out twenty-five Ws on your keyboard like so:WWWWWWWWWWWWWWWWWWWWWWWWW(Capitalized, the letter W is the widest letter in the Latin alphabet)

    Remember, this is including spaces. That short sentence you just read was 34 characters including spaces. It is not a lot of room.

    Those of you that are experienced in this field might be saying something like “Wait, couldn’t you just resize the UI elements independently?” and if our game were like a lot of other applications, the answer would be “Yes, of course we could”. Unfortunately, given how simple the menu system is, the localization feature is such that the chosen size for the UI text ends up being global. What that means is attempting to change the size of the text in one place affects the size of all text. Please refer to the GIF below to see this problem visualized.

    For languages that are typically 10-20% longer in translation like German or Polish this entailed a lot of truncation in multiple places (usually the SETTINGS menu) because left untruncated the translated text would be illegible either due to running out of bounds or overlapping text on the line below it.

    By contrast, Chinese, Korean and Japanese had the opposite problem in that they were typically very compact, which tangentially was a problem for a lot of older generation video games from Japan being localized for Western audiences because their UIs would require significant reworks in order to accommodate an English localization.
    Is there any text that gets used in multiple places?This was another headache. A common trick when creating a user interface is the reuse of the same piece of text in multiple places (for example, the word “YES” in a confirmation window) meaning you only ever need to create one instance of that text. While we can get away with this in English – because “YES” means a positive response regardless of the question being asked – it doesn’t always work in other languages. This is because answers to particular questions can vary depending on language (in the sense that translation of the word shouldn’t be “YES” but instead something like “CONFIRM” or “ACCEPT” in the target language). Unfortunately, we weren’t able to give such elements in Brigador their own separate strings, though to the best of our knowledge we largely got away with it, probably because such buttons are rarely encountered in the game.

    Despite the localization work being a significant slog, let’s try to end this segment on a positive note: it all ends up as text data in binary so the “cost” of adding localization to Brigador: Up-Armored Edition is ludicrously small, from 550 KB for Traditional Chinese on the low end to 904 KB for Russian at the high end, or about 7.4 MB in total for 50 thousand words repeated 12 different times.

    🗣 THE “VOICES” OF BRIGADOR



    The process of translating the text was the least of our problems due to Stellar Jockeys’ producer already having experience in localization. This meant we knew what sort of behavior to expect from our translators and how to provide them with what they might need. With a few exceptions, most of our translators across various time zones were able to reach us via a private channel on our Discord server that we’d specifically set up for them. This was where we’d answer questions about Brigador’s terminology and provide gameplay screenshots or footage where needed.

    Projects like these typically end up with a lot of frequently asked questions so it’s usually a lot more efficient to have everyone in the same room rather than repeating yourself up to eleven times, and often times our translators ended up brainstorming together, even if their target languages were different.

    The main task for the translators – aside from coming up with “cool phrase in target language for a thing” – was handling the lore entries in Brigador, which are mainly written by three fictional characters who are also unlockable pilots in Freelance mode: Efi (Efigenia Tseng), MB (Marvin Beck), and m.p.C.C. (Cephei Chatfield) and sign off as such at the bottom of each text with a signature. Efi is a gearhead that predominantly writes the weapon descriptions in strict technical detail, MB is a breathless nerd that talks about vehicles in a laidback and sardonic manner, while m.p.C.C. is a spacer putting out dossiers on the pilots for the SNC. Despite appearing in text format only, they are individual characters in their own right, which needed to be reflected in their writing in translation.

    The other big challenge boiled down to answering the question of “Do we leave it as is or translate it?”. This is because terms like "Touro" (literally, Bull), "Novo Exercito de Povo" (New People’s Army), "Solo Nobre" (Noble Soil) are Portuguese in origin. We left it up to the translators to decide whether such terms be left as is, transliterated or crafted anew. There are ups and downs to whichever choice one makes, but the important thing was to communicate the notion that Novo Solo is a planet that has its own language and culture that was not Anglocentric. This question also extended to campaign mission names that are direct references to actual songs, and to weapon names with nouns like “Donkey”, “Carlos” and “Otomo”. Generally speaking, the further a translation was from English geographically, the more these things tended to be given targeted translations.

    Lastly, each language varied in how many translators and editors worked on that language, ranging from just one for French, German and Italian, to almost a dozen on Chinese.

    🎭ANECDOTES FROM THE TRENCHES



    A number of amusing things from all languages came up during Brigador’s localization. Here are a handful.

    FRENCH


    The original text for Moerbeke Quarter’s lore description reads in English:lol yea ve ben to the bek. best ploid n lyears lmfo 100 top ben 2 lng tho try gin soonon

    ^ dt, som fkin mtdor r sm sht rket th HOLE bek NO bek newer fkn l2pilot knai

    -anonymous synchnet postings
    To first translate this, we needed to translate what the message even is into plain English. The entry is two comments written on a message board of sorts, but written in SMS-style shorthand. Expanded into normal speech, what Moerbeke is meant to read is as an exchange between two users.Yeah, I've been to the Moerbeke Quarter. Best I've had in years. I should go back.

    About that, I just went - some goddamn pilot wrecked the WHOLE place. No Moerbeke Quarter left! He should learn to drive. Haha.
    How this ended up in French was thus:put1, ete a bek. meilleur ploid dpui D ané. imfao top 100. essèrè 2 revenir bi1to

    fépaça. 1 enculé de mat a tout KC. ny retourn pa. Apren +to a piloter

    - messages synchnet anonymes
    We hope this clears up any confusion about what this entry was about for the French native speakers reading.

    As for some of the achievement titles in French: Through a Scanner became Substance Mort which is the French title of the Philip K. Dick book; When I’m On The Road, I’m Indestructible became Je n’ai besoin de personne en Harley Davidson which is the title of a very famous song by Brigitte Bardot penned by Serge Gainsbourg, and the now-unused Your Own Supply (an achievement for killing yourself with Tubarão but was removed because we can't accurately track damage sources) became Tu payes pas le gaz (literally “You don’t pay for gas”, which is a popular saying in French when someone farts in public).

    Our French translator also noted that they didn't translate most of the faction names and left them as is, except for Spacer which became Spacien in French, because it would be more familiar to a French science fiction reading audience. Also, “Spacer” is the title of a somewhat embarrassing disco effort from a French pop singer back in the late 1970's:

    SPANISH


    Our Spanish translators recalled that translating the Loyalists faction name was a particular bugbear:
    “The most direct translation Realista was a term used during colonial times in South America and it has the implication of monarchic rule so it was both old-fashioned and misleading so that was a no-go. We then went with fieles al regimen which was closer in spirit but as you might imagine, replacing an adjective with a whole phrase presented some logistical difficulties in some sentences, which ended up extremely ungainly. There were a few scenario briefings where ‘loyalist’ would appear many times and a longer phrase made the repetition very evident. We spitballed a few alternatives until a few days or so before the deadline, when we were re-reading to check everything was okay. The other translator made the comment that, if you think about it, the 'loyal' part of the term sounds kind of redundant in Spanish, especially since these are the regime's forces after all. So, we went with del regimen, which sounded much better, was as invisible as 'loyalist' in terms of lexical density and repetitions, and it fit perfectly in every single sentence. We went through the whole text again and replaced every instance of fieles al regimen with del regimen – and that's how the main enemy faction in Brigador got its localized name like a week before the deadline after months of struggling with finding a good alternative."

    GERMAN


    Our German translator told us:“I put big emphasis on trying to not make it sound like a translation from English, which is sadly very common in German video game translations nowadays. Leaving most terms and names in English, sentences that clearly still carry the English syntax and going for a lot of the Latin loan word equivalents instead of ‘proper’ German words... I tried really hard to avoid all of that, and I think as a result the translation did end up having a very peculiar character. Also trying to differentiate the different character voices was fun. Sometimes I wondered if the result was actually good, but whenever I read back the translated text or checked stuff in-game, I found myself pretty captivated and couldn't stop reading it, so I guess at least I think it's good. I do recall a German Let's Play where the guy laughed out loud at my translation Deppenbus for the Shortbus and then called the German translation in general ‘eccentric’. I think that's a success!”

    ITALIAN


    Our Italian translator reminisced the following:“I loved translating the mission names! As they're all song titles, sometimes I got creative and spun them around into other music references that, while maintaining the meaning of the original title, also meant something else in Italian. 'I'll Be What I Am' became 'Son Chi Sono' (I Am Who I Am), which is a line that really stuck with me from the Italian version of Cyrano de Bergerac. Also the achievement 'Lore Boar Wants More' became 'Mike of Solo Nobre' in translation, which is a reference to someone called 'Sabaku No Maiku' or 'Mike of the Desert', who is basically Italy’s VaatiVidya.”

    JAPANESE


    Our Japanese translation was handled fantastically by a couple of workhorses from an established Japanese translation agency. We don’t have any comments from them, but we did receive occasionally amazing reviews from Japanese critics, such as this one excerpt from this blog which we enjoyed via machine translation but was kindly translated properly by a twitter user:Have you ever eaten lasagna made by an American?

    What is this clump of lard shaped like the heart of a titan? The Americans call it "lasagna." It's 30% meat and 70% oil and cheese arranged like sediments from 300,000 years ago the color of disgust. The smell, the weight, the size, the sheer look of the thing should tell any sane person that it is not safe for human consumption. It's so fattening you can feel yourself gaining weight just by looking at it. Ramen shot-through with lard and chemical preservatives stands next to lasagna and hangs its head in shame, practically a health food by comparison. That's how rich it is. It goes without saying that I couldn't eat it. It is not a thing that could be eaten. The Americans looked at me sympathetically, devastated that I could not partake in this delicious thing. I did not understand… until I played Brigador. Recommending someone play Brigador is like trying to explain why lasagna is actually good to a Japanese person.

    CHINESE


    The first pass on Chinese that we put out was unfortunately of subpar quality, which we weren’t aware of until a few negative reviews appeared. Luckily, someone within our community emerged to help us fix the translations and gave everyone else involved some fascinating insights into a number of topics while they were at it.

    Regarding their translation of the Johnny Five Aces entry, in Chinese J5A was renamed to 五星王牌莊尼 (Wǔxīng Wángpái Zhuāng Ní) or “Five Star Ace Johnny”. This had a couple of cultural references to boot, because in Hong Kong, the ace card in poker is called "煙" (a cigarette). So having four aces would be called "四條煙" (or “four smokes”). Meanwhile the fifth ace here calls forth imagery from a scene in the 1990 Stephen Chow action comedy God of Gamblers II.

    The translation for the vehicle name "Propter" ended up something of a conundrum for some of the translators as there was no explicit idea or meaning behind the name, but instead chosen as a just-so articulation of style and how the word sounded. Our Chinese editor christened it「派頭」or, approximately, “Pài Tóu”.“This phrase carries the meaning of 'style' and 'panache'. The Propter is built out of classic cars, so this name should fit with its stylish appearance. Also, the way it's pronounced ("Pài Tóu") should be a phonetic match to ‘Propter’.”Lastly, our Chinese editor was very proud of their work on Luis Leng who ended up with a proper Chinese name.“It gave me an idea: what if I assign him an actual Chinese name? Leng, 冷, became the surname. As for the first name... Luis is usually translated as 路易斯 (Lùyìsī), but a Chinese person’s name is mostly two to three characters long (one character for the surname and a two-character first name being the most common) so I needed to twist it a bit. His name ended up as 冷路移 (Lěng Lù Yí). I gave the same treatment to Efigénia Tseng as well so that she’d be called 曾愛菲 (Céng' Àifēi), and 愛菲 (Àifēi) would also take care of her nickname "Efi".

    📚THERE'S A CONCLUSION?



    Despite numerous hitches we’re immensely proud with how the Brigador localization turned out. It’s helped the game reach audiences we otherwise wouldn’t have been able to if it remained as English alone and it’s heartened the team to know the appeal of the game is wider than we might have once thought.

    For the sequel Brigador Killers (consider wishlisting and following!) we intend to work with many of the same translators again, though we will be retooling the user interface of the next game to better serve localization.

    https://store.steampowered.com/app/903930/Brigador_Killers/
  • Write your comment!