北米以外のいくつかの地域にローカライズする必要があるasp.netアプリケーションを作成しています。このグローバリゼーションに備えるために何をする必要がありますか?世界に対応したアプリケーションの作成方法を学ぶためのトップ1から2のリソースは何ですか。
7 に答える
私が学んだいくつかのこと:
テキストを含む画像の数を絶対的かつ残酷に最小限に抑えます。そうすることで、あなたの生活が何十億パーセントも楽になります。
常に同じサイズのままであることに依存する css の配置には十分注意してください。それらにテキストが含まれている場合、それらは同じサイズのままではないため、戻ってデザインを修正する必要があります.
SQL テーブルで文字型を使用する場合は、国際入力を受け取る可能性のある型が Unicode (nchar、nvarchar、ntext) であることを確認してください。さらに言えば、Unicode バージョンの使用を標準化するだけです。
SQL クエリを動的に作成している場合、テキストが Unicode である可能性がある場合は、引用されたテキストの前に N プレフィックスを必ず含めてください。SQL テーブルにガベージを入れてしまった場合は、そこにあるかどうかを確認してください。
すべての Web ページで、Unicode 形式であることを明確に示すようにしてください。上記の Joel の記事を参照してください。
このプロジェクトでは、リソース ファイルを大量に使用することになります。それは良いことです。ASP.NET 2.0 は、そのような機能を強力にサポートしています。GetLocalResourceObject、GetGlobalResourceObject、および meta:resourceKey の概念だけでなく、App_LocalResources フォルダーと App_GlobalResources フォルダーも調べてください。Professional ASP.NET 2.0の第 30 章には、それに関する優れたコンテンツがいくつかあります。本の 3.5 バージョンにも良い内容があるかもしれませんが、私はそれを所有していません。
フォントについて考えてみましょう。使用したい標準フォントの多くは、Unicode に対応していません。私はいつも、Arial Unicode MS、MS Gothic、MS Mincho で運が良かったです。ただし、これらがどの程度クロスプラットフォームであるかはわかりません。また、すべてのフォントがすべての Unicode 文字定義をサポートしているわけではないことに注意してください。繰り返しますが、テスト、テスト、テスト。
このシステムにどのように翻訳を入れるか、今から考え始めてください。翻訳のためにデータをやり取りする方法について、翻訳ベンダーに相談してください。ローカル リソース ファイルを介して、システム全体で一般的に使用される文字列を繰り返す可能性が高いという事実について考えてみてください。それらをグローバルリソースファイルに正規化しますか、または使用される各テキストのコピーが1つだけ生成されるある種のデータベースレイヤーがありますか? 最近のプロジェクトでは、リソース ファイルのすべての翻訳と元の英語版を含むデータベース テーブルから生成されたリソース ファイルを使用しました。
テスト。一般的に言えば、ドイツ語、ポーランド語、およびアジア言語 (日本語、中国語、韓国語) でテストします。ドイツ語とポーランド語は冗長で、テキスト領域が拡大されることがほぼ保証されています。アジア言語は、Unicode サポートをテストするまったく異なる文字セットを使用します。
System.Globalization名前空間について学ぶ:
また、優れた本はNET Internationalization:グローバルWindowsおよびWebアプリケーションを構築するための開発者ガイドです。
他の文化や言語をターゲットにしている場合は、Unicodeを少し更新するとよいでしょう。
絶対最小すべてのソフトウェア開発者は絶対に、積極的にUnicodeと文字セットについて知っている必要があります(言い訳はありません!)
これは難しい問題です。私はカナダに住んでいるので、多言語使用は大きな問題です。何年にもわたってソフトウェア開発を行ってきましたが、気に入ったソリューションを見たことがありません。私は多くの解決策が機能し、仕事を成し遂げたのを見てきましたが、それらは常に大きな混乱のように感じていました. @harriyott を使用して、文字列が実際にコードに含まれていないことを確認します。リソース ファイルは、デスクトップ アプリケーションに適しています。ただし、ASP.Net では、データベースを使用することをお勧めします。@John Christensenにもいくつかの良い指針があります。
コード分析をオンにしてコンパイルしていることを確認し、表示されるグローバリゼーションの警告に注意してください。ユーザーに表示するまで、不変形式 ( CultureInfo.InvariantCulture ) でデータを保持します (その後、 CultureInfo.CurrentCultureを使用します)。
次のコードプロジェクトの記事を読むことを真剣に検討します。
ASP.NET2.0で謎解きされたグローバリゼーションとローカリゼーション
カルチャとロケールから、スレッドの現在のカルチャ、リソースファイル、エンコーディングの設定まで、すべてを網羅しています。
そしてもちろん、それはきれいな写真と例でいっぱいです:-)。幸運を!
私は提案します:
- すべての文字列をデータベース ファイルまたはリソース ファイルに入れます。
- 一部 (ドイツ語など) はより語彙が多いため、翻訳されたテキスト用に余分なスペースを確保してください。