揭秘WordPress主题与插件本地化翻译的全攻略!

作品声明:个人观点、仅供参考

要在WordPress主题和插件中实现本地化翻译,首先必须理解国际化和本地化的概念,以及WordPress是如何进行这两者的操作的。

本文将讨论以下内容:

国际化的定义
如何为插件进行国际化
本地化的定义
本地化文件的概述
如何实施本地化
PO翻译文件的解析
在WordPress中翻译JavaScript内容的方法
WP-CLI的安装方法
如何在Windows上安装wp-cli
WP-CLI的更新
如何用WP-CLI生成JSON翻译文件
WP-CLI生成POT翻译模板的步骤

国际化的定义

国际化是为软件(在这里指WordPress)提供多语言支持的过程。这个过程通常被缩写为 i18n,其中数字18表示首尾字母之间的字符数量。

为您的插件和主题设置i18n支持,可以帮助其覆盖更广泛的用户群体,甚至无需提供额外的语言翻译。当您将软件上传至WordPress.org时,所有的JS和PHP文件会被自动解析。任何被识别的翻译字符串都会添加到translate.wordpress.org中,以便社区进行翻译,从而确保WordPress插件和主题能以多种语言提供。

在PHP方面,WordPress有一套成熟的流程,请参考如何国际化您的插件。而WordPress 5.0的发布也引入了类似的JavaScript代码翻译流程。

如何为插件进行国际化

为了使字符串能在应用中进行翻译,必须将原始字符串包裹在一组特殊函数的调用中。这些函数统称为“gettext”。

本地化的定义

本地化是指翻译国际化插件的后续步骤。它通常缩写为(l和n之间有10个字母)l10n

本地化文件的介绍POT(可移植对象模板)文件

此文件包含插件中的原始字符串(英文文本)。

PO(可移植对象)文件

每位翻译者会获取该文件并将各部分翻译为其母语。最终结果是一个格式相同的文件,但含有翻译内容和特定的头部信息。每种语言对应一个文件。POTmsgstrPOPOTPO

MO(机器对象)文件

从每个翻译文件中生成一个可供使用的文件。这是gettext函数实际使用的机器可读二进制文件(与原始文件无关),也就是文件的“编译”版本。这个转换过程通常通过命令行工具进行。通常情况下,应用程序可能会使用多个大型逻辑可翻译模块和不同的文件。

深入理解WordPress国际化与本地化

上述信息摘自WordPress开发者资源库,若您有兴趣,可以深入研究和理解其中的内容。对于刚入门的朋友来说,这些概念可能较为复杂。简单而言,国际化是通过一系列函数将文本(如字符串、变量以及单复数形式)标记为可翻译的格式,而本地化则是将这些标记过的文本翻译成特定语言。主题或插件的开发者在设计时必须考虑国际化的因素,如果想要将主题或软件翻译成优美的中文,了解本地化的过程即可。

关于如何在WordPress中实现国际化以及Gettext函数的具体使用,您可以查阅《如何国际化你的插件》这篇文章。

本地化的实现方法

接下来,我们将重点讲解本地化的实现过程。

举例来说,当您查看一个已经完成国际化的主题或插件的源代码时,您应该会发现许多类似于

__ (‘Blog Options’, ‘my-plugin’);的代码。这个函数的格式为:__(‘文本域’, ‘路径域’);其中,文本域表示可以被翻译的内容,将在前端显示,而路径域则定义了插件翻译的位置。

如前所述,.pot文件作为模板,.po文件是可编辑的翻译文件,.mo文件则是编译后的翻译版本。简单来说,当WordPress遇到__ (‘Blog Options’, ‘my-plugin’);这一语句时,它会在众多的.mo文件中查找与my-plugin相匹配的文件。如果该文件中包含了Blog Options的翻译记录,WordPress就会将其替换为翻译后的文本,并将其展示在页面上。

这样讲解后,您是否觉得更易理解呢?接下来,我们将探讨如何创建和编辑翻译文件。

下载一个已经国际化的主题或插件后,您应该能在languages或lang目录中找到相应的.pot文件或多个.po文件。只要找到.pot模板文件即可,这个文件是创建翻译的基础。有了这个模板,您便可以使用Poedit等软件生成对应语言的.po文件进行编辑,并生成.mo文件供WordPress使用。

