Windows Presentation Foundation (WPF) のローカライズ コメントは、XAML ソース コード内のプロパティであり、ローカライズのルールとヒントを提供するために開発者によって提供されます。 WPF のローカライズ コメントには、ローカライズ性属性と自由形式のローカライズ コメントという 2 つの情報セットが含まれています。 ローカライズ可能属性は、ローカライズするリソースを示すために WPF ローカリゼーション API によって使用されます。 自由形式のコメントは、アプリケーションの作成者が含める情報です。
ローカライズ コメントを追加する
マークアップ アプリケーションの作成者が、テキストの長さ、フォント ファミリ、フォント サイズに関する制約など、XAML 内の特定の要素に対する要件を持っている場合、XAML コード内のコメントを含むローカライザーにこの情報を伝えることができます。 ソース コードにコメントを追加するプロセスは次のとおりです。
アプリケーション開発者が XAML ソース コードにローカライズ コメントを追加します。
ビルド プロセス中に、アセンブリに自由形式のローカライズ コメントを残すか、コメントの一部を取り除くか、すべてのコメントを取り除くかを .proj ファイルで指定できます。 削除されたコメントは別のファイルに配置されます。
LocalizationDirectivesToLocFile
タグを使用してオプションを指定します。次に例を示します。<LocalizationDirectivesToLocFile>
価値</LocalizationDirectivesToLocFile>
割り当て可能な値は次のとおりです。
なし - コメントと属性の両方がアセンブリ内に残り、個別のファイルは生成されません。
CommentsOnly - アセンブリからコメントのみを削除し、個別の LocFile に配置します。
All - コメントと属性の両方をアセンブリから取り除き、両方を別の LocFile に配置します。
ローカライズ可能なリソースが BAML から抽出されると、ローカライズ可能属性は BAML ローカリゼーション API によって考慮されます。
自由形式のコメントのみを含むローカライズ コメント ファイルは、後でローカライズ プロセスに組み込まれます。
次の例は、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 には、対象となる値に関する自由形式の文字列が含まれています。 アプリケーション開発者は、情報を追加して、アプリケーションテキストの翻訳方法に関するヒントをローカライザーに提供できます。 コメントの形式は、"()" で囲まれた任意の文字列にすることができます。 文字をエスケープするには、'\' を使用します。
こちらも参照ください
- WPF のグローバリゼーション
- 自動レイアウトを使用してボタン を作成する
- グリッドを使用した自動レイアウト
- アプリケーションをローカライズする
.NET Desktop feedback