データベース主導の Web サイトをローカライズするにはどうすればよいですか
-
03-07-2019 - |
質問
.NET に組み込まれたローカリゼーション機能を試してみましたが、それらはすべて resx ファイルにデータを入れることに依存しているようです。
しかし、ほとんどのシステムはデータベース駆動であるため、これに依存できません。では、この問題をどのように解決しますか?.NET に組み込まれた方法はありますか、それとも SQL で変換テーブルを作成し、それをすべて手動で行いますか?そして、サイトの大部分でこれを行う必要がある場合、ローカライズに resx 方式を使用する理由はあるのでしょうか?
この例としては、私のサイトに FAQ リストがあり、簡単に追加/削除できるようにこのリストをデータベースに保存していますが、データベースに保存しても、この情報を複数の言語に翻訳する良い方法がありません。 。
解決
私の意見では、動的コンテンツ(たとえば、FAQ)のローカライズはデータベースで行う必要があります。質問の保存方法に応じて、おそらく「ロケール」を作成します。データベースからFAQ質問を選択するときに使用します。多数のテーブルのローカライズを開始したときに、これが非常にうまくスケーリングするかどうかはわかりません。
静的コンテンツ(フォームフィールドラベル、静的テキスト、アイコンなど)の場合、ファイルベースのリソースを使用しても問題ないはずです。ただし、本当にやりたい場合は、これを処理できるカスタムリソースプロバイダーの実装を作成することはそれほど難しくないようです。
関連リンクは次のとおりです。
- http:// channel9 .msdn.com / forums / Coffeehouse / 250892-Localizing-with-a-database-or-resx-files /
- http://weblogs.asp.net/scottgu/archive/2006/05/30/ASP.NET-2.0-Localization-_2800_Video_2C00_-Whitepaper_2C00_-and-Database-Provider-Support_2900_.aspx
- http://www.arcencus.nl/Blogs/ tabid / 105 / EntryID / 20 / Default.aspx
- http://msdn.microsoft.com/en-us/library/ aa905797.aspx
- http://www.codeproject.com/KB/aspnet/customsqlserverprovider.aspx
他のヒント
データモデル内の特定のアイテムについて、説明部分をロケールID列(LCID)を持つローカライズされたテーブルに分割します。
したがって、Productのテーブルには実際には製品の説明や名前は含まれず、そのハード値と高速値(ProductId、EAN、NumberInStock、NextStockData、IsActive、IsPublished)などのみが含まれます。
ProductDescriptionには次が含まれます ProductId、名前、説明、LCID
私はカナダに住んでいるので、多言語が大事です。 2つのアプローチを見てきました。最初のオプションは、特定のレコードのすべてのローカライズされたデータを、プライマリキーとロケールによって元のテーブルにリンクされた別のテーブルに保存することです。 2番目のオプションは最初のオプションと似ていますが、ロケールごとに異なるテーブルがあり、ロケールはテーブル名のサフィックスとして使用されます。
オプションA
Item (ItemID, ...)
ItemLocal (ItemID,LocaleID,....)
オプションB
Item (ItemID, ...)
Item_ENUS (ItemID,....)
Item_ENGB (ItemID,....)
Item_FR (ItemID,....)
私が最近考えた3番目のオプションは、データベースがネイティブにサポートしていれば本当に素晴らしいことです。すべてのローカルの値を同じフィールドに格納することです。また、フィールドがvarchar-multilocalとして設定されている場合は、言語を指定するパラメーターを渡してアクセスする必要があります。私が知っているようにこのようなものは存在しませんが、それは本当に物事をはるかに簡単にし、はるかに流動的にすると思うものです。
現在、翻訳は自動的に実行できるものではありません。最良の方法は、人に翻訳してもらい、ニックの方法を使用して適切な言語を表示させることです。
RESX ファイルと Kibbee の応答のオプション A を組み合わせて使用します。RESX ファイルをオンラインで管理するためのシンプルなツールを作成しました。http://blog.lavablast.com/post/2008/02/RESX-file-Web-Editor.aspx