How to set your WordPress language
Setting your site language in WordPress is done via the General Settings page in your admin area. Go to Settings > General and scroll to the bottom where is says "Site Language" next to a dropdown list.
To set a language it must be available in this dropdown list. Depending on how you host your WordPress you'll see different things here:
Hosted WordPress
If your site is on wordpress.com the dropdown list should be fully populated will all available languages. This is because wordpress.com has automatic updates enabled by default. Just select the language you want and you're done.
See further instructions for setting your language on wordpress.com.
Automatic updates
If you host your own WordPress site you can still configure automatic updates if you want to.
With automatic updates enabled, the dropdown list will show two sections, "Installed" and "Available".
- The "Installed" section will contain "English (United States)" and any other languages you downloaded.
- The "Available" section will contain a list of all other languages that can be installed automatically.
If you see the full list it means that your WordPress can automatically download and install new core language packs. Just select the language you want and the core language packs should download to your server when you click Save.
Manual updates
Without automatic updates you will have to manually install some files just to get your language appearing in the dropdown list. See the official word on installing WordPress in your language.
Ideally you would download and install WordPress in your language on day one, but if you already have WordPress running you can just copy the core language packs into your site from a localized download.
The core language packs are found in wp-content/languages
. Copy all *.po and *.mo files into the same folder on your site and reload the Settings page.
You should now see your language in the list. Select it and click Save.
Old versions of WordPress
WordPress 3 and below defined the default language in wp-config.php
.
This approach no longer works, so if you're running WordPress 4 or 5 (which you should be) the WPLANG
constant will do nothing and should be removed from your config file.
Keeping the old setting does no actual harm, but it can cause confusion. Disregard any advice you read about this setting, as it probably pre-dates the changes in WordPress.
Cheating
If you know what you're doing, you can cheat. Just creating an empty file at wp-content/languages/<lang>.mo
is enough to force WordPress to offer a language in the dropdown list.
For example, adding wp-content/languages/de_DE.mo
will cause "Deutch" to display in the list. This way you can set your language to German without installing the German language packs.
Dynamic language switching
All of the above applies to statically setting the default language of a single WordPress site. Allowing your visitors to switch between languages is beyond the scope of this help page.
Dynamic language switching isn't a core feature of WordPress, so achieving this requires either writing a lot of code or installing a third party plugin. Note that our own plugin does NOT currently offer this feature.
Note also that switching the language of a single site does not provide alternative language versions of dynamic content, such as posts, pages, taxonomies etc.. See the following paragraph.
Multiple languages and post content
Despite appearances WordPress is not inherently multi-language. However it can be multi-site and every site can have its own language.
There is a big difference between these two things. It's reasonable to assume you can add a post and then provide an alternative language version which you can switch to by changing the site language. There are plugins available to do this, but it is not a native feature of WordPress.
The plugin-free approach is to create two or more sites in Multisite mode and to set each site to its required language. The downside of this approach is that none of your content will be shared. Every post will need to be made on each site separately and switching from one language to another will not be a built-in feature. This approach is probably best if you're creating regional sites as opposed to a multi-language site.