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

Internationalization Introduction at WordCamp Bern

Internationalization Introduction at WordCamp Bern

With great pleasure I talked about the importance of both internationalization and localization at WordCamp Bern 2017 in Switzerland's capital.

I18N and L10N 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

September 09, 2017
Tweet

Transcript

  1. Internationalization and Localization WordCamp Bern 2017

  2. Pascal Birchler
 @swissspidy

  3. None
  4. beat around the bush

  5. um den heissen Brei herumreden

  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 Timezones 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. Context

  53. _x('Update', 'verb' ) _x('Update', 'noun' )

  54. Resources

  55. developer.wordpress.org

  56. Localization Management

  57. w3.org/internationalization

  58. cldr.unicode.org

  59. Conclusion

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

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

  62. Thank You.