240 likes | 251 Views
Learn about software globalization and its benefits in reaching non-English markets. Understand the challenges and solutions for internationalization and localization.
E N D
Software Globalization Alan Chang Software EngineerMay 27, 2003
What is Software Globalization? • G11N • 11 means the number of letters between the first and last letters of the word “globalization” • Includes: • Software Internationalization • Software Localization Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Why Software Globalization? • Earn more money from non-English markets with little extra development efforts • Business Week: worldwide software revenues will be worth $270 billion by 2003 • Global Reach: Global e-commerce will reach $6.8 trillion by 2004 • More than 40% of Trend Micro’s revenue is from non-English markets Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Software Internationalization • I18N, First step of G11N • 18 means the number of letters between the first and last letters of the word "internationalization" • One Binary, Runs Globally • one set of source codes and main binary is produced to support all the global markets • can be localized later without any code change, merely by translating text, resizing UIs and supplying new graphics Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Typical Software I18N Issues • Writing System • Charset, Codeset, Encoding, Codepage • String manipulation • …… • Culture Sensitive Data Formatting • Numeric Formatting • Date/Time Formatting • Message Formatting • …… Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example : Codepage Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example : Codepage Conversion String in EUC-JP encoding: Same EUC string displayed under Japanese Windows environment: Same EUC string displayed correctly after being converted into Shift-JIS encoding: Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example : String Manipulation • General Issues of Character: • Variable length, Fixed length, Multi-byte, Single-byte • Modal,Non-Modal • Iteration • (NON-I18N) ++psz, --psz, _strinc, _strdec… • Character Classification/Searching • (NON-I18N) isalpha, isdigit, strchr, strrchr … • Character Manipulation/Calculation • (NON-I18N) tolower, toupper … • (NON-I18N) char c = ‘R’; c += 1; /* is c == ‘S’???*/ Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example : String Manipulation Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Numeric Formatting • Group and decimal separators • 1,234.56 (US) • 1.234,56 (DE) • 1 234,56 (FR) • Numeric shapes • 2 二 貳 ๒ ٢ • Negative numbers • -1,234 1,234- • Percentage symbols and placement • 45% .45 45 pct %45 Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Monetary Formatting • The currency symbol is same on all platforms • Developer might make culture assumption that the “$” is used as currency symbol around the world • Monetary format examples: • $1,234.56 (US) • 1.234,56 € (DE) • ¥1,234.56 (JA) Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Date/Time Formatting • Short, Medium, Long, Full • 11/06/2001 (Short) • Monday, October 22, 2001 2:23AM (Long) • Calendar System • 平成, AD, BC, 農曆, 民國 (Era) • Thursday,木曜日,Donnerstag,星期四 (Day of the Week) • October, Octobre, 十月 • AM PM, 早上 下午,午前 • Time Zone • GMT, GMT-8 (Standard Time) • Daylight savings Time (Local Time with offset) • Europe/Dublin, PST, PDT (Time Zone ID) Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Date/Time Formatting (cont.) • Date format examples: • Thu 01/17/2002 (US) • Thu 17/01/2002 (UK) • Do 17.01.2002 (DE) • 2002/01/17 木 (JA) Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Message Formatting • “There are %d virus found in file %s !!“ • sprintf(szMyMsg, szFormat, nFile, szFileName); • “在 %s 中找到%d 隻病毒 !!” • sprintf(szMyMsg, szFormat, szFileName, nFile); Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Address/Phone Number Formatting • The address pattern is same on all platforms • Developer might make culture assumption that the address pattern, “Street Number”, “City”, “State”, “ZIP” can cover all the world • Same situation may occur in the phone number format Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Buffer Capacity • Developers might allocate a buffer which is not big enough to load the resource string after translation • Result is crash or chopped string Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :UI Truncation & Layout • If an English string on UI becomes longer after translation, then it might be truncated or wrapped because of the limited UI layout • Also called Localizability problem Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
I18N Issue Example :Hard-Code String • Developers might hard-code messages and forgot to move it to resource file • Result is the message always in English no matter on which platform after localization • Most often I18N bug Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Software Localization • L10N, Second step of G11N • 10 means the number of letters between the first and last letters of the word “localization" • Customization for target market • Usually involves translating text and supplying new graphics Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Typical Software L10N Issues • Culture Difference • UI Text Translation • UI Layout Customization • Documentation Translation • Icon Localization • Legal Issues • …… Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
L10N Issue Example : Website Layout Localization Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Good Practices for Software Globalization • Verify the needs of Software Globalization for your products • Consider about Software Globalization in the early stage of product development cycle • Avoid culture assumptions • Externalize L10N related resources • Adopt industry standard solution (Microsoft NLS APIs, IBM ICU, Unicode) • Think more for L10N while coding Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
A Cold Joke of Globalization • What year should be the start year of millennium • 2000? • 2001? • This is my answer: • 2001 will be the answer from better G11N aspect. • Because no one will be confused by the date 01/01/01 Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT
Q&A Trend Micro CONFIDENTIAL - ENGINEERING DOCUMENT