SlideShare a Scribd company logo
1 of 76
Download to read offline
Multilingual
Wordpress
Nov 15-16, 2014
WordCamp Toronto
Matt Smith
msmith@lingotek.com
smithworx
How to make
a WordPress site
multilingual!
social networks, data mining,
and machine learning
● Out of the box
● Decisions, not options
● Design for the majority
● Clean, lean, and mean
● Striving for simplicity
● Deadlines are not arbitrary
● Vocal minority
WordPress Philosophy
https://wordpress.org/about/philosophy/
● Multilingual Basics
● Multilingual Site Audit
● Multilingual Plugins
○ One language per site (multisite)
○ One language per post
○ All languages in one post
● Additional Automation
Overview
Multilingual Basics
WordPress multilingual readiness,
terminology, and translation files
● WordPress core does not support bilingual
or multilingual out-of-the-box
● Plugins developed by the community
enable multilingual functionality
Multilingual in Wordpress
source: http://codex.wordpress.org/Multilingual_WordPress
( unilingual is supported )
● Internationalization (i18n) - the process
of preparing a plugin or theme to be
multilingual ready (e.g., using __(), _n())
● Localization (L10n) - the process of
adapting internationalized software for a
specific region or language (e.g., translation,
message)
Terminology
18 characters
10 characters
.pot (portable object template)
.po (portable object)
.mo (machine object)
Translation files
Internationalization (i18n)
No translations
Translations
__()
_e()
_x()
WordPress i18n
Basic translation functions
Any text that should be
translatable must be wrapped in
an i18n function
also echos the text
allows for context
translate() alias
for theme & plugin
developers
_x() _ex() _n()
esc_html__() esc_html_e()
esc_html_x() esc_attr__()
esc_attr_e() esc_attr_x()
WordPress i18n
Additional translation functions
These are used less frequently
for theme & plugin
developers
for theme & plugin
developers
1. Thou shalt not use PHP variables of any kind
inside a translation function’s strings.
2. Thou shalt always translate phrases and not
words.
3. Thou shalt disambiguate when needed.
WordPress i18n - Otto's Laws
"You're probably doing it wrong"
source: http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong
● Translation - communication of the
meaning of a source-language text by
means of an equivalent target-language
text.
○ Machine translation (MT) - algorithmic
○ Human translation - professional
○ Crowd-sourced - ordinary people
Terminology - L10n
● Locale - combination of language and
regional identifier
● Examples
○ en_US English for the United States
○ fr_CA French for Canada
○ en_CA English for Canada
○ de_DE German for Germany
Terminology - L10n
Translation
Editorial Editorial
Multilingual Workflow
In context review
publish content
(target locales)
content creation
editor review
(original locale)
(target locales)
Localization
Translation Review
Post-edit
Multilingual Audit
What is typically responsible for
the translatable content
on your website?
Multilingual Plugin
user generated content
Translation Files
theme, plugins, core
?
?
What is responsible for
the translatable content
on this page?
or
.po, .mo
Multilingual Plugin
user generated content
Translation Files
theme, plugins, core
?
?
What is responsible for
the translatable content
on this page?
or
.po, .mo
Multilingual Plugin
user generated content
Translation Files
theme, plugins, core
10
6
What is responsible for
the translatable content
on this page?
or
.po, .mo
Posts
Menus (or Post Title)
Strings
(site title,
plugin specific)
Categories
Multilingual Plugins
Which plugins extend Wordpress core
to provide multilingual capabilities?
● One language per site (multisite)
● One language per post
● All languages in one post
● Plugins that direct you to external
translation services: machine, community,
professional
Types of multilingual plugins
source: http://codex.wordpress.org/Multilingual_WordPress
German Chinese
Multisite:
one language per site
English
Stay tuned for next talk:
Multisite for Multilingual
Single site:
one language per post
German
site
post
English
Chinese
post
post
Single site:
all languages in one post
English
ChineseGerman
sitepost
German Chinese
Multisite:
one language per site
English
Stay tuned for next talk:
Multisite for Multilingual
Free
● Multisite Language Switcher
● Multilingual Press
● Zanto WP Translation
Multisite:
one language per site
Stay tuned for next talk:
Multisite for Multilingual
Multisite:
one language per site
Multilingual Press Zanto WP TranslationMultisite Language Switcher
Last updated: Oct 15, 2014
Stay tuned for next talk:
Multisite for Multilingual
Multisite Language Switcher
Stay tuned for next talk:
Multisite for Multilingual
Stay tuned for next talk:
Multisite for Multilingual
Stay tuned for next talk:
Multisite for Multilingual
Multilingual Press
Stay tuned for next talk:
Multisite for Multilingual
Zanto WP Translation
Stay tuned for next talk:
Multisite for Multilingual
Single site:
one language per post
German
site
post
English
Chinese
post
post
Free
● Polylang (+
Lingotek)
● xili-language
● Bogo
● Babble
Paid
● WPML
○ $29-$79/year, or
○ $195 one-time
Single site:
one language per post
Not in WP plugin
repository
Polylang xili-language Bogo
Single site:
one language per post - free
Last updated: Sep 24, 2014
Only uses WP core
database tables
(no extra tables)
Single site:
one language per post - paid
WPML Example
Single site:
one language per post - paid
WPML Example
Single site:
one language per post - paid
WPML Example
One post per language - paid
WPML Example
One post per language - paid
WPML Example
xili-language Example
Add content overview page in Polylang
Polylang
Polylang
Polylang ExamplePolylang
Babble
Babble
Babble
Babble
Single site:
all languages in one post
English
ChineseGerman
sitepost
Free
● qTranslate
● mqTranslate
mqTranslate adds:
- Protection of concurrent edits of different languages
- Language selection for editor accounts (allows translators
to see only their source and target languages)
Single site:
all languages in one post
All languages in one post
Last updated: Sep 24, 2014
qTranslate mqTranslate
All languages in one post
qTranslate / mqTranslate
● Less flexible
publishing
● Import/export
challenges
● Uninstallation can
be challenging
Comparison Overview
Pros
Cons
Multisite
One language
per post
All languages
in one post
● Each site has its
own posts
● Easy migration
● Flexible publishing
● More work to
manage all of the
different servers /
installations
● Translation
associations
● Non-cluttered edit
page
● Easy import/export *
● Flexible publishing
● Complex content
listing*
● Translation
associations
● Content type support*
● Side-by-side editing
● No additional tables
varies by plugin*
Additional Automation
Service Providers
● Prisna
● Transposh
● Polylang + Lingotek
● Global Translate WordPress
● mqTranslate
Machine Translation
Plugins for WordPress
● Transposh
● Polylang + Lingotek
Community Translation
Plugins for WordPress
● Polylang + Lingotek
● mqTranslate
● WPML
Professional Translation
Plugins for WordPress
Add mqTranslate screens.
qTranslate
Example
Professional
or Machine
qTranslate / mqTranslate
One post per language - paid
WPML Example
Add WPML Professional translation screenshots.
WPML Example
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
Polylang + Lingotek
● You can create a multilingual site in WP
● Choose the right plugin based on needs
○ One language per site (multisite)
○ One language per post
○ All languages in one post
● For large sites, consider how your
multilingual workflow
Conclusion
● Multilingual Wordpress https://codex.wordpress.
org/Multilingual_WordPress
● i18n for WordPress Developers https://codex.wordpress.
org/I18n_for_WordPress_Developers
● Plugin and Theme Development (i18n) http://make.wordpress.
org/docs/theme-developer-handbook/theme-
functionality/internationalization/
● Translating Your Theme http://code.tutsplus.com/tutorials/translating-
your-theme--wp-25014
References & Tutorials
Q & A
Slides:
m.smithworx.com
Connect:
@smithworx
Email:
msmith@lingotek.com
Multilingual WordPress

