Localizing 'Papers, Please' - Part 2

This post was originally hosted on Tumblr
Apr 19, 2014

Loc-Header

This post was too big for tumblr. Go here for Part 1.

Finding Localizers

Before Papers, Please, I’d worked on three games that went through the localization process. Two of those were big AAA games with the full weight of Sony’s worldwide resources behind them. They had a reliable stable of voice and writing talent around the world, in every language. All good.

The third game was a small indie title. The best we could afford given our limited time and money was a one-stop shop that subcontracted all the work for cheap. We had a pretty rough experience with that and I wanted to avoid the same thing this time.

The first person I talked to seriously about localizing the game was Alain Dellepiane from GLOC. I met him at an industry party and we chatted for a bit about the challenges of localizing a game like Papers, Please. He was already a fan of the game and very knowledgable about how it should be translated to keep the nuances intact.

After meeting Alain I was certain that his team should do the Italian localization for me. That put me on track to find individual localizers for each language instead of a single company that would subcontract everything. To cover the other languages, I contacted people who’d already offered their help, followed up with contacts made through one of the game’s distributors (GOG), and asked on twitter. Loc-TwitterCall

Papers, Please was well enough received that many people expressed interest in localizing it from very early. When I released the game initially, GOG put me in touch with a Russian producer, Sergei Klimov. Based on the way the Russian market works, Sergei strongly urged me to have a Russian-language version ready to go for the initial release. Unfortunately this wasn’t possible but I did get in touch with him again to ask for localization references. He’s got loads of connections and put me in touch with a bunch of good people.

I collected all the candidates for each language and sent them the general stats for the game (~12,000 words, pixel art, low-resolution challenges, etc). I also searched for previous games done by each person/team and checked reviews, particularly from bilingual players. In the end, I settled on this crew:

  • Italian - Alain Dellepiane - Met in person
  • Japanese - PLAYISM - Japanese distributors for the game
  • Spanish - Josué Monchan - Recommended by Sergei Klimov
  • French - Words of Magic - Teamed with Josué, Recommended by Sergei Klimov
  • German - Rolf Klischewski - Teamed with Josué, Recommended by Sergei Klimov
  • Russian - Lazy Games - Recommended by Sergei Klimov
  • Brazilian Portuguese - André Campos & Team Jogabilida.de - Cold-mailed me after seeing my interview with Adam Sessler

Managing The Localizers

Josué took care of es/de/fr mostly on his own so I was left to manage roughly 5 different teams for the localizations. I staggered the introduction of each new team so I could keep up with loc tool fixes and additions. Being this close to the process was new for me. Alain and Josué were extremely helpful in directing things and pointing me in the right directions. Alain created an initial style guide for the game and Josué centralized localization discussions.

I collected some of Alain’s tips and basic instructions in this Google Doc for the teams to reference. Josué’s Q&A/Discussion/Bugs/etc spreadsheet was a great way to communicate quickly and easily with multiple teams. Loc-GoogleDoc

Indirect Translation

Specific nuances in English often can’t be translated directly. This surprised me a little bit when it really shouldn’t have. Papers, Please doesn’t have a lot of text but I did work pretty hard to get the nuances right. I speak only English (well), so in any case where there’s a difficulty with the translation, I have to just trust that the localizers:

  1. Know my intention or can figure it out.
  2. Can convert my intention to the same/similar thing in their language.

Each language is different so it’s not possible to handle them all the same. Because you can’t verify everything directly yourself, there’s a huge element of trust here that the localizers will do the right thing. It helps if you’re working with people who have lots of experience and who’ve dealt with these issues many times before. Playtesting by other native bilingual speakers can help too, but localization often involves personal opinion and preference. Often the localizer will make a decision about something that other players may not agree with.

Dialog Grammar

One issue that came up repeatedly was the game’s use of “Eastern European” grammar for the dialog. As far as I know, this is universally understood by American English speakers. We can drop into fake Eastern European grammar and it’s an effective way to set the theme without being explicit.

Unfortunately, it turns out that this same convenient grammar style doesn’t exist in many other languages. Or it has different, negative connotations that don’t match up with my intentions.

Language of Authority

