SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Translating Drupal
  (the new way)
       Gábor Hojtsy
   September 19., 2007.
Sponsored by

 All of my work explained in
this session was sponsored by
Google Summer of Code 2007.

      Thanks Google!
About me

• Using and contributing to Drupal
  since 2003
• Multiple modules, Hungarian
  translations
• Drupal 6 core committer
• Locale module maintainer
About you


• Users of existing translations?
• Translating in-house modules?
• Occasional translation contributors?
• Members of official translation teams?
Setting the topic
Translating Drupal


• Translate the built-in interface
• User provided content translation is
  out of scope here (sessions about this
  topic were before lunch)
History
t() is born
          January 22, 2001

     <?

     function t($string) {
       return $string;
     }

     ?>

(format_plural() was there earlier)
Timeline
• Jan 22, 2001 - t()
• Feb 12, 2001 - Locale module
• Feb 17, 2001 - Basic Translation
  interface, the strikethrough overview,
  languages added by SQL DDL
Timeline

various smaller updates before I start
     watching Formula 1 with [a] a
  0.5 liter box of Haagen-Dhaz (Belgian
    Choclate) and [b] my laptop on
  my lap for drupal hacking. Life hardly
      can get any better than this.
         Commit comment by Dries for locale.inc 1.7
Timeline

• Jul 24, 2001 - Search form, even
   module filtering, thanks to:
quot;location LIKE '%module.php?mod=quot;. check_input($edit[module]) .quot;%'quot;


• Jan 5, 2002 - Locale cache
• June 2, 2003 - Module filtering
   removed, due to URL restructuring
Timeline

• Sept 11, 2003 - Extractor.php is born
• Dec 28, 2003 - Short string cache
• Aug 11, 2004 - Gettext format based
  string sharing, web administration,
  plural formulas

• Aug 18, 2006 - @ and ! placeholders
Timeline

• Sep 1, 2006 - Translatable installer
• Mar 26, 2007 - New language system
• May 15-22, 2007 - Automated
  translation import
• Jun 8, 2007 - JavaScript translation
How does it work?
Translate in PHP

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

• t() stores new strings for translation,
  when called with unknown text
• Web interface to translate
• Different sharing methods through
  the years: SQL, Gettext
Collaborative process

• A preprocessor generates translation
  templates
• Translators grab templates and
  translate
• Package is distributed
• Users import the translations
Translate in JavaScript


• Drupal.t() and Drupal.formatPlural()
  to translate strings in JavaScript
• Works just as well with on the fly string
  collection or preprocessing
Drupal core process
Drupal contrib process
Still too hard
• Know CVS
• Have write permissions
• Use gettext tools to merge and translate
• Time releases properly
• Track project progress and goals
• Reuse translations as you can
Translation packages

• http://drupal.org/project/Translations
• Contributed project translations
  scattered all around the repository

• Some teams even have their own
  download locations
Usability problems


• Although users upload and install
  modules, they need to upload
  translations on the web separately

• Existing translations can be broken by
  new uploads
Executive summary:
 Pain for translators
    Pain for users
Better for users in
    Drupal 6
Locale automation

• Language selection at start of installer
• Fully localized installer, imports
  translations for all enabled modules

• Automated import when
  • new language is added
  • module is installed
  • theme is enabled
In need of a cleanup


• Unfortunately we don’t know what to
  remove when a module is disabled or
  uninstalled

• This is solved in part by version
  tracking in locale module
New packaging format

• All these changes required a new
  packaging format
• Based on more smaller files in a well
  defined directory structure

• ‘po’ renamed to ‘translations’
• Now also used with core modules
New packaging format
Also better for
onsite translators
   in Drupal 6
On-page translation

• Drupl 6 changes made on-page
  translation possible

• Served with the l10n_client
  contributed module

• Interface still to be refined (a lot)
Demo
What about
collaboration?
Simplifying our lives

• Drupal.org knows about all the
  projects and releases available

• Their source code can be parsed for
  translatables

• Can be automated - we can even
  inform module developers about
  errors found
Localization server

• In part based on ideas from
  Bruno Massa
• Maintains a list of projects and
  releases
• Parses source packages for
  translatables
Localization community

• Translation community interface,
  based on organic groups
• Collaborate on project translations
• Different permission levels
• Import/export with Gettext support
New process

• Have seen groups.drupal.org?
• Translation groups, two permission
  levels: open and controlled

• Can host discussions, debates,
  “vocabularies”, “dictionaries”
