$30 off During Our Annual Pro Sale. View Details »

Internationalizing your Android Application

Internationalizing your Android Application

How MeetMe went international on Android. Presented in 2012 to Android Alliance Philadelphia: http://www.meetup.com/AndroidAlliancePhilly/events/84300832/

Dallas Gutauckis

November 28, 2012
Tweet

More Decks by Dallas Gutauckis

Other Decks in Programming

Transcript

  1. View Slide

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

    View Slide

  3. DALLAS  GUTAUCKIS  

    View Slide

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

    View Slide

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

    View Slide

  6. CONTEXT  
    (before  and  aHer)  

    View Slide

  7. Before   AHer  

    View Slide

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

    View Slide

  9. Pluralize!  
    §  Got  a  string  that  has  a  variable  number  in  it?  Use  plurals!  

    Hello, one world!
    Hello, %d worlds!

    View Slide

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

    View Slide

  11. Yeah…  

    View Slide

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

    View Slide

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

    View Slide

  14. 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)  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. THINGS  YOU  SHOULD  
    BE  AWARE  OF…  

    View Slide

  20. 1.  EVERYTHING  

    View Slide

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

    View Slide

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

    View Slide

  23. FIN  

    View Slide

  24. View Slide

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

    View Slide