SlideShare a Scribd company logo
Multilingual Drupal
    from 5 to 6
        Gábor Hojtsy
    September 19., 2007.
About me

• Working with Open Source since 1999,
  was head of PHP.net and the PHP
  documentation
• Developing with Drupal since 2003,
  multiple contributed modules,
  Hungarian translations

• Drupal 6 core committer
About you


• Experienced Drupal site builders?
• Who deals with multilingual issues?
• Knowledge in both areas?
Concepts
Your target audience
• A multilingual web site is available
  in multiple languages. It is not
  necessarily an international one.

• An international web site is intended
  to be used internationally. It is not
  necessarily a multilingual one.
Two terms


Internationalization (i18n) is the
design and development of a product,
application or document content that
enables easy localization for target
groups that vary in culture, region or
language (locale).
Two terms


Localization (L10n) is the adaptation
of a product, application or document
content to meet the language, cultural
and other requirements of a specific
target market (locale).
Confusions

   i18n                 L10n



multilingual       international
Drupal
Drupal “by design”
• There is the built in interface, which
  is always served from code

• You provide everything else (posts,
  menu items, admin defined blocks,
  and so on)
Famous issues
๏ Default content type names
  are not translated

๏ Built-in, but modified menu
  items are neither

๏ The “Forums” vocabulary title
  is not translated
Drupal 5
Built into Drupal 5

• Translatable installer
• Basic interface language
  list setup

• Runtime interface
  translation with per user
  preferences
How does it work?

• GNU gettext backend and format used
• Translation templates extracted from
  source code

• CVS used to store/release translations
• User imports translation files in
  Drupal (which stores them in the DB)
Recognize the source

• t(‘Go to %page’, array(‘%page’ => $p));
• format_plural($count, ‘1 year’,
  ‘@count years’);
• Several special cases: permissions,
  watchdog type names, and so on
Contributed modules


• Autolocale / localized profile
• Internationalization module suite
• Localizer module suite
• XLIFF tools
Computer Aided
  Translation
Outside Drupal

• Content translation works in Drupal
• But professionals use different tools
  • Translation memories
  • Automated translation
  • Professional content review
CAT workflow
Drupal implementation
Demo
Drupal 6
Drupal 6 goes forward!

• New language subsystem
• Easy interface translation import
• Performance optimizations
• Content translation
• Textgroups API
Drupal 6 architecture



                            This was not
                        ready on time, so it
                          is not included.
Languages!

• English and native language names
• Writing direction (LTR or RTL)
• Weights
• Path prefix and subdomain setup and
  recognition
Right to left themes
• All CSS file additions are
  intercepted and RTL cascade files
  are searched for

• Most core themes have RTL
  support, full support expected in
  final release
Language detection


• Based on the IRI (domain, path)
• User preferences
• Browser settings
• Falls back on site default
Automated import

• Friendlier translation package format
• Batch API for tasks to run in multiple
  HTTP requests
• Install time import of interface
  translations
• Module/theme changes result in
  translation imports
Translatable JavaScript

• Drupal.t() and Drupal.formatPlural()
  to translate strings in JavaScript

• Works with on the fly string collection
  or preprocessing

• Also brings simple theming to
  JavaScript
Text groups API


• Multiple text groups possible to
  translate user defined content
• This remains a programming API for
  Drupal 6, not used in the core system
On-page interface
        translation

• Ability to collect all strings used to
  build the page

• Try localization client module for
  Drupal 6!

• Also useful for by-site optimization
Content language
• Any post can have a language
  associated, or can be neutral
• This is configurable per
  content type
• Does not mean content
  translation
Content translation

• Posts can be associated with each
  other, organized into translation sets

• Basic workflow supported to check for
  outdated translations

• Translation links, language switcher
  block

• Simple API for content/field types
Per-language aliases

• Path aliases can be language
  dependent
• Still fall back to default alias, if no
  specific alias defined
• Examples: ‘home’, ‘honlap’, ‘inicio’
Lower level changes

• Multilingual request
  handling made possible
• Emails are sent in the
  language of the user targeted
  (API also changed a lot)

• Log messages are stored in
  English, localized on display
More for hard-core people


 • Modify some site interface strings by
   adding an array to settings.php
 • No need for locale module, could be
   used to customize English sites
