the essential guide to app localization · carvell classifies internationalization as a multiplier...
TRANSCRIPT
-
THE ESSENTIAL GUIDE TOAPP LOCALIZATION
A publication of
!"Olá
-
i
What You Will Learn
In this eBook, we’re going to take you through the whole process. We’ll explain
the details of a successful localization project, step by step—from planning to
implementation. We’ll also go into how you, as a product manager, can ensure
the highest-quality localization and how to monitor the impacts of localization.
This eBook is suitable for….
• Product managers who want to better reach a global audience.
• Anyone who’s interested in gaining a more complete understanding of
localization.
What’s it all about?
ONESKY
Written by
Patrick YipHead of Content at OneSkyFollow him @PatrickYipHK
http://bit.ly/oneskyapphttp://bit.ly/oneskyapphttps://twitter.com/PatrickYipHKhttps://twitter.com/PatrickYipHK
-
2
What’s inside?
01Why Localize?
Make a Plan
Translate
04
15Setup
40
Implement 44
Conclusion 49
-
1
Localization: a fast track to growthFor many app developers, the app store can feel like a miracle: since its invention,
global distribution has become cheaper and easier than ever before. Once your
app is listed online, all it takes is a few clicks, and voila! You’re part of the
multibillion-dollar global market.
Andy Carvell, SoundCloud’s mobile growth manager, shared his recipe for growth
in a recent post on Medium. Carvell explains his concept of a “mobile growth
stack,” which organizes a wide range of growth levers. High on his list? Going
international.
Carvell classifies internationalization as a multiplier strategy because it “will act
as a catalyst for your acquisition, engagement and monetization efforts,” with
positive effects across the board. If you want to tap into the full app market, you
can’t just stay in one country or one language. You have to explore international
markets.
Therefore, localization should be more than just a small part of your growth stack
—it should be a priority.
Add two more languages, and that’s half the worldAccording to App Annie’s 2014 retrospective, the United States, Japan, and
South Korea are the three biggest app markets in the world. Together, they
generate more revenue than every other country in the world combined.
However, English proficiency is low in both Japan and Korea, and smartphone
users show a strong preference for localized apps.
The equation is simple, then. If your app is already in English, just develop
versions for the Japanese and Korean markets—and you’ll reach more than half
the global market.
Can’t read, won’t buy
Why Localize?
ONESKY
https://medium.com/@andy_carvell/the-mobile-growth-stack-3ffa6856f482https://medium.com/@andy_carvell/the-mobile-growth-stack-3ffa6856f482http://blog.appannie.com/app-annie-index-retrospective-2014/http://blog.appannie.com/app-annie-index-retrospective-2014/
-
2
Translation and localization are important. Just look at the data:
According to Common Sense Advisory, a consulting firm, 72.4% of global
consumers prefer to use their native language when shopping online. And app
analytics firm Distimo discovered that localized apps experienced, on average,
128% growth in download volumes after the native language was added—in the
first week alone. In that same week, the revenue grew a promising 26%. Just
localizing an iPhone app’s keywords can yield a 767% increase in downloads,
according to Make App Magazine.
In short: go global, or go home.
In this guide, we’ll teach you how to localize your app from
scratch. We’ll explain how to determine your target markets, how to prepare the
materials, and the best way to go about implementing and testing the translation.
Whatever questions you have, no worries: they will be answered here.
The Essential Guide to App Localization
ONESKY
https://www.appannie.com/en/https://www.appannie.com/en/http://makeappmag.com/iphone-app-localization-keywords/http://makeappmag.com/iphone-app-localization-keywords/
-
Make a Plan
Part I
-
4
Every project starts with a goal. Localization is no exception. Before you kick off
a new localization project, you need to decide which specific metrics you are
hoping to improve. Once you know your metrics, it will be easier to determine
your project scope.
Here are some metrics that you might consider:
Acquisition/Activation
You want to build the number of downloads in certain territories/language
areas.
Retention
You want to grow the number of users in certain territories/language areas who
are keep coming back to your app.
Step one: What do you want to achieve?
ONESKY
-
5
When it comes to localization, the first question is always Where should we go?
From looking at OneSky’s client base, we know that the top languages for app
localization run the gamut from Korean and Japanese to Russian, Latin American
Spanish, and German.
But just because a language is popular doesn’t mean that it’s the right choice for
your app. Instead of rushing to translate your app into the ten most popular
languages, think strategically.
Build a localization strategyAccording to a 2014 survey by Transifex, more than half of companies let
customer requests determine their localization strategies. That’s great, and
customer input is definitely something to consider. However, a more
comprehensive localization strategy can ensure that you are truly maximizing the
ROI. There are two main strategies:
Deep Localization
Pick only a few markets, but do them well: create tailor-made features, distribute
in local channels, plan specific locally-launched campaigns, etc. This approach is
called “deep localization.” A great example is Evernote’s entry to China, where
Evernote committed to a full rebrand, from hosting within the country, to
localizing their customer services (check out this post to learn more).
If you have the financial resources to be investing in these type of local, offline
campaigns, deep localization is a smart choice. It’s also worth the money when
you are making O2O (online to offline) products or services.
Minimum Viable Localization
If you want to reach a wider audience, or test for traction in certain markets,
minimum viable localization (MVL) might be best for you. In this strategy, the
Step two: Whom do you want to reach?
ONESKY
http://www.oneskyapp.com/blog/how-evernote-reached-four-million-users-in-china-within-1-year/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/how-evernote-reached-four-million-users-in-china-within-1-year/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/minimum-viable-localization-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/minimum-viable-localization-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebook
-
6
product is first simple made understandable to local users—usually, this means
translating into native languages—and then you scale up the localization as
reception widens.
The agility of MVL makes it better for experimental cycles, because it’s a great
way to test out the market potential of certain regions. It’s also good to try this
strategy if your product has a lot of universal features such as productivity apps,
utility apps, or mobile games.
Gather data to help you decide So, you’ve chosen a strategy. Now, where should you actually plan to localize?
You’re going to need to gather some data to guide your decision. There are three
main things you should consider:
1. What do your current users speak?
Even though you haven’t localized yet, your app may already be especially
popular in Germany. Or maybe you’re getting a lot of downloads in South
America. Based on user data, you can choose markets that seem especially
promising.
2. How much profit potential does a given market have?
Tuyen Nguyen from Google suggests two metrics for estimating which language
groups to prioritize for localization: the top languages spoken by web-users, and
the top countries by paid app installs. But market potential matters too. Who’s
growing fastest? Can you get yourself into a market early?
3. What’s the competition?
When it comes to picking new markets, you need to know who you’ll be fighting
against. App analytic tools like AppAnnie and Sensor Tower can help you track
other company’s localization efforts—and figure out which markets have less
The Essential Guide to App Localization
ONESKY
http://www.slideshare.net/TechinAsia/startup-asia-jakarta-2013-admob-keynotehttp://www.slideshare.net/TechinAsia/startup-asia-jakarta-2013-admob-keynotehttps://www.alsintl.com/blog/most-common-internet-languages/https://www.alsintl.com/blog/most-common-internet-languages/http://blog.appannie.com/app-annie-index-retrospective-2014/http://blog.appannie.com/app-annie-index-retrospective-2014/http://www.appannie.com/http://www.appannie.com/https://sensortower.com/https://sensortower.com/
-
7
competition. These tools provide clear data about each country and information
about your competitors, so you are able to easily analyze their results.
If you’re looking for a free option, try OneSky’s AppGrader. It’s a small tool that
lets you check the localization progress of any app. We can also help you
evaluate your localization plan, by giving you a reliable estimate of how many
users you will be able to reach with your strategy.
The Essential Guide to App Localization
ONESKY
https://www.oneskyapp.com/appgrader/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttps://www.oneskyapp.com/appgrader/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebook
-
8
Once you’ve determined your localization strategy, it will be easy to determine
what the scope of the project will be.
How much content do you need to localize?If you are going deeply into a few markets, you may need to localize everything
you have. But if you are planning to just test some market potentials, you don’t
have to invest as much at the beginning. It’s best to scale up your localization
project. Here’s the order that we’d recommend:
1. First, test the market potential. Just localize your app store listing, and see if
there is any traction.
2. If you find potential in particular markets, go for minimum viable localization—
localize the app content and necessary user manuals.
3. Strong local reception? Great. Commit to complete localization, including your
landing pages, marketing materials, and social media content.
How long will it take? We’ve found that a professional translator can translate up to 2,000 words per
day. So, if you divide your total word count by 2,000, you’ll have a sense of the
minimum number of days necessary to complete your translation project. That
number of days will increase from there depending on the number of QA
measures taken, the desired translation quality, and the difficulty of the source
content.
Tip: Reserve time for translator's inquiries
People often think of translation as a solo project: one person, two languages,
and lots of hours. But to get the highest-quality translation, you’re going to need
to be involved too. Translators often need clarification on certain parts of the
Step three: How big a project will it be?
ONESKY
-
9
source text. Are you using “kill” as a noun or a verb? Is this text directed at a male
user or a female user?
To smooth out the process, be ready for these questions. Assign a team member
to feed your translator information and handle any problems. And be sure to
provide as much context as possible on your source strings themselves, so that
translators can do the best job possible.
How much will it cost?There are two main costs in a localization project. The bulk of the budget will go
to translation. But you should also factor in the engineering cost, as enabling your
app for localization will take some work. We’ll go into more detail about the
engineering requirements in the Setup section, which should allow you to
determine the cost.
The Essential Guide to App Localization
ONESKY
-
10
With the power of the Internet, it’s easy to get moving on your localization
project—but it also means there are a lot of ways you can go about it. Here, we’ll
lay out the pros and cons of the main approaches:
In-house translationWith in-house translation, you recruit and manage a group of translators who are
part of your company. Setting up in-house translation makes sense when your
company consistently needs large volumes of translation, or is highly concerned
with the voice of the brand. In-house translation is also worthwhile if you are in a
position to to easily recruit professional translators in your target languages.
Pros
• It’s cheaper in the long run. Once your translation team nails the voice of your
product, they will be able to work quickly and well.
• You’ll be able to maintain smoother communication among PR, branding,
marketing, and the localization team.
• You have full control over the quality of translation.
Cons
• It requires a high initial investment.
• It requires a longer commitment to your translators.
Step four: Who should do the actual translation?
ONESKY
-
11
CrowdsourcingWhen your product has a large, diverse user base, it’s great to crowdsource your
translation project to your users. If you’re skeptical, take a look at WhatsApp; it
depends mainly on its loyal users for all its translation needs.
Pros
• You minimize the translation cost. By relying on the help of your users, you can
localize your product with a much smaller economic input.
• Crowdsourcing helps ensure that the translation will speak to the users. Since
volunteer translators contribute based on their experiences of your game, their
translations may be better adapted to the local gamer community.
Cons
• It is harder to predict when the translation will be completed. You can’t force
your volunteers to adhere to your schedule.
• You risk lower quality. Just because a gamer knows two languages does not
necessarily mean that he or she is a good translator. And a single translation
error—or gamer prank—can have serious consequences.
OutsourcingIt is always possible to hire a Language Service Provider (LSP) to take care of
your localization project. LSPs are available either on-demand, or as a
subscription service.
Pros
• You’re guaranteed high quality. If an LSP is reliable, it will use professional
translators and have extensive quality assurance measures in place.
The Essential Guide to App Localization
ONESKY
https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CBsQFjAA&url=https%3A%2F%2Ftranslate.whatsapp.com%2F&ei=JO89VM3DFZCUuASlnoHQAw&usg=AFQjCNFS3nhwsIupoKfUs0bItqMgU_ohHg&bvm=bv.77412846,d.c2Ehttps://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CBsQFjAA&url=https%3A%2F%2Ftranslate.whatsapp.com%2F&ei=JO89VM3DFZCUuASlnoHQAw&usg=AFQjCNFS3nhwsIupoKfUs0bItqMgU_ohHg&bvm=bv.77412846,d.c2Ehttp://kotaku.com/5880007/racial-epithet-shows-up-on-minecraft-menu-developer-apologizeshttp://kotaku.com/5880007/racial-epithet-shows-up-on-minecraft-menu-developer-apologizes
-
12
• The translation will adhere to your schedule.
• It’s a more flexible relationship. You don’t need to commit to building an internal
team, or to growing a translator community.
Cons
• It’s pricier. When you outsource to a translation vendor, you’re going to end up
paying a good bit more.
Combining different approachesEach option has its pros and cons. But, by combining different translation
approaches, you can take advantage of each of their strengths, and minimize the
weaknesses. We’ve found that the strongest translation outcomes are often a
result of a mix of crowdsourcing and professional translation.
Rather than just having your users translate via crowdsourcing, or just hiring
professionals, think a little outside the box. Have your users translate, and then
hire professionals to review their work and catch any errors. Or, reverse that: hire
professionals to translate, but let users vote on the translations, or tweak the
translations to better reflect gamer language and culture.
Tip: Treat crowdsourcing as a marketing campaign
Crowdsourcing does have one other advantage we didn’t mention: it can also be
a way to market your product. When your users are also your translators, they
gain a sense of ownership and will feel more loyal to your app.
But how can you motivate users to become translators? It’s easy: just figure out a
way to make it fun and rewarding. Give your contributors gifts—virtual or actual.
Make a leaderboard, where you honor the most dedicated translators. Let
volunteers have a sneak peek at the pre-launched content.
The Essential Guide to App Localization
ONESKY
-
13
You know what will work best for your product. Just remember: treat your
volunteers well. And they’ll do the same.
The Essential Guide to App Localization
ONESKY
-
Setup
Part II
-
15
So, you have your strategy in place, and you’re excited to hit a new market. Sadly,
you won’t be able to localize your app immediately. To support multiple
languages, you will need to create some new setups for your app, a process
called “internationalization.” In this chapter, we’ll take you step-by-step through
internationalization.
Here’s the general workflow of internationalization:
1. First, extract UI strings from your app code. Separate the textual content into
an external file. This will allow you to adjust the content without changing any
of the code itself. This specific type of external file is known as a “resource file.”
2. Make multiple resource files, and translate the text in each file. You will have
one resource file for each language. Name and store each file appropriately, so
that the system can understand which language each external file refers to.
Now, when a user opens your app, the smartphone OS will load whichever
language resource file is closest to the user’s language setting.
Internationalization: overview
ONESKY
-
16
iTunes App StoreMake sure that you have localized versions of these items ready to go:
• Name (character limit: 255)
• App Description (character limit: 4000)
• New in this Version (character limit: 4000)
• Screenshots
• Keywords (character limit: 100)
• In-App Purchases (title character limit: 75; content bytes: 255)
Google PlayNote that the content items for an app listing on Google Play are slightly
different:
• Title (character limit: 30)
• Description (character limit: 4000)
• Recent Changes (character limit: 4000)
• Short Description / Promo Text (character limit: 80)
• In-App Purchase Products (name and description)
Prepare your app store listing
ONESKY
-
17
Different platforms have different conventions for storing resource files. In this
section, we’ll lay out the conventions for a few of them.
Android
1. Store localization resources
Android SDK Tools will create a res/ directory in the top level of the app project
by default. Under this res/ directory are subdirectories, where you can store
resources. There are already a few default files such as res/values/strings.xml,
which stores your string values.
To support more languages, under the res/directory, create /values
subdirectories with the string resource file inside. The /values directories should
each include a hyphen and the ISO language code at the end of the directory
name.
For example, if you were translating your English-language app into Italian and
Japanese, the /values directories would look like this:
MyProject/ res/ values/ strings.xml values-it/ strings.xml values-ja/ strings.xml
Prepare your resource files
ONESKY
-
18
Store the different string resource files within each /values subdirectory. For
example, in this same Italian/Japanese localization project, you would have three
different string resource files for the phrase, “Hello World!”:
English (default locale), /values/strings.xml:
Italian, /values-it/strings.xml:
Japanese, /values-ja/strings.xml:
2. Use string resources when you code
When you code, use the string resources as a way to present the textual content.
You can refer to a string resource with the syntax R.string.. There
are a variety of methods that accept a string resource this way.
Here are two possible methods:
Get a string resource from your app's Resources
The Essential Guide to App Localization
ONESKY
Hello World!
Ciao mondo!
こんにちは世界!
-
19
Example:
Supply a string resource to a method that requires a string
Example:
In other XML files, you can refer to a string resource with the syntax @string/
wherever the XML attribute accepts a string value.
Example:
The Essential Guide to App Localization
ONESKY
String hello = getResources().getString(R.string.hello_world)
TextView textView = new TextView(this);textView.setText(R.string.hello_world);
-
20
iOSInternationalization for iOS is a bit different. There are three main elements:
• User Interface (.xib, .nib, .storyboard)
• Code (.m, .swift, etc..)
• Strings (.strings)
1. Internationalize user interface
The easiest way to internationalize your user interface is by enabling base
internationalization. Since Xcode 5, it has been enabled by default. You can
verify your settings in Project Editor > Project > Info.
What does this setting do? When you enable base internationalization, Xcode
modifies your project folder structure. The .xib & .storyboard files will be moved
The Essential Guide to App Localization
ONESKY
-
21
to Base.lproj folder, while the string elements will be extracted to separate
project locale folders, such as en.lproj. Only if, of course, there would be
multiple project locale folders—one for each language.
Tip: Remember to save the new user interface files to the Base.lproj folder, to
facilitate base internationalization.
Now, you’ve internationalized your user interface, but there's no string in it. Let's
add some text to the user interface and see how it works:
2. Update strings in user interface files
Open Main.storyboard and open the Utilities panel. Drag a label from the Object
library to the view in the View Controller Scene.
The Essential Guide to App Localization
ONESKY
-
22
Change the text to “Hello World,” and center the label to the view, using Auto
Layout.
Why Auto Layout? From Apple's Internationalization and Localization Guide:
Use Auto Layout to lay out your views relative to each other without fixed
origins, widths, and heights, so that views reposition and resize appropriately
when the language or locale changes. Auto Layout makes it possible to have
one set of .storyboard and .xib files for all languages.
Now let's update/extract the base strings in Main.storyboard. Simply select
English under the Localization section of File inspector.
The Essential Guide to App Localization
ONESKY
-
23
In the project navigator, you will see that there is a new file named Main.strings
under the Main.storyboard group. This file has been generated by Xcode and
saved in the en.lproj folder. Let's see what's inside:
/* Class = "UILabel"; text = "Hello World"; ObjectID = "ybw-Mb-5gb"; */ "ybw-Mb-5gb.text" = "Hello World";
The key on the left is composed of the Object ID ybw-Mb-5gb and the text
attribute of the label in the user interface file. The value on the right is simply the
text you entered.
The Essential Guide to App Localization
ONESKY
-
24
Do not change the key or filename. Otherwise, Xcode will not be able to read the
localized strings at runtime. Instead, use the comments to provide the context of
the elements.
3. Internationalize Your Code
It’s time to get your code ready for localization. You will need to separate the
user-facing text from the code using NSLocalizedString macros:
NSLocalizedString(key, comment)
NSLocalizedStringFromTable(key, tbl, comment)
NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment)
NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment)
You can inspect these macros by clicking while holding the command key. When
you do so, you will see that they all call -[NSBundle
localizedStringForKey:value:table:] with different targets and parameters.
The system will look for the string that matches the key from the table in the
current locale. The table is the file name without .strings file extension. The
default table is “Localizable” if not specified. Note that the comments from the
previous step are used to provide the context of the localized string, and also for
generating the comments in .strings files.
Now, wrap the navigation title of our view controller so that the navigation bar
can display it in different languages. In ViewController.h, add the following code:
(void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = NSLocalizedString(@"nav-title-hey", @"Navigation Title: Hey"); }
The Essential Guide to App Localization
ONESKY
-
25
As with internationalizing user interface files, here we also need to create
a .strings file in order for the system to find the string for the key. For the
purpose of this tutorial, we will create the file manually.
In the project navigator, right click on Supporting Files, and select New File. Then
choose Resources > Strings File.
Click next and save the file to en.lproj folder as Localizable.strings.
Now open the empty strings file, add the navigation title, and save.
/* Navigation Title: Hey */ "nav-title-hey" = "Hey";
4. Add resources file in other languages
Now that the project is ready for localization, let's add a new language—
Portuguese, in this example.
The Essential Guide to App Localization
ONESKY
-
26
Begin by selecting the project from the project navigator and click + under
Localizations. Select Portuguese.
For each file, you can choose which language to reference from, and pick
whether to localize the whole user interface file or just the strings.
The Essential Guide to App Localization
ONESKY
-
27
Click Finish. Xcode will generate a new set of .strings files in the pt-PT.lproj
folder. Then you can add the translations to the .strings files.
Main.strings:
/* Class = "UILabel"; text = "Hello World"; ObjectID = "ybw-Mb-5gb"; */ "ybw-Mb-5gb.text" = "Olá Mundo";
Localizable.strings:
/* Navigation Title: Hey */ "nav-title-hey" = "Oi";
The Essential Guide to App Localization
ONESKY
-
28
Export resource files with XLIFF
Now your app is ready for internationalization. But instead of sending dozens
of .strings files to your translations, Xcode has a quick export function that
creates a single .xliff file for each language. (XLIFF is a standard XML-format
supported by most translation software, including ours.)
1. Select your project from the File navigator. Then choose the menu item Editor
> Export For Localization….
2. In the Save window that appears, choose to Include Development Language
only if you are sending your English file for translation. If you have existing
translations you also want to send to your translators, choose Existing
Translations, and choose from the list of available languages.
Advanced tipsLanguage is complicated, and what sounds correct in English might not be
correct in other languages. We’ve gone through the basics in the previous
sections, but things will often get more complicated, due to linguistic quirks. Here
we will go through three major variations to watch out for: plurals, gender, and
number formats.
Plurals
English has only two number forms: singular and plural. But some languages
contain complicated plural forms. Take Russian, for example. The Russian word
“sword” can be:
The Essential Guide to App Localization
ONESKY
-
29
Singular Form:
1 меч
Plural Form
No number: мечи Number ends in 2, 3, 4 excluding 12, 13, 14: 22 меча Number is 11-14 or ends in 11-14 or ends in 0, 5, 6, 7, 8, 9: 111 мечей Number ends in 1 excluding 11: 131 меч Fractional number: 125.5 меча
Therefore, your code will need to be specific enough that it can support
translations for all number forms. Otherwise, you risk translation errors. To learn
more about making sure your code will allow the necessary inputs, check out the
guidelines provided by Unicode.
Gender
Approximately one-fourth of the world’s languages possess grammatical gender
classes, meaning that every noun has a gender value (masculine, feminine, etc.).
The gender of a noun will determine a number of other things—such as the form
of the adjective, which article must be used, and so on.
Consider French: the word for “bicycle” is masculine, so the question, “Where is
the bicycle?” translates to "Où est le vélo?" The response would then be "Il est là"
("He is there."), instead of “Elle est là.” (“She is there.”)
If the sentence, “Where is the bicycle?” is not extracted correctly, such as:
The Essential Guide to App Localization
ONESKY
http://cldr.unicode.org/index/cldr-spec/plural-ruleshttp://cldr.unicode.org/index/cldr-spec/plural-ruleshttp://cldr.unicode.org/index/cldr-spec/plural-ruleshttp://cldr.unicode.org/index/cldr-spec/plural-rules
-
30
then the translators will have to put in a lot of extra effort to make the translation
grammatically correct.
The golden rule of string wrapping is to always include the full sentence of a
string, and to consider all plural forms and gender. For more information—and
more engineering tips—check out our blog post 4 tips for developers on
preparing strings for localization.
Number formats
Different languages have different ways of displaying dates and figures. Before
starting localization, your development team should identify all areas of the app
that could be affected by different number formats, and make sure that they
know the right format for each of the languages you are implementing.
Here are some standard formats for the most common languages.
US English French German Spanish Italian Japanese
Datemm/dd/
yyyydd-mm-yyyy yyyy-mm-dd
dd/mm/yyyy
dd/mm/yyyy
yyyy年年mm⽉月
dd⽇日
Time
hh:mm:ss
am/pm (12-hour clock)
hh:mm:ss (24-hour
clock)
hh:mm:ss (24-hour
clock)
hh:mm:ss (24-hour
clock)
hh:mm:ss (24-hour
clock)
hh:mm:ss (24-hour
clock)
Decimal Separator
period (.) comma (,) comma (,) comma (,) comma (,) period (.)
Thousand Separator
comma (,) space ( )space ( ) or period (.)
space ( )space ( ) or period (.)
comma (,)
Number Example
15,631.87 15 631,8715 631,87 or
15.631,8715 631,87
15 631,87 or 15.631,87
15,631.87
Currency HK$12,645.67 12 345,67 € 12 345,67 € 12 345,67 € € 12.345,67 JP¥12,345
The Essential Guide to App Localization
ONESKY
http://www.oneskyapp.com/blog/4-tips-for-developers-on-preparing-strings-for-localization/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/4-tips-for-developers-on-preparing-strings-for-localization/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/4-tips-for-developers-on-preparing-strings-for-localization/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/4-tips-for-developers-on-preparing-strings-for-localization/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebook
-
31
More resourcesThere are many resources about the nitty-gritty of app localization. Check out
Apple’s guidelines on Internationalization and Localization and Google’s
Localization Checklist.
You may also check out OneSky’s Localization Academy to stay on top of
internationalization knowledge.
The Essential Guide to App Localization
ONESKY
https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.htmlhttps://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.htmlhttps://developer.android.com/distribute/tools/localization-checklist.htmlhttps://developer.android.com/distribute/tools/localization-checklist.htmlhttps://www.oneskyapp.com/academy/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttps://www.oneskyapp.com/academy/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebook
-
32
While your engineers are preparing the code for localization, you should be
preparing your translators--by sending them comprehensive reference materials.
Reference materials are additional documents that you give to the translators, to
help them understand the meaning of the source text better. There are a few
kinds of reference materials:
Translation glossaryA translation glossary is a collection of the key terms in your source language. By
making a translation glossary, you ensure that translations are consistent—and
you help protect your brand.
Your glossary will not only provide standard translations for certain, brand-
specific terms—it should also note where you don’t want translations. For
example, Apple keeps the words “iPhone” and “iTunes” in English, no matter what
language they’re working with. If you are taking the same approach, the glossary
should specify that these terms remain untranslated. If you do want some key
terms translated, be sure to list the approved translations for each of your target
languages.
How do you make a translation glossary?
1. Identify your glossary terms
The first step, of course, is to figure out which terms you actually want to include
in your glossary.
Speaking generally, you should be sure to have the following types of terms:
• Product/service names
• Brand-specific terminology
• Acronyms
Prepare reference materials
ONESKY
-
33
• Standard abbreviations
• Corporate slogans
• Text for user interface buttons
• Any terms that you prefer to keep in English
• Terms that are used frequently in your content
• Company-specific jargon
Industry-specific terms are optional. If you have translators who are unfamiliar
with your industry (which is not ideal), or if you want to have distinctive
translations for these terms, then it’s a good idea to include them. Otherwise,
leave them out.
You want to have a thorough glossary, but remember: more information is not
always better. An overstuffed glossary will slow down translators and increase
management costs.
Some hacks
In the list above, some kinds of terms (such as brand names or slogans) are easy
to identify. Others can be trickier to track down in your content. To identify the
key terms for your glossary, you can either calculate frequencies or examine your
product’s UI.
• Calculating frequencies: In this method, you simply compute the number of
times that terms appear in your product’s content. The terms that appear more
frequently are usually what you’ll want to include in your glossary.
• Looking at the UI: With this method, you identify the terms that appear on your
app’s panel, key buttons, etc., and include these in the glossary. These terms
must be translated consistently, because these are the tabs that let users
navigate your product.
The Essential Guide to App Localization
ONESKY
-
34
2. Explain the glossary terms
Once you’ve collected all your glossary terms, you’ll need to add some
explanations for your translators. In order to provide the translators with enough
context, be sure to include the following information:
• Subject field (In what feature/area is this word used?)
• Part of speech (How is this word being used? As a noun? An adjective? A
verb?)
• Definition (What does the word mean?)
• Usage note (How is the word used in the specific context of your app?)
For example, here’s how Facebook explains glossary terms.
Part of Facebook’s translation glossary
Note that Facebook is very clear about how the word is used within the context
of Facebook’s product. For example, they explain which meaning of the word
The Essential Guide to App Localization
ONESKY
-
35
“fan” is relevant here, and they explain what it means to be a fan on Facebook
specifically (as opposed to, say, a fan in a soccer stadium).
In some cases, a word may have synonyms within your app, or occasionally
appear in a different form (e.g. with different hyphenation, or in a different tense).
Make sure to note these special cases, so that translators don’t miss out on these
variations.
3. Translate the glossary terms
Ask your translators to translate these terms before they begin the rest of the
translation. And be geographically sensitive—the translation of glossary terms
into, say, Traditional Chinese in Hong Kong may be a bit different than the
translation into Taiwanese Chinese. Language subgroups aren’t all identical.
Before you finalize the glossary, make sure that every translated term has been
approved by at least one independent, in-country reviewer. If your reviewers
disagree, use the clearest translation.
4. Manage your glossary terms
A good translation glossary is a work in progress. If you have new terms that
deserve a glossary entry, add them. If your translators often come to you with
questions about a particular word, update the glossary.
Also encourage your translators to suggest new terms for the glossary. That way,
when you add new languages in the future, you’ll have an even better glossary
ready for the translators.
Style guideThe style guide is what will ensure that translators can capture not only the
language of your brand, but also its voice. Rather than go over key terms—as the
The Essential Guide to App Localization
ONESKY
-
36
translation glossary does—the style guide explains the tone and presentation of
your company’s content.
How do you make a style guide?
1. Identify the targets
Your translator needs to know who will be reading this content. Is your app
targeted at 25 year-old gamers, or 60-year-old college professors? Will it be used
in corporate boardrooms, or in middle school hallways? Let your translators
know. Key demographic details include age, education level, and any lifestyle
indicators.
2. Specify a tone of voice
Every brand has a unique tone of voice. Facebook, for example, uses a simple,
straightforward, conversational tone in all of its writing, regardless of the
language.
Your brand has its own voice, too. To make sure that your translators can capture
that tone, note a few things in the style guide: do you want formal or informal
language? Do you prefer active or passive voice? Do you want simple language,
or is more elevated diction better?
3. Share your formatting preferences
If you have any preferences about formatting or punctuation, the translation style
guide is the place to mention them. Details about capitalization, preferences
about the use of acronyms or abbreviations, favorite fonts, chosen units of
measurement: put them here. Also include any necessary information about how
your translators should deal with currencies, addresses, phone numbers, and so
forth.
Three bonus tips
The Essential Guide to App Localization
ONESKY
-
37
We’ve laid out the basics. But there are a few things you can do to make your
style guide even more effective:
1. Use lots of examples
What kind of writing do you like? What kind of writing would you like to avoid? If
you want your app’s content to sound like something out of, say, Harry Potter,
explain that. Include a few favorite excerpts from Harry Potter for reference. If
you want something more formal, give some examples of the kind of formal text
that you’d like your translators to echo. If there’s a particular app whose style you
admire, let your translators know.
2. Update the style guide as needed
Things will change. Your translators will come to you with good questions. You’ll
realize that something is unclear. Don’t be afraid to update! A good guide is
always a work in progress.
3. When necessary, use multiple style guides
Certain styles work better in some countries than in others. In Japan, for example,
even the most informal tones require some formal usages. It’s just part of
Japanese culture. So, in some cases, you might want to modify the style guide
accordingly, or give your translators more leeway.
Examples
For reference, we recommend checking out a few well-established translation
style guides.
A good place to start is the TED translation style guide—a neat but useful set of
guidelines that’s targeted at volunteer translators. For an example of a more
comprehensive style guide, check out the Facebook translation style guide,
which is a good model for many tech products. And if you’re looking for a more
The Essential Guide to App Localization
ONESKY
https://www.ted.com/participate/translate/guidelineshttps://www.ted.com/participate/translate/guidelineshttps://www.facebook.com/translations/style_guideshttps://www.facebook.com/translations/style_guides
-
38
institutional, in-depth translation style guide, check out the World Bank
Translation style guide.
ScreenshotsYou know that users like pictures—but so do translators. Screenshots are a great,
visual way to provide context for the source text. Screenshots are especially
helpful for when the translator is working on user interface content, such as a
button or an error message.
The Essential Guide to App Localization
ONESKY
http://siteresources.worldbank.org/TRANSLATIONSERVICESEXT/Resources/Translation_Style_Guide_English.pdfhttp://siteresources.worldbank.org/TRANSLATIONSERVICESEXT/Resources/Translation_Style_Guide_English.pdfhttp://siteresources.worldbank.org/TRANSLATIONSERVICESEXT/Resources/Translation_Style_Guide_English.pdfhttp://siteresources.worldbank.org/TRANSLATIONSERVICESEXT/Resources/Translation_Style_Guide_English.pdf
-
Translate
Part III
-
40
Now that you’ve prepared all the materials--and code--for your translations, you
need to actually have translations. Send the resources files and reference
materials to your translators or, if you’re outsourcing, your translation vendor.
Communication is keyWe often see companies fail to communicate with their translators or service
providers--especially when outsourcing. That’s a big mistake. If translators can’t
understand the source text completely, they won’t be able to translate it as well.
Be sure to give translators as much context as possible; better communication
leads to better translations .
As we outlined in the last section, QA materials can help catch translation
mistakes. But it’s better to just prevent problems in the first place. Therefore, we
recommend communicating closely with your translator, so you can solve
problems together as they arise.
Tips for communicating with translators
• Assign a dedicated team member. That way, translators’ inquiries won’t
accidentally fall through the cracks.
• Provide more examples. Often, translators ask questions because they want to
be sure that they understand the exact meaning of the text. The more examples
you give, the better sense the translators will have of the meaning and tone.
• Create a forum (crowdsourcing only). When you have a large translator
community, you run the risk of spending a lot of time just answering translators’
questions. With a translator forum, the translators can solve some of the
problems themselves.
Improve the translation process
ONESKY
-
41
Use a Translation Management System (TMS)Picture WordPress, but for content management. A TMS guides the flow of
content through every step of the localization process, ensuring that project
information is carefully tracked. A TMS will smooth the localization process in
many ways:
Automate key steps to save time
A TMS allows you to automatically import and export resource files, which saves
precious man-hours. Plus, you can set up notifications to keep team members on
track and to identify tasks in their early stages—so a manager doesn’t have to be
constantly monitoring everyone’s progress.
Improve collaboration to avoid confusion
TMS allows everyone to work on the same platform, translate collaboratively, and
see each other’s progress. This is especially helpful when you have translators
with different roles in the project—such as a primary translator, a proofreader,
and a copywriter.
Improve communication
A TMS has a notification system in place to keep everyone on task and aware of
progress. For example, a TMS can notify translators of new content ready for
translation, or let an engineer know when content is ready for implementation.
Better communication means quicker, cheaper, and better translations.
Avoid duplication to save cost
When updating your app, you might think you need to start the translation
process from scratch. However, some of the new content probably overlaps with
some of the old content. While a spreadsheet cannot detect these duplications, a
The Essential Guide to App Localization
ONESKY
-
42
TMS will help keep the translation process streamlined and efficient by removing
any duplication. And less duplication mean lower costs.
Built-in features to ensure translation quality.
Translation management systems also have some built-in quality assurance
features. These include a glossary and other reference materials for translators, as
well as placeholder validation and length limits on translated text.
Leverage on translation memory to scale quickly.
The translation memory of a TMS keeps all translated content organized,
adaptable, and immediately available. With a TMS, it’s easy to repurpose content
for different formats and channels, as the need arises. For example, you can
repurpose the translated content of your Android app to your iOS app quickly
with the help of translation memory.
Single platform for greater control over the project.
A good TMS is a streamlined project hub. It organizes the entire process on a
single platform and lets you track every stage of the translation. Instead of
getting stuck in a tangle of spreadsheets and email attachments, you can easily
see and control the entire process.
The Essential Guide to App Localization
ONESKY
-
Implement
Part IV
-
44
With the translations and code in place, it’s time for the final big step:
implementation. Here’s how you insert the translated content back into the app
store listing and the app itself.
App store
iTunes
1. In iTunes Connect, go to My Apps.
2. Choose the app that you want to localize.
3. Select the appropriate languages in the right panel. You’ll have lots of choices!
The iTunes App Store currently supports 28 languages.
4. Input the translated metadata for your chosen language. Note that, to activate a new language, your app must be in an editable state. If
your app is NOT in an editable state, you can still modify the metadata of the
languages already activated; however, you will have to create a new version if
you want to add a language.
5. If you want to localize details on your in-app purchases, go to In-App
Purchases on your app page. Choose an in-app purchase, and click Add
Language. Then input the localized name and description of the in-app
purchase.
Google Play
1. Select your app in the Developer Console.
2. Select the languages you would like to add, and click Save.
3. On the Store Listing page, choose Add your own translation text.
Add the translations
ONESKY
-
45
4. As you select languages, you’ll see them added to your store listing. For each
language, plug in your translations, as well as any localized visuals.
5. Paste the translations into the designated places.
6. Click Save and publish when finished.
App
Android
There’s only one step for Android. Simply put the resource files (strings.xml)
under the right /res/value/ subdirectories.
iOS
To import localizations:
1. In the Xcode project editor, select the project or target.
2. Choose Editor > Import Localizations.
3. In the sheet that appears, select a file with an .xliff extension, and click Open.
4. A sheet appears showing the differences between the imported .xliff file and
the existing resources in the project folder.
5. Click Import.
6. Xcode decodes the localized strings files from the .xliff file and adds them to
the project folder. Xcode replaces existing strings files.
The Essential Guide to App Localization
ONESKY
-
46
To make sure your translations are working, we recommend on-device
localization testing—basically, having someone test-drive your app. The
localization tester should obviously be fluent in the new language, but that’s not
enough. She should also be familiar with the app, and willing to go through every
single part of it.
An ideal localization tester will tell you if the translation is bad—and so much
more. She’ll tell you if the text doesn’t fit on the page, or places where your app
might be lost on (or offensive to) local culture. Basically, she’s going to catch all
the localization problems that you might have missed the first time around.
In the next section, we’ll lay out some of the things that she—and you!—should be
looking for.
Common problems to spot
The translation does not fit the context.
In isolation, a phrase may make perfect sense. In the actual app, next to a
particular image or serving a particular function, the phrase may sound awkward,
or have connotations that your translators didn’t foresee.
Remember, when it comes to translation, context is king. Even if you’ve provided
your translators with screenshots or other reference materials (see our section on
reference materials), it’s easy to mess up. On-device localization testing will help
you catch these mistakes before it’s too late.
Some strings may not have been wrapped for translation.
It’s easy for a bit of text to slip through your engineer’s fingers, and then to be
left out of the translation process. As a result, when you go back through your
mobile app, there will often be chunks of untranslated text floating around,
especially inside graphics files. A good on-device localization tester will catch
Test the translations
ONESKY
-
47
that text. That way, your new users don’t have to wonder why, for example, all the
error messages are in English.
Translation may not fit user GUI elements.
A sentence in English may be much shorter than the same sentence in German
(where words are, on average, 50% longer than in English) and much longer than
it would be in Chinese (which uses square characters that take up less space). A
good on-device localization tester will identify places where the translated text is
taking over an entire page, or leaving lots of empty spaces.
Getting startedPrepare a walkthrough guide for the testers. The list should detail which parts of
the app you need to have tested. And remember: some screens, such as error
messages, may need a special trigger. Show your testers how to trigger it, or
grant them special access to these parts.
Send the beta version of your app to the testers. Platforms such as Testflight and
HockeyApp can be especially useful.
On-device localization testers will go through your app carefully and let you
know if they catch any bugs: translation errors, UI display issues, untranslated
strings, or unnatural translations. Then they’ll let you know what you need to fix.
People with translation backgrounds tend to do a better job test-driving your
mobile app. They can even help you fix the translation problems. It’s fine if you
want the same person who translated your app to test it, but keep in mind that
sometimes a blind tester, who has never seen the app before, will do a better job.
The Essential Guide to App Localization
ONESKY
https://www.testflightapp.com/https://www.testflightapp.com/http://hockeyapp.net/http://hockeyapp.net/
-
48
After test-driving the translation, it’s finally time. Launch your app, and announce
the big news: your app can speak in more languages now! Be sure to use an app
analytics platform to track the metrics, so you can see how your app is doing in
new markets.
Don’t forget to track the results
ONESKY
-
By localizing your app, you’ve found a way to reach more audiences and provide
a better experience for your non-English-speaking customers. Data has shown
just how much a difference that effort can make, and we hope that you, too, are
reaping the rewards.
If you have further questions or comments, or just want to learn more about the
localization process, be sure to check out our company website.
About OneSky
OneSky (oneskyapp.com) offers cloud translation management system (TMS)
which helps mobile apps, website and games manage localization projects,
access professional translators and crowdsource.
• Translation service for over 50 languages
• Over-the-air updates, bypassing iTunes Connect
• Supports popular file formats and major app stores
Congratulation!
http://www.oneskyapp.com/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://bit.ly/oneskyapphttp://bit.ly/oneskyapphttp://bit.ly/oneskyapphttp://bit.ly/oneskyapphttp://bit.ly/oneskyapp
-
ONESKY
A publication of
FREE ASSESSMENT
Our Localization Experts will evaluate your product and show
you how to win over users around the world. Talk to us.
READ MORE
Want to learn more and be updated with exciting news and
insights about app localization? Subscribe to our Newsletter
EXPLORE THE PLATFORM
Explore the OneSky’s platform to see how it really works and fit
your product.
Sign up for free
www.oneskyapp.com/blogwww.oneskyapp.com
mailto:[email protected]:[email protected]:[email protected]:[email protected]://offers.oneskyapp.com/subscribe-to-blog-newsletter-paid-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://offers.oneskyapp.com/subscribe-to-blog-newsletter-paid-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://offers.oneskyapp.com/sign-up-for-free-now-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://offers.oneskyapp.com/sign-up-for-free-now-ebook/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/blog/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebookhttp://www.oneskyapp.com/?utm_source=paid&utm_medium=ebook&utm_campaign=paid-app-ebook