FrameworkElement.Language プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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" />
プロパティ値
インターネット エンジニアリング タスク フォース (IETF) BCP 47 標準に従う言語とカルチャを指定する文字列。 たとえば、米国英語は "en-US" です。
注釈
Language プロパティは、より大きな UI で選択した要素に対して要素ごとの言語設定を設定するためのものです。 これを行うメインの理由は、テキストプレゼンテーションの既定またはフォールバック 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 はプロパティ継承構造を意図的に使用して、ルート要素に設定された 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 をインポートできます。