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

Slides:



Advertisements
Similar presentations
1 Chapter 2 The Digital World. 2 Digital Data Representation.
Advertisements

Some computer fundamentals and jargon Memory: Basic element is a bit – value = 0 or 1 Collection of “n” bits is a “byte” Collection of several bytes is.
Representing Information as Bit Patterns
8 November Forms and JavaScript. Types of Inputs Radio Buttons (select one of a list) Checkbox (select as many as wanted) Text inputs (user types text)
Internationalization of Java Platform Presenter: Ataru Nakazawa Advisor: Xiaoping Jia Date: January 23, 2004.
Introduction to Computers and Programming. Some definitions Algorithm: Algorithm: A procedure for solving a problem A procedure for solving a problem.
Data Representation 3 This week – Recap on Floating point number – ASCII – unicode.
Binary and Decimal Numbers
CCE-EDUSAT SESSION FOR COMPUTER FUNDAMENTALS Date: Session III Topic: Number Systems Faculty: Anita Kanavalli Department of CSE M S Ramaiah.
COMPUTER FUNDAMENTALS David Samuel Bhatti
Lesson Objectives Explain the use of binary codes to represent characters Explain the term “Character set” Describe with examples (for examples ASCII and.
Introduction to Computing Using Python Chapter 6  Encoding of String Characters  Randomness and Random Sampling.
Software Engineering 2003 Jyrki Nummenmaa 1 GLOBALISATION I bet it is quite natural to dream about writing software that is being sold around.
Sophia Antipolis, September 2006 Multilinguality, localization and internationalization Miruna Bădescu Finsiel Romania.
©Brooks/Cole, 2003 Chapter 2 Data Representation.
AITI Tutorial: Internationalization Coding for the world MIT AITI July NNth, 2005.
Internationalization (I18N) Sufficiency Testing Presented to Seattle Area Software Quality Assurance Group June 19, 2003.
Chapter 3 Representing Numbers and Text in Binary Information Technology in Theory By Pelin Aksoy and Laura DeNardis.
Representing text Each of different symbol on the text (alphabet letter) is assigned a unique bit patterns the text is then representing as.
Sakai: Localization & Internationalization Beth Kirschner University of Michigan
Agenda Data Representation – Characters Encoding Schemes ASCII
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Computer System Basics 1 Number Systems & Text Representation Computer Forensics BACS 371.
C How to Program, 6/e © by Pearson Education, Inc. All Rights Reserved.
Binary Codes Computers and other digital systems "work" with binary numbers. I/P & O/P is usually done using decimal numbers, alphabetics, special symbols.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
Internationalization and the Java Stack Matt Wheeler.
Computer Math CPS120: Data Representation. Representing Data The computer knows the type of data stored in a particular location from the context in which.
Chapter 2 Computer Hardware
Hans-Peter Plag October 9, 2014 Session 2 Storing Information File Formats Accessing Information Processing Information.
Data Representation.
Cis303a_chapt03-2a.ppt Range Overflow Fixed length of bits to hold numeric data Can hold a maximum positive number (unsigned) X X X X X X X X X X X X X.
1 ADVANCED MICROSOFT EXCEL Lesson 9 Applying Advanced Worksheets and Charts Options.
CS151 Introduction to Digital Design
MULTIMEDIA DEFINITION OF MULTIMEDIA
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 26 Internationalization.
Chapter 12: Internationalization Processing Date and Time Processing Date and Time  Locale  Date  TimeZone  Calendar and GregorianCalendar  DateFormat.
Computer System Basics 1 Number Systems & Text Representation Computer Forensics BACS 371.
Globalisation & Computer systems Week 5/6 Character representation ACII and code pages UNICODE.
CISC1100: Binary Numbers Fall 2014, Dr. Zhang 1. Numeral System 2  A way for expressing numbers, using symbols in a consistent manner.  " 11 " can be.
Agenda ASCII char N int Character class char N String Bitwise operators homework.
Data Representation, Number Systems and Base Conversions
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
The character data type char. Character type char is used to represent alpha-numerical information (characters) inside the computer uses 2 bytes of memory.
Scott Marino MSMIS Kean University MSAS5104 Introduction to Programming with Data Structures and Algorithms Week 2 Scott Marino.
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { public static void main(String[]
Technology in Action Chapter 6 Behind the Scenes: A Closer Look at System Hardware.
Ajmer Singh PGT(IP) Programming Fundamentals. Ajmer Singh PGT(IP) Java Character Set Character set is a set of valid characters that a language can recognize.
1 Chapter 20 Internationalization. 2 Objectives F To describe Java's internationalization features (§ 20.1). F To construct a locale with language, country,
Information Coding Schemes Group Member : Yvonne Tiffany Jurifah bt Junaidi Clara Jane George.
Nguyen Le CS147.  2.4 Signed Integer Representation  – Signed Magnitude  – Complement Systems  – Unsigned Versus Signed Numbers.
Lecture Coding Schemes. Representing Data English language uses 26 symbols to represent an idea Different sets of bit patterns have been designed to represent.
Nat 4/5 Computing Science Data Representation Lesson 3: Storing Text
Unit 2.6 Data Representation Lesson 2 ‒ Characters
INTERNATIONALIZATION
Data Encoding Characters.
TOPICS Information Representation Characters and Images
Lecture 3 ISE101: Computing Fundamentals
Data Representation Question: Characters
IDENTIFIERS CSC 111.
Topics Introduction Hardware and Software How Computers Store Data
COMS 161 Introduction to Computing
COMS 161 Introduction to Computing
Chapter 35 Internationalization
Sr. Quality Engineering Manager,
Learning Intention I will learn how computers store text.
LO1 – Understand Computer Hardware
ASCII and Unicode.
Presentation transcript:

SOFTWARE INTERNATIONALIZATION Dallas Ramsden

Internationalization GOAL Software that can run ANYWHERE in the world without having the source code changed or recompiled for the different language and conventions. Software that can run ANYWHERE in the world without having the source code changed or recompiled for the different language and conventions.

You Should Care Why? Directly Applicable: Directly Applicable: –Basic Economics: A demand = development. A demand = development. Growing Economies = HUGE demand. Growing Economies = HUGE demand. Indirectly: Indirectly: –Outsourcing

Growth Economies INDIA INDIA –second largest English-speaking scientific professionals in the world. –$6,947 million in SW exports: April - December [1] Outsourcing

Growth Economies China China –1.6 billion population –Exported $180 billion of digital equipment. Exceeding America's international sales of $149 billion, [2]

“Internationalization is NOT a Feature!” Tom McFarland, Internationalization Architect – Hewlett Packard

Outside Your Box

What is I18N? Simple definition: Simple definition: –Provides framework and structure in which localization can take place. –Allows the dynamic bindings of language and local conventions into the software.

I18N: A Physical Analogy

Localization Software localization refers to adapting software from one culture to another. Software localization refers to adapting software from one culture to another. Done correctly, localization is the process of adjusting internationalized software to a particular locale. Done correctly, localization is the process of adjusting internationalized software to a particular locale. I18N is a prerequisite for localization. I18N is a prerequisite for localization.

Software - Differences with respect to culture measurement formats measurement formats number formats number formats time formats time formats sorting rules sorting rules calendar systems calendar systems

Symbols… Coach = Coach?

Locales A set of attributes which define the language and specific cultural conventions to be used. A set of attributes which define the language and specific cultural conventions to be used. A truly internationalized program contains no hard coded region- or country-specific elements. A truly internationalized program contains no hard coded region- or country-specific elements.

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

Usage Program detects the region/country currently using the program and loads the appropriate elements prior to interacting with a user. Program detects the region/country currently using the program and loads the appropriate elements prior to interacting with a user. Program has all of its region/country- specific elements properly verified and stored outside the program for each region/country that will use the program. Program has all of its region/country- specific elements properly verified and stored outside the program for each region/country that will use the program.

Unicode EBCDIC: Extended Binary Coded Decimal Interchange Code. IBM – 8 bit, English characters. EBCDIC: Extended Binary Coded Decimal Interchange Code. IBM – 8 bit, English characters. ASCII: American Standard Code for Information Interchange. 7-bit, English chars, 8-bit extended. ASCII: American Standard Code for Information Interchange. 7-bit, English chars, 8-bit extended. PROBLEM? PROBLEM? –Both standards are based on the English language and have no room for growth. How can they represent the many thousands of written characters used by modern and ancient languages?

Unicode… 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)

Resource Bundles: using locales Set of locale-specific elements are created for each locale where this program will be used. Set of locale-specific elements are created for each locale where this program will be used. A container that holds one or more locale- specific elements and is associated with one and only one locale A container that holds one or more locale- specific elements and is associated with one and only one locale NOT STORED IN SOURCE CODE! NOT STORED IN SOURCE CODE!

Example 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 identifier (made up of a language and a region/country code) that is used by locale-sensitive classes -- classes containing locale-specific functionality. A locale object is nothing more than an identifier (made up of a language and a region/country code) that is used by locale-sensitive classes -- classes containing locale-specific functionality.

Example 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 identifier (made up of a language and a region/country code) that is used by locale-sensitive classes -- classes containing locale-specific functionality. A locale object is nothing more than an identifier (made up of a language and a region/country code) that is used by locale-sensitive classes -- classes containing locale-specific functionality.

Tips for Unproblematic Coding Compose decimal numbers and dates from dynamic lexical units. (e.g. fraction sign, currency symbol, and date format separators) Compose decimal numbers and dates from dynamic lexical units. (e.g. fraction sign, currency symbol, and date format separators) Do not assume anything about text directionality. Do not assume anything about text directionality. Avert from hard coded literal text in system code. Use string tables or environment variables as an alternative. Avert from hard coded literal text in system code. Use string tables or environment variables as an alternative.

Internationalization Tools Hundreds of tools available to help aid in I18N processes. Hundreds of tools available to help aid in I18N processes. Consistently updated list at: Consistently updated list at: – ID=1301&MycatID=2&MysubcatID=3 ID=1301&MycatID=2&MysubcatID=3http:// ID=1301&MycatID=2&MysubcatID=3

I18N Quality Assurance Job: to asses the extent to which a software system is as functional in other cultures as it is in its native culture. Job: to asses the extent to which a software system is as functional in other cultures as it is in its native culture. Sample tasks: Sample tasks: –Strings sorted appropriately. –test for different date and time formats. –the availability of alternative measurements. –test the system on a reasonable set of hardware from different cultures.

International Quality Assurance Plan. Overview of Product Overview of Product Overview of Plan Overview of Plan Purpose/Scope Purpose/Scope Exclusions Exclusions Description of testing approach Description of testing approach

International Quality Assurance Plan (cont.) Responsibility Responsibility 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 schedule General schedule General quality expectations [5] General quality expectations [5]

I18N Quality Assurance Engineer A unique job title (i.e. lucrative). A unique job title (i.e. lucrative). Skill set: Skill set: –Programming background –Knowledge of test automation tools. –Solid background in testing UI. –Analytical skills for isolating bugs and reporting them accurately. –Diplomatic and comm. skills for negotiating bug fixes with development and defining test areas with core QA. –Sensitivity to- and interest in- Internationalization issues.

Summary The effort needed to internationalize a product needs to be weighed against the value. The effort needed to internationalize a product needs to be weighed against the value. Growing economies, such as China, demand a huge need for some services. Growing economies, such as China, demand a huge need for some services. A unique field, there are many lucrative niches to be found. A unique field, there are many lucrative niches to be found.

References [1] economy/information-technology-industry.html [1] economy/information-technology-industry.html [2] December 14, 2005, Digital Dragon, The Economist Newspaper and The Economist Group. [2] December 14, 2005, Digital Dragon, The Economist Newspaper and The Economist Group. [3] [3] [4] /jw-12-internationalize-p2.html [4] /jw-12-internationalize-p2.html [5] Driscoll K., Lok J., Luong T, Taylor D., 1995, INTERNATIONALIZATION: Developing Software for Global Markets, John Wiley & Sons, Inc. [5] Driscoll K., Lok J., Luong T, Taylor D., 1995, INTERNATIONALIZATION: Developing Software for Global Markets, John Wiley & Sons, Inc.