2010-11-30 10 views
0

多言語Webアプリケーションを開発する手順は何ですか?マルチリンガルWebアプリケーションを開発する手順

言語のテキストとリソースをデータベースに保存する必要がありますか?プロパティファイルまたはリソースファイルを使用する必要がありますか?

は私がなどCultureFormat私はあなたの多言語Webアプリケーションを構築するための手順について意見を知りたいと思った

単独でのC#でのCurrentCultureを使用する必要があることを理解しています。

言語固有のものである必要はありません。私はちょうどこれを構築するための措置を探しています。

答えて

2

特定のメカニズムは、開発しているプラ​​ットフォームによって異なります。コンテンツからコードの

  1. 分離:作業項目の大まかなセットとして

    。一般に、リソースは、リソースファイル(ドットネット)の助けを借りてアセンブリにコンパイルされるか、またはプロパティファイル(javaでは、他のオプションがあります)に格納されます。ローカリゼーションコストを妥当なものにしたい場合、ほとんどのローカリゼーションツールは新しいIDとして新しいIDを扱うため、リリース間のIDの変更を避ける必要があります。

  2. ユーザのロケール、特に日付/時刻、通貨、数字の書式設定または入力を前提とするアプリケーション内の領域の識別。
  3. ロケール固有のCSSコンテンツ用のメカニズムをいくつか作成します。すべてのフォントがすべての言語で機能するとはかぎりません。また、すべてのフォントサイズがすべての言語で正常であるとは限りません。タイ語のテキストを8点で表示することを余儀なくされます。また、テキストの方向性は少なくとも2つの言語に対して右から左に向かいます。
  4. 予想よりも多かれ少なかれコンテンツが存在する場合は、ページのコンテンツを適切にリフローまたはサイズ変更するように設計します。多くの言語は、短い文字列の場合は50-80%、長い文字列の場合は30-40%(法律ではなく大雑把なルール)です。
  5. あなたのUIデザイナーが作成した文化的な前提条件を特定し、より中立にするか、またはお金や健全さがあれば、ローカライズ可能にしてください。メールボックスはどこでも同じようには見えませんが、手のジェスチャーは普遍的なものではなく、かわいいか賢いか、ビジュアル・ペンパルに頼っているものは、必ずしもうまく動くわけではありません。
  6. サポートされる言語に応じて適切なエンコードを選択してください。言語に関係なく、Webブラウザに送信されるすべてのコンテンツにUTF-8を使用することは合理的です。
  7. データベースで適切な照合順序を選択するか、データベース内の複数言語のコンテンツを扱う場合は、代替照合を有効にします。大文字と小文字を区別しないことは、英語よりも多くの言語で異なって機能し、アクセントの非感受性は一部の言語では受け入れられ、他の言語では一般的に不適切です。
  8. 検索をサポートしようとしている場合、単語がスペースで区切られていると仮定したり、文章を区切りで区切ったりしないでください。

避けてください:

  1. 本当に、本当に、良い理由がありますしない限り、データベース内のローカライズされたコンテンツを格納します。それから、もう一度考えてみてください。多少のダイナミックなコンテンツがあり、各地域の代表がそれをカスタマイズする必要がある場合、ロケールIDが関連付けられた特定のカテゴリのコンテンツを保存するのが妥当かもしれません。
  2. 文字列連結で賢明にしようとしています。また、多文化化や数え方についての規則をすべての文化について同じものとみなさないようにしてください。文字列(およびコントロール)の順序は、典型的なプラットフォームであるフォーマット文字列で指定できること、または何らかの理由で自分自身をロールすることを選択した場合は、ローカリゼーションキットで十分に文書化されていることを確認してください。
  3. ローカライザによってコードバグが修正されても問題ないと推測します。それは合理的なコストで合理的な時間内に製品を納品したい場合には、少なくとも一般的には妥当ではありません。時にはそれも不可能です。
+0

私はデータベースにコンテンツを格納することについてあなたと喜んでいません。私はあまり確かにネット。しかし、あなたはリソースファイルを変更し、衛星アセンブリやアセンブリのいずれかをコンパイルするときにアプリは、などのリロードする必要がありますさらに、それはポータルやCMSの場合は、リソースまたはプロパティファイルよりもローカライズされたコンテンツを格納するためにデータベースを使用すること。どう思いますか? – DarthVader

+0

それは基本的に私が言ったことです。コンテンツが動的である場合、ロケールIDでタグ付けされたデータベース内のコンテンツを持つことは合理的かもしれません。しかし、私は実際には、データベースに格納された「すべての」UIコンテンツ、メニューや項目を動的に変更するつもりはなく、本質的に変更しないでください。アプリがアップグレードされました。 – JasonTrue

+0

は良いと思います。ありがとうございます。 – DarthVader

関連する問題