我正在尝试使用 cake i18n extract 国际化CakePHP 3应用程序。来自 src 文件夹的所有文本都可以很好地翻译,但是我有一些文本放在了 config / bootstrap.php 中,但是即使我放置了这些文本也没有得到翻译它们放在双下划线功能 __('我的文本')中,并且我还在 src / Locale 文件夹中生成了翻译文件(与其他文本处理方式相同工作。
有人知道为什么我的 config / bootstrap.php 中的文本无法翻译吗?
在此先感谢您的帮助
答案 0 :(得分:0)
它们不会显示,因为默认情况下,提取任务仅在src
文件夹中显示。运行任务时,它将询问您要提取的路径,默认情况下,它仅应列出src
文件夹。
当外壳询问您要查找的文件夹时,您可以在外壳中以交互方式添加自定义路径,也可以使用paths
选项预先定义它们,例如:
bin/cake i18n extract --paths /var/www/app/config,/var/www/app/src
这样做时可能还需要使用output
选项来指定输出路径,因为该任务将使用第一个路径作为输出的根,即使用上述路径会将文件放在{ {1}},而不是config/Locale
。或者,您可以切换路径,但是来自src/Locale
文件夹文件的消息将显示在config
文件的底部。
另请参见
答案 1 :(得分:0)
这取决于您使用I18n :: setLocale()设置应用程序语言环境的位置。将显示使用App.defaultLocale设置来确定所用语言的应用程序。 如果您在控制器中更改语言,则您的配置文件已经加载,因此这不会影响这些文件,而只会影响setLocale之后要加载的文件。
尝试在加载可翻译文件之前更改语言,或在更改appLocale之后在控制器中加载翻译配置文件。