Three different jobs live under the word "translation", and confusing them is why people get stuck. They are solved separately.
#Translating interface strings
The words the theme and plugins print: button labels, form messages, the text around your content.
WordPress handles this with standard translation files. Each theme and plugin ships text ready to be translated, and a translation file supplies the words for one language.
Two practical points. Keep translation files where an update will not overwrite them, which for WordPress means the languages folder outside the theme rather than inside it. And revisit the translation after a release, because new features bring new strings, and an untranslated string falls back to English.
#Multilingual content
Your posts and pages existing in more than one language. This is a different job and needs a dedicated plugin.
That plugin handles the parts that make a multilingual site work: translations of posts and taxonomies, language specific URLs, per language menus, SEO metadata per language, and the links between versions of the same page.
The theme ships switchers for the three we support directly, so the language control looks like part of the site rather than like a plugin widget:
A translation plugin and a translation file solve different halves, and a site needs both.
The plugin does not translate the theme's interface strings for you, and a translation file does not make your content multilingual. People usually set up one of the two and then wonder why half the site is still in one language.
#Right to left
Text direction follows the site language. Set the language and the direction follows.
What does not follow automatically is a visual check. Direction changes layout in ways nobody predicts from a settings screen, so walk the site and look at:
Navigation and dropdowns
Directional icons, meaning arrows and chevrons that now point the wrong way
Forms and their labels
Tables
Galleries and sliders
Any third party widget, which is where problems concentrate
The theme handles its own components. A third party plugin that never considered right to left is where you will find the broken layout, and it is worth checking before launch rather than after.
#Common questions
Which translation plugin should I use?
Any of the established ones works, so pick by how you want to translate: WPML and TranslatePress keep the translations on your own site, while Weglot is a hosted service that machine translates first and lets you correct afterwards.
Do I need a plugin for a single language site that is not English?
No, setting the site language and supplying a translation file for the interface is the whole job, and a multilingual plugin would only add machinery you never use.
Where do I put my own translation file?
In the WordPress languages folder rather than inside the theme, so that a theme update replaces the code and leaves your translation where it is.
Some strings stay in English after I translate
Either those strings are newer than your translation file, or they come from a plugin whose own file is missing, because translations are per component rather than per site and each theme and plugin carries its own.
The direction looks wrong on one element
Isolate it first by deactivating third party plugins and checking that element again, and if it corrects itself then the plugin is the source and its author is who can fix it. The theme's own components are ours, so send those to us with a screenshot.
#Still stuck
Open a support ticket with the site language, the plugin you translate with, and a screenshot of what looks wrong.
Last updated