Yii2的国际化(数据库)

时间:2016-05-21 23:46:53

标签: internationalization yii2

我现在正在努力解决正在发生的事情。 我想建立一个具有多语言功能的网站。为此,我在指南中阅读了关于国际化的主题。我不想使用text- / file-version,我想改用DB。

我发现,有类似DbMessageSource的东西。我应用了迁移并在我的数据库中包含以下表格:

message message_source

在我的配置文件中,我添加了这些内容:

'components' => [
    'cache' => [
        'class' => 'yii\caching\FileCache',
    ],
    'i18n' => [
        'translations' => [
            '*' => [
                'class' => 'yii\i18n\DbMessageSource',
                'forceTranslation' => true,
                'sourceMessageTable' => '{{%source_message}}',
                'messageTable' => '{{%message}}',
                'enableCaching' => false,
                'cachingDuration' => 3600,
                'sourceLanguage' => 'en_US'
            ],
        ],
    ],
],

在我看来,我称之为翻译功能:

echo yii::t('header_menu', 'news'); 

它实际上显示“新闻”,但无论我设置的language如何,数据库中都不存储任何内容。我错过了什么吗?我认为翻译函数中的每个字符串都会存储在DB中吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

它本身不会在DB中。它只是选择数据是否已存在。您应该自己动手或使用lajax translate manager扩展,它会自动扫描您的所有项目并使用消息填充数据库。