私が書いているアプリケーションはほぼ完成しているので、異なる言語を話す人々にそれを使ってもらいたいです。
どこから始めればいいのかわからないのですが、プログラミングに関してグローバリゼーションと文化の違いは何ですか?
File、Open、Saveなどの代わりに「このアプリケーションはこれとそれを行うために構築された」などの珍しいフレーズをどのように取り、それらをスペイン語に変えるのですか?
どうもありがとう :-)
私が書いているアプリケーションはほぼ完成しているので、異なる言語を話す人々にそれを使ってもらいたいです。
どこから始めればいいのかわからないのですが、プログラミングに関してグローバリゼーションと文化の違いは何ですか?
File、Open、Saveなどの代わりに「このアプリケーションはこれとそれを行うために構築された」などの珍しいフレーズをどのように取り、それらをスペイン語に変えるのですか?
どうもありがとう :-)
Microsoftにはすでに非常に優れたチュートリアルがあります
「グローバル化された」アプリケーションを使用するには、さまざまなことを行う必要があります。
1) アプリケーションのフォームとコントロールのすべてのラベルを翻訳する
すべてのフォームとコントロールで、"Localizable" プロパティを true に設定する必要があります。このプロパティを使用すると、各言語と地域でリソース ファイルを作成できます。これで、「言語」プロパティを使用して、サポートする言語を選択できるようになりました。コンボ ボックス リストで言語を選択すると、フォーム (またはコントロール) が自動的にその言語に切り替わります。次に、コントロール内のすべての単語を翻訳するのがあなたの仕事です。変更を行うとすぐに、Visual Studio は特定の言語のリソース ファイルを作成します。(例: フランス-フランスの場合は MyForm.fr-FR.resx)。
2) コード内のすべてのハードコードされた文字列を resx ファイルにインポートします
リソース ファイルを作成し (個人的には StringTable.resx を使用します)、翻訳するすべての文字列をこのファイルに追加します。その後、サポートする言語ごとにリソース ファイルを作成し、各ファイル内の文字列を翻訳します。たとえば、フランス語をサポートする場合は、フランス語-フランス用の StringTable.fr.resx または StringTable.fr-FR.resx を作成します。ResourceManagerクラスを使用すると、各文字列をロードできます。
注: Visual Studio 2005 または 2008 を使用している場合は、既定でリソース ファイルが既に作成されています。
3) フォームとコントロールを賢く練る必要がある
Microsoftのガイドライン: Microsoft のガイドライン
4) 日付と数字の扱い
アプリケーションが他の地域の他のユーザーに送信できるデータ ファイルを作成する場合、データをファイルに保存するときに考慮する必要があります。したがって、常に UTC で日時をストックし、情報をロードするときにのみローカルで変換を行います。特にテキストに格納されている場合、同じことが10進数にも当てはまります。
アプリケーションをコンパイルすると、Visual Studio はMyApplication.fr.dllのようなサテライト ファイルをサブフォルダーfrに作成します。この dll をロードするには、アプリケーションの起動時に現在のスレッドの言語を切り替える必要があります。
ここにコード:
CultureInfo ci = new CultureInfo("fr");
Thread.CurrentThread.CurrentUICulture = ci;
あなたのすべての質問は、以下の本で答えられるものとします。最初の章では、すべての主要な概念と用語、および i18n のような派手な略語について説明します。最後まで読む時間がなかった..しかし、私が読んだところまでは良かった. あなたが正しい方法でそれを行うことに真剣で、時間があるならお勧めします:)
http://www.amazon.com/NET-Internationalization-Developers-Applications-Development/dp/0321341384
非常に単純なシステムの場合は、GetSaveText()などのメソッドを定義するインターフェイスを作成し、このようなアセンブリをアプリケーションにプラグインできるようにします。
これは、10 ~ 1000 個の文字列の場合に適したソリューションです。
ロケールごとにリソース ファイルを用意します。.NET についてはわかりませんが、これを行う一般的な方法があると確信しています。次に、リソース取得コードで、ユーザーのブラウザー ロケール設定に基づいて適切なコードを読み込みます。このコードに、いくつかのキーの適切な文字列を取得するように依頼してください。
ゼロから実装する場合のファイルの内容の例:
resources.en:
save=Save
close=Close
ok=OK
areYouSure=Are you sure?
resources.es:
save=I don't know how to say anything in Spanish, oops
close=...
ok=...
areYouSure=...