yii\mongodb\i18n\MongoDbMessageSource を i18n メッセージ翻訳ストレージとして使用することができます。 アプリケーション構成の例:
return [
//....
'components' => [
// ...
'i18n' => [
'translations' => [
'*' => [
'class' => 'yii\mongodb\i18n\MongoDbMessageSource'
]
]
],
]
];
yii\mongodb\i18n\MongoDbMessageSource は全ての翻訳を保存するのに単一のコレクションを使用します。 このコレクションの全てのエントリは次の三つのフィールドを持っていなければなりません。
translation
キーは翻訳されたメッセージ。例えば、
{
"category": "app",
"language": "ja",
"messages": [
{
"message": "Hello world!",
"translation": "こんにちは、皆さん!"
},
{
"message": "The dog runs fast.",
"translation": "犬は速く走る。",
},
...
],
}
'messages' フィールドは、ソース・メッセージを BSON のキーとし、翻訳を値として保持する形で指定することも出来ます。 例えば、
{
"category": "app",
"language": "de",
"messages": {
"Hello world!": "こんにちは、皆さん!",
"See more": "更に見る",
...
},
}
ただし、BSON のキーは .
や $
などの記号を含むことが出来ませんので、この手法は推奨されません。
構成と翻訳コレクションのデータ構造に関する詳細は yii\mongodb\i18n\MongoDbMessageSource を参照してください。