Visual Studio による双方向言語用アプリケーションの作成

Visual Studio では、アラビア語やヘブライ語など、右から左に書く言語で正しくテキストが表示されるアプリケーションを作成できます。 いくつかの機能については、単にプロパティを設定するだけで済みます。 それ以外の場合は、コードで機能を実装する必要があります。

注意

双方向言語を入力したり表示したりするには、適切な言語に設定されたバージョンの Windows を使用する必要があります。 英語バージョンの Windows に適切な Language Pack をインストールする方法と、適切にローカライズされたバージョンの Windows を使用する方法があります。

双方向言語をサポートするアプリケーションの種類

  1. Windows アプリケーション。 双方向テキスト、右から左への読み取り順序、およびミラー化 (ウィンドウ、メニュー、ダイアログ ボックスなどのレイアウトの反転) をサポートする、完全な双方向アプリケーションを作成できます。 ミラー化を除き、これらの機能は、既定またはプロパティ設定により使用できるようになっています。 ミラー化は、メッセージ ボックスなどいくつかの機能に対してはあらかじめサポートされています。 ただし、それ以外の場合には、ミラー化をコードで実装する必要があります。 詳しくは、「Windows フォーム アプリケーションの双方向サポート」をご覧ください。

  2. Web アプリケーション。 Web サービスは UTF-8 および Unicode のテキストの送受信をサポートしているため、双方向言語を使用するアプリケーションに適しています。 Web クライアント アプリケーションのユーザー インターフェイスはブラウザーに依存しているため、Web アプリケーションでの双方向サポートの内容は、ユーザーのブラウザーが双方向機能をどの程度サポートしているかによって異なります。 Visual Studio では、アラビア語またはヘブライ語のテキスト、右から左への読み取り順序、ファイルのエンコーディング、およびローカル カルチャ設定をサポートするアプリケーションを作成できます。 詳しくは、「ASP.NET Web アプリケーションに対する双方向サポート」をご覧ください。

  3. コンソール アプリケーション コンソール アプリケーションでは、双方向言語のテキストがサポートされません。 これは、Windows におけるコンソール アプリケーションの動作のしくみによるものです。

完全にサポートされている Visual Studio の機能

Visual Studio でのデザイン時における双方向言語の使い方としては、次のようなものが挙げられます。

  • テキスト入力 Visual Studio は Unicode をサポートしているため、システムで適切なロケールと入力言語が設定されていれば、アラビア語またはヘブライ語でテキストを入力できます。 アラビア語のサポートには Kashida および Diacritics も含まれています。

  • オブジェクト名 ソリューション、プロジェクト、ファイル、フォルダーなどに、双方向言語で名前を付けることができます。 コード内では、変数、クラス、オブジェクト、属性、メタデータなどの要素の名前に双方向言語を使用できます。

  • ファイルのエンコーディング 言語固有のエンコーディングまたは Unicode エンコーディングでファイルを保存したり開いたりすることができます。 詳しくは、「方法 : エンコーディングを使用してファイルを保存および開く」をご覧ください。

制限付きの機能、およびサポートされていない機能

双方向言語アプリケーションで一般的に使用される機能の中には、Visual Studio では完全にはサポートされていないものや、まったくサポートされていないものもあります。 次の設定があります。

  • 右から左への読み取り順序 既定では、Visual Studio で使用するテキスト入力コントロールでは左から右への読み取り順序が使用されます。 ほとんどの場合は、Windows の標準のジェスチャを使用して読み取り順序を切り替えることができます。 たとえば、Ctrl キーを押しながら RightShift キーを押すことにより、プロパティ ウィンドウが右から左への読み取り順序のプロパティ値をサポートするように切り替えることができます。

    ただし、右から左への読み取り順序は Visual Studio のすべての場所でサポートされているわけではありません。 サポートされない例を次に示します。

    • Visual Studio ダイアログ ボックス内のチェック ボックス、ドロップダウン リスト、およびその他のコントロールでは、常に左から右への読み取り順序が使用されます。

    • コード エディター (およびテキスト エディター) では、右から左への読み取り順序がサポートされていません。 双方向言語でテキストを入力することはできますが、読み取り順序は常に左から右です。

アラビア語またはヘブライ語のテキストによる名前付け

アラビア語およびヘブライ語のテキストは、フォルダー、変数、またはその他のオブジェクトの名前に使用できます。 アラビア語を使用する場合、Kashida と Diacritics を含むすべてのアラビア語文字を使用できます。

次の要素は、アラビア語またはヘブライ語で名前を付けることができ、Visual Studio で正しく処理されます。

  • ソリューション名、プロジェクト名、およびファイル名。プロジェクト パスに含まれるフォルダー名も対応します。 ソリューション エクスプローラーで、ソリューション名と要素名を正しく表示できます。

  • ファイルの内容。 Unicode エンコーディングまたは選択したコード ページでファイルを開いたり保存したりできます。

    注意

    コード エディターについては特別に制限があります。 詳細については、後の説明を参照してください。

  • データ要素。 これらのデータ要素はサーバー エクスプローラーで正しく表示されます。要素の編集もできます。

  • Windows クリップボードにコピーされた要素。

  • 属性とメタデータ。

  • プロパティ値。 アラビア語およびヘブライ語のテキストは、プロパティ ウィンドウで使用できます。 プロパティ ウィンドウで、Windows の標準のキーストロークを使用して、右から左への読み取り順序と左から右への読み取り順序を切り替えることができます。Ctrl キーを押しながら右 Shift キーを押すと右から左への読み取り順序、Ctrl キーを押しながら左 Shift キーを押すと左から右への読み取り順序になります。

  • コードおよびリテラル テキスト。 (テキスト エディターでもある) コード エディターで、アラビア語またはヘブライ語を使用してクラス、関数、変数、プロパティ、リテラル文字列、属性などに名前を付けることができます。 ただし、エディターでは右から左への読み取り順序がサポートされていません。テキストは常に左の余白から開始されます。

    ヒント

    リテラル文字列は、プログラムにハードコーディングするのではなく、リソース ファイルに配置することをお勧めします。 詳しくは、「チュートリアル: Windows フォームのローカリゼーション」をご覧ください。

    注意

    これらの言語で名前を付けたオブジェクトは、一貫した方法で参照する必要があります。 たとえば、アラビア語の変数に Kashida を使用して名前を付けた場合は、その変数を参照するときに常に Kashida を使用する必要があります。そうしないと、エラーが発生します。

  • コードのコメント。 アラビア語およびヘブライ語は、コメントに使用できます。 また、コメント ビルダー ツールでもこれらの言語を使用できます。

関連項目

Windows フォーム アプリケーションの双方向サポート
ASP.NET Web アプリケーションに対する双方向サポート
アプリケーションのグローバル化
アプリケーションのローカライズ