db から取得したデータをローカライズする最善の方法は何ですか? カテゴリ名など?
MVC C# .net 4,4.5
データベースに変換された値が必要です。
言語が少なく、変わらない場合は、言語ごとに列を追加できます (NameEn、NameEs、NameFr など)。正規化の規則に少し反しますが、生活を楽にします。
他の db アプローチは、すべての翻訳を保持するテーブルを持つことです。
Localize
- Field
- Locale
- Translation
次に、カテゴリ名については、言語ごとに 1 つずつ、合計 3 つのレコードがあります。フィールドとロケールでテーブルをクエリするだけです。
非常に一般的なアプローチは、ローカリゼーションが必要な少なくとも1つの列を持つテーブルごとに個別の変換テーブルを作成することにより、データベースを介してローカライズすることです。これは私たちが通常私たちのプロジェクトで行うことです。データベースデータ->DBでローカライズ。ビュー/UI文字列->resxファイルでローカライズします。
ここでこの回答を見てください:ローカライズされたバージョンのデータを格納するための優れたデータベーステーブルの設計
編集:リンクとは異なり、通常は「デフォルト」言語を元のテーブルに保存するため、実際に翻訳エントリを作成する必要はありません。
たとえば、テーブル「Categories」に列IdとNameが含まれている場合、対応するTranslationテーブル「Categories_Translation」には列CategoryId、LanguageCode、Name_Txが含まれ、Name_Txには言語「LanguageCode」の「Name」の翻訳テキストが含まれます。