load_default_textdomain()
云策文档标注
概述
load_default_textdomain() 函数用于根据当前区域设置加载默认的翻译字符串,主要处理 WordPress 核心的 .mo 文件加载。它基于 locale 参数确定文件路径,并支持多站点和管理界面的特殊处理。
关键要点
- 函数加载位于 WP_LANG_DIR 常量路径下的 .mo 文件,文件名基于 locale 参数(如 en_US.mo)。
- 参数 $locale 可选,默认为 get_locale() 或 determine_locale() 的值,用于指定要加载的区域设置。
- 返回布尔值,表示 textdomain 是否成功加载。
- 函数内部会先卸载已加载的默认翻译字符串,然后根据条件加载 admin-$locale.mo、ms-$locale.mo 或 admin-network-$locale.mo 等文件。
- 相关函数包括 load_textdomain()、unload_textdomain()、determine_locale() 等,用于辅助翻译管理。
代码示例
function load_default_textdomain( $locale = null ) {
if ( null === $locale ) {
$locale = determine_locale();
}
// Unload previously loaded strings so we can switch translations.
unload_textdomain( 'default', true );
$return = load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo", $locale );
if ( ( is_multisite() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) && ! file_exists( WP_LANG_DIR . "/admin-$locale.mo" ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo", $locale );
return $return;
}
if ( is_admin() || wp_installing() || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) || doing_action( 'wp_maybe_auto_update' ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo", $locale );
}
if ( is_network_admin() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo", $locale );
}
return $return;
}
原文内容
Loads default translated strings based on locale.
Description
Loads the .mo file in WP_LANG_DIR constant path from WordPress root.
The translated (.mo) file is named based on the locale.
See also
Parameters
$localestringoptional-
Locale to load. Default is the value of get_locale() .
Default:
null
Source
function load_default_textdomain( $locale = null ) {
if ( null === $locale ) {
$locale = determine_locale();
}
// Unload previously loaded strings so we can switch translations.
unload_textdomain( 'default', true );
$return = load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo", $locale );
if ( ( is_multisite() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) && ! file_exists( WP_LANG_DIR . "/admin-$locale.mo" ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo", $locale );
return $return;
}
if ( is_admin() || wp_installing() || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) || doing_action( 'wp_maybe_auto_update' ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo", $locale );
}
if ( is_network_admin() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) {
load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo", $locale );
}
return $return;
}
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |