編集:
300
@arcain に最初の報奨金を授与するのが遅かったので、再開します。そして、150
@arcain にアディショナルを授与します。もちろん、誰かがさらに良い答えを提供しない限り。:)
/ 編集
次の形式を検討してください。
language | region | active | default |
-----------------------------------------------
en | GB | [x] | (*) | [X delete]
nl | NL | [x] | ( ) | [X delete]
nl | BE | [x] | ( ) | [X delete]
[x] let visitors browser-settings determine the default language
[save]
上記のテーブルの設定は、列が上記の列にマップされる DB テーブルに保存されます (明らかに最後の列は除きます)。
すべての (保存と削除) アクションは、ローカリゼーション コントローラーに直接送信されます。ローカリゼーション コントローラーは基本的に、次のように LocalizationService のメソッドを呼び出します。
$localizationService->updateCollection( $_POST ) // update collection settings
// or
$localizationService->delete( $_POST ) // delete a single locale
その LocalizationService は、次のような LocaleMapperDb を呼び出します。
foreach( $localeCollection as $locale )
{
$localeMapperDb->update( LocaleModel $locale );
}
// or
$localeMapperDb->delete( LocaleModel $locale );
ただし、この設定を保存する責任は次のとおりです。
[x] let visitors browser-settings determine default language
これは、site_settings という DB テーブルに保存されます。私はいくつかのオプションを考えました:
- LocalizationController で SiteService / SiteSettingsService を使用します。ただし、完全なフォームは既に LocalizationService で生成および処理されています。
- LocalizationService で SiteMapperDb / SiteSettingsMapperDb を使用し、updateCollection( $_POST ) で使用します。
- LocaleMapperDb で SiteMapperDb / SiteSettingsMapperDb を使用する
最初と最後のオプションは最悪のオプションのように見えますが、よくわかりません。最良の選択肢は何だと思いますか? それとも、私が思いもよらなかった別の選択肢がありますか?