SlideShare uma empresa Scribd logo
1 de 30
@sergiandreplace Tweet about it: #bcngtug
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
• 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
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
The product
Product
design
Product
Development
Product
testing and
(QA)
Product
localisation
Local product
testing and
(QA)
Local product
marketing
Phase 2 - Localization Phase 1 - Internationalization
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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 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
Portugese
pt-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
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
Product
Software (UI)
Help (UA) Web content
Documentation
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
• 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
• 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
• 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
• 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 toolkit
They understand the bussines. Very good system, but,
do not support xml.
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
• myGengo
• Proz
• Localization vendors:
– Logoscript
– Lionbridge
– WiiPro
– Etc.
@sergiandreplace Tweet about it: #bcngtug
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
1. Indentify localizable items (images, text, etc) and
target languages
2. Separate from code
3. Perform «abstracted» development
4. Translate!
5. Integrate languages
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• All localizable elements should be out-of-code
• Resource folders preffix containing:
– Images
– Layouts
– Strings!
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
• 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
• Setting a locale (per Activity!)
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• 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
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• Upload a strings xml to myGengo
• Translate
• Update
• Generat
@sergiandreplace Tweet about it: #bcngtug
Creating multillingual Android applications
• We are finished. Do you have any question?
• You can contact me, don’t be shy:
Mail: sergi@sergiandreplace.com
Twitter: @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.

Mais conteúdo relacionado

Mais procurados

GDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran CanariaGDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran CanariaPeter Kofler
 
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84Mahmoud Samir Fayed
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
 
Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Peter Kofler
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Peter Kofler
 
Top Programming Language of 2018
Top Programming Language of 2018Top Programming Language of 2018
Top Programming Language of 2018Rock Interview
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)Peter Kofler
 
Demand driven Applications with GraphQL
Demand driven Applications with GraphQLDemand driven Applications with GraphQL
Demand driven Applications with GraphQLVinci Rufus
 
The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88Mahmoud Samir Fayed
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Peter Kofler
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31Mahmoud Samir Fayed
 
[DevRelCon Tokyo 2019] Developer Experience Matters
[DevRelCon Tokyo 2019] Developer Experience Matters [DevRelCon Tokyo 2019] Developer Experience Matters
[DevRelCon Tokyo 2019] Developer Experience Matters Tomomi Imura
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Ahmed Abu Eldahab
 
Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)Peter Kofler
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)Peter Kofler
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30Mahmoud Samir Fayed
 

Mais procurados (20)

GDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran CanariaGDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran Canaria
 
Php course-session1
Php course-session1Php course-session1
Php course-session1
 
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
 
Top Programming Language of 2018
Top Programming Language of 2018Top Programming Language of 2018
Top Programming Language of 2018
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan Herrmann
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)
 
Demand driven Applications with GraphQL
Demand driven Applications with GraphQLDemand driven Applications with GraphQL
Demand driven Applications with GraphQL
 
The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31
 
[DevRelCon Tokyo 2019] Developer Experience Matters
[DevRelCon Tokyo 2019] Developer Experience Matters [DevRelCon Tokyo 2019] Developer Experience Matters
[DevRelCon Tokyo 2019] Developer Experience Matters
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!
 
Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)
 
Cucumber
CucumberCucumber
Cucumber
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30
 

Semelhante a Creating multillingual apps for android

How to create software that is ready for the world
How to create software that is ready for the worldHow to create software that is ready for the world
How to create software that is ready for the worldBrian Kelly
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesGiulio De Donato
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim McKeeth
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersKinoma
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICTDSCUSICT
 
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Serdar Basegmez
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210Mahmoud Samir Fayed
 
Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"Keith Boyd
 
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive WebYou’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive WebDavid Sherwin
 
Mobile app Portfolio - Daphnis Labs
Mobile app Portfolio - Daphnis LabsMobile app Portfolio - Daphnis Labs
Mobile app Portfolio - Daphnis LabsSamanyu Chopra
 
