More Related Content


Software vNext - Internationalization

  1. Software vNext going global !!! Joshua Malik Jerric Lyns John Orion India Systems Pvt. Ltd.
  2. Softwares are getting Internationalized Tim Dodd
  3. What’s the problem? Tim Dodd It’s not the “NP-Complete” problem! 1. “It’s a huge problem if you have not thought of it” 2. “If you have thought of it, then it’s just the beginning”
  4. What’s the problem? Kleine Moewe Well, it’s the HARD problem of design. 1. Internationalization is the problem! I. Languages II. Time Zones III. Formats
  5. Your software has to offer same usability to all! Mathew Roth
  6. Localization matters !!! Eric Fisher
  7. We’ll have to deal with countries and they might not prefer ENGLISH
  8. Like countries who attended Tito’s funeral, almost every countries did!
  9. Initial Solution We could make the software speak only ENGLISH. Sunc
  10. That’s a problem? We could make the software accept only ENGLISH. That’s okay until “Beyoncé Knowles” comes into the picture. Sunc
  11. Solution is !Unicode! But for name if someone enters a control character sequence that will break the system. Slash
  12. System Crashed! Control characters in UNICODE are bad “home-wrecks” We could always “contain” the control characters That’s 30,000+ if you include Mandarin, Cantonese etc.. Kleine Moewe
  13. Since you have Unicode, why not make it International ! Iceman
  14. Problem: Static UI Lets say your MenuBar was marked up with static width. This will break the UI once translated Solution: Make it flexible
  15. Problem: Composition You could out source all the words used by the your software to be translated a.k.a string composition Well, that works! Until the Italians turn up! Venice
  16. Problem: Composition Their translation requires gender, the translated word changes accordingly. Solution: Provide gender (Male, Female) along with the Resource files Caveat: I have to ask user for their gender! Venice
  17. Problem: Gender Just Male+Female as gender is a problem! The Swiss activist group Zwischengeschlecht (“Between Genders”), they‘ll file a case against you. Now that Germany and Australia has made it official gender (X) Solution: Provide and extra gender! Zwischengesch.
  18. Problem: Plurals English: Singular + Plural There are languages where: Singular + Dual + Plural exists Poland: Pausal+Plural (ending 2,3,4)+Plurals Romania: Different plural for anything more than 20 Tomas Melka
  19. Problem: UpperCase Germany: Sometimes the upper case letter is “2 letters” What? Yes, and sometimes it doesn’t change, like that of geographic names Armin Hoffman
  20. Problem: Ctd… We all use excerpts where we represent only some words of a long file and the rest with dots… GCC (The Gulf): Those dots will change the meaning in Arabic What? Yes, also the text is right-to-left! (Arabic/Hebrew), also names are from “left- to-right” in between the “right-to-lefts” Eugene
  21. BANG! From now on read it as 1. “I’m so dumb” 2. “I shouldn’t have done that” 3. “I really shouldn’t have done that” 4. “Now what do we do” Kleine Moewe
  22. Date/Time/Format matters !!! Atlas Maritimus
  23. Problem: Date format USA: MM DD YYYY UK: DD MM YYYY USA: Week starts at “Sunday” UK: Week starts at “Monday” Andrea
  24. Problem: Time format USA: 12hr clock Europe/Brazil: 24hr clock Zeek
  25. Problem: Numbers Europe: 100,000,000.000,00 USA: 100,000,000 India: 10,00,00,000 Farms8
  26. Kleine Moewe Problem: Language Changes in languages are subtle and unique and it’s complex. So what do we do? Good Question!
  27. Time Zones matters !!! mtyto
  28. Time calculations Usually we calculate time differences based on the time zones (which is +/- an offset towards Greenwich) Australia: +9 ½ hours Nepal: +5 ¼ hours This is simple get the canonical time zone chart and implement it! Zeek
  29. Daylight savings Advancing clocks during respective season (autumn/spring/summer) so as to get more daylight. That’s okay every countries involve in this process documents this well in advance. We just have to update it to our system! Worst part some advance, some goes back! Libya is no more daylight saving after 2013 Catklien
  30. Skipping a day! Somoa: they skipped a day to move to western side of international dateline to keep their business running with Australia What? From 29 December, 2011 to 31 December 2011 These changing of time zones happen quiet often! But they keep it updated too.. Somoa
  31. Changing of time zone Britain : 1940-1945 – gmt+2 (Greenwich is in Britain) Time Zone changes happens quiet often. Like at several times a year Mtyto
  32. History and time We shifted calendar in 18th century from Julian calendar to Gregorian calendar We literally missed(skipped) 3 weeks in between that. Russians did that in 20th century Now this change is location based.
  33. History and time 16th century : Once upon a time, the year started at 25th of March So how do we calculate time prior to that? Atlas Maritimus
  34. BANG! Now that’s perfectly confusing every living developers! Kleine Moewe
  35. Astrophysicst and time Leap second: As tectonic plates move about the earth’s speed increases and decreases. This leads to calculations in time correction by the International Astronomical Union i.e. 23:59:59 to 00:00:00 Normal 23:59:59 to 23:59:60 Leap second i.e. 61s in a minuteWiki
  36. UTC & Astronomical UTC – includes Leap second Astronomical – Doesn’t, to keep looking at the stars and design telescopes around it Google has addressed this using a technique known as leap smear: adds a small amount of time through out the day so that it is not visible to others. Smithsonian
  37. All mission, Abort Abort Abort ! Tim Dodd
  38. Do it and you’ll end up burning your PRD ! Sarah Loreth
  39. Trying to internationalize manually can be suicidal ! LittleMissNunon
  40. because, its big !
  41. because, it requires a lot of knowledge ! BrandonTimmo
  42. because, You have to get it right !
  43. Solution! Don’t treat internationalization as just another problem, it’s madness 1. Take the codes made available OSS 2. There are the libraries used by 1. Apple 2. Amazon 3. Google etc.. 3. Microsoft provides proprietary Library Kleine Moewe
  44. Open Source International Components for Unicode 1. C/C++, Java library 2. Text layout for Arabic, Hebrew, Indic, and Thai 3. Multi-calender and time zones 4. Formatting, parsing of dates, times, numbers, currencies, and messages
  45. Open Source International Components for Unicode How popular is this library? 1. Adobe, Amazon (Kindle), Apache, Appian, Apple, Avaya, BAE Systems Geospatial eXploitation Products, BEA, BluePhoenix Solutions, BMC Software, Boost, BroadJump, Business Objects, caris, CERN, Debian Linux, Dell, Eclipse
  46. Open Source International Components for Unicode How popular is this library? 1. eBay, EMC Corporation, ESRI, Firebird RDBMS, Free BSD, Gentoo Linux, Google, GroundWork Open Source, GTK+, Harman/Becker Automotive Systems GmbH, HP, Hyperion, IBM, Inktomi, Innodata Isogen, Informatica, Intel,
  47. Open Source International Components for Unicode How popular is this library? 1. Interlogics, IONA, IXOS, Jikes, Library of Congress, Mathworks, Mozilla, Netezza, OpenOffice, Lawson Software, Leica Geosystems GIS & Mapping LLC, Mandrake Linux, OCLC, Progress Software, Python, QNX, Rogue Wave
  48. Open Source International Components for Unicode How popular is this library? 1. SAP, SIL, SPSS, Software AG, Sun Microsystems (Solaris, Java), SuSE, Sybase, Symantec, Teradata (NCR), ToolAware, Trend Micro, Virage, webMethods, Wine, WMS Gaming, XyEnterprise, Yahoo!, Vuo, and many others….
  49. EyeSplash RESPECT! OSS They have almost fixed this for us! 1. We do not have to write it from scratch 2. Unknowingly we are using it 3. There is a huge active community pushing the limits
  50. EyeSplash Terminologies Some alphanumeric representations! 1. i18n – Internationalization 2. g11n – Globalization 3. L10n - Localization 4. L12y - Localizability Slash
  51. Mozilla i18n Internationalization / Globalization(g11n) Designing and developing a software product to function in multiple locales. This process involves 1. Identifying the locales to support, 2. Designing features for those locales 3. Writing code that functions equally well in any of the supported locales.
  52. L10n Localization Modifying or adapting a software product to fit the requirements of a particular locale. This process includes 1. Translating the user interface 2. Documentation and packaging, 3. Changing dialog box geometries, 4. Testing the translated products Mozilla
  53. L12y Localizability The degree to which a software product can be localized. 1. Localizable products separate data from code, 2. Correctly display the target language 3. Function properly after being localized. Mozilla
  54. SMC Swathanthra Malayalam Computing! 1. A huge community in Kerala for Malayalam 2. l10n 3. Pushing to upstream project like 1. Mozilla 2. Linux etc..
  55. This work by Jerric Lyns John is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.