我现在正在努力解决正在发生的事情。 我想建立一个具有多语言功能的网站。为此,我在指南中阅读了关于国际化的主题。我不想使用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中吗?
提前致谢
答案 0 :(得分:1)
它本身不会在DB中。它只是选择数据是否已存在。您应该自己动手或使用lajax translate manager扩展,它会自动扫描您的所有项目并使用消息填充数据库。