Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Balance and Compromise: Issues in Content Localization
Next
Download to read offline and view in fullscreen.

290

Share

Download to read offline

Internationalisation: 2200+ different ways to view a website

Download to read offline

As a product goes global, multiple languages and currencies becomes a major requirement. Sounds straightforward, but is simply displaying localized content enough? Will a design choice work for both Japan and US markets? Will that 200px wide column fit long greek words? Will your layout still work on a right-to-left language? In this talk, we'll see the challenges of implementing a front-end that works for 42 languages and 54 currencies.

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Internationalisation: 2200+ different ways to view a website

  1. 2200+ different ways to view a website 42 languages, 54 currencies, 1 CSS @shiota ConFoo 2015
  2. @shiota eshiota.com contato@eshiota.com slideshare.net/eshiota
  3. Crafting a global website
  4. Getting a small website going might be fairly straightforward…
  5. R$ pt-BR
  6. … but sometimes you need to speak more than one language.
  7. around 83% do not speak English (as a first or second language) http://en.wikipedia.org/wiki/List_of_languages_by_total_number_of_speakers http://www.worldometers.info/world-population/
  8. Sometimes you need to show the prices the right way.
  9. Sometimes you need to understand more than one culture.
  10. And every world event might affect you.
  11. 200+ countries 600.000+ properties 150 offices 42 languages 54 currencies
  12. Our design and code must support all languages, all currencies, and allow multicultural solutions.
  13. Dealing with languages
  14. There are a few HTML attributes and CSS properties you must know:
  15. `dir` attribute
  16. <html>
  17. <html dir="ltr">
  18. <html dir="rtl">
  19. `direction` property
  20. html { direction: ltr; }
  21. html { direction: rtl; }
  22. `:lang` selector
  23. <p class="love" lang="en"> I love the web! </p> <p class="love" lang="pt-BR"> Eu amo a web! </p> <p class="love" lang="nl"> Ik hou van het Web! </p>
  24. .love { padding: 1em; } .love:lang(en) { background-color: royalblue; } .love:lang(pt-BR) { background-color: mediumseagreen; } .love:lang(nl) { background-color: orange; }
  25. You may also add a html/body class via server-side.
  26. <body class="dir-rtl lang-nl">
  27. Remember to take care of right-to-left script languages.
  28. <div class="content"> <div class="box box1"> <p>BOX 1</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> </div> <div class="box box2"> <p>BOX 2</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> </div> </div>
  29. .box { width: 300px; padding: 10px; background-color: royalblue; color: #fff; float: left; margin-right: 20px; } .box2 { background-color: firebrick; }
  30. wrong
  31. Know and understand different CSS solutions, use what fits best.
  32. inline-block
  33. /* remember to account for additional space between elements */ .box { display: inline-block; } [dir="ltr"] .box { margin-right: 20px; } [dir="rtl"] .box { margin-left: 20px; }
  34. table/table-cell
  35. .content { display: table; } .box { display: table-cell; } [dir="ltr"] .box { border-right: 20px solid #fff; /* cheat */ } [dir="rtl"] .box { border-left: 20px solid #fff; /* cheat */ }
  36. Flexbox
  37. .content { display: flex; } [dir="ltr"] .box { margin-right: 20px; } [dir="rtl"] .box { margin-left: 20px; }
  38. Floats
  39. [dir="ltr"] .box { margin-right: 20px; float: left; } [dir="rtl"] .box { float: right; margin-left: 20px; }
  40. “If you work with multiple languages and still support legacy browsers, a table is your best friend.” — Eduardo Shiota, a developer who hopes to use only flexbox in a near future
  41. Remember to adjust positions, margins, paddings etc.
  42. .powered-by-html { font-size: 72px; padding-left: 80px; position: relative; } .powered-by-html:before { content: ""; background-image: url("html.svg"); background-size: cover; width: 72px; height: 72px; position: absolute; left: 0; top: 50%; margin-top: -36px; }
  43. wrong
  44. [dir="ltr"] .powered-by-html { padding-left: 80px; } [dir="ltr"] .powered-by-html:before { left: 0; } [dir="rtl"] .powered-by-html { padding-right: 80px; } [dir="rtl"] .powered-by-html:before { right: 0; }
  45. (or use inline-block)
  46. A short word in your language might be a huge one in another.
  47. (always view your layout in greek and cyrillic)
  48. Each language has its own perks.
  49. 1 rouble 2 roubles 3 roubles 4 roubles 5 roubles 1 рубль 2 рубля 3 рубля 4 рубля 5 рублей
  50. If you have a good localisation tool, use resources instead of words.
  51. "I love the web" i_love_the_web copywriter content translators tag
  52. <p class="powered-by-html"> I love the web! </p>
  53. <p class="powered-by-html"> <TMPL_VAR i_love_the_web> </p>
  54. Be careful about the typefaces you choose.
  55. UTF-8 ALL THINGS
  56. Ask for help.
  57. “This is completely wrong.” — Karim Naguib, Designer
  58. Pay attention to small details.
  59. Dealing with currencies
  60. Not everyone in the world uses R$, € or U$.
  61. € 90,00
  62. R$ 278,05
  63. $ 114.73
  64. ¥ 12,467.08
  65. Prepare your layout for large numbers.
  66. 1,374,521.70rp
  67. Remember each currency and country uses different separators.
  68. R$ 90,00
  69. $ 90.00
  70. € 90,00
  71. € 90.00
  72. Be careful about doing math with JavaScript.
  73. parseFloat("10.58"); // 10.58
  74. parseFloat("10,58"); // 10
  75. Provide a consistent rounding on both client and server code.
  76. Dealing with culture
  77. Some symbols might have different meanings on different countries.
  78. Each country has its own habits.
  79. Beware of local laws.
  80. A language’s John Smith might be another’s Jacques Martin.
  81. john.smith@company.com jacques.martin@société.com joao.silva@empresa.com jan.jansen@bedrijf.nl juan.perez@empresa.com taro.yamada@company.com
  82. Either be neutral or very focused on your layouts.
  83. “If you talk to a man in a language he understands, that goes to his head. If you talk to him in his language, that goes to his heart.” — Nelson Mandela
  84. Keep the customer at the centre of everything you do.
  85. Thanks!
  86. Credits (in order): Map of Brazil - Single Color by FreeVectorMaps.com Map of World - Single Color by FreeVectorMaps.com http://commons.wikimedia.org/wiki/File:Exchange_Money_Conversion_to_Foreign_Currency.jpg https://www.flickr.com/photos/leandrociuffo/6932936401 https://www.flickr.com/photos/karlocamero/9768744423 https://www.flickr.com/photos/ishanz/4688443134 Paula Abrahão — @darkdiva https://www.flickr.com/photos/darkdiva/14022904161/ Jamie McDonald/Getty Images https://www.flickr.com/photos/112078056@N07/14424444150 http://en.wikipedia.org/wiki/File:Fimmvorduhals_2010_03_27_dawn.jpg http://flagpedia.net/ iStockphoto
  • ShivaliChaudhary2

    Mar. 12, 2020
  • BrianCurrie13

    Feb. 28, 2020
  • MosesTS

    Feb. 11, 2020
  • ArunMishra26

    Dec. 29, 2019
  • fleur258

    Sep. 16, 2019
  • SinanYlmaz12

    Sep. 3, 2017
  • RahenRangan

    Jul. 29, 2017
  • LiouShihSie

    May. 7, 2017
  • JakubMichl

    Mar. 11, 2017
  • foxfirejack

    May. 21, 2016
  • YassinMohamed7

    May. 1, 2016
  • pauloaguilera

    Apr. 13, 2016
  • rafaeltrojan

    Apr. 12, 2016
  • Rbassi

    Apr. 11, 2016
  • davidmichalek

    Jul. 20, 2015
  • HyeonJuLee3

    May. 31, 2015
  • GilCrespo

    May. 15, 2015
  • jjmanjarrez

    May. 14, 2015
  • TommyPuglia

    May. 1, 2015
  • senthilkugalur

    Apr. 23, 2015

As a product goes global, multiple languages and currencies becomes a major requirement. Sounds straightforward, but is simply displaying localized content enough? Will a design choice work for both Japan and US markets? Will that 200px wide column fit long greek words? Will your layout still work on a right-to-left language? In this talk, we'll see the challenges of implementing a front-end that works for 42 languages and 54 currencies.

Views

Total views

53,178

On Slideshare

0

From embeds

0

Number of embeds

3,220

Actions

Downloads

537

Shares

0

Comments

0

Likes

290

×