当你的主题需要面向不同语言用户时,国际化是必须做的工作。WordPress 提供了完整的国际化工具,让主题可以轻松适配任何语言。

翻译函数的正确使用

在主题中使用 __ 和 _e 函数标记所有需要翻译的文本。__ 返回翻译后的文本,_e 直接输出翻译后的文本。对于单复数场景,使用 _n 函数处理不同数量下的不同译文。对于需要附加上下文的文本,使用 _x 和 _ex 函数提供上下文信息。

每个翻译函数都接受一个文本域参数,文本域是主题的唯一标识符,用于区分不同主题和插件的翻译文件。

文本域的声明与加载

在 style.css 中声明文本域,在 functions.php 中使用 load_theme_textdomain 函数加载翻译文件。翻译文件通常放在主题的 /languages/ 目录下,命名格式为 文本域-语言代码.mo

翻译文件 POT、PO 和 MO

POT 文件是从主题源代码中提取的所有待翻译字符串的模板。PO 文件是基于 POT 文件进行翻译的源文件。MO 文件是 PO 文件编译后的二进制文件,WordPress 实际使用的是 MO 文件。

使用 WP-CLI 的 wp i18n make-pot 命令可以从主题中提取 POT 文件。使用 POEdit 或 Loco Translate 插件可以创建和编辑 PO 文件,并生成 MO 文件。

多语言主题的实际应用

在多语言主题中,页眉、页脚、导航菜单、小工具标题、按钮文本、表单标签等所有用户可见的文本都应该是可翻译的。硬编码的英文文本在多语言环境中无法适配,必须全部替换为翻译函数。