Still no way to translate
• Site settings
• Categories
• User defined menus
• Aggregator categories
• Profile field titles and category names
• Content type properties
Contributed modules


• i18n and localizer is here to stay
• Many more contributed modules
  can/should use the enhancements
And still...


There is a lot more to
  love in Drupal 6
  (You will hear about these a lot)
New kid on the block
Localization server

• Making interface translation for
  language groups a lot easier
• We are moving from CVS and project
  management to a web application
• Translation sharing, support for the
  new packaging format

• My presentation: 14h, Sun room
Try Drupal 6!

• Drupal 6 beta 1:
  http://drupal.org/drupal-6.0-beta1
• Nightly development snapshot:
  http://drupal.org/node/97368
• Report bugs at http://drupal.org/
  node/add/project_issue/drupal/bug
Read the thesis
• http://hojtsy.hu/files/
  GaborHojtsyThesis.pdf
• A summary of i18n related problems
• How Drupal 5, Joomla 1.0, TYPO3 4.1
  and Plone approach these problems

• Planning of the Drupal 6 solutions
• Not everything ended up implemented
  as documented there
Sponsored by


• Development Seed (infrastructure,
  Jose A. Reyero)
• Google Summer of Code (localization
  tools for Drupal 6)
Thanks!


All photos included made by myself in
Hungary, Bonn and Sankt Augustin.

More Related Content

What's hot

Reintroducing Web Technology
Reintroducing Web TechnologyReintroducing Web Technology
Reintroducing Web Technology
Isriya Paireepairit
 
Database software
Database softwareDatabase software
Database software
Aminul Islam
 
Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPress
Matt Smith
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
Sasi Kumar
 
Claroline Traduction
Claroline TraductionClaroline Traduction
Claroline Traduction
Claroline
 
SEO for multilingual websites
SEO for multilingual websitesSEO for multilingual websites
SEO for multilingual websites
LingoHub
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
Amal Mohan N
 
Ruby i18n - internationalization for ruby
Ruby i18n - internationalization for rubyRuby i18n - internationalization for ruby
Ruby i18n - internationalization for ruby
LingoHub
 
Everything multilingual in Drupal 8
Everything multilingual in Drupal 8Everything multilingual in Drupal 8
Everything multilingual in Drupal 8
Gábor Hojtsy
 
QBASIC
QBASICQBASIC
QBASIC
nivi88
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
oscon2007
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
Gh-Mohammed Eldadah
 
Unit 1-introduction to scripts
Unit 1-introduction to scriptsUnit 1-introduction to scripts
Unit 1-introduction to scripts
sana mateen
 
Drupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward toDrupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward to
Gábor Hojtsy
 
Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)
Gábor Hojtsy
 
Php
PhpPhp
[submission] Final_Presentation
[submission] Final_Presentation[submission] Final_Presentation
[submission] Final_Presentation
Marcus Low Junxiang
 
What is PHP?
What is PHP?What is PHP?
What is PHP?
audreys9327
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! language
André Mayer
 
Go Lang
Go LangGo Lang

What's hot (20)

Reintroducing Web Technology
Reintroducing Web TechnologyReintroducing Web Technology
Reintroducing Web Technology
 
Database software
Database softwareDatabase software
Database software
 
Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPress
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Claroline Traduction
Claroline TraductionClaroline Traduction
Claroline Traduction
 
SEO for multilingual websites
SEO for multilingual websitesSEO for multilingual websites
SEO for multilingual websites
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Ruby i18n - internationalization for ruby
Ruby i18n - internationalization for rubyRuby i18n - internationalization for ruby
Ruby i18n - internationalization for ruby
 
Everything multilingual in Drupal 8
Everything multilingual in Drupal 8Everything multilingual in Drupal 8
Everything multilingual in Drupal 8
 
QBASIC
QBASICQBASIC
QBASIC
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
Unit 1-introduction to scripts
Unit 1-introduction to scriptsUnit 1-introduction to scripts
Unit 1-introduction to scripts
 
Drupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward toDrupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward to
 
Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)
 
Php
PhpPhp
Php
 
[submission] Final_Presentation
[submission] Final_Presentation[submission] Final_Presentation
[submission] Final_Presentation
 
What is PHP?
What is PHP?What is PHP?
What is PHP?
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! language
 
Go Lang
Go LangGo Lang
Go Lang
 