Localization: How to do a global project
Localization: How to do a global projectLocalization: How to do a global project
Localization: How to do a global projectAlconost
 
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023Pedro Vicente
 
Lavacon 2011 - Managing the Localization Lifecycle
Lavacon 2011 - Managing the Localization LifecycleLavacon 2011 - Managing the Localization Lifecycle
Lavacon 2011 - Managing the Localization Lifecycledgcaller
 
AIM | HDC 2016 Globalization As a Service
AIM | HDC 2016 Globalization As a ServiceAIM | HDC 2016 Globalization As a Service
AIM | HDC 2016 Globalization As a ServiceRamzi Yassine
 
What Programming Language Do You Require for Your Next Project & How to Hire ...
What Programming Language Do You Require for Your Next Project & How to Hire ...What Programming Language Do You Require for Your Next Project & How to Hire ...
What Programming Language Do You Require for Your Next Project & How to Hire ...Programmers.io
 
Continuous Delivery at Gogo with Spinnaker and Foremast
Continuous Delivery at Gogo with Spinnaker and ForemastContinuous Delivery at Gogo with Spinnaker and Foremast
Continuous Delivery at Gogo with Spinnaker and ForemastN. Douglas Campbell
 

Semelhante a Creating multillingual apps for android (20)

How to create software that is ready for the world
How to create software that is ready for the worldHow to create software that is ready for the world
How to create software that is ready for the world
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICT
 
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210
 
About programming languages
About programming languagesAbout programming languages
About programming languages
 
Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"
 
Mind the gap! - Droidcon Torino 2015
Mind the gap! - Droidcon Torino 2015Mind the gap! - Droidcon Torino 2015
Mind the gap! - Droidcon Torino 2015
 
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive WebYou’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
 
Mobile app Portfolio - Daphnis Labs
Mobile app Portfolio - Daphnis LabsMobile app Portfolio - Daphnis Labs
Mobile app Portfolio - Daphnis Labs
 
PhoneGap Day EU 2016
PhoneGap Day EU 2016PhoneGap Day EU 2016
PhoneGap Day EU 2016
 
Localization: How to do a global project
Localization: How to do a global projectLocalization: How to do a global project
Localization: How to do a global project
 
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
 
Lavacon 2011 - Managing the Localization Lifecycle
Lavacon 2011 - Managing the Localization LifecycleLavacon 2011 - Managing the Localization Lifecycle
Lavacon 2011 - Managing the Localization Lifecycle
 
AIM | HDC 2016 Globalization As a Service
AIM | HDC 2016 Globalization As a ServiceAIM | HDC 2016 Globalization As a Service
AIM | HDC 2016 Globalization As a Service
 
What Programming Language Do You Require for Your Next Project & How to Hire ...
What Programming Language Do You Require for Your Next Project & How to Hire ...What Programming Language Do You Require for Your Next Project & How to Hire ...
What Programming Language Do You Require for Your Next Project & How to Hire ...
 
Continuous Delivery at Gogo with Spinnaker and Foremast
Continuous Delivery at Gogo with Spinnaker and ForemastContinuous Delivery at Gogo with Spinnaker and Foremast
Continuous Delivery at Gogo with Spinnaker and Foremast
 

Mais de Sergi Martínez

Kotlin, a modern language for modern times
Kotlin, a modern language for modern timesKotlin, a modern language for modern times
Kotlin, a modern language for modern timesSergi Martínez
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?Sergi Martínez
 
What is flutter and why should i care? Lightning talk
What is flutter and why should i care? Lightning talkWhat is flutter and why should i care? Lightning talk
What is flutter and why should i care? Lightning talkSergi Martínez
 
Let’s talk about star wars with Dialog Flow
Let’s talk about star wars with Dialog FlowLet’s talk about star wars with Dialog Flow
Let’s talk about star wars with Dialog FlowSergi Martínez
 
Database handling with room
Database handling with roomDatabase handling with room
Database handling with roomSergi Martínez
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseSergi Martínez
 
