当前浏览:首页 / WordPress函数 / load_theme_textdomain()

load_theme_textdomain( string $domain, string|false $path = false )

加载主题的翻译字符串

load

textdomain

theme 主题more...


描述

如果当前地区语言的 .mo 文件在主题根目录中有存在,它将由$domain参数引入翻译字符串中。

这个 .mo 文件必须完全基于当地语言命名。


参数

$domain

(string) (必填) 文本域。用于检索翻译字符串的唯一标识符。

$path

(string|false) (可选) 包含 .mo 文件的目录路径。

默认值: false


返回

(bool) 成功加载textdomain时为True,否则为false。



源码

查看源码 官方文档


更新日志

版本描述
4.6.0函数现在尝试先从languages目录中加载 .mo 文件
1.5.0开始引入

使用示例

  • 示例1

    第一个示例,通常应从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这样的名称不起作用。虽然插件语言文件允许您在文件名中指定文本域,但这不适用于主题。主题的语言文件应仅包括语言快捷方式。

  • 示例2

    第二个示例,如果您希望使用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' );