In the instructions to localizers, I specified that dialog should sound Eastern European and that documents should be written with “normal grammar”. Saying “normal grammar” is pretty straightforward in English but again takes on a different meaning in other languages. There are countries that have been dominated by facists, dictators, or communists and have a very specific technique for representing official documentation. Using these techniques can be a really useful way to add context without saying much.

The tricky issue is that it can sometimes imply a connection or reference where there wasn’t one in English. For example, the Spanish localization might use Franco-style wording for the official documents. This creates a connection with a specific dictator that the game doesn’t have in English and can have a negative effect on the overall feel if it’s not handled well.

Place Names

Here’s another one I didn’t see coming. My original instructions to the localizers included: “Don’t localize place names.” Haha. Every single localizer wanted to change the place names and I can’t blame them. I made a lame argument that place names will “sound more foreign” by staying in English but they weren’t having it. There are names with “Outer”, “East”, “West”, “City”, etc that I want players to understand and thus need to be translated. And there are other names with unpronouncable spellings that simply can’t be read well. Or there are clear references in English (“United Federation”) that lose all meaning unless they’re translated.

So in the end I gave permission to localize all place names as they saw fit. There was still a hard space limit so they didn’t go too wild. A few of the languages and their country names:

  • English: Obristan, Antegria, Republia, UnitedFed, Impor, Arstotzka
  • German: Obristan, Antegrien, Republien, Vereinigte Föderation (VF), Impor, Kolechien, Arstotzka
  • French: Obristan, Antégrie, Républie, Fédération Unie (Féd. Unie), Impor, Koléchie, Arstotzka
  • Spanish: Obristán, Antegria, Republia, Unión Federal (U.F.), Imporia, Kolechia, Arstotzka
  • Portuguese: Obristan, Antegria, Republia, Federação Unida (Fed. Unida), Impor, Kolechia, Arstotzka

Check the Place Names sheet in the loc spreadsheet here for more.

Gender

Sometimes I think English is needlessly complicated. Then I remember grammatical gendering, blessedly missing from English. Unfortunately, lots of other languages love a good verb or sentence gendering and you’ll need to consider this if your game has randomly-assigned gender as in Papers, Please. A simple variable replacement for all family members worked ok in English:

  • Your $0 has died. » Your wife has died. (FEMALE)
  • Your $0 has died. » Your son has died. (MALE)

