0

ASP.Net での多言語コンテンツ アプリケーションは、通常、リソース ファイルを使用することで解決できます。ただし、多言語である必要がある動的コンテンツに関しては。理想的なシステム設計とは?

たとえば、アンケート アプリケーションの場合、各質問テキストと回答オプションを翻訳する必要があります。

リソースキーを使用して特定の言語のテキスト/コンテンツを保存するのは良いアイデアですか? 質問テキストまたはテキストの主な英語版をキーとして使用することは良い考えですか?

システムがプログラムでページに質問を作成するたびに、データベース呼び出しを削減しようとしているためです。

4

2 に答える 2

2

リソースファイルはキー/参照を保持するだけで、言語固有のものは何も入れないでください。

特定の翻訳はすべてデータベースに存在する必要があります。したがって、システムが動的に質問を作成するときはいつでも、1つだけのDB呼び出しがあります...ロケール識別子を使用して質問の適切な言語バージョンがロードされます。

于 2009-10-16T00:05:23.847 に答える
0

これは、調査システムの設計に大きく依存します。いくつかのオプションがあります。

たとえば、個々の調査をすべての質問/回答がエンコードされたxmlファイルに保存している場合、言語ごとに新しいxmlファイルを生成する必要がない場合があります。追加のファイルには、翻訳された質問/回答のみが含まれます。

したがって、IsASPAwesome.xmlの調査があり、IsASPAweseome.enUS.xml、IsASPAwesome.frFR.xmlなどが生成されます。単一のファイルを使用する場合の別のオプションは、必要な言語ごとに複数のテキスト値を設定してから、その言語に適したものを選択することです。このようなもの(貧弱なxmlとより悪いフランス語を許してください)

<survey>
    <question id=1>
         <questionText lang="enUS">how great is this?</questionText>
         <questionText lang="frFR">Comment est ce grand?</questionText>
         <answer value="GOOD" lang="enUS" sortOrder="1">Great!</answer>
         <answer value="BAD" lang="enUS" sortOrder="2">Not so great</answer>
         <answer value="GOOD" lang="frFR" sortOrder="1">Grand!</answer>
         <answer value="BAD" lang="frFR" sortOrder="2">Merde!</answer>
    </question>
</survey>

これをDBに保存している場合は、選択クエリに条件を追加するだけで、同じ量のDB​​呼び出しを回避できるはずです(つまり、SELECT answerText、Value FROM questionAnswers WHERE questionId = 2 AND lang = "frFR")

言語ごとに個別の調査を使用すると、結果の処理が少し難しくなる可能性がありますが、多言語サポートのコーディングが少し簡単になります。さらに、キャッシュも簡単になります(調査はそれほど頻繁に変更されないため、DB呼び出しを制限する場合はこれをお勧めします)。

以前のプロジェクトでは「複数のXMLファイル」アプローチを採用しましたが、それで十分でした。また、翻訳者が同時に作業できるようにし、文化的な理由から、より適切な質問の順序を提案することもできました。

お役に立てれば!

于 2009-10-16T00:10:35.477 に答える