The document discusses internationalization challenges for Web 2.0 applications and proposes solutions. It notes that Web 2.0 applications use various technologies like JavaScript, Flash, and desktop applications that each have their own internationalization frameworks. It recommends consolidating internationalization by keeping all translation data in a common format and database, and allowing applications to access translations from this single source. The document also addresses challenges of translating user-generated content and graphical text, and suggests structuring content and generating graphics dynamically on the server to improve translatability.
10. Web 2.0
internationalization
• Web sites become Web applications
• The Web as a platform
• This means:
• Internationalize your plain old Web site
• Internationalize your rich internet applications
• Javascript, Flash, Silverlight, and more to come
• Internationalize your desktop applications
11. Challenge
The internationalization problem is multiplied due
to use of different technologies in Web and rich
internet applications as well as desktop applications
12. Solution
Consolidation of internationalization technology: Each
technology has its own internationalization framework:
We need a common framework for all of them
13. What to do
• Keep all internationalization data in one place
• Extract internationalization strings from
application parts
• repeatedly
• automatically
• Let the applications pull the i18n strings
14. What do do
Web
Web
application
application
source code
Translator
RIA source String Localization
RIA
code Extractor Database
Intermediate
Converter
desktop
Intermediate desktop
application
Format application
source code
Translator
16. Our technology
Our problem
• Web application framework: Apache
Cocoon, with Cocoon i18n Transformer
• Rich internet application framework: Dojo
Toolkit, with dojo.i18n.*
• Desktop client: Java and SWT, with Java
Message Bundles
17. Steps to consolidated
i18n
1. Find a common i18n database
format
2. Extract internationalizable content
automatically
3. Attach applications to i18n
database
18. 1. i18n database
format
• QT Linguist .ts files
• XML files, easy to process
• QT Linguist is a good, easy-to-
use and free translation editor
• Can be used by non-
programmers
19. 2. Automatic string
extraction
• We have three types of source code: XML,
Java and Javascript
• XML
• Ruby script parses all XML source code,
finds internationalizable strings not yet in
database and adds them
• Java and Javascript, similar with a more
complex parser
20. 3.1. Attach Cocoon
messages.ts
• Apache Cocoon‘s (QT Linguist)
internationalization
databases are XML files XSLT
• Transformation via
XSLT messages_de.xml
messages_de.xml
(Cocoon i18n)
(Cocoon i18n)
• Multiple output files, one
for each language Apache Cocoon
21. 3.2. Attach Dojo
messages.ts
(QT Linguist)
• Dojo uses JSON as
XSLT
internationalization
format messages_de.xml
messages_de.xml
(Cocoon i18n)
(Cocoon i18n)
• Transformation via
XSLT Apache Cocoon
• Handled dynamically via messages_de.js
messages_de.js
(Dojo i18n)
(Dojo i18n)
Cocoon
Dojo Widget
22. 3.3. Attach Java
• Message Bundle Reader
messages.ts
is overwritten
(QT Linguist)
• Uses internationalization
database directory
• i18n Adapter
Internationalization
database is being
Desktop Client
distributed with desktop
client
25. How to get translations
¥ $
€
do it yourself pay someone
26. How to get translations
¥ $
€
do it yourself pay someone ask your users
27. User-contributed
internationalization
• The holy grail
• Build a community and
website at the same
time
• But hard to achieve
• Wikipedia
• Open Source projects
28. User-contributed
internationalization
• The holy grail
• Build a community and
website at the same
time
• But hard to achieve
• Wikipedia
• Open Source projects
29. Build your own
translation
website
Allows users to sign-up,
contribute localization strings,
costly, but allows for automatic
post-processing, validation and
quality-control.
30. Build your own
translation
website
Allows users to sign-up,
contribute localization strings,
costly, but allows for automatic
post-processing, validation and
quality-control.
31. Build your own
translation
website
Allows users to sign-up,
contribute localization strings,
costly, but allows for automatic
post-processing, validation and
quality-control.
32. Ad-hoc-
translations: use
a wiki
Allows users to contribute
localization strings without sign-
up, easy to deploy, but requires
manual post-processing,
validation and quality-control.
33. Pootle: OSS for
web-based
translations
GPL-software, based on Python,
works with .po or XLIFF, integration
with version control, basic project
management, used by 20+ open
source projects
http://pootle.wordforge.org
34. Pootle: OSS for
web-based
translations
GPL-software, based on Python,
works with .po or XLIFF, integration
with version control, basic project
management, used by 20+ open
source projects
http://pootle.wordforge.org
35. More challenges in Web
2.0 internationalization
• User-generated content
• Rich Web design
36. User-generated content
• User-generated content is great
• But hard to translate
• But translating it increases network effects
• English speaking users benefit from content
generated by German speaking users
• Is there a (partial) solution?
37. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
38. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
39. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
40. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
41. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
42. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
43. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
44. Solution
• Structured Content
• Sometimes easier to
translate
• ratings
• locations
• time & date
• Sometimes it is still hard
• tags
45. Graphical text
• Looks great
• But hard to internationalize
• can break calculated box sizes,
• re-creation necessary
• Do not do it
• unless you can do it right
• create dynamically on server
46. Graphical text
• Looks great
• But hard to internationalize
• can break calculated box sizes,
• re-creation necessary
• Do not do it
• unless you can do it right
• create dynamically on server
47. Graphical text
• Looks great
• But hard to internationalize
• can break calculated box sizes,
• re-creation necessary
• Do not do it
• unless you can do it right
• create dynamically on server
48. Wrap-Up
• Web 2.0 needs internationalization
• Consolidate i18n over apps and platforms
• Allow for user-contributed translations
• Make it automated, repeatable and cheap
49. Thank you very much
lars@trieloff.net
For more information, see my weblog at
http://weblogs.goshaky.com/weblogs/lars