翻译用的WordPress函数:load_plugin_textdomain(插件本地化)和load_theme_textdomain(主题本地化)

代码·功能  翻译用的WordPress函数:load_plugin_textdomain(插件本地化)和load_theme_textdomain(主题本地化)

WordPress函数:load_plugin_textdomain(插件本地化)

描述

加载翻译后的插件字符串。
如果未给出路径,默认路径为插件根目录。.mo文件路径基于带有破折号的域名命名,域名后应跟有一个破折号,破折号后为本地语言简码。 这里的本地语言简码是指你在wp-config.php中填写的 WPLANG 的值,比如你填写的是 zh_CN ,那么就该使用 zh_CN,如果你的插件的 text domain 为 “my-plugin”,那么语言包的名字应该为 “my-plugin-zh_CN.mo”和 “my-plugin-zh_CN.po”。

用法

<?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?>

参数

$domain
(字符串)(必需)用以检索被翻译字符串的唯一标识符
默认值:None
$abs_rel_path
(字符串)(可选).mo文件所在文件夹的ABSPATH的相对路径。该参数已弃用,但在WP 2.7前仍然有效。
默认值:false
$plugin_rel_path
(字符串)(可选)WP_PLUGIN_DIR的相对路径。推荐使用该参数,其优先级高于$abs_rel_path。
默认值:false

返回的值

(空)
该函数不返回任何值

例子

function myplugin_init() {
load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) );
}
add_action('plugins_loaded', 'myplugin_init');

或者你打算将语言包放在一个子文件夹 languages :

load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

注释

l10n是localization的缩写形式

函数历史

始见于1.5.0版本
2.7.0 版本以后,$abs_rel_path 参数被弃用!

源文件

load_plugin_textdomain() 位于 wp-includes/110n.php中。

WordPress函数:load_theme_textdomain(主题本地化)

描述

加载翻译后的主题字符串。
如果本地主题根目录下有一个.mo文件,该文件会被包括在$domain的被翻译字符串中。
.mo文件必须根据本地设置命名。

用法

<?php load_theme_textdomain( $domain, $path ) ?>

参数

$domain
(字符串)(必需)用以检索被翻译字符串的唯一标识符

默认值: None
$path
(未知)(可选)语言包 .mo 文件所在的目录(没有结尾的斜线)

默认值:false

返回的值

(布尔)
如果 textdomain 可以正常加载,返回 TRUE ;反之返回 FALSE

例子

例 1

load_theme_textdomain() 必须在 after_setup_theme 动作钩子后调用。

add_action('after_setup_theme', 'my_theme_setup');
function my_theme_setup(){
    load_theme_textdomain('my_theme', get_template_directory() . '/languages');
}

以上例子,指明主题的语言目录位于该主题的 languages  文件夹。
需要注意的是,WordPress主题语言包不像插件语言包,如果你将主题语言包命名为my_theme-zh_CN.mo ,它是没办法使用的。正确的命名方式是根据本地语言设置命名来命名,比如 zh_CN.mo

例 2

如果你希望通过 URL 中的参数来调用不同的语言,比如 www.example.com/?l=zh_CN 就调用 zh_CN.mo ,那你可以参考下面的例子:

// 更改本地语言
	// 必须在 load_theme_textdomain() 的前面调用
	add_filter( 'locale', 'my_theme_localized' );
	function my_theme_localized($locale) {
		if (isset($_GET['l'])) {
			return $_GET['l'];
		}
		return $locale;
	}
// 设置主题语言路径
	// 语言包应该访问 my_theme/languages/ 目录
	// WordPress 自身语言包放在 wp-content/languages/ 目录
	load_theme_textdomain( 'my_theme', TEMPLATEPATH . '/languages' );

注释

国际化和本地化是指计算机软件来适应不同的语言。
l10n 是 localization 的缩写,i18n的18代表第i个和最后的N国际之间的字母数。

函数历史

始见于1.5.0版本

源文件

load_theme_textdomain() 位于 wp-includes/l10n.php

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论
'); })();