Yii2翻译管理器不起作用

时间:2017-09-09 11:26:51

标签: php yii2

我在Yii2上为一个小项目使用基本模板。我已经设置了Lajax模块语言选择器(Doc),现在我正在尝试使用模块Translate Manager of Lajax(Github)来管理翻译。该插件正在完美地扫描项目并获取可翻译的文本。我甚至通过这个模块设置了一些翻译,所有内容都保存在数据库中,但是在更改语言时没有设置这些翻译。

这是我的web.php配置:

 'language' => 'en-GB',

 'components' => [

    ...


    'languagepicker' => [
        'class' => 'lajax\languagepicker\Component',        
        'languages' => ['en-GB', 'fr-FR']
    ],


    'i18n' => [
        'translations' => [               

            '*' => [
                'class' => 'yii\i18n\DbMessageSource',
                'db' => 'db',
                'sourceLanguage' => 'en-GB',
                'sourceMessageTable' => '{{%language_source}}',
                'messageTable' => '{{%language_translate}}',
                'forceTranslation' => true,
                'cachingDuration' => 86400,
                'enableCaching' => true,
            ],

        ],
    ],

    ...

 ]


 'modules' => [

    ...

        'translatemanager' => [
            'class' => 'lajax\translatemanager\Module',
            'root' => '@app',               // The root directory of the project scan.
            'scanRootParentDirectory' => false, // Whether scan the defined `root` parent directory, or the folder itself.
                                               // IMPORTANT: for detailed instructions read the chapter about root configuration.
            'layout' => 'language',         // Name of the used layout. If using own layout use 'null'.
            'allowedIPs' => ['127.0.0.1'],  // IP addresses from which the translation interface is accessible.
            'roles' => ['@'],               // For setting access levels to the translating interface.
            'tmpDir' => '@runtime',         // Writable directory for the client-side temporary language files.
                                            // IMPORTANT: must be identical for all applications (the AssetsManager serves the JavaScript files containing language elements from this directory).
            'phpTranslators' => ['::t'],    // list of the php function for translating messages.
            'jsTranslators' => ['lajax.t'], // list of the js function for translating messages.
            'patterns' => ['*.js', '*.php'],// list of file extensions that contain language elements.
            'ignoredCategories' => ['yii'], // these categories won't be included in the language database.
            'ignoredItems' => ['config'],   // these files will not be processed.
            'scanTimeLimit' => null,        // increase to prevent "Maximum execution time" errors, if null the default max_execution_time will be used
            'searchEmptyCommand' => '!',    // the search string to enter in the 'Translation' search field to find not yet translated items, set to null to disable this feature
            'defaultExportStatus' => 1,     // the default selection of languages to export, set to 0 to select all languages by default
            'defaultExportFormat' => 'json',// the default format for export, can be 'json' or 'xml'
            'tables' => [                   // Properties of individual tables
                [
                    'connection' => 'db',   // connection identifier
                    'table' => '{{%language}}',         // table name
                    'columns' => ['name', 'name_ascii'],// names of multilingual fields
                    'category' => 'database-table-name',// the category is the database table name
                ]
            ],
            'scanners' => [ // define this if you need to override default scanners (below)
                '\lajax\translatemanager\services\scanners\ScannerPhpFunction',
                '\lajax\translatemanager\services\scanners\ScannerPhpArray',
                '\lajax\translatemanager\services\scanners\ScannerJavaScriptFunction',
                '\lajax\translatemanager\services\scanners\ScannerDatabase',
            ],
        ],

    ...

 ]

我总是使用类似这个im代码的东西来翻译字符串:

<?= Yii::t('app','Test') ?>

我做错了吗?

0 个答案:

没有答案