i18n for Web 2.0
Why and how to internationalize your Web 2.0
                application

         Lars Trieloff, Day Sof...
Why internationalize?
International audiences want localized user interfaces.
Lars Trieloff
•   Product Manager, Founder,
    Blogger, Open Source
    Coder

•   Languages I understand:

    •   Germa...
Do it yourself, or someone else will
                do it
Do it yourself, or someone else will
                do it
Do it yourself, or someone else will
                do it
Do it yourself, or someone else will
                do it
Do it yourself, or someone else will
                do it
What is different in Web
2.0 internationalization?
Web 2.0
            internationalization
•   Web sites become Web applications

•   The Web as a platform

•   This means:...
Challenge

 The internationalization problem is multiplied due
  to use of different technologies in Web and rich
internet...
Solution

 Consolidation of internationalization technology: Each
technology has its own internationalization framework:
 ...
What to do
•   Keep all internationalization data in one place

•   Extract internationalization strings from
    applicat...
What do do
    Web
                                                            Web
 application
                          ...
Example
How we did it in Mindquarry
Our technology
         Our problem
• Web application framework: Apache
  Cocoon, with Cocoon i18n Transformer

• Rich int...
Steps to consolidated
           i18n
1. Find a common i18n database
   format
2. Extract internationalizable content
   a...
1. i18n database
     format
• QT Linguist .ts files
• XML files, easy to process
• QT Linguist is a good, easy-to-
  use ...
2. Automatic string
        extraction
• We have three types of source code: XML,
  Java and Javascript

• XML
  • Ruby sc...
3.1. Attach Cocoon
                                   messages.ts
•   Apache Cocoon‘s                (QT Linguist)

    in...
3.2. Attach Dojo
                                messages.ts
                                (QT Linguist)




•   Dojo us...
3.3. Attach Java
•   Message Bundle Reader
                                 messages.ts
    is overwritten
               ...
How to get translations
How to get translations




do it yourself
How to get translations
                 ¥         $
                      €




do it yourself       pay someone
How to get translations
                 ¥         $
                      €




do it yourself       pay someone   ask yo...
User-contributed
        internationalization
•   The holy grail

•   Build a community and
    website at the same
    ti...
User-contributed
        internationalization
•   The holy grail

•   Build a community and
    website at the same
    ti...
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows...
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows...
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows...
Ad-hoc-
translations: use
     a wiki
   Allows users to contribute
localization strings without sign-
up, easy to deploy,...
Pootle: OSS for
   web-based
  translations
  GPL-software, based on Python,
works with .po or XLIFF, integration
 with ve...
Pootle: OSS for
   web-based
  translations
  GPL-software, based on Python,
works with .po or XLIFF, integration
 with ve...
More challenges in Web
2.0 internationalization

• User-generated content
• Rich Web design
User-generated content
•   User-generated content is great

•   But hard to translate

•   But translating it increases ne...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time &...
Graphical text
•   Looks great
•   But hard to internationalize
    •  can break calculated box sizes,
    •  re-creation ...
Graphical text
•   Looks great
•   But hard to internationalize
    •  can break calculated box sizes,
    •  re-creation ...
Graphical text
•   Looks great
•   But hard to internationalize
    •  can break calculated box sizes,
    •  re-creation ...
Wrap-Up

• Web 2.0 needs internationalization
• Consolidate i18n over apps and platforms
• Allow for user-contributed tran...
Thank you very much
               lars@trieloff.net




 For more information, see my weblog at
 http://weblogs.goshaky.c...
Upcoming SlideShare
Loading in...5
×

Living in a multiligual world: Internationalization for Web 2.0 Applications

7,380

Published on

Lars Trieloff's presentation at Web 2.0 Expo Berlin covers the why and how-to of internationalization for web 2.0, consolidating i18n technology and enabling user-contributed translations.

Published in: Business, Technology
2 Comments
6 Likes
Statistics
Notes
  • I took notes on this session: http://climbtothestars.org/archives/2007/11/07/lars-trieloff-i18n-for-web-20-web-20-expo-berlin/<br /><br/>
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you attended this session, please make sure to post feedback at: http://feedback.berlin.web2expo.com/feedbacks/5599-living-in-a-multi-lingual-world-internationalization-in-web-and-desktop-applica<br /><br/>
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
7,380
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
199
Comments
2
Likes
6
Embeds 0
No embeds

No notes for slide

Living in a multiligual world: Internationalization for Web 2.0 Applications

  1. 1. i18n for Web 2.0 Why and how to internationalize your Web 2.0 application Lars Trieloff, Day Software
  2. 2. Why internationalize? International audiences want localized user interfaces.
  3. 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)
  4. 4. Do it yourself, or someone else will do it
  5. 5. Do it yourself, or someone else will do it
  6. 6. Do it yourself, or someone else will do it
  7. 7. Do it yourself, or someone else will do it
  8. 8. Do it yourself, or someone else will do it
  9. 9. What is different in Web 2.0 internationalization?
  10. 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. 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. 12. Solution Consolidation of internationalization technology: Each technology has its own internationalization framework: We need a common framework for all of them
  13. 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. 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
  15. 15. Example How we did it in Mindquarry
  16. 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. 17. Steps to consolidated i18n 1. Find a common i18n database format 2. Extract internationalizable content automatically 3. Attach applications to i18n database
  18. 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. 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. 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. 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. 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
  23. 23. How to get translations
  24. 24. How to get translations do it yourself
  25. 25. How to get translations ¥ $ € do it yourself pay someone
  26. 26. How to get translations ¥ $ € do it yourself pay someone ask your users
  27. 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. 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. 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. 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. 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. 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. 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. 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. 35. More challenges in Web 2.0 internationalization • User-generated content • Rich Web design
  36. 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. 37. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  38. 38. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  39. 39. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  40. 40. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  41. 41. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  42. 42. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  43. 43. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  44. 44. Solution • Structured Content • Sometimes easier to translate • ratings • locations • time & date • Sometimes it is still hard • tags
  45. 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. 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. 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. 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. 49. Thank you very much lars@trieloff.net For more information, see my weblog at http://weblogs.goshaky.com/weblogs/lars
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×