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

On Internationalization and Localization

On Internationalization and Localization

At the inaugural WordCamp DC I talked about the importance of both internationalization and localization.

They have a massive impact on user acceptance and usability. I highlight existing tools, interfaces, and best practices to get internationalization right in the UIs we create and the code we write.

Learn how not to get into the White House, why English ≠ English, and why you should not use flags for language switchers.

5253258c79d25b02f51e0ac55e30cf69?s=128

Pascal Birchler

July 14, 2017
Tweet

Transcript

  1. Internationalization and Localization

  2. Pascal Birchler
 @swissspidy

  3. None
  4. "beat around the bush"

  5. "talk around the hot mash"

  6. Why Internationalization?

  7. The process of creating a product in such a way

    that it can be easily adapted to specific local languages and cultures Internationalization (I18N)
  8. The process of adapting a product or service to a

    particular language, culture, and desired local “look-and-feel.” Localization (L10N)
  9. “Localization is like translation but with a cultural twist” Localization

  10. Locales

  11. Locale ≠ Language

  12. Flag ≠ Language

  13. None
  14. flagsarenotlanguages.com

  15. Dates

  16. None
  17. 12/05/2017

  18. None
  19. None
  20. Numbers

  21. 123 456.99 123,456.99 123’456.99 123.456,99

  22. Right to Left Icons Symbols Puns Jokes Legal Currencies Numbers

    Formal/Informal Support Units
  23. Dealing with Locales

  24. Locale Detection

  25. Accept-Language: es, en-gb;q=0.8, en;q=0.7

  26. None
  27. Internationalization in User Interfaces

  28. Symbols ✅ ⭕

  29. Personal Names

  30. David Lloyd George

  31. Lang Leyen Little Lovett von der

  32. Implications for Field Design

  33. None
  34. None
  35. None
  36. None
  37. Fonts

  38. None
  39. Left-to-Right Right-to-Left

  40. None
  41. None
  42. None
  43. Internationalization in Development

  44. None
  45. String Extraction

  46. function translateIt( $str ) { // Do something. } __(

    'Foo' ); // ✓ translateIt( 'Bar' ); // ☓ __( 'Baz' ); // ✓
  47. $foo = 'Hello World'; __( $foo ); // ☓

  48. Plural Forms

  49. if ( $num == 1 ) printf( __( '%d item'

    ), $num ) else printf( __( '%d items' ), $num )
  50. printf( _n( '%d item', '%d items', $num ), $num )

  51. printf(_n('%d item', '%d items', 1), 1) printf(_n('%d item', '%d items',

    2), 2) printf(_n('%d item', '%d items', 5), 5)
  52. Resources

  53. developer.wordpress.org

  54. Localization Management

  55. w3.org/internationalization

  56. cldr.unicode.org

  57. To Sum Things Up

  58. 1. Don’t make assumptions 2. Understand cultural values 3. i18n

    from the beginning 4. Don’t reinvent the wheel
  59. Further Reading

  60. Thank You.