SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
i18n for Web 2.0
Why and how to internationalize your Web 2.0
                application

         Lars Trieloff, Day Software
Why internationalize?
International audiences want localized user interfaces.
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)
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:

    •   Internationalize your plain old Web site

    •   Internationalize your rich internet applications

        •   Javascript, Flash, Silverlight, and more to come

    •   Internationalize your desktop applications
Challenge

 The internationalization problem is multiplied due
  to use of different technologies in Web and rich
internet applications as well as desktop applications
Solution

 Consolidation of internationalization technology: Each
technology has its own internationalization framework:
    We need a common framework for all of them
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
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
Example
How we did it in Mindquarry
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
Steps to consolidated
           i18n
1. Find a common i18n database
   format
2. Extract internationalizable content
   automatically
3. Attach applications to i18n
   database
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
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
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
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
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
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 your users
User-contributed
        internationalization
•   The holy grail

•   Build a community and
    website at the same
    time

•   But hard to achieve

    •   Wikipedia

    •   Open Source projects
User-contributed
        internationalization
•   The holy grail

•   Build a community and
    website at the same
    time

•   But hard to achieve

    •   Wikipedia

    •   Open Source projects
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows for automatic
post-processing, validation and
         quality-control.
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows for automatic
post-processing, validation and
         quality-control.
Build your own
  translation
    website
    Allows users to sign-up,
 contribute localization strings,
costly, but allows for automatic
post-processing, validation and
         quality-control.
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.
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
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
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 network effects

    •   English speaking users benefit from content
        generated by German speaking users

•   Is there a (partial) solution?
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
Solution
•   Structured Content

•   Sometimes easier to
    translate

    •   ratings

    •   locations

    •   time & date

•   Sometimes it is still hard

    •   tags
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
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
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
Wrap-Up

• Web 2.0 needs internationalization
• Consolidate i18n over apps and platforms
• Allow for user-contributed translations
• Make it automated, repeatable and cheap
Thank you very much
               lars@trieloff.net




 For more information, see my weblog at
 http://weblogs.goshaky.com/weblogs/lars

Weitere ähnliche Inhalte

Was ist angesagt?

Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
Tim Burks
 
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
camp_drupal_ua
 
Grigory naumovets.multilingual sites.drupal camp kyiv 2011
Grigory naumovets.multilingual sites.drupal camp kyiv 2011Grigory naumovets.multilingual sites.drupal camp kyiv 2011
Grigory naumovets.multilingual sites.drupal camp kyiv 2011
camp_drupal_ua
 

Was ist angesagt? (20)

Java presentation
Java presentationJava presentation
Java presentation
 
Cloud Native API Design and Management
Cloud Native API Design and ManagementCloud Native API Design and Management
Cloud Native API Design and Management
 
Taking PHP to the next level
Taking PHP to the next levelTaking PHP to the next level
Taking PHP to the next level
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
Ekon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-DesignEkon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-Design
 
Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
 
Drupal entity translation
Drupal entity translationDrupal entity translation
Drupal entity translation
 
Project Zero Php Quebec
Project Zero Php QuebecProject Zero Php Quebec
Project Zero Php Quebec
 
Drupal7 multilingual
Drupal7 multilingualDrupal7 multilingual
Drupal7 multilingual
 
Analysis
AnalysisAnalysis
Analysis
 
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget course
 
Net framework
Net frameworkNet framework
Net framework
 
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
Grigory Naumovets.Multilingual sites.DrupalCamp Kyiv 2011
 
Grigory naumovets.multilingual sites.drupal camp kyiv 2011
Grigory naumovets.multilingual sites.drupal camp kyiv 2011Grigory naumovets.multilingual sites.drupal camp kyiv 2011
Grigory naumovets.multilingual sites.drupal camp kyiv 2011
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
 
upload test 1
upload test 1upload test 1
upload test 1
 

Andere mochten auch

贏家戰略
贏家戰略贏家戰略
贏家戰略
ceodavid
 

Andere mochten auch (15)

Surviving (and Thriving in) the Online Identity Wars
Surviving (and Thriving in) the Online Identity WarsSurviving (and Thriving in) the Online Identity Wars
Surviving (and Thriving in) the Online Identity Wars
 
FormatJS - JSConf Argentina
FormatJS - JSConf ArgentinaFormatJS - JSConf Argentina
FormatJS - JSConf Argentina
 
Internationalization
InternationalizationInternationalization
Internationalization
 
Historica granizada
Historica granizadaHistorica granizada
Historica granizada
 
Historicagranizada
HistoricagranizadaHistoricagranizada
Historicagranizada
 
Aposta Pel Patrimoni
Aposta Pel  PatrimoniAposta Pel  Patrimoni
Aposta Pel Patrimoni
 
ict22 lec1
ict22 lec1ict22 lec1
ict22 lec1
 
