2008-09-15 11 views
6

私はVisual Studio(2005以降)を使用しています。私は、ユーザーがすべてのmenues、入力形式などの言語を変更できるアプリケーションを試そうとしています。私はこれを手伝ってくれる.Netの中にいくつかの完全な機能があると思うので、私はこれをやっていくだろうか?アプリ全体をさまざまな言語にローカライズするにはどうすればよいですか?

私のアカウントに次のことを取る(と私はいくつかの明白なものを逃した場合で私を記入)

  • 文字列(menues、テキスト)
  • 入力データ(パース山車、日付などをする必要があります。.. )
  • は、あなたは自分のコードから、あなたの文字列を分ける必要がある文字列の

答えて

1

別の言語のサポートを追加するのは簡単であるべき(実際の文字列に文字列IDを変えていくXML/DLLを持つことは行くための一つの方法です) 。しかし、いくつかの言語で2バイト文字をサポートしていることを確認する必要があります(これはC/C++を使用する場合に関係します)。

入力データの目的は、異なるロケールを使用することです。 Javaではこれは比較的簡単ですし、C#を使用している場合はおそらくそれもかなり簡単です。 C/C++では、私は本当に知りません。基本的な考え方は、入力パーザーはその時に選択されたロケールに基づいて異なるはずであるということです。したがって、各フィールド(テキストフィールド、テキストボックスなど)には、ロケール(右から左、2バイトなど)によって異なるクラスによって実装される抽象パーサが必要です。

詳細については、Javaの実装をチェックしてください。それはかなり機能的です。

3

私は.NETの専門家ではありませんが、ローカライズは「文字列値の交換」や「日付形式の変更」と同じくらい簡単なことではありません。レイアウト、適切なテキストの配置など、考慮すべきことがたくさんあります。

中国語を例にとります。あなたが読んでいる方法は、左から右ではなく、上から下です。適切にローカライズされている場合、アプリはそれを考慮に入れなければなりません。

http://msdn.microsoft.com/en-us/library/y99d1cd3(VS.80).aspxは、Windowsフォームを扱っている場合でもいいスタートです。

+0

ああ、ありがとう。リンクはとても役に立ちます。 – Statement

3

古典的なレシピは次のとおりです。母国語ではなくローカライゼーション機能を備えたアプリケーションを設計し、1つの言語(英語など)に初期化を作成します。あなたは毎晩アプリを作って英語にローカライズします。ローカリゼーションステップなしでは使用できません。それをうまくやって、最初のサンプルのローカリゼーションのリソースを他の言語のリソースに置き換えることができます。最初から非ローマ字のスクリプトを考慮に入れてください。母国語を差し引いて置換を追加する必要がある言語固有のアプリではなく、常にローカライズが必要な言語以外のアプリを使用する方がはるかに洗練されています。

1

は.NET ResourceManagerとresxファイルのxml形式を使用する必要がありますが、これを使用する方法はいくつかあります。

本当にあなたが達成したいことに依存します。私にとっては、誰でも変更できる単一のXMLリソースファイル(サポートされている各言語用)が必要でした。私はグローバル・リソース・ファイルをResourceManagerにロードするヘルパー・クラスを作成しました(一度だけ)。そして、与えられた名前に必要なリソースを与えるヘルパー関数を持っていました。このアプローチの唯一の欠点は、リソースへのリソースの動的バインドを活用できないことでした。

これは、すべてのフォームの複数の埋め込みリソースファイルよりも、管理しやすく、管理しやすくなりました。また、ASP.NETアプリケーションでもまったく同じアプローチを使用できます。私はまた、このアプローチが、リソースの翻訳をアウトソーシングし、顧客への出荷言語パックをはるかに扱いやすくすることを意味しました。

1

Packaging and Deploying Resourcesに記載されているように、マイクロソフトの推奨する方法は衛星アセンブリを使用することです。リソースをロードするためにResourceManagerを使用している場合、.NETはCurrentUICultureの正しいリソースをロードします。このデフォルトは、Windowsのユーザーの現在のUI言語設定になります。

Visual Studioまたは外部ツールのWinRes.exeを使用してWindowsフォームをローカライズすることは可能です。 This articleには、WinResと、Visual Studioを使用してフォームをローカライズする方法が記載されています。

+0

非常に興味深い。私はWARから休みを取るとすぐにこれらのリンクを調べます。 – Statement

関連する問題