解析po翻译文件

如果您没有.pot文件,可以参考下文关于如何创建.pot模板文件的内容。

下面是一个po文件的示例:

# 版权所有 (C) 2023 
# 本文件根据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"

#. 插件名称
#: 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 专业版" 

这段代码展示了.pot文件的内容,旨在实现国际化。接下来是每一行的解释:

  1. “Project-Id-Version: Smush Pro 3.14.0n”:定义项目的版本号。
  2. “Report-Msgid-Bugs-To: https://wpmudev.comn”:提供报告消息ID和错误的链接。
  3. “POT-Creation-Date: 2023-07-21 12:47+0800n”:记录此模板的创建时间。
  4. “PO-Revision-Date: 2023-08-15 15:14+0800n”:最后一次修改此模板的时间。
  5. “Last-Translator: cnuu n”:最后翻译此模板的人员信息。
  6. “Language-Team: n”:标识负责特定语言翻译的团队。
  7. “Language: zh_CNn”:指明此模板适用于简体中文。
  8. “MIME-Version: 1.0n”:指示MIME版本。
  9. “Content-Type: text/plain; charset=UTF-8n”:表明内容类型及字符编码,这里采用纯文本和UTF-8。
  10. 深入了解WordPress翻译机制及其应用

  • “Content-Transfer-Encoding: 8bitn”: 这表示内容的传输编码方式为8位编码。
  • “Plural-Forms: nplurals=1; plural=0;n”: 该条目定义了复数形式的规则,表明此语言仅有一种复数形式。
  • “X-Generator: Poedit 3.3.2n”: 这里列出了生成该模板所用工具的名称及版本信息。
  • “X-Domain: wp-smushitn”: 该字段指定了与模板相关的域名或项目名称,具体为wp-smushit插件。

接下来是被双引号包围的字符串,这部分包含消息ID及其对应的原始字符串(msgid)与翻译后的字符串(msgstr)。例如:

  • msgid “Smush Pro” 表示原始文本为 “Smush Pro”。
  • msgstr “Smush 专业版” 表示翻译后的内容为 “Smush 专业版”。

例如,#: app/class-admin.php:285 app/class-admin.php:324 这类行表明字符串在源代码文件中的出现位置。这对翻译者而言非常关键,因为它有助于了解字符串的具体使用场景,以便进行更精准的翻译。

理解以上内容后,你将能够无需借助其他软件手动创建.po文件。

关于文件命名的规则:

例如wp-plugin-name-zh_CN.po

显然,文件名需要使用中文,并以“-”连接各个单词,最后的zh_CN则代表依照ISO 639-1标准所规定的语言代码,例如:

  • en_US(英语)
  • zh_CN(简体中文)
  • fr_FR(法语)
  • de_DE(德语)
  • es_ES(西班牙语)

一旦编辑完成,生成的对应.mo文件应放置于主题或插件目录下的languages文件夹中,或者在wp-content/languages/的相应目录下。不同作者的操作方式可能有所不同,需区别对待。

掌握了上述知识后,本地化翻译已经不再是难事。相信你已经迫不及待想要实践了,别急,接下来的内容将是你在其他地方难以获取的实用经验总结。

可能会出现这样的情况:某段文本已在翻译文件中添加并且翻译生效,但仍有部分内容无法翻译。

在这种情况下,你需要找到该段文本在源代码中的位置,确认其是否已经进行国际化定义,即使用了之前提到的函数__(‘文本域’,”路径域”);。同时,还要确保路径域与翻译文件匹配。

如果没有定义该函数,你可以手动修改源代码以添加相应的定义。了解不同函数的使用方法,包括__()、_e()、_x()、_ex()、_n()、_nx()等是很重要的。如果路径域与翻译文件不一致,你也可以选择修改路径域或创建一个对应的翻译文件。

还有一种可能性,即该段文字是通过JS文件输出的。

如何在WordPress中翻译JavaScript内容

自WordPress 5.0起,引入了wp-i18n JavaScript包,提供了添加可翻译字符串所需的功能,类似PHP中的操作。原文链接

简单来说,通常情况下,由PHP文件输出的文本内容可以通过mo文件进行翻译,而JS文件输出的文本内容则需要生成相应的JSON文件以供翻译使用。