Google06
Google06Google06
Google06
 
Larks internationalization presentation
Larks internationalization presentationLarks internationalization presentation
Larks internationalization presentation
 
Web Usability International Design
Web Usability   International DesignWeb Usability   International Design
Web Usability International Design
 
贏家戰略
贏家戰略贏家戰略
贏家戰略
 
symfony : I18n And L10n
symfony : I18n And L10nsymfony : I18n And L10n
symfony : I18n And L10n
 
Advanced Collaboration And Beyond
Advanced Collaboration And BeyondAdvanced Collaboration And Beyond
Advanced Collaboration And Beyond
 
Pinterest Presentation
Pinterest PresentationPinterest Presentation
Pinterest Presentation
 
React & Redux
React & ReduxReact & Redux
React & Redux
 

Ähnlich wie Living in a multiligual world: Internationalization for Web 2.0 Applications

symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorial
oscon2007
 
Presentation eXo Foss Bridge
Presentation eXo Foss BridgePresentation eXo Foss Bridge
Presentation eXo Foss Bridge
Jeremi Joslin
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
lisab517
 
OSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of ChandlerOSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of Chandler
Ted Leung
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
Ben Cheng
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
ahkjsdcsadc
 

Ähnlich wie Living in a multiligual world: Internationalization for Web 2.0 Applications (20)

Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorial
 
How To Build And Launch A Successful Globalized App From Day One Or All The ...
How To Build And Launch A Successful Globalized App From Day One  Or All The ...How To Build And Launch A Successful Globalized App From Day One  Or All The ...
How To Build And Launch A Successful Globalized App From Day One Or All The ...
 
Presentation eXo Foss Bridge
Presentation eXo Foss BridgePresentation eXo Foss Bridge
Presentation eXo Foss Bridge
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
 
OSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of ChandlerOSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of Chandler
 
wt mod3.pdf
wt mod3.pdfwt mod3.pdf
wt mod3.pdf
 
Modern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettextModern javascript localization with c-3po and the good old gettext
Modern javascript localization with c-3po and the good old gettext
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
 
Barcelona Multilanguage
Barcelona MultilanguageBarcelona Multilanguage
Barcelona Multilanguage
 
Open Social Summit Korea Overview
Open Social Summit Korea OverviewOpen Social Summit Korea Overview
Open Social Summit Korea Overview
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 

Mehr von Lars Trieloff

How to get value out of data
How to get value out of dataHow to get value out of data
How to get value out of data
Lars Trieloff
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply Chain
Lars Trieloff
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5
Lars Trieloff
 

Mehr von Lars Trieloff (20)

Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless WorldPutting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
 
Serverless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and ClojureServerless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and Clojure
 
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
 
How to get value out of data
How to get value out of dataHow to get value out of data
How to get value out of data
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply Chain
 
Business Reasons for Predictive Applications
Business Reasons for Predictive ApplicationsBusiness Reasons for Predictive Applications
Business Reasons for Predictive Applications
 
ADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it WorkADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it Work
 
Automated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data FrankfurtAutomated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data Frankfurt
 
Automated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data HamburgAutomated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data Hamburg
 
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data DüsseldorfAutomated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
 
Automated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data BrusselsAutomated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data Brussels
 
Automated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data AmsterdamAutomated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data Amsterdam
 
Automated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data ParisAutomated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data Paris
 
Automated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data ViennaAutomated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data Vienna
 
Big Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big DataBig Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big Data
 
10 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 201410 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 2014
 
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big DataBig Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
 
The DNA of Marketing
The DNA of MarketingThe DNA of Marketing
The DNA of Marketing
 
Cross community campaigns with CQ5
Cross community campaigns with CQ5Cross community campaigns with CQ5
Cross community campaigns with CQ5
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5
 

Kürzlich hochgeladen

The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
daisycvs
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
lizamodels9
 
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
dlhescort
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
lizamodels9
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
lizamodels9
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Sheetaleventcompany
 

Kürzlich hochgeladen (20)

Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
Falcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business GrowthFalcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business Growth
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort ServiceEluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
 
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
 
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLJAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
 

Living in a multiligual world: Internationalization for Web 2.0 Applications

  • 1. i18n for Web 2.0 Why and how to internationalize your Web 2.0 application Lars Trieloff, Day Software
  • 2. Why internationalize? International audiences want localized user interfaces.
  • 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. Do it yourself, or someone else will do it
  • 5. Do it yourself, or someone else will do it
  • 6. Do it yourself, or someone else will do it
  • 7. Do it yourself, or someone else will do it
  • 8. Do it yourself, or someone else will do it
  • 9. What is different in Web 2.0 internationalization?
  • 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
  • 15. Example How we did it in Mindquarry
  • 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
  • 23. How to get translations
  • 24. How to get translations do it yourself
  • 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