【问题标题】:Translate text in config folder cakephp 3翻译配置文件夹 cakephp 3 中的文本
【发布时间】:2018-10-19 04:48:55
【问题描述】:

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

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

提前感谢您的帮助

【问题讨论】:

    标签: php cakephp php-7.2 cakephp-3.6


    【解决方案1】:

    它们不会显示,因为默认情况下提取任务仅在 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 文件的底部。

    另见

    【讨论】:

    • 我这样做了,但文本的翻译版本没有显示在页面上。即使我删除了所有缓存文件。
    • @user765368 那么,我是否误读了您的问题,您提取了这些消息,它们在您的 (.po) 翻译文件中存在并翻译,但显示为未翻译?如果是这样,请更新您的问题并显示您在 bootstrap.php 文件中的确切位置使用翻译功能,以及您在哪里设置/切换当前语言环境。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 2015-03-02
      • 2011-05-26
      • 1970-01-01
      • 2016-05-10
      • 2015-10-27
      相关资源
      最近更新 更多