Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Post on 28-Mar-2015

494 views 4 download

description

Unlike other software products, web applications are visible world-wide by default. To be beneficial for users world-wide, especially for the increasing number of users from non-English speaking countries, companies involved in the internationalization of their business have to consider website localization. Website localization is indispensable to make the webside a global success. However, base Smalltalk systems, Seaside and previous versions of seaBreeze are minimally prepared for localization. The presentation explains fundamentals of Internationalization (I18N) and Localization (L10N) and deduces an Internationalization and Localization Model in Smalltalk, implemented in SeaBreeze. Concepts of localization processes and tools are demonstrated, including Machine Translation (MT) and Translation Memories (TM). A demo of seaBreeze 5.0 concludes the presentation.

Transcript of Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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)

GLOBALIZATION G 1 2 3 4 5 6 7 8 9 10 11 N

Globalization, Internationalization,

and Localization

Source: Multilingual Supplement April, Mai 2009

Internationalization

• The process of enabling a product at a

technical level for localization. Source: LISA [http://www.lisa.org/Glossary.108.0.html?tid=1]

• Engineering culture and language-neutral

software kernels that can be compiled

together with separate “locale packages”

usually contained in independent resource

files. [Gregory M. Shreve, Kent State University]

Internationalization

• 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

indispensable. [Gregory M. Shreve, Kent State University]

Localization

The process of modifying products or

services to account for differences in distinct

markets.

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 [http://www.lisa.org/Glossary.108.0.html?tid=1]

Software Localization

• Adaptation of software for a particular

geographical region

• Translation of the user interface

• Linguistic and cultural adaptation of

websites

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)

An Integrated Process

Gregory M. Shreve, Kent State University

Current hot topic in L10n

Business

• Agile Methods

– SCRUM

– Not really appreciated by translators

A Few Issues

• Strings

• Sorting

• Date

• Time

• Calendar

• Currency

• Measurements

• Graphics

• Colour/Color

• Writing stiles

• Icons

12. März 2010

12.03.2010

12/03/2010

12/03/2010

12-03-2010

12 mars 2010

03/12/2010

March 12, 2010

12 March 2010

2010-03-12

?

?

Deutsch (DIN 5008, 2001)

Französisch

Amerikanisch

EU (ISO 8601/EN 28601, 1992)

Example Issue

Abgeschnittener

Text einer

Schaltfläche.

Beenden ?

Sorting

Coding

Codepages

• 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

• ODBC: UTF16

• Rule:

– Never handle encoding inside the application

With all these Tedious Tasks

• Tools are needed

– Internationalization tools

– Localization tools

– Translation tools

Localization Tool Tasks

extract Program

Source

Modified Program

Source

(Skeleton)

Units to be

localized

Target

Program

Source

Generate

Localized

Units

Localization Tool

Glossaries

TMs TVs

Lokalize

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

Web-Server-Question

• How to determine the best locale for the

visitor?

– 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

• CNN

– Setting-UI on the web site

• Delta Airlines

– URL

• Wikipedia, ebay

Demo