Viewers also liked

Drupal 6 Theming
Drupal 6 ThemingDrupal 6 Theming
Drupal 6 Theming
merlinofchaos
 
Mobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarMobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinar
Tom Deryckere
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal Camp
Dipen Chaudhary
 
she de franco
she de francoshe de franco
09 FóRky SáZka
09  FóRky  SáZka09  FóRky  SáZka
09 FóRky SáZka
jedlickak07
 
My Test
My TestMy Test
My Test
dzhu2005
 
Workstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e CompetitiviWorkstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e Competitivi
jexxon
 
09 FóRky ČIšTěNí Monitoru
09  FóRky ČIšTěNí Monitoru09  FóRky ČIšTěNí Monitoru
09 FóRky ČIšTěNí Monitoru
jedlickak07
 
No Es Mentira
No Es MentiraNo Es Mentira
AVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreenAVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreen
Geert Wissink
 
Droog Showroom Design - final version
Droog Showroom Design - final versionDroog Showroom Design - final version
Droog Showroom Design - final version
jin.fan
 
Sales Management For Extreme Sales Results
Sales Management For Extreme Sales ResultsSales Management For Extreme Sales Results
Sales Management For Extreme Sales Results
Callidus Software
 
Web 2.0: How Emerging Non-Institutions Organize Knowledge
Web 2.0: How Emerging Non-Institutions Organize KnowledgeWeb 2.0: How Emerging Non-Institutions Organize Knowledge
Web 2.0: How Emerging Non-Institutions Organize Knowledge
jexxon
 
120406 aiesec presentation
120406 aiesec presentation120406 aiesec presentation
120406 aiesec presentation
Haishuo's Learning Studio
 
The Promise of Authority in Social Scholarship
The Promise of Authority in Social ScholarshipThe Promise of Authority in Social Scholarship
The Promise of Authority in Social Scholarship
lcohen
 
Hbd, Llc. Master Profile
Hbd, Llc.   Master ProfileHbd, Llc.   Master Profile
Hbd, Llc. Master Profile
tmcs1959
 
Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3
Andrea Rossetti
 
Vidusign presentation Slovenian
Vidusign presentation SlovenianVidusign presentation Slovenian
Vidusign presentation Slovenian
Joel Josephson
 
Surface Computing
Surface ComputingSurface Computing
Surface Computing
randyp311
 
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab ProjectRegional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
jexxon
 

Viewers also liked (20)

Drupal 6 Theming
Drupal 6 ThemingDrupal 6 Theming
Drupal 6 Theming
 
Mobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarMobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinar
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal Camp
 
she de franco
she de francoshe de franco
she de franco
 
09 FóRky SáZka
09  FóRky  SáZka09  FóRky  SáZka
09 FóRky SáZka
 
My Test
My TestMy Test
My Test
 
Workstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e CompetitiviWorkstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e Competitivi
 
09 FóRky ČIšTěNí Monitoru
09  FóRky ČIšTěNí Monitoru09  FóRky ČIšTěNí Monitoru
09 FóRky ČIšTěNí Monitoru
 
No Es Mentira
No Es MentiraNo Es Mentira
No Es Mentira
 
AVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreenAVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreen
 
Droog Showroom Design - final version
Droog Showroom Design - final versionDroog Showroom Design - final version
Droog Showroom Design - final version
 
Sales Management For Extreme Sales Results
Sales Management For Extreme Sales ResultsSales Management For Extreme Sales Results
Sales Management For Extreme Sales Results
 
Web 2.0: How Emerging Non-Institutions Organize Knowledge
Web 2.0: How Emerging Non-Institutions Organize KnowledgeWeb 2.0: How Emerging Non-Institutions Organize Knowledge
Web 2.0: How Emerging Non-Institutions Organize Knowledge
 
120406 aiesec presentation
120406 aiesec presentation120406 aiesec presentation
120406 aiesec presentation
 
The Promise of Authority in Social Scholarship
The Promise of Authority in Social ScholarshipThe Promise of Authority in Social Scholarship
The Promise of Authority in Social Scholarship
 
Hbd, Llc. Master Profile
Hbd, Llc.   Master ProfileHbd, Llc.   Master Profile
Hbd, Llc. Master Profile
 
Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3
 
Vidusign presentation Slovenian
Vidusign presentation SlovenianVidusign presentation Slovenian
Vidusign presentation Slovenian
 
