_load_textdomain_just_in_time()
Loads plugin and theme text domains just-in-time.
When a textdomain is encountered for the first time, we try to load the translation file from wp-content/languages, removing the need to call load_plugin_textdomain() or load_theme_textdomain().
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Return
true|false
. True when the textdomain is successfully loaded, false otherwise.
Usage
_load_textdomain_just_in_time( $domain );
- $domain(string) (required)
- Text domain. Unique identifier for retrieving translated strings.
Notes
- Global. MO[]. $l10n_unloaded An array of all text domains that have been unloaded again.
- Global. WP_Textdomain_Registry. $wp_textdomain_registry WordPress Textdomain Registry.
Changelog
Since 4.6.0 | Introduced. |
_load_textdomain_just_in_time() load textdomain just in time code WP 6.5.2
function _load_textdomain_just_in_time( $domain ) { /** @var WP_Textdomain_Registry $wp_textdomain_registry */ global $l10n_unloaded, $wp_textdomain_registry; $l10n_unloaded = (array) $l10n_unloaded; // Short-circuit if domain is 'default' which is reserved for core. if ( 'default' === $domain || isset( $l10n_unloaded[ $domain ] ) ) { return false; } if ( ! $wp_textdomain_registry->has( $domain ) ) { return false; } $locale = determine_locale(); $path = $wp_textdomain_registry->get( $domain, $locale ); if ( ! $path ) { return false; } // Themes with their language directory outside of WP_LANG_DIR have a different file name. $template_directory = trailingslashit( get_template_directory() ); $stylesheet_directory = trailingslashit( get_stylesheet_directory() ); if ( str_starts_with( $path, $template_directory ) || str_starts_with( $path, $stylesheet_directory ) ) { $mofile = "{$path}{$locale}.mo"; } else { $mofile = "{$path}{$domain}-{$locale}.mo"; } return load_textdomain( $domain, $mofile, $locale ); }