Title: Leveraging Versata for Multiple Languages
1Leveraging Versata for Multiple Languages
- David M. Hewitt
- Versata Solution Architect
- david.hewitt_at_versata.com
2Overview of Presentation
- Brief Intro to topic of multiple languages
- Extremely brief overview of Versata
- Discussion of multiple language issues
- Discussion of an Internationalization extension
to Versata - Demonstration of a small application
- Question and Answers via chat
3What is Multi-Lingual
- Ability to build an app in one language and
- Without rebuilding or redesign
- Run in multiple languages
4Example
- The error message for the Credit Limit business
rule
BusinessObject.CUSTOMERS.Constraint.ActBalanceChec
k Account balance (0) exceeds credit limit
(1).
BusinessObject.CUSTOMERS.Constraint.ActBalanceChec
k Kontoabgleichung (0) uumlbersteigt Ihre
Kreditlinie (1).
5Versata Business Logic Development and
Management
6Versata Thumbnail
- Automates Business Logic (transactions, process)
for J2EE using declarative logic - New Development, integrates existing systems
- N-Fold Reduction in Time, Cost Risk
- Development, and especially Maintenance
- Making the business more responsive
- Promotes Enterprise Performance
- Leverages staff expertise in a complex J2EE
environment
7Declarative Business LogicExecutable Business
Requirements
Requirements/Analysis Object Models, Use Cases,
UML, RUP
Versata Logic Server
Specifications
Versata Logic Studio
Graphical Logic Designers
JSP, Servlet, Beans
rules and processes
Java IDE
Logic Repository (XML)
This means Fast (deploy, change) 50X (a
declaration replaces 1 page of Java) 98
automation Simple - Leverages Existing Skills,
Reduce Risk
Database
Applications
Middleware
8BackgroundConcepts
9Software in Multiple Languages
- Software for multiple languages is challenging
- Software for multiple cultures is even harder.
- Requires an understanding of large body of
knowledge - Technical
- Foreign language knowledge
- Foreign culture
- Easy to underestimate challenges
10What Are Those Funny Acronyms
- I18n - Internationalization
- I (18 characters) n
- multiple languages and cultural conventions
without the need for redesign - L10n - Localization
- linguistically and culturally appropriate to the
target locale - G11n - Globalization
- integrating internal/external business functions
with marketing, sales, and customer support in
the world market
11More Acronyms
- Unicode - 16bit code, currently v3.2.0
- 95,221 characters (in 65536 spaces)
- Room for 870,000 more
- Java is Unicode basic multilingual plane
- Covers all current languages (except Klingon
which was rejected on 21-May-2001) - Many historical languages and symbols
- Deals with characters
- http//www.unicode.org/unicode/standard/WhatIsUnic
ode.html - UTF-8, UTF-16, UTF-32
- Each require at most 4 bytes per character
12Yet More Acronyms
- ISO 10646
- ISO-8859-1, ISO Latin 1
- ASCII
- DBCS, SBCS encoding
- Shift-JIS, Big5
- CP1252
13I18n Issues
- Capabilities of end-user machine
- Capabilities of Database
- NCHAR, Unicode, UTF-8, DBCS
- Creation of HTML Web based apps
- Browser encoding
- Fonts available (fixed vs. proportional)
- Java Swing-based applications
- Input Methods (IME)
- Server language, Database language
14I18n Issues (continued)
- Business Logic (context)
- Sorting
- Collation
- Dates, Calendars
- Currency
- BIDI (Bi-Directional Languages)
15Versata and I18n
16Service Summary
- Development Time
- Develop in 1 language
- Extract Strings into properties file
- Edit Properties file for each locale
- Translation time
- Extract strings into a property file
- Edit property file for each locale (validate
layout) - Create login for each locale (specifies apps
locale) - Runtime per login locale localizes
- Date, time, etc
- Screen Text
- Constraint Text
17Runtime Extensions for I18N
- Versata Business Logic and Presentation Engine
are pure Java, and extensible (superclassing) - For Internalization
- Extend Business Logic for translatable dynamic
constraint messages - Extend Presentation Engine for translatable
screen text - Currently a services offering
- Consulting for additional assistance
18Cautions
- Changes server-side code for ALL repositories
- Increased processing of HTML
- not yet measured and correctable
- Does not deal with hard problem of different
languages occupying different screen real-estate
and different directions - Requires functional UTF-8 Encoding
- BIDI Issues have been ignored.
19Advantages
- Multiple Language support with minimal effort
- Separates translation from coding via property
files - Keeps coding simple without managing lookup key
tables - Languages can be added by adding a new property
file to a running system
20Demonstration
- Very simple Customer/Order application
- Development was done in English
- Property files and login screens were added for
French, German, Spanish, Japanese - Small launcher html page built
- Error messages such as Credit Limit Exceeded are
dynamic - Und jetz, wir anfangen. C'est bon, n'est-ce pas?
21Demonstration Screen Samples
22English Login
23German Login
24Sample Property Files and Runtime Result
25Sample Property Files and Runtime Result
- The error message for credit limit rule
BusinessObject.CUSTOMERS.Constraint.ActBalanceChec
k Account balance (0) exceeds credit limit
(1).
BusinessObject.CUSTOMERS.Constraint.ActBalanceChec
k Kontoabgleichung (0) uumlbersteigt Ihre
Kreditlinie (1).
26References
- www.unicode.org
- www.alanwood.net/unicode/index.html
- java.sun.com/j2se/1.4.1/docs/guide/intl/faq.html
- The Java International API Beyond JDK 1.1
- by Mark Davis (mark_at_macciato.com) and Helena Shih
(hshih_at_us.ibm.com) - Java Report, February 1999, pp. 27-36
- discusses the various classes created for
internalization
27Contact Information
- David M. Hewitt
- Solutions Architect
- 1 416-820-4876
- david.hewitt_at_Versata.com
28Thank you for attending!
Thank you for attending!
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
SLIDES - If you would like a copy of the slides,
please visit our website at www.Versata.com and
go to our Online Library. MORE INFO - If you
would like more information or have questions,
please send an email to webinars_at_Versata.com.