跳转到主要内容

本土化

什么是本地化?

本地化描述了翻译国际化插件的后续过程。Localization 通常缩写为l10n(因为 l 和 n 之间有 10 个字母。)

本地化文件

(便携式对象模板)文件

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

(便携式对象)文件

每个翻译人员都会获取该POT文件并将各个msgstr部分翻译成自己的语言。结果是一个PO与 a 格式相同的文件POT,但带有翻译和一些特定的标头。每种语言都有一个PO文件。

(机器对象)文件

从每个翻译的PO文件中MO构建一个文件。这些是 gettext 函数实际使用的机器可读的二进制文件(它们不关心.POT.PO文件),并且是文件的“编译”版本PO。转换是使用msgfmt命令行工具完成的。一般来说,一个应用程序可能会相应地使用多个大型逻辑可翻译模块和不同的MO文件。文本域是每个模块的句柄,每个模块都有不同的MO文件。

生成POT文件

POT文件是您需要交给翻译人员的文件,以便他们可以完成工作。和文件可以轻松地互换重命名以更改文件类型,而不会出现任何问题POT PO

笔记:最好将 POT 文件与您的插件一起提供,这样翻译人员就不必专门询问您相关问题。

有几种方法可以POT为您的插件生成文件:

WP-CLI

安装WP-CLIwp i18n make-pot并根据文档使用命令。

诗歌

翻译时也可以在本地使用Poedit。这是适用于所有主要操作系统的开源工具。免费的Poedit默认版本支持使用Gettext功能手动扫描所有源代码。它的专业版还具有一键扫描 WordPress 插件的功能。生成PO文件后,您可以将文件重命名为POT. 如果MO生成了,那么您可以删除该文件,因为不需要它。如果您没有专业版,您可以轻松获得空白 POT并将其用作POT file. 将空白放入POT语言文件夹后,您可以在 Poedit 中单击“更新”以POT使用您的字符串更新文件。

繁重任务

您甚至可以使用一些繁重的任务来创建 POT。 grunt-wp-i18n 和 grunt-pot。设置 grunt 的步骤超出了本文档的范围,但请注意这是可能的。以下是一个示例 Grunt.js 和 package.json,您可以将其放置在插件的根目录中。

翻译PO文件

将翻译后的文件另存为 my-plugin-{locale}.mo. 区域设置是语言代码和/或国家/地区代码。例如,德语的区域设置是 de_DE。从上面的代码示例中,文本域是“my-plugin”,因此德语 MO 和 PO 文件应命名为 my-plugin-de_DE.mo 和 my-plugin-de_DE.po。有关语言和国家/地区代码的更多信息,请参阅 以您的语言安装 WordPress

翻译文件的方法有多种PO

手动

您可以使用文本编辑器输入翻译。在文本编辑器中,它看起来像这样。


#: plugin-name.php:123
msgid "Page Title"
msgstr ""

您在引号之间输入翻译。对于德语翻译,它看起来像这样。


#: plugin-name.php:123
msgid "Page Title"
msgstr "Seitentitel"

诗歌

翻译时也可以使用Poedit。免费的Poedit默认版本支持使用Gettext功能手动扫描所有源代码。它的专业版还具有一键扫描 WordPress 插件和主题的功能。

在线服务

第三种选择是使用在线翻译服务。一般的想法是,您上传POT文件,然后您可以授予用户或翻译人员翻译您的插件的权限。这使您可以跟踪更改,始终拥有最新的翻译并减少两次翻译。

以下是一些可用于在线翻译 PO 文件的工具:

生成MO文件

命令行

msgfmt 用于创建 MO 文件。msgfmt是 Gettext 包的一部分。否则可以使用命令行。典型的 msgfmt 命令如下所示:

Unix操作系统


msgfmt -o filename.mo filename.po

Windows 操作系统


msgfmt -o filename.mo filename.po

如果您有很多 PO 文件需要一次转换,您可以批量运行它。例如,使用 bash 命令:

Unix操作系统


# Find PO files, process each with msgfmt and rename the result to MO
for file in `find . -name "*.po"` ; do msgfmt -o ${file/.po/.mo} $file ; done

Windows 操作系统
对于 Windows,您需要先安装 Cygwin

创建一个名为的文件potomo.sh并将以下内容放入其中:


#! /bin/sh
# Find PO files, process each with msgfmt and rename the result to MO
for file in `/usr/bin/find . -name '*.po'` ; do /usr/bin/msgfmt -o ${file/.po/.mo} $file ; done

您可以在命令行中运行此命令。


cd C:/path/to/language/folder/my-plugin/languages & C:/cygwin/bin/bash -c /cygdrive/c/path/to/script/directory/potomo.sh

诗歌

msgfmt还集成在Poedit中 ,允许您使用它来生成 MO 文件。首选项中有一个设置,您可以在其中启用或禁用它。

国际化-本地化-04

咕噜任务

grunt-po2mo可以转换所有文件。

良好翻译的秘诀

不要逐字翻译,要有机翻译

作为双语或多语者,您无疑知道您所说的语言具有不同的结构、节奏、语气和语调变化。翻译后的消息不需要采用与英语消息相同的结构:采用所呈现的想法,并提出一条消息,以自然的方式为目标语言表达相同的内容。这就是创建同等消息和等效消息之间的区别:不要复制,而是替换。即使消息中有更多的结构性项目,如果您认为这对目标受众来说更合乎逻辑或更适合,您也可以创造性地进行调整和更改。

尝试保持相同程度的正式(或非正式)

每条消息都有不同程度的正式或非正式。您必须自己(或与您的团队)一起弄清楚目标语言中每条消息的正式或非正式程度,但 WordPress 消息(特别是信息性消息)往往有礼貌的非正式语气。英语的语气。尝试在您的文化背景下用目标语言完成同等的任务。

不要使用俚语或特定于受众的术语

博客中会出现一定数量的术语,但不要使用只有“圈内”人群才会使用的口语。如果不熟悉的博主要以您的语言安装 WordPress,他们会知道该术语的含义吗?pingback、trackback 和 feed 之类的词是该规则的例外;它们是通常难以翻译的术语,许多译者选择保留英语。

阅读其他软件的您语言的本地化版本

如果您遇到困难或需要指导,请尝试阅读其他流行软件工具的翻译,以了解常用术语、如何处理正式性等。当然,WordPress 有自己的语气和感觉,所以请保留这一点当您阅读其他本地化版本时,请记住这一点,但请随意挖掘 UI 术语等,以保持与您语言中的其他软件的一致性。

使用本地化

将本地化文件放在语言文件夹中,可以放在插件languages文件夹中,也可以从 WordPress 3.7 开始放在插件languages文件夹中,通常位于wp-content. 完整路径将是wp-content/languages/plugins/my-plugin-fr_FR.mo.

您可以在“常规设置”中更改语言。如果您没有看到此选项,或者未列出您要切换到的语言,请手动执行此操作:

  • 定义WPLANG内部wp-config.php为您选择的语言。例如,如果您想使用法语,则需要:define ('WPLANG', 'fr_FR');
  • 转到wp-admin/options-general.php或“设置”->“常规”
  • 在“站点语言”下拉列表中选择您的语言
  • wp-admin/update-core.php
  • 如果可用,请点击“更新翻译”
  • 下载核心翻译文件(如果可用)

资源