New process

• Projects and releases are
  automatically available

• Translations can be imported from PO
  file, exported in PO packages

• Web based editing on custom interface
• TODO: backwards connection with
  projects
Demo
So when will this go live?

• Hopefully before or around the
  Drupal 6 release
• There are still features to implement
  and perfect
• It needs to fit nicely into the
  drupal.org infrastructure
Thanks!

Más contenido relacionado

La actualidad más candente

Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPressMatt Smith
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Touroscon2007
 
A brief intro to RubyMotion
A brief intro to RubyMotionA brief intro to RubyMotion
A brief intro to RubyMotionKamil Lelonek
 
QBASIC
QBASICQBASIC
QBASICnivi88
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming LanguageAdler Hsieh
 
Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platformRuslan Shevchenko
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! languageAndré Mayer
 
Coding with golang
Coding with golangCoding with golang
Coding with golangHannahMoss14
 
Unit 1-introduction to scripts
Unit 1-introduction to scriptsUnit 1-introduction to scripts
Unit 1-introduction to scriptssana mateen
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To RailsEric Gruber
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)Eric Johnson
 
Rpc framework
Rpc frameworkRpc framework
Rpc frameworkjuly mon
 

La actualidad más candente (19)

Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPress
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Crystal
CrystalCrystal
Crystal
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
A brief intro to RubyMotion
A brief intro to RubyMotionA brief intro to RubyMotion
A brief intro to RubyMotion
 
QBASIC
QBASICQBASIC
QBASIC
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming Language
 
Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platform
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! language
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
 
Unit 1-introduction to scripts
Unit 1-introduction to scriptsUnit 1-introduction to scripts
Unit 1-introduction to scripts
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
 
Go Lang
Go LangGo Lang
Go Lang
 
[submission] Final_Presentation
[submission] Final_Presentation[submission] Final_Presentation
[submission] Final_Presentation
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
 
Rpc framework
Rpc frameworkRpc framework
Rpc framework
 
What is PHP?
What is PHP?What is PHP?
What is PHP?
 

Destacado

Gianluigi Viscusi, Informatica per le PA.
Gianluigi Viscusi, Informatica per le PA.Gianluigi Viscusi, Informatica per le PA.
Gianluigi Viscusi, Informatica per le PA.Andrea Rossetti
 
Anatomy of a Glacier
Anatomy of a GlacierAnatomy of a Glacier
Anatomy of a GlacierAlan Doherty
 
Wishing Well Alpha
Wishing Well AlphaWishing Well Alpha
Wishing Well Alphamezusa
 
Primary Elections in Palermo: A Case Study
Primary Elections in Palermo: A Case StudyPrimary Elections in Palermo: A Case Study
Primary Elections in Palermo: A Case Studyjexxon
 
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital Forensics
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital ForensicsGiuseppe Vaciago, Cybercrime, Digital Investigation e Digital Forensics
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital ForensicsAndrea Rossetti
 
Getting Started with Real-Time Analytics
Getting Started with Real-Time AnalyticsGetting Started with Real-Time Analytics
Getting Started with Real-Time AnalyticsAmazon Web Services
 
Lennon Imagine
Lennon ImagineLennon Imagine
Lennon Imaginesoclarale
 
Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006guestfbf1e1
 
Il Partito politico nella Società dell'Informazione?
Il Partito politico nella Società dell'Informazione?Il Partito politico nella Società dell'Informazione?
Il Partito politico nella Società dell'Informazione?jexxon
 
Japan - A Society in Transition
 Japan - A Society in Transition Japan - A Society in Transition
Japan - A Society in TransitionAlan Doherty
 
P 5 hem plantat enciams
P 5 hem plantat enciamsP 5 hem plantat enciams
P 5 hem plantat enciamsmarblocs
 
Mastering Anytime Anywhere
Mastering Anytime AnywhereMastering Anytime Anywhere
Mastering Anytime AnywhereBertram Gugel
 
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2Andrea Rossetti
 
10 Thought Leaders Boiled Down
10 Thought Leaders Boiled Down10 Thought Leaders Boiled Down
10 Thought Leaders Boiled DownJustin Kistner
 
Introduction
IntroductionIntroduction
IntroductionJeff12982
 

Destacado (20)

Gianluigi Viscusi, Informatica per le PA.
Gianluigi Viscusi, Informatica per le PA.Gianluigi Viscusi, Informatica per le PA.
Gianluigi Viscusi, Informatica per le PA.
 
