Upload
shawn-hooper
View
241
Download
0
Embed Size (px)
Citation preview
Creating Multilingual
WordPress SitesWP Campus
Shawn HooperChief Technology Officer
Actionable Books
@shawnhooper - shawnhooper.ca
Chief Technology Officer at Actionable BooksHappy to be visiting here from Ottawa, Canada.Have used WordPress since 2009 as a blogger, freelance developer, and in a corporate environment.I speak in English, French, and according to my friends & family, I also speak nerd.
Hi, I’m Shawn!
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
Let’s Learn Some Words…
Internationalization, Localization, Languages,
Locales,
Oh My!
@shawnhooper - shawnhooper.ca
“The method of human communication, either
spoken or written, consisting of the use of words in a structured
and conventional way”- Oxford Dictionary
Examples:English, FrenchSpanish, Italian
Language
@shawnhooper - shawnhooper.ca
“In computing, a locale is a set of parameters that
defines the user's language, region and any
special variant preferences that the user wants to see in their user
interface. Usually a locale identifier consists of at least a language identifier and a region
identifier.” - Wikipedia
Locale
@shawnhooper - shawnhooper.ca
Canadian Englishen-CA
US Englishen-US
Canadian French fr-CA
Argentina Spanish es-AR
Spanish Columbia es-CO
Locale
@shawnhooper - shawnhooper.ca
“Internationalization (sometimes shortened to
“I18N , meaning "I - eighteen letters -N") is the process of planning
and implementing products and services so that they can easily be
adapted to specific local languages and culture.
…”
- techtarget.com
Internationalization
@shawnhooper - shawnhooper.ca
“Localization (also referred to as "L10n") is
the process of adapting a product or content to a
specific locale or market.”
- GALA Global
Localization
@shawnhooper - shawnhooper.ca
Localization isn’t just about words, think about:CURRENCY
English$1,234.56
French1 234,56 $
Localization
@shawnhooper - shawnhooper.ca
Localization isn’t just about words, think about:DATES
English (US)MM/DD/YYY (ex: 03/20/2016)
English (Canada)DD/MM/YYYY (ex: 20/03/2016)
Localization
@shawnhooper - shawnhooper.ca
Localization isn’t just about words, think about:TIME
English (Canada)4:30 pm
French (Canada)16h30
Localization
@shawnhooper - shawnhooper.ca
Localization isn’t just about words, think about:Script Direction
Localization
Left to Right Right to Left
English Arabic
Spanish Persian
French Hebrew
Greek Yiddish
Latin Western Punjabi
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
Localization isn’t just about words, think about:TEXT LENGTH
Localization
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
WordPress Core is translated in 162
locales. 52 translations are
100% complete, up-to-date with the most current version of
WordPress.Translations are done by volunteers on the
“Polyglots” team.
WordPress
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
Although WordPress comes in many languages, it does not natively support providing
viewers with content in more than one language.
@shawnhooper - shawnhooper.ca
WPMLPremium Plugin from OnTheGoSystems.
https://wpml.org/Supports:
PostsPages
Custom Post TypesTaxonomies
MenusTheme TextPlugin Text
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
Tip:Turn off the Make Themes Work Multilingual option if you
don’t need it!
@shawnhooper - shawnhooper.ca
qTranslate XFree Plugin Available on WordPress.org
https://wpml.org/Supports:
PostsPages
Custom Post TypesTaxonomies
MenusGeneral Settings
Widgets
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
If you disable the plugin, you’ll seethe content for each language is wrapped in shortcodes.
Shortcode Warning
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
Babblehttps://github.com/Automattic/babble
Babble
@shawnhooper - shawnhooper.ca
Doesn’t create any additional database tablesLike WPML, each translation is a separate post
Supports:PostsPages
Custom Post TypesTaxonomies
MenusWidgets
Babble
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
There are two ways of doing this:
Separate Installs of WordPress for each language (yuck!)
Using WordPress Multisite with a sub-site for each language (yay!)
Multisite Approach
@shawnhooper - shawnhooper.ca
There are a few plugins that can assist with switching languages
if you choose to use the multisite approach:
Multisite Language SwitcherZanto WP Translation (For Multisites)
Language Switching
@shawnhooper - shawnhooper.ca
ComparisonFeature WPML qTranslateX Multisite Babble
Cost Paid Free Free Free
Content Storage Separate Posts Single Post Languages in Subsites Separate Posts
Widget Areas Needs Additional Plugins Yes Yes No
Media With Additional Plugin No Each subsite has it’s
own media library No
Permalink Translation Yes With “Qtranslate Slug” Plugin Yes Yes
Sync Custom Fields Yes Yes No Yes
Sync Taxonomies Yes Yes No No
Translate Strings in Themes & Plugins
WPML String Translation Plugin
Additional Plugins Required
Additional Plugins Required
Additional Plugins Required
Database Impact High Low Low Low
Translation Service Support ICanLocalize No No No
@shawnhooper - shawnhooper.ca
.POT, .PO and .MO FilesContain all the strings in your plugins and
themes for a specific language.
.POT = Template ( Original Strings ).PO = Localized Version of the Strings
.MO = Compiled Version of the Localized Files
@shawnhooper - shawnhooper.ca
.POT, .PO and .MO FilesMany popular themes & plugins
come with translations already provided.
If not, you can manage your own translationsthrough plugins or 3rd party applications.
@shawnhooper - shawnhooper.ca
Loco TranslateTranslation Mangement Plugin
for Themes & Plugins
Free in the WordPress Plugin Repository
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
PO EditDesktop Application for Managing POT and PO Files
Freemium
Available for Windows, OSX and Linux(poedit.net)
@shawnhooper - shawnhooper.ca
PO EditPro Version ($20) will scan your source code and find
missing translations
Provided Statistics includingWord Count.
@shawnhooper - shawnhooper.ca
@shawnhooper - shawnhooper.ca
GlotPressDeveloped by the WordPress Community.
Still a work in progress.
Learn More at http://blog.glotpress.org/
@shawnhooper - shawnhooper.ca
Translation ServicesHire a Professional Translator
They usually charge by the word
@shawnhooper - shawnhooper.ca
Translation ServicesBuilt in Translation Services in WordPress:
ICanLocalize (Works with WPML)LingoTek (Works with Polylang)
@shawnhooper - shawnhooper.ca
Polyglots TeamThe polyglots team is responsible for ensuring
WordPress is available in dozens of languages and many more regions. It’s a big job, which is why we
need help from native speakers of many languages to make it possible.
https://make.wordpress.org/polyglots/
@shawnhooper - shawnhooper.ca
translate.wordpress.orgPowered by GlotPress
Contribute translations to: WordPress Core
ThemesPlugins
Meta Projects
@shawnhooper - shawnhooper.ca
Thank you! Merci! Gracias!
Slides: www.shawnhooper.ca
E-Mail: [email protected]
Twitter: @shawnhooper
WordPress Slack: shooper@shawnhooper - shawnhooper.ca