You are on page 1of 31

Multilingual Seaside Web

Applications with SeaBreeze 5.0

Prof. Dr. Uta Seewald-Heeg

Hochschule Anhalt – Fachbereich Informatik
Markus Rips, Georg Heeg
Georg Heeg eK – Dortmund – Zürich

Smalltalk Solutions 2011

Las Vegas, March 14, 2011
Anhalt University of
Applied Sciences, Köthen
• Founded 1891
• Department of Computer Science
• Software Localization
– Bachelor and Master
Georg Heeg

• Founded 1987, headquarter in Dortmund,

since 1996 in Zurich, since 1999 in Koethen/Anhalt
• Consulting- and training company in Smalltalk
• Technology-partner of
• VisualWorks, ObjectStudio and VSE

Corporate Mission: Make Sophisticated Projects

a Success for the Customer!
Today‘s Topic

• Not only in the Seaside Mailing List:

• How to create multilingual Web Applications?

• Easily!
Localization Process
(according to Microsoft)
Localization in the Context of
Globalization and Internationalization

• Globalization (G11N)
• Internationalization (I18N)
• Localization (L10N)

G 1 2 3 4 5 6 7 8 9 10 11 N
Globalization, Internationalization,
and Localization

Source: Multilingual Supplement April, Mai 2009


• The process of enabling a product at a

technical level for localization.
Source: LISA []

• Engineering culture and language-neutral

software kernels that can be compiled
together with separate “locale packages”
usually contained in independent resource
[Gregory M. Shreve, Kent State University]

• Internationalization is a precursor to
localization and its purpose is both to lower
the effort and cost of localization and
translation and to increase the speed and
accuracy with which localization can be
accomplished. In an age where the
simultaneous release of multilingual
documentation, web pages or software is a
corporate objective, such strategies are
[Gregory M. Shreve, Kent State University]

The process of modifying products or

services to account for differences in distinct
The process of adapting software for a
particular geographical region (locale).
Translation of the user interface, system
messages, and documentation is a large part
(but not all) of the localization process.

Source: LISA []

Software Localization

• Adaptation of software for a particular

geographical region
• Translation of the user interface

• Linguistic and cultural adaptation of

An Integrated Process

I18N and L10N together comprise a

complete process that makes the
adaptation of a product line for a
different linguistic and cultural locale
cost-effective and successful.
•I18N is “stuff” you have to do once.
•L10N is “stuff” you have to do over
and over
The more stuff you push into I18N out
of L10N, the less complicated &
expensive the process (Schmitz, 2001)
Gregory M. Shreve, Kent State University
Current hot topic in L10n
• Agile Methods
– Not really appreciated by translators
A Few Issues
12. März 2010
12.03.2010 Deutsch
• Strings 12/03/2010
(DIN 5008, 2001)

• Sorting 12/03/2010
• Date 12-03-2010 Französisch
12 mars 2010
• Time
• Calendar 03/12/2010
March 12, 2010
• Currency 12 March 2010

• Measurements 2010-03-12 EU
(ISO 8601/EN 28601, 1992)

• Graphics
• Colour/Color
• Writing stiles
• Icons ?
Example Issue

Text einer

• Interpretion of byte arrays as character sequences
• Legacy
– ANSII (0 to 127)
– ISO8859L15 (with €)
– DOS, OEM, CP850
– Windows, MSCP1252
• Unicode
– 0 to 16r10FFFF (1.114.111)
– Subsets: ASCII, ISO8859L1, UCS2
– Complete encodings: UTF7, UTF8, UTF16, UTF32
Byte String Windows Codepage 1252 Windows Codepage 1253
Hex Dez (W. European) (Cyrillic)
0xD6 214 Ö Ц
0xFF 252 ü ь
Unicode Overview

The Unicode codespace is divided into seventeen planes, numbered 0 to 16:

Source: Wikipedia
Smalltalk and Encoding

• Current VisualWorks and ObjectStudio

– Characters are characters
– Strings are sequences of characters
– Interfaces know their string encoding
• Windows functions: UTF16
• Files byte order marks and autodetection
• Rule:
– Never handle encoding inside the application
With all these Tedious Tasks

• Tools are needed

– Internationalization tools
– Localization tools
– Translation tools
Localization Tool Tasks

Units to be Lokalize
localized Localized


Source extract Generate

Modified Program
Source Target
(Skeleton) Program

Localization Tool
Localization Environments

• Translation Memory Systems

– Across, memoQ, SDL Trados
• Localization Tools
– Catalyst, SDL Passolo
• Machine Translation
– Online platforms, local systems
– Rule based versus corpus/statistics based
Translation Memory
Parser Configuration
Localization Tool
SDL Passolo
VisualWorks & I18n

• CLDR Locales
– New in 7.7.1
• Per process locales
• Per process user message catalog support
– New in preview in 7.8
• UserMessage
– Catalog, key, default string
• LBL files
Configuring Trados for LBL Files
Globalization Tools
in VisualWorks
• I18n tool set
– Internationalize your application
• L10n tool set
– Localize your application
• SeaBreeze version 5

• How to determine the best locale for the

– Accept-language in HTTP header
• Example:
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3,fr-ca;q=0.2
• Google
– Location of the user
– Setting-UI on the web site
• Delta Airlines
• Wikipedia, ebay

You might also like