Top Banner
SOFTWARE SOFTWARE INTERNATIONALIZATION INTERNATIONALIZATION Dallas Ramsden Dallas Ramsden
29

SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Dec 27, 2015

Download

Documents

Gloria Rice
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

SOFTWARE SOFTWARE INTERNATIONALIZATIONINTERNATIONALIZATION

Dallas RamsdenDallas Ramsden

Page 2: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Internationalization Internationalization GOALGOAL

• Software that can run Software that can run ANYWHEREANYWHERE in in the world the world withoutwithout having the source having the source code changed or recompiled for the code changed or recompiled for the different language and conventions.different language and conventions.

Page 3: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

You Should Care Why?You Should Care Why?

• Directly Applicable:Directly Applicable:– Basic Economics:Basic Economics:

•A demand = development.A demand = development.

•Growing Economies = HUGE demand.Growing Economies = HUGE demand.

• Indirectly:Indirectly:– OutsourcingOutsourcing

Page 4: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Growth EconomiesGrowth Economies

• INDIAINDIA– second largest English-speaking second largest English-speaking

scientific professionals in the world.scientific professionals in the world.– $6,947 million in SW exports: April - $6,947 million in SW exports: April -

December 2004 - 05 [1]December 2004 - 05 [1]

OutsourcingOutsourcing

Page 5: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Growth EconomiesGrowth Economies

• ChinaChina– 1.6 billion population1.6 billion population– Exported $180 billion of Exported $180 billion of

digital equipment.digital equipment.Exceeding America'sExceeding America'sinternational sales ofinternational sales of$149 billion, 2004. [2] $149 billion, 2004. [2]

Page 6: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

““Internationalization is Internationalization is NOT a Feature!” NOT a Feature!”

Tom McFarland, Tom McFarland, Internationalization Architect Internationalization Architect

– Hewlett Packard – Hewlett Packard

Page 7: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Outside Your BoxOutside Your Box

Page 8: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

What is I18N?What is I18N?

• Simple definition:Simple definition:– Provides framework and structure in Provides framework and structure in

which which localizationlocalization can take place. can take place. – Allows the Allows the dynamicdynamic bindings of bindings of

language and local conventions into the language and local conventions into the software.software.

Page 9: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

I18N: A Physical AnalogyI18N: A Physical Analogy

Page 10: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

LocalizationLocalization

• Software localization refers to Software localization refers to adapting software from one culture adapting software from one culture to another.to another.

• Done correctly, localization is the Done correctly, localization is the process of adjusting process of adjusting internationalizedinternationalized software to a software to a particular locale.particular locale.

• I18N is a prerequisite for localization.I18N is a prerequisite for localization.

Page 11: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.
Page 12: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Software - Differences with Software - Differences with respect to culturerespect to culture

• measurement formatsmeasurement formats

• number formats number formats

• time formats time formats

• sorting rules sorting rules

• calendar systems calendar systems

Page 13: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Symbols…Symbols…

Coach = Coach?

Page 14: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

LocalesLocales

• A set of attributes which define the A set of attributes which define the language and specific cultural language and specific cultural conventions to be used. conventions to be used.

• A truly internationalized program A truly internationalized program contains no hard coded region- or contains no hard coded region- or country-specific elements.country-specific elements.

Page 15: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Locale Contents:Locale Contents:

• Icons Icons • Text (GUI labels, other messages) Text (GUI labels, other messages) • Audio clips Audio clips • Online help Online help • Currency/date/number formats Currency/date/number formats • Calendars Calendars • Measurements Measurements • Colors Colors • Graphics Graphics • Phone numbers Phone numbers • Addresses Addresses • Titles and honorifics Titles and honorifics

Page 16: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

UsageUsage

• Program Program detectsdetects the region/country the region/country currently using the program and currently using the program and loads loads the appropriatethe appropriate elements elements priorprior to to interacting with a user. interacting with a user.

• Program has all of its region/country-Program has all of its region/country-specific elements properly verified and specific elements properly verified and stored stored outsideoutside the program for each the program for each region/country that will use the region/country that will use the program. program.

Page 17: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

UnicodeUnicode

• EBCDIC:EBCDIC: Extended Binary Coded Decimal Interchange Extended Binary Coded Decimal Interchange Code. IBM – 8 bit, English characters.Code. IBM – 8 bit, English characters.

• ASCII: ASCII: American Standard Code for Information American Standard Code for Information Interchange. 7-bit, English chars, 8-bit extended.Interchange. 7-bit, English chars, 8-bit extended.

• PROBLEM?PROBLEM?– Both standards are based on the English Both standards are based on the English

language and have no room for growth. How language and have no room for growth. How can they represent the many thousands of can they represent the many thousands of written characters used by modern and ancient written characters used by modern and ancient languages? languages?

Page 18: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Unicode… 4.0Unicode… 4.0

•Goes far beyond ASCII’s limited ability to encode only the upper- and lowercase letters A through Z. It provides the capacity to encode all characters used for the written languages of the world—more than 1 million characters can be encoded!! [3]

•32-bit form (UTF-32), 16-bit form (UTF-16), and an 8-bit form (UTF-8)

Page 19: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Resource Bundles: using Resource Bundles: using localeslocales

• Set of locale-specific elements are Set of locale-specific elements are created for each locale where this created for each locale where this program will be used. program will be used.

