A session delivered at Orion India Systems Pvt. Ltd. for emphasising the importance of Internationalization and its relevance for developing Software vNext.
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”
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
That’s a problem?
We could make the software accept only
ENGLISH. That’s okay until “Beyoncé
Knowles” comes into the picture.
Sunc
Solution is !Unicode!
But for name if someone enters a control
character sequence that will break the
system.
Slash
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
Since you have Unicode, why not make it
International !
Iceman
Problem: Static UI
Lets say your MenuBar was marked up with
static width.
This will break the UI once translated
Solution: Make it flexible
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
Open Source
International Components for Unicode
http://site.icu-project.org/
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
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
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,
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
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….
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
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.
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
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