0

我正在尝试使用cake i18n extract国际化 CakePHP 3 应用程序。来自src文件夹的所有文本都翻译得很好,但我有一些文本放在config/bootstrap.php中,但即使我将它们放在双下划线函数__('My text')和我还在src/Locale文件夹中生成了翻译文件(就像我对其他有效文本所做的那样。

知道为什么我在config/bootstrap.php中的文本不会被翻译吗?

提前感谢您的帮助

4

2 回答 2

0

这取决于您使用 I18n::setLocale() 设置应用程序语言环境的位置。您的应用程序使用 App.defaultLocale 设置来确定应该显示的语言。如果您更改控制器中的语言,则您的配置文件已经加载,因此这不会影响这些文件,只会影响那些将在您的 setLocale 之后加载的文件。

尝试在加载可翻译文件之前更改您的语言,或在更改 appLocale 后在控制器中加载翻译配置文件。

于 2020-01-13T09:06:19.417 回答
0

它们不会显示,因为默认情况下提取任务仅在src文件夹中查找。运行任务时,它会询问您从哪些路径提取,并且默认情况下它应该只列出src文件夹。

您可以在 shell 询问您应该查找的文件夹时以交互方式在 shell 中添加自定义路径,或者您可以使用paths选项预先定义它们,例如:

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

这样做时可能还想使用output选项来指定输出路径,因为任务将使用第一个路径作为输出的根,即使用上述路径,它会将文件放入config/Locale而不是src/Locale. 或者,您可以切换路径,但config文件夹文件中的消息将出现在文件底部.pot

也可以看看

于 2018-10-19T14:16:01.353 回答