Surface Computing
Surface ComputingSurface Computing
Surface Computing
 
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab ProjectRegional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
Regional Partnerships for Living Labs: the Case of Sicily and the MedLab Project
 

Similar to Barcelona Multilanguage

Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"
Gábor Hojtsy
 
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
Scott Abel
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...
Combell NV
 
Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009
Evergreen ILS
 
Introduction to Drupal Basics
Introduction to Drupal BasicsIntroduction to Drupal Basics
Introduction to Drupal Basics
Juha Niemi
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)
Eugenio Minardi
 
International sites hreflang video slides
International sites hreflang video slidesInternational sites hreflang video slides
International sites hreflang video slides
Dmitry Sergiets
 
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
 
Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7
robinpuga
 
International sites hreflang
International sites hreflangInternational sites hreflang
International sites hreflang
Dmitry Sergiets
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPA
Gil Fink
 
Drupal
DrupalDrupal
Multilingual WordPress (WordCamp Toronto 2014)
Multilingual WordPress (WordCamp Toronto 2014)Multilingual WordPress (WordCamp Toronto 2014)
Multilingual WordPress (WordCamp Toronto 2014)
Matt Smith
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
ADARSH BHATT
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal Commerce
DrupalDay
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
Pavan Kalyan
 
Multilingual website in Drupal 8
Multilingual website in Drupal 8Multilingual website in Drupal 8
Multilingual website in Drupal 8
valuebound
 
wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingual
Amit Kvint
 
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?
MobiDev
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
Lars Trieloff
 

Similar to Barcelona Multilanguage (20)

Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"
 
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
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...
 
Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009
 
Introduction to Drupal Basics
Introduction to Drupal BasicsIntroduction to Drupal Basics
Introduction to Drupal Basics
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)
 
International sites hreflang video slides
International sites hreflang video slidesInternational sites hreflang video slides
International sites hreflang video slides
 
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
 
Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7
 
International sites hreflang
International sites hreflangInternational sites hreflang
International sites hreflang
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPA
 
Drupal
DrupalDrupal
Drupal
 
Multilingual WordPress (WordCamp Toronto 2014)
Multilingual WordPress (WordCamp Toronto 2014)Multilingual WordPress (WordCamp Toronto 2014)
Multilingual WordPress (WordCamp Toronto 2014)
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal Commerce
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
 
Multilingual website in Drupal 8
Multilingual website in Drupal 8Multilingual website in Drupal 8
Multilingual website in Drupal 8
 
wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingual
 
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?
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
 

Recently uploaded

"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan..."Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
Fwdays
 
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptxFIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Alliance
 
History and Introduction for Generative AI ( GenAI )
History and Introduction for Generative AI ( GenAI )History and Introduction for Generative AI ( GenAI )
History and Introduction for Generative AI ( GenAI )
Badri_Bady
 
UiPath Community Day Amsterdam: Code, Collaborate, Connect
UiPath Community Day Amsterdam: Code, Collaborate, ConnectUiPath Community Day Amsterdam: Code, Collaborate, Connect
UiPath Community Day Amsterdam: Code, Collaborate, Connect
UiPathCommunity
 
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptxFIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Alliance
 
FIDO Munich Seminar: Securing Smart Car.pptx
FIDO Munich Seminar: Securing Smart Car.pptxFIDO Munich Seminar: Securing Smart Car.pptx
FIDO Munich Seminar: Securing Smart Car.pptx
FIDO Alliance
 
Increase Quality with User Access Policies - July 2024
Increase Quality with User Access Policies - July 2024Increase Quality with User Access Policies - July 2024
Increase Quality with User Access Policies - July 2024
Peter Caitens
 
NVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space ExplorationNVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space Exploration
Alison B. Lowndes
 
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
OnBoard
 
What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024
Stephanie Beckett
 
TrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
TrustArc Webinar - Innovating with TRUSTe Responsible AI CertificationTrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
TrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
TrustArc
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
Zilliz
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
Priyanka Aash
 
FIDO Munich Seminar: FIDO Tech Principles.pptx
FIDO Munich Seminar: FIDO Tech Principles.pptxFIDO Munich Seminar: FIDO Tech Principles.pptx
FIDO Munich Seminar: FIDO Tech Principles.pptx
FIDO Alliance
 
