ローカリゼーション属性とコメント
更新 : 2007 年 11 月
Windows Presentation Foundation (WPF) ローカリゼーション コメントは、ローカライズの規則やヒントを示すために、開発者が XAML ソース コード内に記述するプロパティです。Windows Presentation Foundation (WPF) ローカリゼーション コメントには、ローカライズ属性と自由な書式のローカリゼーション コメントの 2 組の情報が含まれます。localizability 属性は、どのリソースがローカライズ対象かを示すために、WPF ローカリゼーション API により使用されます。自由な書式のコメントには、アプリケーション作成者が必要に応じて任意の情報を記述できます。
このトピックには次のセクションが含まれています。
- ローカリゼーション コメント
- ローカリゼーション コメント
- 関連トピック
ローカリゼーション コメント
XAML 内の特定の要素について、テキストの長さ、フォント ファミリ、フォント サイズなどの制約がある場合、マークアップ アプリケーション作成者は XAML コード内のコメントを使用して、この情報をローカライザに伝えることができます。ソース コードにコメントを追加するためのプロセスは、次のとおりです。
アプリケーション開発者が、XAML ソース コードにローカリゼーション コメントを追加します。
ビルド プロセスの間に、アセンブリ内に自由な書式のローカリゼーション コメントを残すか、コメントの一部を取り除くか、またはすべてのコメントを取り除くかどうかを、.proj ファイル内に指定できます。取り除かれたコメントは、別のファイル内に保存されます。LocalizationDirectivesToLocFile タグを使用してオプションを指定します。以下にその例を示します。
<LocalizationDirectivesToLocFile>value</LocalizationDirectivesToLocFile>
指定できる値は次のとおりです。
None - コメントと属性の両方がアセンブリ内に残され、別ファイルは生成されません。
CommentsOnly - アセンブリからコメントだけが削除され、別の LocFile 内に保存されます。
All - コメントと属性の両方がアセンブリから削除され、別の LocFile 内に保存されます。
BAML からローカライズ可能リソースが抽出されるときに、BAML ローカリゼーション API により、localizability 属性に応じた処理が実行されます。
自由な書式のコメントだけを格納したローカリゼーション コメント ファイルは、ローカリゼーション プロセスに後から組み込まれます。
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 セクションには、ターゲット値に関する自由な書式の文字列が含まれます。アプリケーション開発者は、アプリケーション テキストの翻訳に関するヒントをローカライザに伝える追加情報をここに記述します。コメントには "()" で囲んだ任意の文字列を記述できます。文字のエスケープには '\' を使用します。