WordPress Version: 5.3
/**
* Loads a plugin's translated strings.
*
* If the path is not given then it will be the root of the plugin directory.
*
* The .mo file should be named based on the text domain with a dash, and then the locale exactly.
*
* @since 1.5.0
* @since 4.6.0 The function now tries to load the .mo file from the languages directory first.
*
* @param string $domain Unique identifier for retrieving translated strings
* @param string|false $deprecated Optional. Deprecated. Use the $plugin_rel_path parameter instead.
* Default false.
* @param string|false $plugin_rel_path Optional. Relative path to WP_PLUGIN_DIR where the .mo file resides.
* Default false.
* @return bool True when textdomain is successfully loaded, false otherwise.
*/
function load_plugin_textdomain($domain, $deprecated = false, $plugin_rel_path = false)
{
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
global $wp_textdomain_registry;
if (!is_string($domain)) {
return false;
}
/**
* Filters a plugin's locale.
*
* @since 3.0.0
*
* @param string $locale The plugin's current locale.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
*/
$locale = apply_filters('plugin_locale', determine_locale(), $domain);
$mofile = $domain . '-' . $locale . '.mo';
// Try to load from the languages directory first.
if (load_textdomain($domain, WP_LANG_DIR . '/plugins/' . $mofile, $locale)) {
return true;
}
if (false !== $plugin_rel_path) {
$path = WP_PLUGIN_DIR . '/' . trim($plugin_rel_path, '/');
} elseif (false !== $deprecated) {
_deprecated_argument(__FUNCTION__, '2.7.0');
$path = ABSPATH . trim($deprecated, '/');
} else {
$path = WP_PLUGIN_DIR;
}
$wp_textdomain_registry->set_custom_path($domain, $path);
return load_textdomain($domain, $path . '/' . $mofile, $locale);
}