250 likes | 406 Views
Software Globalization. Alan Chang Software Engineer May 27, 2003. What is Software Globalization?. G11N 11 means the number of letters between the first and last letters of the word “ g lobalizatio n ” Includes: Software Internationalization Software 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