CakePHP 的国际化功能使用 po 文件 作为其翻译源。PO 文件与常用的翻译工具(如 Poedit)集成。
国际化命令提供了一种快速生成 po 模板文件的方法。这些模板文件可以提供给翻译人员,以便他们翻译应用程序中的字符串。完成翻译后,可以将 pot 文件与现有翻译合并,以帮助更新翻译。
可以使用 extract
命令为现有应用程序生成 POT 文件。此命令将扫描整个应用程序以查找 __()
样式的函数调用,并提取消息字符串。应用程序中的每个唯一字符串都将合并到一个 POT 文件中。
bin/cake i18n extract
以上将运行提取命令。此命令的结果将是文件 resources/locales/default.pot。您可以使用 pot 文件作为创建 po 文件的模板。如果您是手动从 pot 文件创建 po 文件,请确保正确设置 Plural-Forms
标题行。
您可以使用以下命令为特定插件生成 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
通过添加 --overwrite
,shell 脚本将不再警告您 POT 文件是否已存在,并且将默认覆盖
bin/cake i18n extract --overwrite
默认情况下,提取 shell 脚本会询问您是否要提取 CakePHP 核心库中使用的消息。将 --extract-core
设置为 yes 或 no 以设置默认行为
bin/cake i18n extract --extract-core yes
// or
bin/cake i18n extract --extract-core no