请注意,如果将mo文件放在主题目录中,the same mo-file will be loaded for every theme textdomain. 这是因为主题mo文件完全基于区域设置。例如:
load_theme_textdomain( \'basic\', get_template_directory() . \'/languages\' );
load_theme_textdomain( \'advance\', get_template_directory() . \'/languages\' );
load_theme_textdomain( \'whatever\', get_template_directory() . \'/languages\' );
既然“en\\u US”是你的
WPLANG
语言环境,将加载上面的代码
wp-content/themes/your-theme/languages/en_US.mo
三次!不好,因为多次导入相同的mo文件只会导致多余的工作。在这种情况下,最好使用单一主题域。
但是,如果wp-content/themes/your-theme/languages/en_US.mo
如果不存在,WordPress将查看默认语言目录的子目录“主题”,在这种情况下,它会将域作为文件名的一部分考虑在内。您可以通过快速查看load_theme_textdomain()
功能:
function load_theme_textdomain( $domain, $path = false ) {
$locale = apply_filters( \'theme_locale\', get_locale(), $domain );
if ( ! $path )
$path = get_template_directory();
// Load the textdomain from the Theme provided location, or theme directory first
$mofile = "{$path}/{$locale}.mo";
if ( $loaded = load_textdomain($domain, $mofile) )
return $loaded;
// Else, load textdomain from the Language directory
$mofile = WP_LANG_DIR . "/themes/{$domain}-{$locale}.mo";
return load_textdomain($domain, $mofile);
}