More Related Content

What's hot

How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)
SATOSHI TAGOMORI
 
Babel and Beyond - Professional Multilingual Solutions with Drupal
Babel and Beyond - Professional Multilingual Solutions with DrupalBabel and Beyond - Professional Multilingual Solutions with Drupal
Babel and Beyond - Professional Multilingual Solutions with Drupal
Acquia
 

What's hot (20)

How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)
 
Managing a Local WordPress Community, WordCamp Europe 2016
Managing a Local WordPress Community, WordCamp Europe 2016Managing a Local WordPress Community, WordCamp Europe 2016
Managing a Local WordPress Community, WordCamp Europe 2016
 
"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
 
A brief intro to RubyMotion
A brief intro to RubyMotionA brief intro to RubyMotion
A brief intro to RubyMotion
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Internationalizing and localizing wordpress theme
Internationalizing and localizing  wordpress themeInternationalizing and localizing  wordpress theme
Internationalizing and localizing wordpress theme
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
 
Babel and Beyond - Professional Multilingual Solutions with Drupal
Babel and Beyond - Professional Multilingual Solutions with DrupalBabel and Beyond - Professional Multilingual Solutions with Drupal
Babel and Beyond - Professional Multilingual Solutions with Drupal
 
Go Lang
Go LangGo Lang
Go Lang
 
Fandogh Cloud workshop slides
Fandogh Cloud workshop slides Fandogh Cloud workshop slides
Fandogh Cloud workshop slides
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?Translating software with SDL Passolo?
Translating software with SDL Passolo?
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Mono Repo
Mono RepoMono Repo
Mono Repo
 
Translating software with SDL Passolo
Translating software with SDL PassoloTranslating software with SDL Passolo
Translating software with SDL Passolo
 
Introduction to SDL Passolo
Introduction to SDL PassoloIntroduction to SDL Passolo
Introduction to SDL Passolo
 
Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
 
Monorepo at Pinterest
Monorepo at PinterestMonorepo at Pinterest
Monorepo at Pinterest
 
Advantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepoAdvantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepo
 

Similar to Multilingual WordPress

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
 
Going global with e commerce sites – the next big thing!
Going global with e commerce sites – the next big thing!Going global with e commerce sites – the next big thing!
Going global with e commerce sites – the next big thing!
eyalkaufman
 

Similar to Multilingual WordPress (20)

wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingual
 
Going Global WordPress Multilingual
Going Global WordPress MultilingualGoing Global WordPress Multilingual
Going Global WordPress Multilingual
 
Going Global - WordPress Multilingual
Going Global - WordPress MultilingualGoing Global - WordPress Multilingual
Going Global - WordPress Multilingual
 
WordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and ConsiderationsWordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and Considerations
 
WordPress News and #SaigonWordPress 2015 - Saigon WordPress - Jan 17, 2015
WordPress News and #SaigonWordPress 2015  - Saigon WordPress - Jan 17, 2015WordPress News and #SaigonWordPress 2015  - Saigon WordPress - Jan 17, 2015
WordPress News and #SaigonWordPress 2015 - Saigon WordPress - Jan 17, 2015
 
WordPress Multilingual: WordCamp Antwerp 2016
WordPress Multilingual: WordCamp Antwerp 2016WordPress Multilingual: WordCamp Antwerp 2016
WordPress Multilingual: WordCamp Antwerp 2016
 
WordPress Internationalization, Localization and Multilingual - Do It Right
WordPress Internationalization, Localization and Multilingual - Do It RightWordPress Internationalization, Localization and Multilingual - Do It Right
WordPress Internationalization, Localization and Multilingual - Do It Right
 
Multilingual website in Drupal 8
Multilingual website in Drupal 8Multilingual website in Drupal 8
Multilingual website in Drupal 8
 
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"
 
Plone multi language
Plone multi languagePlone multi language
Plone multi language
 
Multilingual WordPress With Polylang
Multilingual WordPress With PolylangMultilingual WordPress With Polylang
Multilingual WordPress With Polylang
 
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
 
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...
 
Managing Translation Workflows in Drupal 7
Managing Translation Workflows in Drupal 7Managing Translation Workflows in Drupal 7
Managing Translation Workflows in Drupal 7
 
Building Multilingual Websites Using Joomla
Building Multilingual Websites Using JoomlaBuilding Multilingual Websites Using Joomla
Building Multilingual Websites Using Joomla
 
Going global with e commerce sites – the next big thing!
Going global with e commerce sites – the next big thing!Going global with e commerce sites – the next big thing!
Going global with e commerce sites – the next big thing!
 
Drupal 7 multilingual strategy
Drupal 7 multilingual strategyDrupal 7 multilingual strategy
Drupal 7 multilingual strategy
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
 
OpenCms Days 2016: Multilingual websites with OpenCms
OpenCms Days 2016:   Multilingual websites with OpenCmsOpenCms Days 2016:   Multilingual websites with OpenCms
OpenCms Days 2016: Multilingual websites with OpenCms
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
[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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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...
 
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
 
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)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Multilingual WordPress