Preferred Languages

Choose languages for displaying WordPress in, in order of preference.

Author:Pascal Birchler (profile at wordpress.org)
WordPress version required:6.1
WordPress version tested:6.5
Plugin version:2.2.2
Added to WordPress repository:02-10-2017
Last updated:27-02-2024
Rating, %:100
Rated by:17
Plugin URI:https://github.com/swissspidy/preferred-langu...
Total downloads:86 474
Active installs:2 000+
plugin download
Click to start download

Thanks to language packs it’s easier than ever before to change the main language of your site.
However, in some cases a single locale is not enough. When WordPress can’t find a translation for the active locale, it falls back to the original English strings.
That’s a poor user experience for many non-English speakers.

This feature project aims to change that by letting users choose multiple languages for displaying WordPress in.
That way you can set some sort of “fallback chain” where WordPress tries to load translations in your preferred order.

Please help us test this plugin and let us know if something is not working as you think it should.

Keyboard Shortcuts

  • Arrow Up: Move selected locale one position up.
  • Arrow Down: Move selected locale one position down.
  • Home: Select first locale in the list.
  • End: Select last locale in the list.
  • Backspace/Delete: remove the selected locale from the list.
  • Alt+A: Add the current locale from the dropdown to the list.

Note: the Preferred Languages UI needs to be focused in order for the keyboard shortcuts to work.

Merging Translations

By default, only the first available translation for a given locale and domain will be loaded.
However, when translations are incomplete, some strings might still be displayed in English.
That’s a poor user experience as well.

To prevent this, the preferred_languages_merge_translations filter can be used to opt into merging incomplete translations.
It provides three parameters:

  1. $merge – Whether translations should be merged.
  2. $domain – The text domain
  3. $current_locale – The current locale.

Note: On WordPress 6.5 and newer, this functionality is enabled by default.
On older versions of WordPress, this is a potentially slow/expensive process,
so it’s recommended to use it sparingly and only for specific domains.

Get Involved

Active development is taking place on GitHub.

If you want to get involved, check out open issues and join the #core-i18n channel on Slack. If you don’t have a Slack account yet, you can sign up at make.wordpress.org/chat/.


Screenshots
ChangeLog