Localising (or Localizing) the Last Call Widget for Android.
The Android Market is a worldwide phenomenon, and I want to make my application more accessible to my users wherever they come from.
Who are my users?
Unsurprisingly for software written in English, three quarters of my users have their Android devices set to English locale. What surprised me was how many English locals existed (46 in total), including those where English is a minority or foreign language (e.g. code “en-DE” indicates a device set to show English text, but to use say German currency and conventions).
In Asia (a continent I have never visited), I have a strong Korean, Chinese and Japanese user base, while German, Spanish, Russian and French are the most represented European languages. Though interesting, I am going to ignore the 31 languages less popular than French in my translation activities for now.
How to localise?
Android provides its own framework for separating texts (called “Strings” by developers) and resources from application code. This makes it easy to integrate Android software into existing content management systems built around translation. While I’ve written a few of these systems in my time, I was looking for a company that offered tools and translation services online to provide scalability and to help with independent projects.
[Android Application Resources, Localization and Tutorial]
Tool review - ICANLOCALIZE
This is one of many websites offering online translation services, though I chose it because it offered native import of Android formatted “string.xml” files, upfront pricing and a straightforward workflow.
[ICANLOCALIZE.com site and Android Localization Tutorial]
For my first test, I chose to commission a German translation, as it allowed me to easily review the results and judge the quality of the translation myself. Screenshots of the actual translated work can be seen here.
Likes:
- It took about 5 minutes to sign up and create a basic Last Call Widget project ready for translation.
- Duplicate strings were highlighted by the tool, helping me optimise my strings and save money.
- CMS let me add my Android Market listing info and other meta data.
- CMS let me add my own translations. Useful because 21 Strings were ripped off from the Android open source project where they come pre-translated.
- My 49 Strings cost $10.85 (or 8.19€ in my local currency), and was completed the next working day.
Dislikes:
- Resource importer did not remove XML escape characters. This made my translations look messy in the CMS, although the translator was smart enough to work this out for herself and left them in place.
- Resource exporter should not include the untranslated (i.e. default English) strings, as Android handles this during runtime by showing default Strings instead. Having duplicate English strings across multiple files only makes my APK fatter.
- Resource exporter should output XML parameters with double quotes instead of single quotes.
- It’s not clear how translator ratings are calculated. Looking at the site I didn’t see many people with less than a 5 star rating, even those with no recommendations by clients. This makes it difficult for a customer to choose between translators.
What I would like to see:
- My software is free but not open sourced, and I regularly get offers of translation from end users and app store representatives. What I would like to see is a Wiki like interface that I can point these people at, so they can easily update the Strings themselves. Note: This may be comparable to the “Private translators” feature which I am yet to try.
- Software versions change, and I would like a way to tag translations to specific versions of my software. This would allow me to support older (or branched) versions of my software and give me some of the flexibility I am used to while developing with GIT.
- Generating, and then regenerating screenshots for review is a time consuming process. Hence I would like to see a screenshot maker script for Android, probably implemented as an add-on in the test project.
What I was freaked out by:
- I know that there is a lot of demand from end users to localise my software, but I was shocked to receive a complete and unsolicited German translation of my application from an end user on the same day that the ICANLOCALIZE translator turned around her work. It was fun to compare the two for differences, but the paid service was of overall higher quality. Strange coincidence.
Conclusion
Translating an application is expensive, and
Last Call Widget isn’t currently set up to make any money. Right now I am interested in translating for some of the high value languages, and enabling motivated users (of which there seem to be many) to translate the app themselves. Having a tool chain that supports localisation will be invaluable to future commercial ventures.
Translation ads a financial cost to every String in the application, discouraging UI changes, and pushing designers towards using symbols rather than words to convey messages whenever possible. Ideally translation should occur at the end of a software project, but should not be considered as an afterthought.
I’m still working out how this applies to
agile software development.
Note: Just to destroy any aura of impartiality in the above review, I found an “
Affiliate link” feature in the control panel and have swapped out all the links in this post.