Internationalization in Cincom Visualworks - Les Kooyman

28
7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 1/28 1 World Headquarters Cincinnati, Ohio Internationalization in Cincom® VisualWorks® Smalltalk Industry Conference June 2013 Wigwam Resort Phoenix, Arizona

Transcript of Internationalization in Cincom Visualworks - Les Kooyman

Page 1: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 1/28

1

World Headquarters

Cincinnati, Ohio 

Internationalization in

Cincom® VisualWorks® 

Smalltalk Industry Conference

June 2013

Wigwam Resort

Phoenix, Arizona

Page 2: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 2/28

Internationalization in Cincom

VisualWorksLes Kooyman

Smalltalk Engineering

Page 3: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 3/28

 

Cincom Smalltalk Products

Page 4: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 4/28

What do we mean by Internationalization?

Input and output in language-appropriate character set(may be quite complex – IME, BIDI, text shaping)

• Regionally-appropriate format customizations

(numbers, dates, times, currency amounts)

• Message translations (system and application)

implemented via message catalogs

Page 5: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 5/28

A Story in two parts… 

1.) Industry history

2.) VisualWorks (and ObjectStudio)history and trends

Page 6: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 6/28

Part 1. Industry History

The Long and Winding Road… 

Disclaimer: Please note that this is a selected history of our industry. Almostcertainly some achievements are not noted here due to time and space

limitations. This should in no way be construed to minimize the importance of 

any other work related to this subject but not represented here.

Page 7: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 7/28

First there were Morse and Baudot… 

…Herman Hollerith, the 1890 Census

and C-T-R (->IBM)… 

…ASCII and variants (ISO)… …EBCDIC… 

…and then… 

Page 8: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 8/28

Blame it on 漢字 (Kanji) … 

(Also Hiragana and Katakana)

JIS C 6220 (JIS C 0201): 1969

JIS X 0208-1990: Current*

IBM NLS: 1984

Unicode: 1991

*JIS X 0212-1990 specified but little used

Page 9: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 9/28

National Language Support

(NLS)• NLS: Work to allow MVS to handle Kanji using

DBCS (double byte character set)

• Double Byte Technical Coordination Office

presents NLS implementation proposal to IBM

management, May 1984

• Followed by „Corporate Instruction #145, National

Language Support‟, a fundamental IBM policy 

Page 10: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 10/28

Blame it on 漢字 (continued…) 

• Unicode: 1991

• ICU (ICU4J, ICU4C, etc.): 1999

• CLDR: 2003

Page 11: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 11/28

Unicode

A project of the Unicode Consortium• Intended to allow all characters of all

scripts to be represented

• Versioned and released like software

• Characters represented by Codepoints 

• Conceptually separate from its encodings

(UTF-8, UTF-16, etc.)

• VisualWorks now uses Unicode internally

for many operating system interfaces

Page 12: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 12/28

International Components for Unicode

(ICU)

• Based on work by Taligent 1992-1995

• 1997: Became base for JDK 1.1 international APIs

• 1999: Initial open source release as “IBM Classes

for Unicode” 

• Includes CLDR Locales

• ICU4J: ICU for Java

• ICU4C: ICU for C/C++

Page 13: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 13/28

CLDR: Common Locale Data Repository

A project of the Unicode Consortium• Distributed as a set of XML files

• Versioned and released like software

XML dialect: LDML (Locale Data Markup Language)• Most people will use CLDR indirectly through

incorporation in development environments such as

ICU or VisualWorks

Page 14: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 14/28

Part 2. VisualWorks and ObjectStudio

History and Trends

Page 15: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 15/28

Internationalization Concerns

• Locale-based customizations

• Message catalogs

• Text composition & display

Page 16: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 16/28

Locale-based customizations

• Time formatting

• Date formatting

• Number formatting

• Currency formatting

• Default measurement system (US, metric)

• Default paper size (US letter, A4)

• Collation

• System & User Messages via Message Catalogs

Page 17: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 17/28

Examples of Locale names

language_TERRITORY.encoding

•en_US.Windows-1252

•en_US.UTF8 

Page 18: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 18/28

CLDR-based Locales in VisualWorks:

• Coexist in the image with Legacy Locales; the

programmer may choose either to be the activelocale system, but not both concurrently.

• Locale

• CompositeLocale

• LocaleLocalizationComponent

• LocaleEncodingComponent

• Smalltalk code generated from the CLDR

• Formatting may contain non-Roman characters

and/or right-to-left word ordering

Page 19: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 19/28

Proliferation of Locales in VisualWorks

• 5i.4 (2001): 2 Locales

• 7.6 (2008): 15 Locales (“Legacy Locales”) 

• 7.7 (2009): 417 Locales (CLDR-based Locales)

• 7.10 (2013): 587 Locales

• 8.0 (?): Legacy Locales removed to loadable parcel

• ?: On-Demand Locale construction (“JIT”) 

• ?: Locales from “arbitrary” language/territory combos 

Page 20: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 20/28

Message catalogs

• Allow translation of messages and parameter 

substitution

• Message catalogs searched by Locale

• Each process can have its own catalogs based on

its own Locale

Page 21: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 21/28

Text composition & display

Capabilities vary widely by OS• Bi-directional text, text shaping not yet common

• Cross-platform solutions remain elusive

Text2 an exploration of these issues inVisualWorks, including BIDI

Page 22: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 22/28

More support for I18N

• I18N Package

• Internationalizer 

• New text editor (“Text2”) 

• Per-process locales

• Locale-specific message catalogs

• Optional Byte Order Mark support

• ISO-8601 unambiguous timestamp formatting andreading for data exchange (future release)

Page 23: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 23/28

 

Demonstration video: Internationalizer 

Page 24: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 24/28

 

Live demo: Text2

Page 25: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 25/28

 

ObjectStudio 8

(2007) was the first

release built on the

VisualWorks class

library, thus using

the same Locales

Page 26: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 26/28

Sources

•  A Brief History of Character Codes in North America,Europe and East Asia; Steven J. Searle;http://tronweb.super-nova.co.jp/characcodehist.html 

• IBM History of Far Eastern Languages in Computing; KurtHensch; IBM Corporation, 2004

State of Text Rendering; Behdad Esfahbod; 2012;http://behdad.org/text 

• Unicode Explained ; Jukka K. Korpela; O’Reilly; 2006 

• CJKV Information Processing; Ken Lunde; O’Reilly; 2009 

• http:// www.unicode.org 

• http://cldr.unicode.org 

• http://www.icu-project.org 

Page 27: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 27/28

 

Questions?

Page 28: Internationalization in Cincom Visualworks - Les Kooyman

7/28/2019 Internationalization in Cincom Visualworks - Les Kooyman

http://slidepdf.com/reader/full/internationalization-in-cincom-visualworks-les-kooyman 28/28

Thank you for attending!