-
本地安装gettext
gettext是一种国际化与本地化系统,在类Unix系统中编写多语言程序时经常被使用。gettext的一个常用的实现版本为GNU gettext,1995年发布
不论是linux系统还是windows系统,执行以下命令:
php -m
查看是否安装了gettext的扩展,如果没有百度安装一下
-
找到你的插件目录,在入口文件,一般为插件目录下的一个php文件,注释格式一般为
注释中的plugin name一般为你自定义的插件名称
-
在这个入口文件中,plugin name注释下加一行text domain,加完后如下:
-
将你插件中需要自定义的功能和页面引入
require __DIR__ . '/settings-customize.php';
-
在setting-customize.php中可以写入一个settings常规配置项加一个自定义配置项
function customize_register_fields() {
register_setting( 'general', 'customize_fields_des' );
$title = '<label for="customize_fields_des">' . __( 'website description', 'customize' ) . '</label>';
add_settings_field( 'customize_fields_des', $title, 'customize_fields_des', 'general' );
}
function customize_fields_des() {
$value = get_option( 'customize_fields_des', '' );
$des = '<p class="description">' . __( 'Displayed in the description tab of the first page', 'customize' ) . '</p>';
echo '<textarea name="customize_fields_des" id="customize_fields_des" class="large-text code" rows="3">' . $value . '</textarea>';
echo $des;
}
add_filter( 'admin_init', 'customize_register_fields' );
-
__()这个函数,后续需要语言切换的地方变量都用这个函数,第一个参数是唯一的id,最好是英文且当前插件下唯一,第二个参数是文本与域,就是一开始设置的text domain:customize
-
在后台的plugins插件中将自定义插件customize激活
-
插件根目录下创建languages文件夹
-
因为是中文,顾命名customize-zh_CN.po 前面一部分是文本域加zh_CN中文标识
-
po文件写入以下内容
msgid "website description"
msgstr "网站描述"
msgid "Displayed in the description tab of the first page"
msgstr "显示在首页描述标签中"
-
在languages下执行
msgfmt customize-zh_CN.po -o customize-zh_CN.mo
-
这时候lanuages下会生成mo的二进制文件,机器识别
-
在插件入口文件customize.php中加载自定义的文本域
require __DIR__ . '/settings-customize.php';
function load_customize_domain() {
load_plugin_textdomain( 'customize', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'load_customize_domain' );
-
切换语言会发现自定义的输入框支持中英切换了