Various internationalization (i18n) improvements are in WordPress 6.6, and this developers note focuses on these.
Enhanced support for only using PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher translation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. files
WordPress 6.5 shipped with a completely new localization system with improved performance, which uses .l10n.php
files in addition to .po
and .mo
files. This system was slightly enhanced in 6.6 to better support scenarios where only these PHP translation files exist, but not the others. This specifically applies to wp_get_installed_translations()
, which is used to check which translations are installed, and the Language_Pack_Upgrader
for updating translations.
See #60554 for more details.
New lang_dir_for_domain
filter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.
A new lang_dir_for_domain
filter has been added to WP_Textdomain_Registry
, allowing plugins to override the determined languages folder when using just-in-time translation loading. This is mostly useful for multilingual plugins.
See #61206 for more details.
Additional context for the load_translation_file
filter
The load_translation_file
filter was introduced in WordPress 6.5 to support changing the file path when loading translation files, regardless if it’s a PHP or an MO translation file. In 6.6, the locale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. is passed as an additional argument to this filter, bringing it more in line with similar i18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. filters.
See #61108 for more details.
Props to @audrasjb and @juanmaguitar for review.
#6-6, #dev-notes, #dev-notes-6-6, #i18n