在WordPress插件中进行国际化(i18n)和本地化(l10n)通常涉及以下步骤:
1. 准备文本域
首先,为你的插件定义一个文本域(text domain)。这个文本域是插件的唯一标识符,用于加载翻译文件。
在你的插件主文件(通常是插件根目录下的 PHP 文件)中,添加以下代码:
function myplugin_load_textdomain() {
load_plugin_textdomain( 'my-plugin-textdomain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'myplugin_load_textdomain' );
在这里,my-plugin-textdomain
是你的插件文本域,dirname( plugin_basename( __FILE__ ) ) . '/languages/'
是你的翻译文件所在的目录。
2. 添加翻译字符串
在你的插件代码中,使用 __()
、_e()
、esc_attr__()
、esc_attr_e()
、esc_html__()
、esc_html_e()
等函数来包裹需要翻译的字符串。
例如:
echo __('This is a translatable string.', 'my-plugin-textdomain');
或者,如果你需要输出 HTML 属性:
echo esc_attr__('This is a translatable string for an attribute.', 'my-plugin-textdomain');
3. 创建翻译文件
在插件目录下创建一个名为 languages
的文件夹,并在其中创建翻译文件。翻译文件的命名格式通常是 textdomain-locale.mo
,其中 textdomain
是你的插件文本域,locale
是目标语言和地区代码(例如 en_US
)。
例如,如果你要为美国英语创建翻译文件,文件名应该是 my-plugin-textdomain-en_US.mo
。
你可以使用 Poedit 或其他翻译工具来创建 .po
和 .mo
文件。
4. 添加翻译
使用 Poedit 或类似工具打开 .po
文件,添加你的翻译字符串和相应的翻译。
5. 上传翻译文件
将生成的 .mo
文件上传到插件 languages
目录下。
6. 使用翻译
WordPress 将自动加载相应的翻译文件,并将你的字符串翻译成用户的语言设置。
示例
以下是一个简单的插件代码示例,演示了如何使用国际化函数:
<?php
/*
Plugin Name: My Internationalized Plugin
Text Domain: my-plugin-textdomain
*/
function myplugin_load_textdomain() {
load_plugin_textdomain( 'my-plugin-textdomain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'myplugin_load_textdomain' );
function myplugin_display_message() {
echo '<div class="notice">' . esc_html__( 'Hello, this is a translatable message!', 'my-plugin-textdomain' ) . '</div>';
}
add_action( 'admin_notices', 'myplugin_display_message' );
确保你已经创建了翻译文件,并且已经将其放置在正确的位置。这样,当插件被激活并且用户的语言设置与翻译文件匹配时,用户将看到本地化的消息。