Anatomy of a Glacier
Anatomy of a GlacierAnatomy of a Glacier
Anatomy of a Glacier
 
Wishing Well Alpha
Wishing Well AlphaWishing Well Alpha
Wishing Well Alpha
 
she de franco
she de francoshe de franco
she de franco
 
Primary Elections in Palermo: A Case Study
Primary Elections in Palermo: A Case StudyPrimary Elections in Palermo: A Case Study
Primary Elections in Palermo: A Case Study
 
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital Forensics
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital ForensicsGiuseppe Vaciago, Cybercrime, Digital Investigation e Digital Forensics
Giuseppe Vaciago, Cybercrime, Digital Investigation e Digital Forensics
 
Getting Started with Real-Time Analytics
Getting Started with Real-Time AnalyticsGetting Started with Real-Time Analytics
Getting Started with Real-Time Analytics
 
111
111111
111
 
Lennon Imagine
Lennon ImagineLennon Imagine
Lennon Imagine
 
She-Catriel
She-CatrielShe-Catriel
She-Catriel
 
Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006Joseph-Smarr-Plaxo-OSCON-2006
Joseph-Smarr-Plaxo-OSCON-2006
 
Il Partito politico nella Società dell'Informazione?
Il Partito politico nella Società dell'Informazione?Il Partito politico nella Società dell'Informazione?
Il Partito politico nella Società dell'Informazione?
 
Japan - A Society in Transition
 Japan - A Society in Transition Japan - A Society in Transition
Japan - A Society in Transition
 
P 5 hem plantat enciams
P 5 hem plantat enciamsP 5 hem plantat enciams
P 5 hem plantat enciams
 
clase ungs
clase ungsclase ungs
clase ungs
 
Mastering Anytime Anywhere
Mastering Anytime AnywhereMastering Anytime Anywhere
Mastering Anytime Anywhere
 
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2
Marco T. Giordano, Identità Digitale e Reputazione Online – Pt. 2
 
教案與教材設計
教案與教材設計教案與教材設計
教案與教材設計
 
10 Thought Leaders Boiled Down
10 Thought Leaders Boiled Down10 Thought Leaders Boiled Down
10 Thought Leaders Boiled Down
 
Introduction
IntroductionIntroduction
Introduction
 

Similar a Translating Drupal the New Way in Drupal 6

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
 
Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009Evergreen ILS
 
GlotPress aka translate.wordpress.org
GlotPress aka translate.wordpress.orgGlotPress aka translate.wordpress.org
GlotPress aka translate.wordpress.orgMarko Heijnen
 
Introduction to Drupal Basics
Introduction to Drupal BasicsIntroduction to Drupal Basics
Introduction to Drupal BasicsJuha Niemi
 
Introduction to OpenOffice.org 2.0
Introduction to OpenOffice.org 2.0Introduction to OpenOffice.org 2.0
Introduction to OpenOffice.org 2.0Isriya Paireepairit
 
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release partyDrupalDay
 