It's the arts! Playing around with the Android canvas
It's the arts! Playing around with the Android canvasIt's the arts! Playing around with the Android canvas
It's the arts! Playing around with the Android canvasSergi Martínez
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android FragmentsSergi Martínez
 
Píldoras android i. Intro - 2ª parte
Píldoras android i. Intro - 2ª partePíldoras android i. Intro - 2ª parte
Píldoras android i. Intro - 2ª parteSergi Martínez
 

Mais de Sergi Martínez (14)

Kotlin, a modern language for modern times
Kotlin, a modern language for modern timesKotlin, a modern language for modern times
Kotlin, a modern language for modern times
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?
 
What is flutter and why should i care? Lightning talk
What is flutter and why should i care? Lightning talkWhat is flutter and why should i care? Lightning talk
What is flutter and why should i care? Lightning talk
 
Let’s talk about star wars with Dialog Flow
Let’s talk about star wars with Dialog FlowLet’s talk about star wars with Dialog Flow
Let’s talk about star wars with Dialog Flow
 
Database handling with room
Database handling with roomDatabase handling with room
Database handling with room
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app database
 
Android data binding
Android data bindingAndroid data binding
Android data binding
 
It's the arts! Playing around with the Android canvas
It's the arts! Playing around with the Android canvasIt's the arts! Playing around with the Android canvas
It's the arts! Playing around with the Android canvas
 
Smartphones
SmartphonesSmartphones
Smartphones
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android Fragments
 
Android master class
Android master classAndroid master class
Android master class
 
Píldoras android i. Intro - 2ª parte
Píldoras android i. Intro - 2ª partePíldoras android i. Intro - 2ª parte
Píldoras android i. Intro - 2ª parte
 
Introducción a mobclix
Introducción a mobclixIntroducción a mobclix
Introducción a mobclix
 
Admob y yo
Admob y yoAdmob y yo
Admob y yo
 

Último

The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Skynet Technologies
 

Último (20)

The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 

Creating multillingual apps for android

  • 2. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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.
  • 3. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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!
  • 5. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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.
  • 6. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications The product Product design Product Development Product testing and (QA) Product localisation Local product testing and (QA) Local product marketing Phase 2 - Localization Phase 1 - Internationalization
  • 7. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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.
  • 8. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications Language 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 Portugese pt-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
  • 10. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • Translation: by translator or specialist? Or Machine Translation? • Review: what kind of review? Linguistic? Technical? How many? • DTP • Engineering • Testing
  • 11. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications Product Software (UI) Help (UA) Web content Documentation
  • 12. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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
  • 13. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • For software: Excel, csv • For help: wiki, txt files • For web: url • For documentation: fax, scan. • For graphics: embedded graphics
  • 14. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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
  • 15. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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)
  • 16. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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 toolkit They understand the bussines. Very good system, but, do not support xml.
  • 17. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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…
  • 18. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • myGengo • Proz • Localization vendors: – Logoscript – Lionbridge – WiiPro – Etc.
  • 20. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications 1. Indentify localizable items (images, text, etc) and target languages 2. Separate from code 3. Perform «abstracted» development 4. Translate! 5. Integrate languages
  • 21. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • All localizable elements should be out-of-code • Resource folders preffix containing: – Images – Layouts – Strings!
  • 22. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • A suffix indicates folder specialization • It can be combined with other elements (orientation, density, screen size, etc…) • Distinguish between language and region
  • 23. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications
  • 24. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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?
  • 25. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • Java: R class (R.resource_type.resource_name) R.drawable.app_icon • XML: @type/resource • To get the locale: context.getResources().getConfiguration().locale.getDisplayName();
  • 26. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • Setting a locale (per Activity!)
  • 27. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • 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!
  • 29. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • Upload a strings xml to myGengo • Translate • Update • Generat
  • 30. @sergiandreplace Tweet about it: #bcngtug Creating multillingual Android applications • We are finished. Do you have any question? • You can contact me, don’t be shy: Mail: sergi@sergiandreplace.com Twitter: @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.