• A container that holds one or more A container that holds one or more locale-specific elements and is locale-specific elements and is associated with one and only one associated with one and only one localelocale

• NOT STORED IN SOURCE CODE!NOT STORED IN SOURCE CODE!

Page 20: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

ExampleExample

• Source code taken from [4].Source code taken from [4].

• Java treats locales as objects.Java treats locales as objects.• A locale object is nothing more than an A locale object is nothing more than an

identifier (made up of a language and identifier (made up of a language and a region/country code) that is used by a region/country code) that is used by locale-sensitive classeslocale-sensitive classes -- classes -- classes containing locale-specific functionality.containing locale-specific functionality.

Page 21: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

ExampleExample

• Source code taken from [4].Source code taken from [4].

• Java treats locales as objects.Java treats locales as objects.• A locale object is nothing more than an A locale object is nothing more than an

identifier (made up of a language and identifier (made up of a language and a region/country code) that is used by a region/country code) that is used by locale-sensitive classeslocale-sensitive classes -- classes -- classes containing locale-specific functionality.containing locale-specific functionality.

Page 22: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Tips for Unproblematic Tips for Unproblematic CodingCoding• Compose decimal numbers and dates from Compose decimal numbers and dates from

dynamic lexical units. (e.g. fraction sign, dynamic lexical units. (e.g. fraction sign, currency symbol, and date format currency symbol, and date format separators) separators)

• Do not assume anything about text Do not assume anything about text directionality. directionality.

• Avert from hard coded literal text in Avert from hard coded literal text in system code. Use string tables or system code. Use string tables or environment variables as an alternative. environment variables as an alternative.

Page 23: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

Internationalization Internationalization ToolsTools

• Hundreds of tools available to help Hundreds of tools available to help aid in I18N processes.aid in I18N processes.

• Consistently updated list at:Consistently updated list at:– http://http://

www.globalization.com/index.cfm?pageIwww.globalization.com/index.cfm?pageIDD=1301&MycatID=2&MysubcatID=3=1301&MycatID=2&MysubcatID=3

Page 24: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

I18N Quality AssuranceI18N Quality Assurance

• Job: to asses the extent to which a Job: to asses the extent to which a software system is as functional in other software system is as functional in other cultures as it is in its native culture.cultures as it is in its native culture.

• Sample tasks: Sample tasks: – Strings sorted appropriately.Strings sorted appropriately.– test for different date and time formats.test for different date and time formats.– the availability of alternative measurements.the availability of alternative measurements.– test the system on a reasonable set of test the system on a reasonable set of

hardware from different cultures.hardware from different cultures.

Page 25: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

International Quality Assurance International Quality Assurance Plan.Plan.

• Overview of ProductOverview of Product

• Overview of Plan Overview of Plan

• Purpose/Scope Purpose/Scope

• Exclusions Exclusions

• Description of testing approach Description of testing approach

Page 26: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

International Quality Assurance International Quality Assurance Plan (cont.)Plan (cont.)

• ResponsibilityResponsibility

• Overview of required resources Overview of required resources

• High level view of areas to be tested High level view of areas to be tested

• General scheduleGeneral schedule

• General quality expectations [5]General quality expectations [5]

Page 27: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

I18N Quality Assurance I18N Quality Assurance EngineerEngineer• A unique job title (i.e. lucrative).A unique job title (i.e. lucrative).• Skill set:Skill set:

– Programming backgroundProgramming background– Knowledge of test automation tools.Knowledge of test automation tools.– Solid background in testing UI.Solid background in testing UI.– Analytical skills for isolating bugs and reporting them Analytical skills for isolating bugs and reporting them

accurately.accurately.– Diplomatic and comm. skills for negotiating bug fixes Diplomatic and comm. skills for negotiating bug fixes

with development and defining test areas with core QA.with development and defining test areas with core QA.– Sensitivity to- and interest in- Internationalization issues.Sensitivity to- and interest in- Internationalization issues.

Page 28: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

SummarySummary

• The effort needed to internationalize The effort needed to internationalize a product needs to be weighed a product needs to be weighed against the value.against the value.

• Growing economies, such as China, Growing economies, such as China, demand a huge need for some demand a huge need for some services.services.

• A unique field, there are many A unique field, there are many lucrative niches to be found.lucrative niches to be found.

Page 29: SOFTWARE INTERNATIONALIZATION Dallas Ramsden. Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed.

ReferencesReferences

• [1] http://www.economywatch.com/business-and-[1] http://www.economywatch.com/business-and-economy/information-technology-industry.htmleconomy/information-technology-industry.html

• [2] December 14, 2005, [2] December 14, 2005, Digital Dragon,Digital Dragon, The The Economist Newspaper and The Economist Group. Economist Newspaper and The Economist Group.

• [3] http://www.unicode.org [3] http://www.unicode.org

• [4] http://www.javaworld.com/javaworld/jw-12-[4] http://www.javaworld.com/javaworld/jw-12-1998/jw-12-internationalize-p2.html1998/jw-12-internationalize-p2.html

• [5] Driscoll K., Lok J., Luong T, Taylor D., 1995, [5] Driscoll K., Lok J., Luong T, Taylor D., 1995, INTERNATIONALIZATION: Developing Software for INTERNATIONALIZATION: Developing Software for Global MarketsGlobal Markets, John Wiley & Sons, Inc., John Wiley & Sons, Inc.