Date post: | 30-Nov-2014 |
Category: |
Technology |
Upload: | sergi-martinez |
View: | 2,173 times |
Download: | 1 times |
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual apps for AndroidSergi Martínez
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
About me• Working in localization for more than 10 years• Several multillingual projects for big sw
companies like SAP, Microsoft, CA, etc…• Some more years of experience in development• Exploring everything related to Android and other
mobile platforms in the last months.
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Topics• Going global: some definitions • What’s localization: more definitions. But more
specific this time• Android 18N + L10N: how to proceed with the
apps.• Hands-on!
@sergiandreplace Tweet about it: #bcngtug
Going worldwide
«My Japanese is getting better. We started speaking English»
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Definitions• Globalization (G11N)
To plan the design and development methods for a product in advance, keeping in mind a multicultural audience
• Internationalization (I18N)Encompasses the planning and preparation stages for a product that is built by design to support global markets.
• Localization (L10N)Adaptation of the product for a specific market
"What is Globalization?". LISA. Romainmôtier, Switzerland: Localization Industry Standards Association. Retrieved 6 September 2010.
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Overall Process
The product
Product design
Product Development
Product testing and
(QA)
Product localisation
Local product testing and
(QA)
Local product marketing
Globalization process
Phase 2 - Localization Phase 1 - Internationalization
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Translation vs. localization• No general agreement• Translation is a one-direction process• Localization is evolving with the product• Localization includes other elements:– Graphics, colors, CSS, etc.– Currencies, dates and other country-specific formats– Etc.
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Language families and variantsLanguage family ISO 639-1 Language variant
English
en-GB British English
en-US American English
en-CA Canadian English
Spanish
es-ES Spanish as written and spoken in Spain)
es-MX Mexican Spanish
es-AR Argentine Spanish
Catalan ca-ES Catalan as written and spoken in Spain
Portugesept-PT Portuguese as written and spoken in Portugal
pt-BR Brazilian Portugese
Chinese
zh-CN Mainland China, simplified characters
zh-TW Taiwan, traditional characters
zh-HK Hong Kong, traditional characters
@sergiandreplace Tweet about it: #bcngtug
What happens on Localization?
«wherever it is, my carriage is mine…»
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Localization process(es)• Translation: by translator or specialist? Or
Machine Translation?• Review: what kind of review? Linguistic?
Technical? How many?• DTP• Engineering• Testing
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Localizable elements
Product
Software (UI)
Help (UA) Web content
Documentation
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Good formats• For software: xml, resource files, string files, etc.• For help: xml, html, sgml, Word, etc• For web: xml, html, etc• For documentation: sgml, Word, authoring tools
(FM, InDesign, etc.)• For graphics: psd, jpg/png/gif/bmp/tif/etc
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Bad formats• For software: Excel, csv• For help: wiki, txt files• For web: url• For documentation: fax, scan.• For graphics: embedded graphics
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
CAT elements• Filters: transform formats into black box• Translation Memory: a database of billingual
pairs• Glossary: a list of term translations for reference
(plust meta-information like definitions, terms, etc).
• Machine translation: a sw with ability to translate
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Professional CAT tools• CAT (Computer Aided Translation):– SDL Trados Studio / SDL Passolo (doc/sw)– Across (doc)– Alchemy Catalyst (sw)– Start Transit (doc/sw)– Customer propietary tools– Etc (very big list)
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Free CAT tools• Omega T:
Existing for years, but missing some «professionality»• myGengo String
New players, missing key elements, but very promising. Very good for Android.
• Google translator toolkitThey understand the bussines. Very good system, but, do not support xml.
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Trends• Machine Translation: it’s a reality! It came to stay!
A lot of misconcepctions and false myths!• Crowdsourcing translation: Facebook case vs.
Linkedin case• Open Source is starting to increase…
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Translation resources• myGengo• Proz• Localization vendors:– Logoscript– Lionbridge– WiiPro– Etc.
@sergiandreplace Tweet about it: #bcngtug
Android I18N + L10N
«Hal, open the hatch…»«Dave, Je suis très désolé…»
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Steps1. Indentify localizable items (images, text, etc) and
target languages2. Separate from code3. Perform «abstracted» development4. Translate!5. Integrate languages
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Android strategy• All localizable elements should be out-of-code• Resource folders preffix containing:– Images– Layouts– Strings!
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Resource folders• A suffix indicates folder
specialization• It can be combined with
other elements (orientation, density, screen size, etc…)
• Distinguish between language and region
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Strings xml
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Keep in mind• Language has precedence over all suffixes EXCEPT
MCC and MNC (mobile country code and mobile network code).
• ALWAYS include default resources• KISS (Keep It Simple, Stupid)• For flavors, just include “different” strings• Are you using TTS?
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
The view from the code• Java: R class (R.resource_type.resource_name)
R.drawable.app_icon• XML: @type/resource• To get the locale:
context.getResources().getConfiguration().locale.getDisplayName();
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
The view from the code (II)• Setting a locale (per Activity!)
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Pitfalls• Do not use flags! They always offend somebody. • Evaluate the need for translation. Maybe is better
to improve usability• Be politically correct! Gender, social class, etc.• Quality, quality, quality… and quality!
@sergiandreplace Tweet about it: #bcngtug
Hands-on!
«Do it or don’t. There is no try»
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Doing things• Upload a strings xml to myGengo• Translate• Update• Generat
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
Tadaaa!• We are finished. Do you have any question?• You can contact me, don’t be shy:
Mail: [email protected]: @sergiandreplace
Website: http://sergiandreplace.com
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter
to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.