8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 1/26
Internationalization
in Software Designand architecture
Multi-Layer and Multi-tierArchitecture
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 2/26
Introduction
Internationalization(i18n) is the process of
designing an application so that it can be adapted
to different languages and regions, without
requiring engineering changes.
Localization(i10n) is the process of adapting
software for a specific region or language byadding locale-specific components and
translating text.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 3/26
Focal Points of Internationalization
Language
Computer-encoded text
Alphabets/scripts; most recent systems use the Unicodestandard to solve many of the character encoding problems.
Different system of numerals.
Writing direction
Text processing differences, such as the concept of capitalization
Input
Enablement of keyboard shortcuts on any keyboard layouts.
Graphical representation of text(printed materials,online images containing text)
Spoken(Audio)
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 4/26
Focal Point (Contd.)
Culture
Images and Colors issues
Names and titles
Currency (symbols, positions of currency markers)
Weights and measures
Government assigned numbers (such as SSN in US,
National insurance number in the UK and in Pakistan
CNIC No.) Telephone numbers, addresses and postal codes etc.
Paper Size.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 5/26
Focal Points (Contd.)
Writing Conventions
Date/time format, including use of different
calendars
Time Zones
Formatting Numbers(decimal separator, digit
grouping) Differences in symbols ( e.g. quoting in
English and << >> in French)
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 6/26
Focal Points (Contd.)
Any other aspect of the product or service that is
subject to regulatory compliance
Disputed borders shown in maps.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 7/26
Multi-layer andMulti-tier Architecture
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 8/26
What is Architecture.?
Formal Definition: Software architecture is the fundamental
organizationof a system, embodied in its components, their
relationships to each other and the environment, and the
principles governing its design and evolution.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 9/26
Why is i18n important?
Build once, sell anywhere
Modularity
With the addition of localization data, the same executable
can be run worldwide.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 10/26
Characteristics of i18n...
Textual elements such as status messages and the GUI component
labels are not hardcoded in the program. Instead, they are stored
outside the source code and retrieved dynamically.
Support for new languages does not require recompilation.
Other culturally-dependent data, such as dates and currencies,
appear in formats that conform to the end-user's region and
language.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 11/26
Really why
Carmaggedon
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 12/26
The rest is Java why?
Java:
is readable!
has most complete built-in i18n support.
easily illustrates correct implementation of many i18n concepts.
concepts can be extended to any language.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 13/26
Java Example:Messages...
Before:
System.out.println("Hello.");
System.out.println("How are you?");
System.out.println("Goodbye.");
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 14/26
Too much code!
After:
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 15/26
SampleRun
% java I18NSample fr FR
Bonjour.
Comment allez-vous?
Au revoir.
% java I18NSample en US
Hello.
How are you?
Goodbye.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 16/26
What do I have to change?
Just a few things
messages
labels on GUI components
online help
sounds
colors
graphics
icons
dates
times
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 17/26
Whats easily translatable?
Isolate it! Status messages
Error messages
Log file entries
GUI component labels BAD!
GOOD!
Button okButton = new Button(³OK´);
String okLabel = ButtonLabel.getString("OkKey");
Button okButton = new Button(okLabel);
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 18/26
Localizability
As confusing as it may sound, localizability is an aspect
of internationalization, not localization.
It involves enabling the product to be easily localized,
without manipulating code or having to edit files that
contain code.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 19/26
Tips for Localizability
Never hard-code anything :-Even constants, literals, and similar items can be defined in the definition
Section of a program, or in a header file. This is more than i18n, it's structured coding.
Do not restrict font size:-
Asian characters require a much larger point size for legibility than Latin
characters. If a small font size is necessary to fit all the English text into a layout, then the
layout needs to be redesigned. See the layout section for more information.
Be aware that the operating system(s) your program is running on
may also be localized.:-
Messages may be translated, even in system commands. If you need to parse the
output of an OS command, change the environment locale for that command.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 20/26
Software Architecture
Software architecture is process of designing the
global organization of a software system,
including:
Dividing software into subsystems.
Deciding how these will interact.
Determining their interfaces.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 21/26
The importance of software
architecture Why you need to develop an architectural model:
To enable everyone to better understand the system
To allow people to work on individual pieces of the system in
isolation
To prepare for extension of the system
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 22/26
Describing an architecture
using UML
All UML diagrams can be useful to describe aspects of the
architectural model
Four UML diagrams are particularly suitable for architecture
modelling:
Package diagrams Component diagrams
Deployment diagrams
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 23/26
UML diagrams
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 24/26
TheMulti-Layer architectural
pattern
In a layered system, each layer communicates onlywith the layer immediately below it.
Each layer has a well-defined interface used by the layerimmediately above.
The higher layer sees the lower layer as a set of services.
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 25/26
Example of multi-layer systems
8/3/2019 Inter Nationalization in Software Design and Architecture
http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 26/26
The multi-layer architecture
and design principles1. Divide and conquer : The layers can be independentlydesigned.
2. Increase cohesion: Well-designed layers have layercohesion.
3. Reduce coupling: Well-designed lower layers do notknow about the higher layers and the only connectionbetween layers is through the API.
4. Increase abstraction: you do not need to know thedetails of how the lower layers are implemented.
5. Increase reusability : The lower layers can often bedesigned generically.