WordPress标准国际化函数应用范例
12
在 WordPress 里,后台语言 ≠ 前台语言,所以直接拿「后台正在用的语言」去决定前台的词,会让访客无所适从。
正确做法:用 WordPress 的标准国际化函数,让主题/插件的翻译文件去决定“Home”在前台该显示成什么语言。
一、最简写法(推荐)
<a href="<?php echo esc_url( home_url() ); ?>">
<?php _e( 'Home', 'your-textdomain' ); ?>
</a>
‘Home’ 是原始英文字符串。
‘your-textdomain’ 换成你主题或插件在 load_theme_textdomain() / load_plugin_textdomain() 里注册的那个 textdomain。
只要对应语言的 .po/.mo 文件里有翻译,WordPress 会自动输出「首页」「ホーム」等。
二、如果你确实想“根据后台语言”显式替换(不建议,但演示)
$locale = get_locale();
switch ( $locale ) {
case 'zh_CN':
$label = '首页';
break;
case 'ja':
$label = 'ホーム';
break;
default:
$label = 'Home';
}
?>
<a href="<?php echo esc_url( home_url() ); ?>"><?php echo esc_html( $label ); ?></a>
三、补充:让翻译文件生效
在主题或插件里先注册
load_theme_textdomain( 'your-textdomain', get_template_directory() . '/languages' );
把 .pot 丢进 languages/ 目录,用 Poedit 新建 zh_CN.po、ja.po 并填写翻译,保存后生成 .mo。
前台就会根据访客站点语言(不是后台语言)自动切换。