【问题标题】:Getting a list of all text that needs to be translated using Yii2 DbMessageSource使用 Yii2 DbMessageSource 获取需要翻译的所有文本列表
【发布时间】:2017-11-20 06:43:50
【问题描述】:

我正在使用 Yii2 处理一个需要翻译成各种语言的项目。我正在使用高级模板并像这样设置我的 common/main.php

return [
    'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    'language' => 'en',
    'sourceLanguage' => 'en',
    'components' => [
        'i18n' => [
            'translations' => [
                'app' => [
                    'class' => 'yii\i18n\DbMessageSource',
                    'sourceLanguage' => 'en',
                ],
            ],
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
    ],
    'as beforeRequest' => [
        'class' => 'common\components\CheckLanguage',
    ],
];

我已经添加了所需的数据库表 source_message 和 message。现在,我需要翻译的网站中的每个文本都使用 Yii::t($category,$message) 函数。

我的问题是;如何获取我的网站中需要翻译到数据库的所有文本的列表?我是否必须手动扫描我的站点以查找所有 Yii::t($category,$message) 函数调用?

提前感谢您的宝贵时间和意见

【问题讨论】:

    标签: php yii2 internationalization


    【解决方案1】:

    为此扫描功能提供了控制台命令。

    ./yii message
    

    请参阅Guide 中的文档。

    为扫描仪生成配置文件:

    ./yii message/config-template your/path/to/saving/config.php
    

    根据您的需要调整新创建的config.php

    运行命令:

    ./yii message path/to/config.php
    

    【讨论】:

    • 我试过这个,但问题是因为我的翻译在数据库中,它扫描并输出一个包含 Yii::t(...) 函数的所有实例的文件,但不区分在我已经翻译或尚未翻译的那些之间......并且在文档中它没有提到如何为我使用 DBMessageSource 的场景配置消息命令......有没有其他方法可以搞定这个???
    • 如果您使用message/config-template 生成配置,则在底部注释db 的部分(以// 'db' output format is for saving messages to database. 开头)。在配置中使用它。
    猜你喜欢
    • 2021-11-21
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多