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

更新 : 2007 年 11 月

Windows Presentation Foundation (WPF) ローカリゼーション コメントは、ローカライズの規則やヒントを示すために、開発者が XAML ソース コード内に記述するプロパティです。Windows Presentation Foundation (WPF) ローカリゼーション コメントには、ローカライズ属性と自由な書式のローカリゼーション コメントの 2 組の情報が含まれます。localizability 属性は、どのリソースがローカライズ対象かを示すために、WPF ローカリゼーション API により使用されます。自由な書式のコメントには、アプリケーション作成者が必要に応じて任意の情報を記述できます。

このトピックには次のセクションが含まれています。

  • ローカリゼーション コメント
  • ローカリゼーション コメント
  • 関連トピック

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

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

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

  2. ビルド プロセスの間に、アセンブリ内に自由な書式のローカリゼーション コメントを残すか、コメントの一部を取り除くか、またはすべてのコメントを取り除くかどうかを、.proj ファイル内に指定できます。取り除かれたコメントは、別のファイル内に保存されます。LocalizationDirectivesToLocFile タグを使用してオプションを指定します。以下にその例を示します。

    <LocalizationDirectivesToLocFile>value</LocalizationDirectivesToLocFile>

  3. 指定できる値は次のとおりです。

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

    • CommentsOnly - アセンブリからコメントだけが削除され、別の LocFile 内に保存されます。

    • All - コメントと属性の両方がアセンブリから削除され、別の LocFile 内に保存されます。

  4. BAML からローカライズ可能リソースが抽出されるときに、BAML ローカリゼーション API により、localizability 属性に応じた処理が実行されます。

  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 (Unmodifiable Readable Text)

TextBlock 要素の内容は変更不能 (Unmodifiable) です。ローカライザは、「Microsoft」という単語を変更することはできません。内容はローカライザによる読み取りが可能 (Readable) です。内容のカテゴリはテキストです。

FontFamily (Unmodifiable Readable)

TextBlock 要素のフォント ファミリ プロパティは変更不能ですが、ローカライザによる読み取りは可能です。

自由な書式のローカリゼーション コメント

説明

$Content (Trademark)

TextBlock 要素の内容が商標であることを示します。

FontSize (Trademark font size)

フォント サイズ プロパティが標準の商標サイズに従う必要があることを示します。

ローカライズ属性

Localization.Attributes セクション内の情報は、ターゲットの値名および関連付けられた localizability 値のペアのリストで構成されます。ターゲット名には、プロパティ名または $Content 名のいずれかを指定します。プロパティ名を指定した場合は、ターゲット値はプロパティの値になります。$Content を指定した場合は、ターゲット値は要素の内容になります。

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

  • Category。値をローカライザ ツールで変更できる必要があるかどうかを指定します。Category を参照してください。

  • Readability。ローカライザ ツールが値を読み取る (および表示する) 必要があるかどうかを指定します。Readability を参照してください。

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

これらの属性は、スペースで区切って任意の順番で指定できます。同じ属性を重複して指定した場合は、最後に記述した属性が優先されます。たとえば、Localization.Attributes = "Unmodifiable Modifiable" と指定すると、最後の値である Modifiable が設定されます。

変更可能性と読み取り可能性については、説明は不要でしょう。カテゴリ属性は、ローカライザがテキストを翻訳する際の参考となるように、定義済みのカテゴリを示します。Text、Label、Title などのカテゴリは、ローカライザがテキストの翻訳方法を判断するうえで役立ちます。さらに、None、Inherit、Ignore、NeverLocalize などの特別なカテゴリもあります。

特別なカテゴリの意味を次の表に示します。

カテゴリ

説明

なし

ターゲット値には、定義されたカテゴリがありません。

Inherit

ターゲット値は、親からカテゴリを継承します。

Ignore

ターゲット値は、ローカリゼーション プロセスで無視されます。Ignore は現在の値だけに影響します。子ノードへの影響はありません。

NeverLocalize

現在の値は、ローカライズ不能です。このカテゴリは要素の子にも継承されます。

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

Localization.Comments セクションには、ターゲット値に関する自由な書式の文字列が含まれます。アプリケーション開発者は、アプリケーション テキストの翻訳に関するヒントをローカライザに伝える追加情報をここに記述します。コメントには "()" で囲んだ任意の文字列を記述できます。文字のエスケープには '\' を使用します。

参照

処理手順

方法 : 自動レイアウトを使用してボタンを作成する

方法 : 自動レイアウト用のグリッドを使用する

概念

Windows Presentation Foundation のグローバリゼーション

方法 : アプリケーションをローカライズする