.. but doesn’t work in French :(

  • Votre $0 est morte. » Votre femme est morte. (FEMALE)
  • Votre $0 est mort. » Votre fils est mort. (MALE)

So French and other languages need either a different way to build sentences or a way to know the gender of each variable. This required the addition of a fairly simple gendering system in many of the localized strings:

This is a gendered string. Use the [m][/m] and [f][/f] tags to control which content is shown based on the subject's gender.

I am a [m]dude[/m][f]dame[/f].

Strings with variable subjects ($0, $1, $2, etc) have tags for each variable:

$0: [m0]dude 0[/m0][f0]dame 0[/f0]
$1: [m1]dude 1[/m1][f1]dame 1[/f1]
...

You party with your [m0]dudish[/m0][f0]damish[/f0] $0 and [m1]dudish[/m1] [f1]damish[/f1] $2.
You party with your dudish son and damish wife.
You party with your damish mother-in-law and dudish uncle.

... and a combined-gender tag:

[m][/m] (all subjects are male)
[f][/f] (all subjects are female)
[x][/x] (some male, some female)

Your $0 and $1 are going [m]fishing[/m][f]hang-gliding[/f][x]to the park[/x].
Your son and uncle are going fishing.
Your wife and niece are going hang-gliding.
Your uncle and niece and going to the park.

Some languages can actually require more than this (old man grammar is different from young boy grammar), but this gendering was enough for all the included 7 languages and I decided to draw the line somewhere.

Language Specifics

A few of the interesting situations that I remember:

German

German is a strict language. Rolf told me in no uncertain terms that messing with the grammar to make people sound foreign would not work as I wanted. Changing the grammar in German is a much bigger deal than in English and becomes borderline offensive by making foreigners sound dumb. That wasn’t my intention at all and I’d been completely unaware of this kind of problem until Rolf mentioned it. He has a lot of localization experience so I just deferred to him and trusted that he could handle losing the implicit grammar.

Separately, apparently the German language went through some kind of official change a few years back and many words are now spelled differently. For example, “Pass” became “Paß”. Or something. I don’t know the details. I just know that German players will find typos or errors that aren’t really errors due to the setting of the game (1980’s), before the language changes.

And finally, German is very strict about casing. There are capitals all over the place! You can’t apply English casing rules to German text so this requires a slightly more thoughtful approach to how you use your localized strings. Usually it means having a unicode-aware uppercase function (some single characters become 2 when uppercasing!), splitting out proper and non-proper spellings of words, or allowing localization of entire sentences instead of parts-stuck-together.

Russian

This was a slightly delicate localization. Although the game is set in a Soviet-like environment, I specifically didn’t want to it be the USSR or Russia. There’s even a localizer note, “Don’t use the word comrade or it’s equivalent”, for this reason.

The Russian-speaking fans of the game are very supportive and I didn’t want to offend them with a poor or insensitive localization. But I don’t speak a single word of Russian so this is another case where I had to trust the localizers fully.

Each localizer is different though, and Lazy Games felt strongly that some of the place names in English needed to be changed beyond what the other languages were doing:

  • Obristan -> Orbistan
  • Kolechia -> Koletchia
  • Republia -> Republika
  • Arstotzka -> Arstotia

At this point I felt confident using whatever they suggested so everything was fine…

… until Russian-speaking players started playtesting. Early players made it clear, in no uncertain terms, that “Arstotia” (Aрстотиа) didn’t fit their image of the primary country. It sounded “too soft” and not “scary and imposing” like “Arstotzka” (Арстотцка). Lazy Games spent a lot of time discussing this change internally. “Arstotzka” is nearly nonsense in Russian; hard to say, doesn’t sound like a country. “Arstotia” follows typical country naming format much better and reads more naturally. All of this made sense to me but in the end I asked Lazy Games to change the name back to “Arstotzka”. I still feel a little bad about this, since I do trust their professional opinion and can understand their reasoning for the change in the first place. But ultimately:

  • “Arstotzka” could be considered a brand, and shouldn’t be changed unless absolutely necessary.
  • Even in English, “Arstotzka” is hard to say, doesn’t read well or look like a country name.
  • Sometimes it’s better to listen to what players want instead of trying to convince them they’re wrong.

French

French puts a space before some punctuation: “This sentence is amazing !” It looks bizarre to my American eyes, but they insist. The only time this gets to be a problem is on word-wrapping logic. Normally there’s a special non-breaking space used here to prevent the punctuation from wrapping onto the next line by itself. Thierry asked for this but it wasn’t an easy change and ultimately I decided it wasn’t worth the trouble. My apologies to the Académie française.

Japanese

Japanese was by far the most different language on the list. Forget Eastern European grammar completely. Few people speak Japanese outside Japan, so there’s really no well-known concept of non-native speaking patterns that don’t just sound like stereotypical (and generic) foreigners. There’s a system for making people sound generally non-Japanese (using lots of katakana and dropping prepositions), but it’s tiring to read and has an air of childishness, since this is one of the first scripts kids learn to read/write in Japan. As with German, I left it up to the localizer to handle translating the intent.

One nice thing about Japanese is that there’s slightly more tolerance for non-native terms. They have katakana to deal with this clearly, and it’s even slightly cool-sounding to use English words in some places.

For our specific case, this localization is special because my wife is Japanese. She was able to make a final pass over PLAYISM’s work and suggest some changes based on our discussions.

Testing

All these localization changes and the translations themselves constituted a huge change in the codebase and assets for the game. On top of that I decided to implement the Linux port for the same release. I wasn’t sure about the stability of the game at this point and I wanted bilingual players who’d already experienced the original English version to chime in with their thoughts on the localizations.

To help me test all this, I put out a call on twitter for an invite-only beta test. Steam made it easy to create a private branch with the new builds and I set up github.com/BugsPlease for players to report any issues they found. The response was great and there were around 100 people trying the candidate builds out before release. A lot of small and big issues were found and fixed thanks to their help.

You can see most of the bugs/issues/etc that came up during localization playtesting here at the BugsPlease GitHub issues page.

After a few weeks of testing, the localized version of Papers, Please was released on February 12th, 2014, nearly 6 months after the initial English-only launch.

The End

My next game will be easier to localize.