Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

How  MeetMe  went  i18n  (on  Android)   Dallas  Gutauckis   @DallasGutauckis   [email protected]   DallasGutauckis.com   github.com/DallasGutauckis    

Slide 3

Slide 3 text

DALLAS  GUTAUCKIS  

Slide 4

Slide 4 text

Dallas  Gutauckis  (me)   §  Sr.  Architect  @  MeetMe   §  Amateur  photographer  and   designer   §  Programmer,  Developer,   Engineer,  Architect,  ScienFst  

Slide 5

Slide 5 text

Why  interna=onalize?   §  MeetMe  sees  internaFonalizing  as  mutually  beneficial   –  Users  get  a  beKer  experience  with  naFve  language  support   –  Large  potenFal  market  outside  of  English-­‐speaking  market  

Slide 6

Slide 6 text

CONTEXT   (before  and  aHer)  

Slide 7

Slide 7 text

Before   AHer  

Slide 8

Slide 8 text

Stringify  early,  stringify  oHen   §  Use  strings  liberally     Hello, World!

Slide 9

Slide 9 text

Pluralize!   §  Got  a  string  that  has  a  variable  number  in  it?  Use  plurals!   Hello, one world! Hello, %d worlds!

Slide 10

Slide 10 text

Strings   §  Use  ‘em  how  they’re  designed  to  be  used  (and  more)   –  Strings   –  Plurals   –  Arrays   –  (more)  Gender-­‐focused  OR  gender-­‐neutral  strings   §  First  thing  we  had  to  reconcile  out  of  the  gate   §  We  started  with  ~850  pre-­‐exisFng  strings  entries  (we  were  lucky  to   have  had  the  foresight  to  do  this  much)   §  Ended  with  ~910  

Slide 11

Slide 11 text

Yeah…  

Slide 12

Slide 12 text

Transla=ng   §  IniFal  translaFons   –  Machine  translate!   –  Prove  it  out.  Test  it.  

Slide 13

Slide 13 text

Addressing  layout  issues   §  Designed  to  fit   –  Determine  ways  to  abbreviate.  Brevity  will  typically   benefit  you  anyway.    

Slide 14

Slide 14 text

Addressing  layout  issues   §  Designed  to  flex   –  Update  the  layout  to  resolve  any  hard-­‐coded   dimensions  and  be  more  flexible   o  ScrollView  is  your  friend   o  HorizontalScrollView  too   o  AutoResizeTextView  (online)  

Slide 15

Slide 15 text

Localizing   §  Dates   –  Calendar,  Date   –  DateUFls   §  Numbers   –  NumberFormat   o  Decimals   o  Grouping  (thousands)   o  Currency   o  Etc   §  Distances  

Slide 16

Slide 16 text

On  depending  on  APIs   §  Success/error  messages   –  Whoops   –  Error  types  and  codes  corresponding  to  specific  errors   o  Invalid  credenFals?  AuthExcepFon#0x01   §  Huge  and/or  variable  lists  of  anything   –  Region  names   –  Random  quesFons  

Slide 17

Slide 17 text

Human  Transla=ons   §  NaFve  speaker  translaFons  (outsourced)   §  NaFve  speaker  reviews  (in-­‐house)/QA  review   §  Iterate   §  In-­‐house  reviews   §  Release  

Slide 18

Slide 18 text

Keeping  sane   §  TranslaFon  management  can  be  a  lot  of  work.  Automate.   §  Ongoing  development  includes  automated  translaFon  process   –  Keeps  developers  from  having  to  deal  with  logisFcs  of  translaFon  management  

Slide 19

Slide 19 text

THINGS  YOU  SHOULD   BE  AWARE  OF…  

Slide 20

Slide 20 text

1.  EVERYTHING  

Slide 21

Slide 21 text

Be  pessimis=c   §  Don’t  assume  you  understand  internaFonalizaFon   §  Quotes   §  Ellipses   §  Wikipedia  is  your  friend!  

Slide 22

Slide 22 text

What  are  the  best  devices  to  confirm  with?   §  Nexus  One   §  Nexus  S   §  Galaxy  Nexus   §  Nexus  7   §  Nexus  4  

Slide 23

Slide 23 text

FIN  

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Q&A   Dallas  Gutauckis   @DallasGutauckis   [email protected]   DallasGutauckis.com   github.com/DallasGutauckis