SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Building Multilingual Websites With
Drupal
Sam Murray / Developer, Cogapp
DrupalCamp Brighton 2015
0
What we'll cover
Context - sites we've worked on at Cogapp over the last few years
Why multilingual websites?
Drupal 7 - multilingual out of the box
Content translation vs. Entity translation
Useful modules
Right-to-Left scripts
Drupal 8
Cogapp +
Multilingual Drupal
Qatar Digital Library
Qatar Digital Library
Qatar Museums
Qatar Museums
Kubota Collection
Kubota Collection
Relate: What's Next?
Relate: What's Next?
App Publisher
English
French
German
Chinese (Simplified)
Hebrew
and more...
Why multilingual
websites?
Non-English speaking web users
~75% web content was English in 1998
Now roughly 30%
Arabic web users:
Fastest increase in top 10 languages of the net
2000: 2,560,337 users
2013: 135,610,819 users
> 10x faster than increase in English speakers online
http://www.internetworldstats.com/stats7.htm
Language extinction
Only 5% of the world's languages represented online
Unesco: up to half of the world's languages extinct by the end of the century
Diverse web prevents cultural and economic hegemony and inequality
Vannini L., Le Crosnier H. Net.Lang: Towards The Multilingual Cyberspace. C&F Éditions: Caen, France.
2012
Multilingual Drupal
Locale module (core)
Add languages to your site
Translate the Drupal interface
Language detection and selection
URL format (fr.example.com or example.com/fr)
Language installation interface
Interface translation
<?php t('This is translatable'); ?>
<?php t('My name is @name', array('@name' => $name)); ?>
Content Translation (core)
Associate a node with a language
Relate translations of content to each other
Content translation
vs. Entity translation
Content translation
Core module in Drupal 6 and 7; not in Drupal 8
Provides ability for you to translate nodes
Each translation of a node is a node in itself
Pro: easier for language site to differ
Con: only nodes are translatable
Enable translation on a content type
Entity translation
Contrib module in Drupal 7 (beta); core in Drupal 8
Provides ability for you to translate fieldable entities
Define which fields can be translated
Pro: far more can be translated
Pro: core support in D8
Con: D7 core search and revisions not supported
Con: D7 all translations must be provided before any can be pubished
Con: D7 properties can't be translated
global $language; // Site language
global $language_content; // Content language
$entity->field_body['fr'][0]['value'];
$entity->field_body[$language->language][0]['value'];
$entity->field_body[$language_content->language][0]['value'];
$emw->field_body->value(); // Uses $language (site language)
Enable translation on a content type
Enable translation on a field
Adding a translation (Arabic)
Entity translation interface
Choose a method and stick with it
Handy modules
Internationalization modules (i18n,
i18n_*)
Extends multilingual support in Drupal 6 + 7
Taxonomy translation
Multilingual blocks
Multilingual variables
Some overlaps with Entity Translation module, but the 2 work together
Localization client
On-page interface translation
Gotchas
Gotchas
Content editing when site language != content language (e.g. entity
references)
Menu translation - various methods, none perfect
Fonts (particurly webfonts) - do they have all of the characters you need?
Including bold? Including light? .ttf? .svg? .eot?
Right-to-Left scripts
LTR / RTL
Lorem ipsum... ----->
<----- ...‫ﺃأﻱي‬ ‫ﻭوﻗﺎﻡم‬ ‫ﻳﯾﺫذﻛﺭر‬
RTL Scripts/Languages
Arabic Script ==> Arabic, Persian, Urdu
Hebrew Script ==> Hebrew, Yiddish
Thaana Script ==> Dhivehi (Maldives)
Syriac Script ==> Syriac (ancient Aramaic language)
Arabic
Basic alphabet = 28 characters
Eastern Arabic numbers - Left-to-Right!
Caseless
Italics = :(
Some punctuation marks are different
Comma = ،٬
Question mark = ‫؟‬
Mostly uses the same punctuation marks used in English
RTL on the web
HTML 'dir' attribute
<html dir="rtl"></html>
<p dir="ltr"></p>
CSS 'direction' property
CSS 'unicode-bidi' property
div {
direction:rtl;
unicode-bidi: bidi-override;
}
Unicode left-to-right mark - HTML &lrm;
Unicode right-to-left mark - HTML &rlm;
These go before a character to specify where it should be placed in
relation to the previous character
Problems with bi-directionality
Some "English" ‫ﺃأﻱي‬ ‫ﻭوﻗﺎﻡم‬ ‫ﻳﯾﺫذﻛﺭر‬
<p dir="ltr">Some "English" ‫أي‬ ‫وﻗﺎم‬ ‫/<ﻳﺬﻛﺮ‬p>
‫ﺃأﻱي‬ ‫ﻭوﻗﺎﻡم‬ ‫ﻳﯾﺫذﻛﺭر‬ "Some "English
<p dir="rtl">Some "English" ‫أي‬ ‫وﻗﺎم‬ ‫/<ﻳﺬﻛﺮ‬p>
Drupal 8
Drupal 8
Content translation is obsolete
Entity translation out of the box
Much wider support for translation across the different Drupal elements
4 core modules
http://www.drupal8multilingual.org/

Mais conteúdo relacionado

Semelhante a Building multilingual websites with drupal

A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionA whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionJeffrey McGuire
 
Internationalisation In Rails
Internationalisation In RailsInternationalisation In Rails
Internationalisation In RailsRishav Dixit
 
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
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer pointBOSC Tech Labs
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202Mahmoud Samir Fayed
 
Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPressMatt Smith
 
The ultimate list of website translation tools
The ultimate list of website translation toolsThe ultimate list of website translation tools
The ultimate list of website translation toolsBablic Ltd
 
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportDrupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportAcquia
 
Freme general-overview-version-june-2015
Freme general-overview-version-june-2015Freme general-overview-version-june-2015
Freme general-overview-version-june-2015FREMEProjectH2020
 
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...Suzanne Dergacheva
 
Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Drupal Camp Delhi
 
Whither Web programming?
Whither Web programming?Whither Web programming?
Whither Web programming?C4Media
 
Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Acquia
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?Wong Hoi Sing Edison
 
WordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and ConsiderationsWordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and ConsiderationsDat Hoang
 
Performance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native ComparedPerformance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native ComparedTien Nguyen
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDrupalDay
 
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
 

Semelhante a Building multilingual websites with drupal (20)

A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionA whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
 
Internationalisation In Rails
Internationalisation In RailsInternationalisation In Rails
Internationalisation In Rails
 
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)
 
Drupal7 multilingual
Drupal7 multilingualDrupal7 multilingual
Drupal7 multilingual
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer point
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
 
Introducing Drupal
Introducing DrupalIntroducing Drupal
Introducing Drupal
 
Multilingual WordPress
Multilingual WordPressMultilingual WordPress
Multilingual WordPress
 
The ultimate list of website translation tools
The ultimate list of website translation toolsThe ultimate list of website translation tools
The ultimate list of website translation tools
 
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportDrupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
 
Freme general-overview-version-june-2015
Freme general-overview-version-june-2015Freme general-overview-version-june-2015
Freme general-overview-version-june-2015
 
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
 
Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...
 
Whither Web programming?
Whither Web programming?Whither Web programming?
Whither Web programming?
 
Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
 
WordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and ConsiderationsWordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and Considerations
 
Performance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native ComparedPerformance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native Compared
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal Commerce
 
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)
 

Último

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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 

Último (20)

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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

Building multilingual websites with drupal