[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release party[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release partyWellnet srl
 
DrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDoug Green
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Paul McKibben
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcampahkjsdcsadc
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Eric Barroca
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make filesropsu
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp Londonhernanibf
 
Bring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languagesBring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languagesSébastien Corbin
 
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
 

Similar a Translating Drupal the New Way in Drupal 6 (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"
 
Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009Evergreen Docs Planning Session 2009
Evergreen Docs Planning Session 2009
 
GlotPress aka translate.wordpress.org
GlotPress aka translate.wordpress.orgGlotPress aka translate.wordpress.org
GlotPress aka translate.wordpress.org
 
Introduction to Drupal Basics
Introduction to Drupal BasicsIntroduction to Drupal Basics
Introduction to Drupal Basics
 
Drupal
DrupalDrupal
Drupal
 
Introduction to OpenOffice.org 2.0
Introduction to OpenOffice.org 2.0Introduction to OpenOffice.org 2.0
Introduction to OpenOffice.org 2.0
 
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
 
[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release party[Luca Lusso] - Devel - D8 release party
[Luca Lusso] - Devel - D8 release party
 
DrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual Panel
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
Rails data migrations
Rails data migrationsRails data migrations
Rails data migrations
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
 
Mono Repo
Mono RepoMono Repo
Mono Repo
 
Bring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languagesBring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languages
 
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
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Translating Drupal the New Way in Drupal 6

  • 1. Translating Drupal (the new way) Gábor Hojtsy September 19., 2007.
  • 2. Sponsored by All of my work explained in this session was sponsored by Google Summer of Code 2007. Thanks Google!
  • 3. About me • Using and contributing to Drupal since 2003 • Multiple modules, Hungarian translations • Drupal 6 core committer • Locale module maintainer
  • 4. About you • Users of existing translations? • Translating in-house modules? • Occasional translation contributors? • Members of official translation teams?
  • 6. Translating Drupal • Translate the built-in interface • User provided content translation is out of scope here (sessions about this topic were before lunch)
  • 8. t() is born January 22, 2001 <? function t($string) { return $string; } ?> (format_plural() was there earlier)
  • 9. Timeline • Jan 22, 2001 - t() • Feb 12, 2001 - Locale module • Feb 17, 2001 - Basic Translation interface, the strikethrough overview, languages added by SQL DDL
  • 10. Timeline various smaller updates before I start watching Formula 1 with [a] a 0.5 liter box of Haagen-Dhaz (Belgian Choclate) and [b] my laptop on my lap for drupal hacking. Life hardly can get any better than this. Commit comment by Dries for locale.inc 1.7
  • 11. Timeline • Jul 24, 2001 - Search form, even module filtering, thanks to: quot;location LIKE '%module.php?mod=quot;. check_input($edit[module]) .quot;%'quot; • Jan 5, 2002 - Locale cache • June 2, 2003 - Module filtering removed, due to URL restructuring
  • 12. Timeline • Sept 11, 2003 - Extractor.php is born • Dec 28, 2003 - Short string cache • Aug 11, 2004 - Gettext format based string sharing, web administration, plural formulas • Aug 18, 2006 - @ and ! placeholders
  • 13. Timeline • Sep 1, 2006 - Translatable installer • Mar 26, 2007 - New language system • May 15-22, 2007 - Automated translation import • Jun 8, 2007 - JavaScript translation
  • 14. How does it work?
  • 15. Translate in PHP • 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. Original process • t() stores new strings for translation, when called with unknown text • Web interface to translate • Different sharing methods through the years: SQL, Gettext
  • 17. Collaborative process • A preprocessor generates translation templates • Translators grab templates and translate • Package is distributed • Users import the translations
  • 18. Translate in JavaScript • Drupal.t() and Drupal.formatPlural() to translate strings in JavaScript • Works just as well with on the fly string collection or preprocessing
  • 21. Still too hard • Know CVS • Have write permissions • Use gettext tools to merge and translate • Time releases properly • Track project progress and goals • Reuse translations as you can
  • 22. Translation packages • http://drupal.org/project/Translations • Contributed project translations scattered all around the repository • Some teams even have their own download locations
  • 23. Usability problems • Although users upload and install modules, they need to upload translations on the web separately • Existing translations can be broken by new uploads
  • 24. Executive summary: Pain for translators Pain for users
  • 25. Better for users in Drupal 6
  • 26. Locale automation • Language selection at start of installer • Fully localized installer, imports translations for all enabled modules • Automated import when • new language is added • module is installed • theme is enabled
  • 27. In need of a cleanup • Unfortunately we don’t know what to remove when a module is disabled or uninstalled • This is solved in part by version tracking in locale module
  • 28. New packaging format • All these changes required a new packaging format • Based on more smaller files in a well defined directory structure • ‘po’ renamed to ‘translations’ • Now also used with core modules
  • 30. Also better for onsite translators in Drupal 6
  • 31. On-page translation • Drupl 6 changes made on-page translation possible • Served with the l10n_client contributed module • Interface still to be refined (a lot)
  • 32. Demo
  • 34. Simplifying our lives • Drupal.org knows about all the projects and releases available • Their source code can be parsed for translatables • Can be automated - we can even inform module developers about errors found
  • 35. Localization server • In part based on ideas from Bruno Massa • Maintains a list of projects and releases • Parses source packages for translatables
  • 36. Localization community • Translation community interface, based on organic groups • Collaborate on project translations • Different permission levels • Import/export with Gettext support
  • 37. New process • Have seen groups.drupal.org? • Translation groups, two permission levels: open and controlled • Can host discussions, debates, “vocabularies”, “dictionaries”
  • 38. New process • Projects and releases are automatically available • Translations can be imported from PO file, exported in PO packages • Web based editing on custom interface • TODO: backwards connection with projects
  • 39. Demo
  • 40. So when will this go live? • Hopefully before or around the Drupal 6 release • There are still features to implement and perfect • It needs to fit nicely into the drupal.org infrastructure