描述
如果当前地区语言的 .mo 文件在主题根目录中有存在,它将由$domain参数引入翻译字符串中。
这个 .mo 文件必须完全基于当地语言命名。
参数
- $domain
-
(string) (必填) 文本域。用于检索翻译字符串的唯一标识符。
- $path
-
(string|false) (可选) 包含 .mo 文件的目录路径。
默认值: false
返回
(bool) 成功加载textdomain时为True,否则为false。
源码
更新日志
版本 | 描述 |
---|---|
4.6.0 | 函数现在尝试先从languages目录中加载 .mo 文件 |
1.5.0 | 开始引入 |
使用示例
第一个示例,通常应从
after_setup_theme
动作挂钩内调用load_theme_textdomain()
函数。add_action('after_setup_theme', 'wpdocs_theme_setup'); /** * Load translations for wpdocs_theme */ function wpdocs_theme_setup(){ load_theme_textdomain('wpdocs_theme', get_template_directory() . '/languages'); }
这个 .mo 文件必须使用纯语言文件名,如主题目录中的
languages/de_DE.mo
。与插件语言文件不同,像
my_theme-de_DE.mo
这样的名称不起作用。虽然插件语言文件允许您在文件名中指定文本域,但这不适用于主题。主题的语言文件应仅包括语言快捷方式。第二个示例,如果您希望使用URL内传递的变量切换主题语言,例如加载Tamazikht语,您的URL如下所示:
www.example.com/?l=tz_MA
,这将在主题内的语言目录中搜索名为tz_MA.mo
的.mo
文件。// CHANGE LOCAL LANGUAGE // must be called before load_theme_textdomain() add_filter( 'locale', 'wpdocs_theme_localized' ); /** * Switch to locale given as query parameter l, if present */ function wpdocs_theme_localized( $locale ) { if ( isset( $_GET['l'] ) ) { return sanitize_key( $_GET['l'] ); } return $locale; } // SET THEME LANGUAGES DIRECTORY // Theme translations can be filed in the my_theme/languages/ directory // Wordpress translations can be filed in the wp-content/languages/ directory load_theme_textdomain( 'wpdocs_theme_textdomain', get_template_directory().'/languages' );