Creating multillingual apps for android

30
@sergiandreplace Tweet about it: #bcngtug Creating multillingual apps for Android Sergi Martínez

description

Introduction to App L10N concepts and instructions on how to localize an Android applciation

Transcript of Creating multillingual apps for android

Page 1: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual apps for AndroidSergi Martínez

Page 2: Creating multillingual apps for android

@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.

Page 3: Creating multillingual apps for android

@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!

Page 4: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Going worldwide

«My Japanese is getting better. We started speaking English»

Page 5: Creating multillingual apps for android

@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.

Page 6: Creating multillingual apps for android

@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

Page 7: Creating multillingual apps for android

@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.

Page 8: Creating multillingual apps for android

@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

Page 9: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

What happens on Localization?

«wherever it is, my carriage is mine…»

Page 10: Creating multillingual apps for android

@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

Page 11: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual Android applications

Localizable elements

Product

Software (UI)

Help (UA) Web content

Documentation

Page 12: Creating multillingual apps for android

@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

Page 13: Creating multillingual apps for android

@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

Page 14: Creating multillingual apps for android

@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

Page 15: Creating multillingual apps for android

@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)

Page 16: Creating multillingual apps for android

@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.

Page 17: Creating multillingual apps for android

@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…

Page 18: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual Android applications

Translation resources• myGengo• Proz• Localization vendors:– Logoscript– Lionbridge– WiiPro– Etc.

Page 19: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Android I18N + L10N

«Hal, open the hatch…»«Dave, Je suis très désolé…»

Page 20: Creating multillingual apps for android

@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

Page 21: Creating multillingual apps for android

@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!

Page 22: Creating multillingual apps for android

@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

Page 23: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual Android applications

Strings xml

Page 24: Creating multillingual apps for android

@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?

Page 25: Creating multillingual apps for android

@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();

Page 26: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual Android applications

The view from the code (II)• Setting a locale (per Activity!)

Page 27: Creating multillingual apps for android

@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!

Page 28: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Hands-on!

«Do it or don’t. There is no try»

Page 29: Creating multillingual apps for android

@sergiandreplace Tweet about it: #bcngtug

Creating multillingual Android applications

Doing things• Upload a strings xml to myGengo• Translate• Update• Generat

Page 30: Creating multillingual apps for android

@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.