Slideshow transcript
Slide 1: i18n for Web 2.0 Why and how to internationalize your Web 2.0 application Lars Trieloff, Day Software
Slide 2: Why internationalize? International audiences want localized user interfaces.
Slide 3: Lars Trieloff • Product Manager, Founder, Blogger, Open Source Coder • Languages I understand: • German, English • Languages I do not understand: • Mandarin, Hindi, Spanish, Arabic, Russian, Portuguese, Bengali, Malay, French, Japanese, Farsi, Urdu, Punjabi, Vietnamese, Tamil, Wu, Javanese, Turkish, Telugu, Korean, Marathi, Italian, Thai, cantonese, gujarati, polish, kannada, burmese (and all other)
Slide 4: Do it yourself, or someone else will do it
Slide 5: Do it yourself, or someone else will do it
Slide 6: Do it yourself, or someone else will do it
Slide 7: Do it yourself, or someone else will do it
Slide 8: Do it yourself, or someone else will do it
Slide 9: What is different in Web 2.0 internationalization?
Slide 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
Slide 11: Challenge The internationalization problem is multiplied due to use of different technologies in Web and rich internet applications as well as desktop applications
Slide 12: Solution Consolidation of internationalization technology: Each technology has its own internationalization framework: We need a common framework for all of them
Slide 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
Slide 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
Slide 15: Example How we did it in Mindquarry
Slide 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
Slide 17: Steps to consolidated i18n 1. Find a common i18n database format 2. Extract internationalizable content automatically 3. Attach applications to i18n database
Slide 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
Slide 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
Slide 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
Slide 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
Slide 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
Slide 23: How to get translations
Slide 24: How to get translations do it yourself
Slide 25: How to get translations ¥ $ € do it yourself pay someone
Slide 26: How to get translations ¥ $ € do it yourself pay someone ask your users
Slide 27: User-contributed internationalization • The holy grail • Build a community and website at the same time • But hard to achieve • Wikipedia • Open Source projects
Slide 28: User-contributed internationalization • The holy grail • Build a community and website at the same time • But hard to achieve • Wikipedia • Open Source projects
Slide 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.
Slide 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.
Slide 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.
Slide 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.
Slide 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
Slide 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
Slide 35: More challenges in Web 2.0 internationalization • User-generated content • Rich Web design
Slide 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?
Slide 37: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 38: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 39: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 40: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 41: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 42: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 43: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 44: Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
Slide 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
Slide 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
Slide 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
Slide 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
Slide 49: Thank you very much lars@trieloff.net For more information, see my weblog at http://weblogs.goshaky.com/weblogs/lars




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 6 (more)