WordPress 国际化与本地化(i18n/l10n):打造多语言网站

国际化(i18n)和本地化(l10n)是让 WordPress 主题和插件支持多语言的关键技术。本文介绍如何正确实现国际化,让你的代码可以被翻译成任何语言。

国际化基础

国际化是指在代码中标记可翻译的字符串,而不是直接硬编码文本。WordPress 使用 GNU gettext 系统实现国际化,翻译文件格式为 .po(可编辑)和 .mo(编译后的二进制)。

常用翻译函数

__( $text, $domain )——返回翻译后的字符串;_e( $text, $domain )——输出翻译后的字符串;_n( $single, $plural, $number, $domain )——处理单复数;_x( $text, $context, $domain )——带上下文的翻译(同一词在不同场景有不同译法);esc_html__() / esc_attr__()——翻译并转义。

加载翻译文件

在主题 functions.php 中:add_action('after_setup_theme', function(){ load_theme_textdomain('my-theme', get_template_directory().'/languages'); });。在插件中:add_action('init', function(){ load_plugin_textdomain('my-plugin', false, dirname(plugin_basename(__FILE__)).'/languages'); });

生成翻译文件

使用 WP-CLI 提取字符串:wp i18n make-pot . languages/my-theme.pot。使用 Poedit 软件打开 .pot 文件,翻译字符串,保存为 .po 文件,Poedit 自动生成 .mo 文件。

总结

从一开始就实现国际化是良好的开发习惯。即使你的网站目前只需要中文,国际化的代码也更规范,未来扩展多语言时无需重构。

评论
暂无评论