Saturday, September 7, 2019

How to Localize your Game in Other Languages - And Things you Should Consider Ahead of Time

20% of the world's population speak English--roughly 1.5 billion people. However only 360 million people speak English as their first language. When it comes to gaming, most players prefer to play in their own mother tongue. So localizing your game can open up huge new markets if you do it right.

I recently localized my mobile strategy game Carrier Commander: War at Sea to Chinese and Spanish. China is currently the largest mobile gaming market in the world. Spanish is spoken by most of South America as well as Spain, and is the 4th most spoken language in the world after English, Chinese, and Hindi.

Conventional localization wisdom says to first translate your game to EFIGS (English, French, Italian, German, Spanish) followed by CJK (Chinese, Japanese, Korean). Truth is, there are varying circumstances for each and every game and your choice of localization may be dependent on factors such as:
  1. Target market's gaming preferences and competition in your niche.
  2. Access and cost to quality translation services.
  3. Logistics of incorporating new languages into your game. 
Choosing what languages to localize your game into are beyond the scope of this article. Today we're going to focus on the steps you should take to translate your game into other languages. 

Chances are if you're early on in the development process of your first game, you haven't put much thought into translating it into other languages. But understanding how localization works and taking a few simple steps early on can save you a lot of headache later.

I'm not an expert in localization, but I did spend 3 years translating games from Chinese to English--and found that experience beneficial when it it came time to localize Carrier Commander. So below I'm going to share what that process was like; I hope this information is useful to you. 

 1. Consolidated your Game's Text Strings

If you integrated your game's strings everywhere throughout your code, this is might require some work, but your game engine might be able to help you out. For Carrier Commander I kept all my strings in a one dimensional array called String.

So any time the game needed to write text, I always referenced back to this String array. Carrier Commander had a total of 300 text entries in this String array. You may choose to consolidate your strings in another method such as an external file, a series of more human-readable variable names, etc. What's important is you keep them all together in one place. 

When you're ready to hand off your strings to a translator, they're going to have a hard time editing code like this so it's best to load all your text into a spreadsheet for them. 

As you can see from the formula, this excel sheet column C will extract the text between the "quotation marks" in column A. Before handing this sheet over to the translators simply copy the column and "Paste Values" into a new column for them to edit. It's also important that the String # is stored along with each text string. 

2. Translate all the Strings

There are several approaches to translating your game. You can use machine translation (IE Google translate), which can be done very quickly using a formula on google sheets.

You can hire a translator online or in-person, or you can do a hybrid of these 2 options by machine-translating your text and hiring a native speaker to simply edit it.

Whatever method you choose, realize it's going to be impossible for a translator to fully understand the context of all the text in your game from reading a spreadsheet. I would advise you not to spend too much money on this step because it's likely even a high priced translator will get a lot of things wrong.

If you do work with a translator, make sure to emphasize to them 10x that you are available to answer any questions they have about your text. If they aren't asking you questions that's actually a red flag that they're probably doing a poor job and don't really care much about the success of your project.

I would also suggest to your translator that they try their best to keep the length of each text string close to the original English. This will reduce your workload later on.

Finally, don't forget to include all of your Store & Marketing materials in the translation task. Your App Store Description, "What's New",  Promotional Text, Titles, Advertising Text, anything else related to your game should be included in your translation batch job.

3. Load the Translations back into your Game

When you receive the finished translation spreadsheets, the first thing you'll want to do is convert them back to a format useable in your game:

I used an excel formula to concatenate the translated strings back into code as you can see above.

In the code of your game you'll probably want to check the user's device language and default to that--however not every user will want to use their device's default language. So make sure to include an easy-to-find options section to change the game's language and save that choice in a preferences file so they don't have to choose language every time. 

If you're lucky, the fonts you've loaded in your game already support any new characters from your new languages. Mine didn't.

You can find copyright free fonts for different languages  at Google Fonts: and you may need to load these into your game to be used for different language options. 

Finally you can play through your game and make sure all the text looks right and fits. Some languages tend to be longer than others so you may need to make adjustments to individual menus and text boxes in your game.

For my game I found that Spanish was always longer than English and Chinese was always much shorter--so across the board I increased font size for Chinese and decreased it for Spanish--this helped reduce the number of individual adjustments I had to make. 

4. Proofread with a Native Speaker

Don't skip this step. It's arguably the most important step in the whole process. Create a debug version of your game where you can blast through everything as fast as possible, then find a native speaker who will sit down with you for a day and go through the entire game with them.

College students studying in your country from abroad are probably your #1 source of cheap, hip, native speakers. My Spanish proofreader sat with me for 4 hours fixing my whole game's Spanish for 1 Pizza and a few beers. You can also offer them a spot in your game's credits.

The best setup to do this proofreading is to display your game on a laptop and play through it yourself, and make sure your proofreader has their own laptop with your localization spreadsheet loaded in front of them. Show them the "control F" find function because they will be using that a lot to replace problem strings you show them in your game.

When you're done with your proofreading-revision section, simply load the new edited strings in your game and Bam! You should have a perfect translation of your game.

Time to Upload

After all that proofreading, it's time to upload your new game version. Make sure to input the translated versions of your new App Description, Name, etc. You may want to also localize your Video Preview and Screenshots if they have a lot of language in them. 

Hope that post is helpful to you. Even if localization seems pretty far-off, understanding the process early on can help out a lot. With an early understanding of localization you can make sure to:
  1. Consolidate your text strings in one place
  2. Leave extra room for different language sizes in your game
  3. Code the layout with dynamic amount of text in mind. 
And if you'd like to check out my newly localized game feel free to download the free version on the App Store.

👾Like what you're reading? Subscribe to "From Game To Brain" for Spam-Free email notifications when there's a new post. 👾