Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

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

Page 1: 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

Page 2: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Anhalt University of Applied Sciences, Köthen

• Founded 1891

• Department of Computer Science

• Software Localization

– Bachelor and Master

Page 3: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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!

Page 4: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Today‘s Topic

• Not only in the Seaside Mailing List:

• How to create multilingual Web Applications?

• Easily!

Page 5: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Localization Process (according to Microsoft)

Page 6: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 7: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Globalization, Internationalization,

and Localization

Source: Multilingual Supplement April, Mai 2009

Page 8: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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]

Page 9: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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]

Page 10: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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]

Page 11: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Software Localization

• Adaptation of software for a particular

geographical region

• Translation of the user interface

• Linguistic and cultural adaptation of

websites

Page 12: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 13: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Current hot topic in L10n

Business

• Agile Methods

– SCRUM

– Not really appreciated by translators

Page 14: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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)

Page 15: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Example Issue

Abgeschnittener

Text einer

Schaltfläche.

Beenden ?

Page 16: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Sorting

Page 17: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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 ü ь

Page 18: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Unicode Overview

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

Source: Wikipedia

Page 19: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 20: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

With all these Tedious Tasks

• Tools are needed

– Internationalization tools

– Localization tools

– Translation tools

Page 21: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 22: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 23: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Translation Memory

Page 24: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Parser Configuration

Page 25: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Localization Tool SDL Passolo

Page 26: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 27: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Configuring Trados for LBL Files

Page 28: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Globalization Tools

in VisualWorks

• I18n tool set

– Internationalize your application

• L10n tool set

– Localize your application

• SeaBreeze version 5

Page 29: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

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

Page 30: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg
Page 31: Multilingual Seaside Web Applications with seaBreeze 5.0 - Georg Heeg

Demo