FrameworkElement.Language プロパティ

定義

FrameworkElement に適用されるローカライズ/グローバリゼーション言語情報と、オブジェクト表現と UI の現在の FrameworkElement のすべての子要素を取得または設定します。

public:
 property Platform::String ^ Language { Platform::String ^ get(); void set(Platform::String ^ value); };
winrt::hstring Language();

void Language(winrt::hstring value);
public string Language { get; set; }
var string = frameworkElement.language;
frameworkElement.language = string;
Public Property Language As String
<frameworkElement Language="languageString" />

プロパティ値

String

Platform::String

winrt::hstring

インターネット エンジニアリング タスク フォース (IETF) BCP 47 標準に従う言語とカルチャを指定する文字列。 たとえば、米国英語は "en-US" です。

注釈

Language プロパティは、より大きな UI で選択した要素に対して要素ごとの言語設定を設定することを目的としています。 これを行うメイン理由は、テキストプレゼンテーションの既定の FontFamily やフォールバック FontFamily など、テキスト関連のプロパティと設定に影響を与えます。

このプロパティの既定値は、ユーザーの優先言語のランク付けされた一覧から派生したアプリ言語リストの上位言語です。 フォント フォールバックの観点から最適なエンド ユーザー エクスペリエンスを提供するため、このプロパティの既定値のままにすることをお勧めします。 たとえば、アプリに東アジアのコンテンツが表示されていて、ユーザーがユーザー プロファイルで東アジア言語を指定している場合、コンテンツの信頼性は最も高く、目的の東アジアのフォントに表示されます。

Language プロパティは、主に次の FrameworkElement サブクラスに関連します。

TextElement クラスには Language プロパティもあり、Run などの TextElement サブクラスの目的と動作も同様です。

属性として特に設定されていない場合、Language の既定値は、アプリのグローバリゼーションとローカライズの設定に影響を与える他の大きな要因によって決まります。 これには、ユーザーのシステム設定が含まれます。 詳細については、「アプリの グローバル化」を参照してください。

UI 要素に言語を設定することは、ローカライズとグローバリゼーションのためにアプリを準備するために行うことのほんの一部にすぎません。 たとえば、通常、文字列やイメージなどのリソースに名前を付けたり読み込んだりし、これらのリソースをアプリ パッケージに含める必要があります。 また、リソース修飾子を使用して言語固有のリソースを取得する必要がある要素に x:Uid ディレクティブ 値を適用する必要もあります。 詳細については、「アプリの グローバル化」を参照してください。

マークアップで Language を設定する場合は、マークアップに文字列をハードコーディングするのではなく、RESW リソース ファイルを使用して BCP 47 文字列を指定することを検討する必要があります。 リソース システムが要素をターゲットにできるように、Language を指定する要素に x:Uid ディレクティブ 値を指定します。 次に、リソースの取得元のリソース フォルダー名と一致する BCP 47 文字列の文字列リソースを指定します。 プロジェクトには、従来のローカライズされた UI 文字列を提供する RESW ファイルが既に存在している可能性があります。 詳細については、「 クイック スタート: UI リソースの翻訳」を参照してください。

FrameworkElement.Language と xml:lang

XAML は XML に基づく言語であり、基本的な XML 規則に従います。 これには、XML 言語 XML 名前空間の lang 属性などの XML コンストラクトのサポートが含まれます。 FrameworkElement サブクラスのオブジェクト要素に xml:lang を指定できます。これは、文字列属性値の同じ BCP 47 処理を使用するため、Language 値の場合と同じように扱われます。 FrameworkElement サブクラスではないオブジェクト要素に xml:lang を指定することもできますが、通常、その要素の動作は変更されません。

言語はプロパティ継承構造を意図的に使用して、ルート要素に設定された Language の値がその値を 、FrameworkElement でもあるビジュアル ツリー内のすべての子オブジェクトに伝達するようにします。 これにより、XML と XML DOM での xml:lang の動作が並列化されます。 また、読み取り元の要素が Language プロパティを持つ FrameworkElement サブクラスである限り、実行時に Language を使用して、マークアップで設定された xml:lang 値を読み取ることができます。

ただし、同じオブジェクト要素に Language 属性と xml:lang 属性の両方を指定することはできません。この場合、XAML 解析エラーがスローされます。

移行に関する注意事項

この API は文字列を受け取ります。 同等の Microsoft Silverlight および Windows Presentation Foundation (WPF) API では、このプロパティの型は、同じ文字列をラップするヘルパー オブジェクトです。 XAML で文字列を解析する方法は同じであるため、この違いに気付かずに他のプロジェクトから XAML をインポートできます。

適用対象

こちらもご覧ください