Creating multillingual apps for android

Post on 30-Nov-2014

2.173 views 1 download

Tags:

description

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

Transcript of Creating multillingual apps for android

@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: sergi@sergiandreplace.comTwitter: @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.