Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Localization Explained - CocoaConf Chicago, March 2016

Localization Explained - CocoaConf Chicago, March 2016

My updated localization/internationalization talk from CocoaConf Chicago 2016.

The code is on GitHub as both a playground and a project:
https://github.com/designatednerd/LocalizationExplained

The videos are available here:
Mail Composed Character Input: https://www.youtube.com/watch?v=vsGvDk0Od_E
Hum Broken in Japanese: https://www.youtube.com/watch?v=V5CuuoVF5IY
Hum Fixed in Japanese: https://www.youtube.com/watch?v=RvKP0bXIVhs

C4861b1dfdf3bbb21faec4a1acdf183d?s=128

Ellen Shapiro
PRO

March 26, 2016
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

  1. Localization, Explained !"#$%&'()*+, CocoaConf Chicago | March 2016 by Ellen

    Shapiro | @designatednerd justhum.com | designatednerd.com
  2. Internationalization, Explained !"#$%&'()*+, CocoaConf Chicago | March 2016 by Ellen

    Shapiro | @designatednerd justhum.com | designatednerd.com
  3. 69% of ! revenue is from outside the U.S* *-

    as of WWDC 2015
  4. 41% of iOS users are from China and Japan* *-

    as of WWDC 2015
  5. Languages Names Dates, Times and Time Zones Numbers and Measurements

  6. Languages

  7. Languages are more complicated than you realize

  8. http://www.snopes.com/cokelore/tadpole.asp

  9. How your app knows what language to use

  10. None
  11. How to tell the system what to translate

  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. None
  31. Language Tips!

  32. Localized String Convenience Class / Enum

  33. None
  34. None
  35. Twine

  36. None
  37. Don't forget to localize accessibility strings

  38. Languages You Don't Understand Affect Your UI

  39. Sometimes Things get Much Much Much Much Longer

  40. ! German !

  41. Privacy Policy Datenschutz-Bestimmugen

  42. Privacy Policy Datenschutz-Bestimmugen

  43. Sometimes Things get short

  44. ! Japanese !

  45. No Smoking ᐬ優

  46. No Smoking ᐬ優

  47. Pseudolanguages and Officially Supported Languages

  48. None
  49. None
  50. None
  51. Watch out for Composed characters

  52. None
  53. Bah, Hum Bug

  54. None
  55. None
  56. None
  57. None
  58. Sometimes Things Go thgiR ot tfeL

  59. Sometimes Things Go Right to Left

  60. ! Hebrew & Arabic "

  61. NEW iOS 9 Toy: Automatic RTL Support

  62. None
  63. None
  64. Names

  65. Names are more complicated than you realize

  66. Order and Meaning differ across languages

  67. NEW iOS 9 Toy: NSPersonNameComponentsFormatter

  68. NEW in iOS 9: NS Person Name Components Formatter

  69. None
  70. None
  71. Name Components Formatter Pitfalls

  72. Legal name vs. Preferred name

  73. Language vs. Locale

  74. Dates, Times, and Timezones

  75. None
  76. Dates, Times, and Timezones are more complicated than you realize

  77. None
  78. None
  79. NSDateFormatter

  80. None
  81. NSDateComponents let apple do the math for you

  82. NSTimeZone because nobody likes daylight savings time

  83. NSCalendar Who you callin' Gregorian?

  84. None
  85. Numbers and Measurements

  86. Numbers and Measurements you know these are complicated

  87. None
  88. None
  89. None
  90. None
  91. Obligatory Summary Slide » Supporting a new language and locale

    >>>> getting things translated » Be aware of how language and format changes affect your UI. » Think through everything that's different in the language and locale you're now supporting. » Finally...
  92. Let Apple handle the hard stuff as much as possible

  93. TEH Codez https://github.com/designatednerd/LocalizationExplained

  94. Tools » Twine: https://www.mobiata.com/blog/2012/02/08/ twine-string-management-ios-mac-os-x » Genstrings across multiple directories:

    http:// stackoverflow.com/questions/2744401/how-to-use- genstrings-across-multiple-directories
  95. Recommended Reading/Viewing: Not Apple » Laura Savino at AltConf: https://realm.io/news/

    altconf-laura-savino-localization-because-n-est- pas-por-todo-el-mundo/ » Tom Scott: The Problem With Time And Timezones: https://www.youtube.com/watch?v=-5wpm-gesOY » Dave DeLong: Intercalcation: http:// davedelong.tumblr.com/post/140216824433/ intercalation
  96. Recommended Reading: Apple » Internationalization and Localization Guide: https://developer.apple.com/library/ios/ documentation/MacOSX/Conceptual/BPInternational/

    Introduction/Introduction.html » How iOS Determines the Language For Your App https://developer.apple.com/library/ios/qa/qa1828/ _index.html
  97. Recommended Viewing: Apple WWDC 2015 » 222: New UIKit Support

    for International User Interfaces » 227: What's New In Internationalization WWDC 2014 » 201: Advanced Topics in Internationalization » 412: Localizing With Xcode 6
  98. Photo Credits » Matthew McConaughey in True Detective © HBO,

    used for illustrative purposes only.