SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPressMatt Smith
 
Claroline Traduction
Claroline TraductionClaroline Traduction
Claroline TraductionClaroline
 
SEO for multilingual websites
SEO for multilingual websitesSEO for multilingual websites
SEO for multilingual websitesLingoHub
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 
Ruby i18n - internationalization for ruby
Ruby i18n - internationalization for rubyRuby i18n - internationalization for ruby
Ruby i18n - internationalization for rubyLingoHub
 
Everything multilingual in Drupal 8
Everything multilingual in Drupal 8Everything multilingual in Drupal 8
Everything multilingual in Drupal 8Gábor Hojtsy
 
QBASIC
QBASICQBASIC
QBASICnivi88
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Touroscon2007
 
Unit 1-introduction to scripts
Unit 1-introduction to scriptsUnit 1-introduction to scripts
Unit 1-introduction to scriptssana 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 toGá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
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! languageAndré Mayer
 

La actualidad más candente (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
 

Destacado

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 webinarTom Deryckere
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampDipen Chaudhary
 
09 FóRky SáZka
09  FóRky  SáZka09  FóRky  SáZka
09 FóRky SáZkajedlickak07
 
Workstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e CompetitiviWorkstyles e Netstyles Sostenibili e Competitivi
Workstyles e Netstyles Sostenibili e Competitivijexxon
 
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í Monitorujedlickak07
 
AVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreenAVANET Seminar - Digitale Collectie Nederland & EUscreen
AVANET Seminar - Digitale Collectie Nederland & EUscreenGeert Wissink
 
Droog Showroom Design - final version
Droog Showroom Design - final versionDroog Showroom Design - final version
Droog Showroom Design - final versionjin.fan
 
Sales Management For Extreme Sales Results
Sales Management For Extreme Sales ResultsSales Management For Extreme Sales Results
Sales Management For Extreme Sales ResultsCallidus 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 Knowledgejexxon
 
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 Scholarshiplcohen
 
Hbd, Llc. Master Profile
Hbd, Llc.   Master ProfileHbd, Llc.   Master Profile
Hbd, Llc. Master Profiletmcs1959
 
Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3Marco Tullio Giordano, Digital Identity - part3
Marco Tullio Giordano, Digital Identity - part3Andrea Rossetti
 
Vidusign presentation Slovenian
Vidusign presentation SlovenianVidusign presentation Slovenian
Vidusign presentation SlovenianJoel Josephson
 
Surface Computing
Surface ComputingSurface Computing
Surface Computingrandyp311
 
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 Projectjexxon
 

Destacado (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 a 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 MarketScott 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 2009Evergreen ILS
 
Introduction to Drupal Basics
Introduction to Drupal BasicsIntroduction to Drupal Basics
Introduction to Drupal BasicsJuha 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 slidesDmitry 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'Phinneydpc
 
Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7Building Multilingual Websites in Drupal 7
Building Multilingual Websites in Drupal 7robinpuga
 
International sites hreflang
International sites hreflangInternational sites hreflang
International sites hreflangDmitry Sergiets
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPAGil Fink
 
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 Lacture1ADARSH BHATT
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDrupalDay
 
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 8valuebound
 
wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress MultilingualAmit 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 ApplicationsLars Trieloff
 

Similar a 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
 

Último

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

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.