WordPress 主题和插件本地化翻译:从入门到精通

WordPress 主题和插件本地化翻译:从入门到精通插图

WordPress,作为全球最受欢迎的内容管理系统,其受欢迎程度源于其强大的功能和卓越的可定制性与国际化特性。本文将深入探讨WordPress的翻译架构,揭示如何使您的插件与主题实现全球化,进而造福世界各地的用户。

WordPress翻译机制的基本原理

WordPress的本地化过程基于相对简单的gettext系统。不了解它的人可能会感到困惑。概而言之,开发者通过定义函数标记待翻文本,系统将这些文本提取至模板文件(.pot),翻译者随后根据模板制作针对各种语言的翻译文件(.po),最终编译成目标语言的最终文件(.mo)。

这些.mo文件构成了WordPress的实际翻译资源。WordPress在执行过程中,会依据配置的文本域定位相应的.mo文件,并依据用户语言偏好展示相应翻译的文本,确保不同语言用户均能接收到恰当信息。

如何让你的插件或主题支持多语言

# Copyright (C) 2023 
# This file is distributed under the GPLv2.
msgid ""
msgstr ""
"Project-Id-Version: Smush Pro 3.14.0n"
"Report-Msgid-Bugs-To: https://wpmudev.comn"
"POT-Creation-Date: 2023-07-21 12:47+0800n"
"PO-Revision-Date: 2023-08-15 15:14+0800n"
"Last-Translator: cnuu n"
"Language-Team: n"
"Language: zh_CNn"
"MIME-Version: 1.0n"
"Content-Type: text/plain; charset=UTF-8n"
"Content-Transfer-Encoding: 8bitn"
"Plural-Forms: nplurals=1; plural=0;n"
"X-Generator: Poedit 3.3.2n"
"X-Domain: wp-smushitn"
#. Plugin Name of the plugin
#: app/class-admin.php:285 app/class-admin.php:324
#: app/pages/class-dashboard.php:110 app/pages/class-dashboard.php:353
#: app/views/directory/meta-box.php:43 core/modules/bulk/class-mail.php:65
msgid "Smush Pro"
msgstr "Smush 专业版" 

为了使插件或主题支持多语言,需在代码中标识待翻译内容,通常采用gettext函数完成。例如,利用`__('BlogOptions','my-plugin');`语句标记文本,其中`'my-plugin'`代表所属文本域,WordPress据此定位相应的翻译资源文件。

您需生成.pot文件,其中汇集了待翻译文本,此类文件仅作为模板,非直接用之翻译。可通过Poedit等软件打开.pot文件,进而新建并编辑对应语言的.po文件,于其中录入每句文本的对应翻译。

在编辑过程结束后,请确保将.po文件转换为.mo文件。这些.mo文件构成了WordPress使用的实际翻译资源。务必将生成的.mo文件存入插件或主题的languages文件夹中,或wp-content/languages目录中。通过此操作,用户在切换语言时,WordPress便能查找到并应用对应的翻译文件。

WordPress5.0引入:JavaScript本地化更新

WordPress5.0引入了关键的wp-i18nJavaScript包更新。此包支持JavaScript文件文本如同PHP文件般进行翻译,允许对插件或主题中通过JavaScript输出的文本进行翻译处理。

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

为实现此目标,须创建包含全部待译JavaScript文本的JSON翻译档。此操作可通过WP-CLI工具完成。一旦生成,务必将该JSON文件存放到适当位置,以确保WordPress能识别并利用它。

php wp-cli.phar --info

总结与展望

WordPress的本地化过程貌似复杂,然而,熟悉其基础原则与步骤后,便能轻松应对。借助gettext库,您可轻松实现插件或主题的多语言支持,使全球用户皆能鉴赏您的作品。

chmod +x wp-cli.phar

熟悉了WordPress的国际化工具,亦掌握将扩展国际化的技巧。接下来,你的作品将覆盖何种语言?敬请于评论区抒发见解,共助WordPress跨语言发展。

$ wp --info

THE END