In order to get maximum exposure for your application, you need to make it available on the international app stores. English speaking countries only make up less than 40% of the global app store market. In order for your international launch to be successful you need to localize the application for different languages. This sounds very daunting but is a simple process and YourCulture can help!
This guide takes you through the steps required to translate the application into the different languages supported by the iPhone. If you have any questions or need some help then please give us a call and we can help you through it. The guide is written for applications built in xcode.
First Step – Resource Files
In order for Xcode to recognize a localized application, you need to tell Xcode that your project includes multilingual resource files.
The simplest process to identify this to Xcode is to remove each resource file from the project and move it to the localized directory. This can be achieved through Finder. It’s important to remember to only click on ‘Delete References’ and not ‘Also Move to Trash’ at this point! This will ensure that the file itself is not removed, only the project’s reference to it.
If your source resource files are in English, then create a new folder called en.lproj in your project’s folder. If your source resource files are in a different language, replace it with the relevant two letter country code. These are in a table at the bottom of this guide.
Move the resource files into the newly created directory, and then drag the resource into the Xcode project. Xcode will now recognize the resource as localized in that language. Repeat for all your other resource files that you need to localize.
Step Two – Interface Builder Files
Extracting text strings
You now need to extract the strings of text that require translation within the application, in order to be able to send them to YourCulture for translation.
To extract the strings from your Interface Builder resource files, you can use a tool like ibtool, included with the standard developer kit install. This will bypass the need for you to manually go through copying all the text strings yourself.
To extract the files, open the Terminal software in the project directory and run the command (Replacing Example with your relevant project name):
“ibtool –generate-strings-file Example.strings en.lpoj/Example.xib”
This will create the file Example.strings (Or your own file name). When you open the file you should see a list of your projects object-string value pairings.
Go through this document carefully and check its contents, making sure that all the text that requires translation is included. You can also remove unnecessary strings, which don’t require translation, such as code comments or internal variables.
The resource file may contain duplicate text, such as some of the titles for buttons in different states.
Some duplicate text will need to be translated just once but other text will have different translations. The same button title, in different states, should clearly have the same translation. However, depending on the context other duplicate text strings may have different meanings. For example one could be a noun and in other places be a verb.
YourCulture can help advise you on which duplicate text strings actually need translating.
Step 3 – Embedded texts in resource files
The majority of iPhone applications contain two types of text – the applications interface (Which we dealt with above) and the embedded strings that appear in the code itself .
The strings in the interface are already arranged in a resource file. In order to localize the application, we need to make sure that the code itself only uses strings that are read from a resource file too.
A standard inline string would look like this:
In order for the localization process to work correctly, the source files require editing so that the text is called from a resource file, as below:
NSLocalizedString(@”How to localise”, @”Title”)
When using translation services it’s very important to add comments in places where the text is not self-explanatory. This way, the translator who’s translating your application will know what the text is used for and how to translate it correctly. In the example above “Title” is the comment for the “How to localize” string.
With the revised text, “How to localise” is actually a token. The NSLocalizedString function will produce the string that will be output. It will refer to the resource file and return the localized, translated text for “How to localise” according to the iPhone’s set language. NSLocalizedString will read the Localizable.strings file from the localization directory.
Once this is done for all the user-facing text, then the application is ready for the translated text.
Creating a Localizable.strings file
You can use genstrings to collect all the strings that need to be translated and create the Localizable.strings file. To run it, open Terminal, go to the project directory and run:
genstrings -o en.lproj *.m
This will pull all the keys from the NSLocalizedString calls, and compile them into one Localizable.strings file in the en.lproj localization directory. If your class files are in a different directory, make sure you include them at the end of this command (e.g. Classes/*.m).
Step 4 – The translation!
Now, you can send both resource files to YourCulture for translation. YourCulture can read the resource files in any encoding and extract the relevant text to translate.
It is important to note that you will also want to translate the Application App store description to ensure that you maximize your global application sales.
Experienced, qualified, native translators will translate the text. Any questions around the meaning of the text will be communicated back to you to ensure that the translation is 100% accurate.
YourCulture will then send the finished, translated resource files back to you to import into the application.
Step 5 – Localised User Acceptance Testing
Once you have imported the resource files back into the application, the application should then run in the language that is set as the iPhone native language. When the user changes the language on the phone, the applications language will also change.
It is important to test the application in every language prior to release. Even if the application is working perfectly in English, the user experience may differ for different languages. For example when translating from English to Russian the text length will expand. This may affect the application layout or even the ability to read all of the text within the application.
YourCulture are able to offer User Acceptance Testing by a native translator if you would like to ensure that the context, meaning and user experience if optimised for each language.
With experienced, native linguists in over 200 languages we are certain YourCulture can meet your translation needs. For more information about our specific translation services click on the relevant sections below, or if you want to talk through your requirements then call +44 (0)203 951 0045.
A example of some of the languages we can translate to and from is listed below – If the language you need is not listed then please still call +44 (0)203 951 0045
|Tupí-Guaraní (Ñengatú) Translation|