国际化工具

CakePHP 的国际化功能使用 po 文件 作为其翻译源。PO 文件与常用的翻译工具(如 Poedit)集成。

国际化命令提供了一种快速生成 po 模板文件的方法。这些模板文件可以提供给翻译人员,以便他们翻译应用程序中的字符串。完成翻译后,可以将 pot 文件与现有翻译合并,以帮助更新翻译。

生成 POT 文件

可以使用 extract 命令为现有应用程序生成 POT 文件。此命令将扫描整个应用程序以查找 __() 样式的函数调用,并提取消息字符串。应用程序中的每个唯一字符串都将合并到一个 POT 文件中。

bin/cake i18n extract

以上将运行提取命令。此命令的结果将是文件 resources/locales/default.pot。您可以使用 pot 文件作为创建 po 文件的模板。如果您是手动从 pot 文件创建 po 文件,请确保正确设置 Plural-Forms 标题行。

为插件生成 POT 文件

您可以使用以下命令为特定插件生成 POT 文件:

bin/cake i18n extract --plugin <Plugin>

这将生成插件中使用的必要 POT 文件。

一次从多个文件夹中提取

有时,您可能需要从应用程序的多个目录中提取字符串。例如,如果您在应用程序的 config 目录中定义了一些字符串,您可能希望从该目录以及 src 目录中提取字符串。您可以使用 --paths 选项来完成此操作。它接受一个以逗号分隔的绝对路径列表进行提取

bin/cake i18n extract --paths /var/www/app/config,/var/www/app/src

排除文件夹

您可以传递一个以逗号分隔的文件夹列表,您希望将其排除。包含提供的值的路径段的任何路径都将被忽略

bin/cake i18n extract --exclude vendor,tests

跳过对现有 POT 文件的覆盖警告

通过添加 --overwrite,shell 脚本将不再警告您 POT 文件是否已存在,并且将默认覆盖

bin/cake i18n extract --overwrite

从 CakePHP 核心库中提取消息

默认情况下,提取 shell 脚本会询问您是否要提取 CakePHP 核心库中使用的消息。将 --extract-core 设置为 yes 或 no 以设置默认行为

bin/cake i18n extract --extract-core yes

// or

bin/cake i18n extract --extract-core no