要生成JSON翻译文件,可以使用WP-CLI工具。

如何安装WP-CLI

WP-CLI是WordPress的命令行工具,其设计初衷是为WordPress的管理员提供一个全面的替代方案。无论在WordPress管理过程中需要执行何种操作,都应该存在相应的WP-CLI命令。

推荐的安装WP-CLI方式是下载Phar构建文件(类似于Java的JAR文件),将其设为可执行,并放置在系统的PATH目录中。

在进行WP-CLI的安装之前,请确认您的系统环境符合最低要求:

  • 类Unix环境(如OS X、Linux、FreeBSD、Cygwin);在Windows环境下支持有限
  • 需要PHP版本5.6或更高
  • WordPress版本需为3.7或更高版本。较旧版本可能会有功能限制

在确认满足要求后,您可以使用或下载wp-cli.phar文件:wgetcurl

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

接下来,要检查Phar文件是否正常,可以执行以下命令:

php wp-cli.phar --info

若要通过命令行使用WP-CLI,首先需将文件设为可执行,并移动到PATH的某个位置。例如:wp

chmod +x wp-cli.phar

sudo mv wp-cli.phar /usr/local/bin/wp

如果WP-CLI成功安装,运行时会显示如下信息:wp –info

$ wp --info

OS: Linux 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64

Shell: /usr/bin/zsh

PHP binary: /usr/bin/php8.1

PHP version: 8.1.0

php.ini used: /etc/php/8.1/cli/php.ini

MySQL binary: /usr/bin/mysql

在Windows平台上安装wp-cli

首先需要安装PHP,并将PHP可执行文件所在的路径加入系统环境变量Path。

接下来,下载wp-cli.phar文件并放置到一个指定目录,例如我的目录为D:Toolswp-cli。

在D:Toolswp-cli目录下,新建一个名为wp.bat的批处理文件。

在该文件中输入以下内容:

@ECHO OFF

php “D:/Tools/wp-cli/wp-cli.phar” %*

最后,记得在环境变量Path中添加D:Toolswp-cli路径。

更新

您可以通过使用(doc)或者重复安装的方式来进行WP-CLI的更新。执行命令:wp cli update

如果WP-CLI是以root或其他系统用户身份拥有的,则需要使用 .sudo wp cli update

利用WP-CLI生成JSON翻译文件

wp i18n make-json .po --no-purge

在这里,.po指的是已经完成编辑的po文件。

执行该命令将会产生几个文件,名称格式为plugin-name-zh_CN-[md5].json。

值得注意的是,md5值不可更改,生成的json文件需放入相应目录,以便实现对js中输出文本的翻译。

利用WP-CLI生成POT翻译模板

  1. 执行以下命令以生成POT文件:
wp i18n make-pot .pot 

在这一命令中,请将替换为你希望生成的POT文件名称,例如myplugin。同时,将替换为你想提取翻译字符串的插件或主题的路径。
2. 运行命令后,WP-CLI将自动扫描所指定的插件或主题目录,提取翻译字符串到目标POT文件中。
3. 最终你会得到一个名为.pot的文件,里面包含了你WordPress插件或主题的翻译字符串,可以用任意文本编辑器打开进行查看和修改。

有关wp-cli的安装和使用,欢迎访问https://wp-cli.org/以深入了解和学习。

本文由作者@avenjan撰写,分享了关于WordPress本地化翻译的经验和思考,旨在帮助想要掌握相关技能的朋友。部分内容可能不够准确和专业,但希望能为有需要的读者提供一些指引和支持。如有任何疑问和建议,欢迎在评论区交流,感谢大家的关注!

来源:今日头条
原文标题:一篇文章带您了解如何实现WordPress主题/插件本地化翻译 – 今日头条
声明:
文章来自网络收集后经过ai改写发布,如不小心侵犯了您的权益,请联系本站删除,给您带来困扰,深表歉意!

本文标题:揭秘WordPress主题与插件本地化翻译的全攻略!
网址:https://www.2090ai.com/2025/11/21/plugins/67346.html



本站所有文章由wordpress极光ai post插件通过chatgpt写作修改后发布,并不代表本站的观点;如果无意间侵犯了你的权益,请联系我们进行删除处理。
如需转载,请务必注明文章来源和链接,谢谢您的支持与鼓励!