私は現在、多言語データを含む.net4.5アプリケーションに取り組んでいます。
私はこれに慣れていないので、さまざまな言語のエンコーディング、グローバリゼーション、ローカリゼーションなどの概念を説明するリソースを探しています。
そのような情報をどこで探すべきかについてのヒントはありますか?
私は現在、多言語データを含む.net4.5アプリケーションに取り組んでいます。
私はこれに慣れていないので、さまざまな言語のエンコーディング、グローバリゼーション、ローカリゼーションなどの概念を説明するリソースを探しています。
そのような情報をどこで探すべきかについてのヒントはありますか?
MSDN-いつものように-は最高のリソースです:http://msdn.microsoft.com/en-us/library/h6270d0z.aspx。
私自身の経験からのいくつかの落とし穴:
データベースでUnicodeタイプを使用します。したがって、SQL Serverの場合、テキストタイプをvarcharの代わりにnvarchar、ntext、テキストにしてユニコードとして使用します。そうしないと、中国語などの言語の情報が失われます
デザインを柔軟にします。英語で10文字のフレーズは、ドイツ語やフランス語で3〜4倍の大きさになります。ボタンを柔軟にし(たとえば、htmlの場合は引き戸のテクニック)、幅と高さのパーセンテージを変更し、応答性を高めます。できるだけ。
リソースファイルには、数字のプレースホルダーが付いた複数形と単数形の文字列があります。たとえば、「この場所から2 km以内」というフレーズがある場合は、文全体とは別にKmのリソースエントリが必要になる可能性があります。単数形/複数形(キロメートル、キロメートル)のシナリオでは、複数形に「s」を追加するだけでよいとは想定していません。これはすべての言語で機能するわけではありません。一部の言語には、単数形、複数形、および複数形と同じように扱われない2つのオブジェクト(つまりアラビア語)の特殊なケースもあります (この点に関する興味深い摂取については、ドウェインのコメントを参照してください)
アラビア語やヘブライ語などの言語にローカライズする場合は、これらは右から左になり、デザイン全体(写真を含む)の向きを変更する必要があります。HTMLでは、これは「dir:rtl」属性を持つのと同じくらい簡単ですが、難しい場合もあります。
翻訳だけではありません。変更されるのは、数値形式、小数点と千のコンマ区切り文字またはピリオドの使用、前後の通貨記号、通貨形式、日付形式などです。これらすべてが、カルチャを使用して.netフレームワークでフォーマットされていることを確認してください。現在のユーザーの。
UIに文字列をハードコーディングしないように注意してください。便利なトリックは、ラテン文字(中国語、ロシア語、アラビア語など)を使用しない言語のリソース言語を用意し、その言語のリソースファイルを作成し、すべてのエントリにその言語のGoogleからのランダムな文字列を入力することです。アプリケーションを実行すると、リソースファイルから取得されていないUIの部分を簡単に見つけることができます(中国語の文字の真ん中にある英語の文字になります)。
UIだけではありません。サービスからの応答など、バックエンドからメッセージを送信する場合は、それもローカライズする必要があります。場合によっては、イベントログに記録されたエラーメッセージでさえローカライズする必要があります。あなたがそれについて考えていることを確認してください。
Javascript。重いJavaScriptを使用してajaxifiedWebを実行している場合は、ローカリゼーションを支援するためにjqueryローカリゼーションなどのライブラリを使用する必要がある場合があります。JSキー値のような構造でリソースファイルを提供する必要があります。これはASP.NETよりも標準的ではないため、ニーズに応じて、ユーザー側からの即興が必要になる場合があります(これらのファイルをリソース、一括、またはAMDでロードする方法などの決定、またはサービスを作成する場合があります)ローカライズされた文字列を返すか、コンパイル時などにasp.netに実際のリソースファイルの値をバインドさせます...)