Generative AI technology is a fascinating field that focuses on creating comp...
Generative AI technology is a fascinating field that focuses on creating comp...Generative AI technology is a fascinating field that focuses on creating comp...
Generative AI technology is a fascinating field that focuses on creating comp...
Nohoax Kanont
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
Zilliz
 
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
DefCamp_2016_Chemerkin_Yury_--_publish.pdfDefCamp_2016_Chemerkin_Yury_--_publish.pdf
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
Yury Chemerkin
 
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptxFIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
FIDO Alliance
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
Priyanka Aash
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Snarky Security
 

Recently uploaded (20)

"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan..."Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stan...
 
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptxFIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
FIDO Munich Seminar Blueprint for In-Vehicle Payment Standard.pptx
 
History and Introduction for Generative AI ( GenAI )
History and Introduction for Generative AI ( GenAI )History and Introduction for Generative AI ( GenAI )
History and Introduction for Generative AI ( GenAI )
 
UiPath Community Day Amsterdam: Code, Collaborate, Connect
UiPath Community Day Amsterdam: Code, Collaborate, ConnectUiPath Community Day Amsterdam: Code, Collaborate, Connect
UiPath Community Day Amsterdam: Code, Collaborate, Connect
 
FIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptxFIDO Munich Seminar Workforce Authentication Case Study.pptx
FIDO Munich Seminar Workforce Authentication Case Study.pptx
 
FIDO Munich Seminar: Securing Smart Car.pptx
FIDO Munich Seminar: Securing Smart Car.pptxFIDO Munich Seminar: Securing Smart Car.pptx
FIDO Munich Seminar: Securing Smart Car.pptx
 
Increase Quality with User Access Policies - July 2024
Increase Quality with User Access Policies - July 2024Increase Quality with User Access Policies - July 2024
Increase Quality with User Access Policies - July 2024
 
NVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space ExplorationNVIDIA at Breakthrough Discuss for Space Exploration
NVIDIA at Breakthrough Discuss for Space Exploration
 
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
Mastering Board Best Practices: Essential Skills for Effective Non-profit Lea...
 
What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024What's New in Teams Calling, Meetings, Devices June 2024
What's New in Teams Calling, Meetings, Devices June 2024
 
TrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
TrustArc Webinar - Innovating with TRUSTe Responsible AI CertificationTrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
TrustArc Webinar - Innovating with TRUSTe Responsible AI Certification
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
 
FIDO Munich Seminar: FIDO Tech Principles.pptx
FIDO Munich Seminar: FIDO Tech Principles.pptxFIDO Munich Seminar: FIDO Tech Principles.pptx
FIDO Munich Seminar: FIDO Tech Principles.pptx
 
Generative AI technology is a fascinating field that focuses on creating comp...
Generative AI technology is a fascinating field that focuses on creating comp...Generative AI technology is a fascinating field that focuses on creating comp...
Generative AI technology is a fascinating field that focuses on creating comp...
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
 
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
DefCamp_2016_Chemerkin_Yury_--_publish.pdfDefCamp_2016_Chemerkin_Yury_--_publish.pdf
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
 
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptxFIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
FIDO Munich Seminar: Strong Workforce Authn Push & Pull Factors.pptx
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
 

