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。

前台就会根据访客站点语言(不是后台语言)自动切换。