次の方法で共有


ローカリゼーション属性とコメント

Windows Presentation Foundation (WPF) のローカライズ コメントは、XAML ソース コード内のプロパティであり、ローカライズのルールとヒントを提供するために開発者によって提供されます。 WPF のローカライズ コメントには、ローカライズ性属性と自由形式のローカライズ コメントという 2 つの情報セットが含まれています。 ローカライズ可能属性は、ローカライズするリソースを示すために WPF ローカリゼーション API によって使用されます。 自由形式のコメントは、アプリケーションの作成者が含める情報です。

ローカライズ コメントを追加する

マークアップ アプリケーションの作成者が、テキストの長さ、フォント ファミリ、フォント サイズに関する制約など、XAML 内の特定の要素に対する要件を持っている場合、XAML コード内のコメントを含むローカライザーにこの情報を伝えることができます。 ソース コードにコメントを追加するプロセスは次のとおりです。

  1. アプリケーション開発者が XAML ソース コードにローカライズ コメントを追加します。

  2. ビルド プロセス中に、アセンブリに自由形式のローカライズ コメントを残すか、コメントの一部を取り除くか、すべてのコメントを取り除くかを .proj ファイルで指定できます。 削除されたコメントは別のファイルに配置されます。 LocalizationDirectivesToLocFile タグを使用してオプションを指定します。次に例を示します。

    <LocalizationDirectivesToLocFile> 価値</LocalizationDirectivesToLocFile>

  3. 割り当て可能な値は次のとおりです。

    • なし - コメントと属性の両方がアセンブリ内に残り、個別のファイルは生成されません。

    • CommentsOnly - アセンブリからコメントのみを削除し、個別の LocFile に配置します。

    • All - コメントと属性の両方をアセンブリから取り除き、両方を別の LocFile に配置します。

  4. ローカライズ可能なリソースが BAML から抽出されると、ローカライズ可能属性は BAML ローカリゼーション API によって考慮されます。

  5. 自由形式のコメントのみを含むローカライズ コメント ファイルは、後でローカライズ プロセスに組み込まれます。

次の例は、XAML ファイルにローカライズ コメントを追加する方法を示しています。

<TextBlock x:Id = "text01"

FontFamily = "Microsoft Sans Serif"

FontSize = "12"

Localization.Attributes = "$Content (Unmodifiable Readable Text)

FontFamily (Unmodifiable Readable)"

Localization.Comments = "$Content (Trademark)

FontSize (Trademark font size)" >

Microsoft

</TextBlock>

前のサンプルの Localization.Attributes セクションには、ローカリゼーション属性と、自由形式のコメントの Localization.Comments セクションが含まれています。 次の表に、ローカライザーに対する属性とコメントとその意味を示します。

ローカライズ属性 意味
$Content (変更できない読み取り可能なテキスト) TextBlock 要素の内容は変更できません。 ローカライザーは"Microsoft" という単語を変更できません。 コンテンツはローカライザーに表示 (読み取り可能) されます。 コンテンツのカテゴリはテキストです。
FontFamily (変更できない読み取り可能) TextBlock 要素のフォント ファミリ プロパティは変更できませんが、ローカライザーには表示されます。
ローカリゼーションのフリーフォームのコメント 意味
$Content (商標) アプリケーション作成者は、TextBlock 要素のコンテンツが商標であることをローカライザーに伝えます。
FontSize (商標フォント サイズ) アプリケーション作成者は、フォント サイズ プロパティが標準の商標サイズに従う必要があることを示します。

ローカライズ可能性属性

Localization.Attributes の情報には、ターゲット値の名前と関連するローカライズ可能な値のペアの一覧が含まれています。 ターゲット名には、プロパティ名または特殊な$Content名を指定できます。 プロパティ名の場合、対象となる値はプロパティの値です。 $Contentの場合、ターゲット値は要素の内容です。

属性には次の 3 種類があります。

  • カテゴリ。 これは、ローカライザー ツールから値を変更できるかどうかを指定します。 Categoryを参照してください。

  • 読みやすさ。 これは、ローカライザー ツールで値を読み取る (表示する) かどうかを指定します。 Readabilityを参照してください。

  • 変更可能性。 これは、ローカライザー ツールで値の変更を許可するかどうかを指定します。 Modifiabilityを参照してください。

これらの属性は、スペースで区切られた任意の順序で指定できます。 重複する属性が指定されている場合、最後の属性は以前の属性をオーバーライドします。 たとえば、Localization.Attributes = "変更不可能な変更可能" は、最後の値であるため、変更可能性を変更可能に設定します。

変更可能性と読みやすさは自明です。 Category 属性は、テキストの翻訳時にローカライザーに役立つ定義済みのカテゴリを提供します。 テキスト、ラベル、タイトルなどのカテゴリは、テキストの翻訳方法に関するローカライザー情報を提供します。 特別なカテゴリもあります:なし、継承、無視、および NeverLocalize。

次の表は、特殊なカテゴリの意味を示しています。

カテゴリ 意味
無し 対象となる値には、カテゴリが定義されていません。
継承する ターゲット値は、そのカテゴリを親から継承します。
不問に付す ローカライズ プロセスでは、ターゲット値は無視されます。 無視は現在の値にのみ影響します。 子ノードには影響しません。
ネバーローカライズ 現在の値はローカライズできません。 このカテゴリは、要素の子によって継承されます。

ローカリゼーション コメント

Localization.Comments には、対象となる値に関する自由形式の文字列が含まれています。 アプリケーション開発者は、情報を追加して、アプリケーションテキストの翻訳方法に関するヒントをローカライザーに提供できます。 コメントの形式は、"()" で囲まれた任意の文字列にすることができます。 文字をエスケープするには、'\' を使用します。

こちらも参照ください