software vnext - internationalization

55
Software vNext going global !!! Joshua Malik Jerric Lyns John Orion India Systems Pvt. Ltd.

Upload: jerric-lyns-john

Post on 19-Jul-2015

149 views

Category:

Technology


1 download

TRANSCRIPT

Software vNext going global !!!

Joshua Malik

Jerric Lyns John

Orion India Systems Pvt. Ltd.

Softwares are getting

Internationalized

Tim Dodd

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

Your software has to offer same usability to all!

Mathew Roth

Localization matters !!!Eric Fisher

We’ll have to deal with countries

and they might not prefer ENGLISH

Like countries who attended Tito’s funeral,

almost every countries did!

Initial Solution

We could make the software speak only

ENGLISH.

Sunc

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

Date/Time/Format matters !!!

Atlas Maritimus

Problem: Date format

USA: MM DD YYYY

UK: DD MM YYYY

USA: Week starts at “Sunday”

UK: Week starts at “Monday”

Andrea

Problem: Time format

USA: 12hr clock

Europe/Brazil: 24hr clock

Zeek

Problem: Numbers

Europe: 100,000,000.000,00

USA: 100,000,000

India: 10,00,00,000

Farms8

Kleine Moewe

Problem: Language

Changes in languages are subtle and unique

and it’s complex.

So what do we do?

Good Question!

Time Zones matters !!!

mtyto

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

BANG!

Now that’s perfectly confusing every living

developers!

Kleine Moewe

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

All mission,

Abort Abort Abort !

Tim Dodd

Do it and

you’ll end up burning your PRD !Sarah Loreth

Trying to internationalize

manually can be suicidal !LittleMissNunon

because, its big !

because,

it requires a lot of knowledge !BrandonTimmo

n

because,

You have

to get it right !

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 LibraryKleine 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

EyeSplash

Terminologies

Some alphanumeric representations!

1. i18n – Internationalization

2. g11n – Globalization

3. L10n - Localization

4. L12y - Localizability

Slash

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 productsMozilla

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

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

This work by Jerric Lyns John is licensed under a Creative Commons

Attribution-NonCommercial-ShareAlike 4.0 International License.