Barcelona Multilanguage

  • 1. Multilingual Drupal from 5 to 6 Gábor Hojtsy September 19., 2007.
  • 2. About me • Working with Open Source since 1999, was head of PHP.net and the PHP documentation • Developing with Drupal since 2003, multiple contributed modules, Hungarian translations • Drupal 6 core committer
  • 3. About you • Experienced Drupal site builders? • Who deals with multilingual issues? • Knowledge in both areas?
  • 5. Your target audience • A multilingual web site is available in multiple languages. It is not necessarily an international one. • An international web site is intended to be used internationally. It is not necessarily a multilingual one.
  • 6. Two terms Internationalization (i18n) is the design and development of a product, application or document content that enables easy localization for target groups that vary in culture, region or language (locale).
  • 7. Two terms Localization (L10n) is the adaptation of a product, application or document content to meet the language, cultural and other requirements of a specific target market (locale).
  • 8. Confusions i18n L10n multilingual international
  • 10. Drupal “by design” • There is the built in interface, which is always served from code • You provide everything else (posts, menu items, admin defined blocks, and so on)
  • 11. Famous issues ๏ Default content type names are not translated ๏ Built-in, but modified menu items are neither ๏ The “Forums” vocabulary title is not translated
  • 13. Built into Drupal 5 • Translatable installer • Basic interface language list setup • Runtime interface translation with per user preferences
  • 14. How does it work? • GNU gettext backend and format used • Translation templates extracted from source code • CVS used to store/release translations • User imports translation files in Drupal (which stores them in the DB)
  • 15. Recognize the source • t(‘Go to %page’, array(‘%page’ => $p)); • format_plural($count, ‘1 year’, ‘@count years’); • Several special cases: permissions, watchdog type names, and so on
  • 16. Contributed modules • Autolocale / localized profile • Internationalization module suite • Localizer module suite • XLIFF tools
  • 17. Computer Aided Translation
  • 18. Outside Drupal • Content translation works in Drupal • But professionals use different tools • Translation memories • Automated translation • Professional content review
  • 21. Demo
  • 23. Drupal 6 goes forward! • New language subsystem • Easy interface translation import • Performance optimizations • Content translation • Textgroups API
  • 24. Drupal 6 architecture This was not ready on time, so it is not included.
  • 25. Languages! • English and native language names • Writing direction (LTR or RTL) • Weights • Path prefix and subdomain setup and recognition
  • 26. Right to left themes • All CSS file additions are intercepted and RTL cascade files are searched for • Most core themes have RTL support, full support expected in final release
  • 27. Language detection • Based on the IRI (domain, path) • User preferences • Browser settings • Falls back on site default
  • 28. Automated import • Friendlier translation package format • Batch API for tasks to run in multiple HTTP requests • Install time import of interface translations • Module/theme changes result in translation imports
  • 29. Translatable JavaScript • Drupal.t() and Drupal.formatPlural() to translate strings in JavaScript • Works with on the fly string collection or preprocessing • Also brings simple theming to JavaScript
  • 30. Text groups API • Multiple text groups possible to translate user defined content • This remains a programming API for Drupal 6, not used in the core system
  • 31. On-page interface translation • Ability to collect all strings used to build the page • Try localization client module for Drupal 6! • Also useful for by-site optimization
  • 32. Content language • Any post can have a language associated, or can be neutral • This is configurable per content type • Does not mean content translation
  • 33. Content translation • Posts can be associated with each other, organized into translation sets • Basic workflow supported to check for outdated translations • Translation links, language switcher block • Simple API for content/field types
  • 34. Per-language aliases • Path aliases can be language dependent • Still fall back to default alias, if no specific alias defined • Examples: ‘home’, ‘honlap’, ‘inicio’
  • 35. Lower level changes • Multilingual request handling made possible • Emails are sent in the language of the user targeted (API also changed a lot) • Log messages are stored in English, localized on display
  • 36. More for hard-core people • Modify some site interface strings by adding an array to settings.php • No need for locale module, could be used to customize English sites
  • 37. Still no way to translate • Site settings • Categories • User defined menus • Aggregator categories • Profile field titles and category names • Content type properties
  • 38. Contributed modules • i18n and localizer is here to stay • Many more contributed modules can/should use the enhancements
  • 39. And still... There is a lot more to love in Drupal 6 (You will hear about these a lot)
  • 40. New kid on the block
  • 41. Localization server • Making interface translation for language groups a lot easier • We are moving from CVS and project management to a web application • Translation sharing, support for the new packaging format • My presentation: 14h, Sun room
  • 42. Try Drupal 6! • Drupal 6 beta 1: http://drupal.org/drupal-6.0-beta1 • Nightly development snapshot: http://drupal.org/node/97368 • Report bugs at http://drupal.org/ node/add/project_issue/drupal/bug
  • 43. Read the thesis • http://hojtsy.hu/files/ GaborHojtsyThesis.pdf • A summary of i18n related problems • How Drupal 5, Joomla 1.0, TYPO3 4.1 and Plone approach these problems • Planning of the Drupal 6 solutions • Not everything ended up implemented as documented there
  • 44. Sponsored by • Development Seed (infrastructure, Jose A. Reyero) • Google Summer of Code (localization tools for Drupal 6)
  • 45. Thanks! All photos included made by myself in Hungary, Bonn and Sankt Augustin.