Windows Presentation Foundation (WPF) 本地化注释是开发人员提供的 XAML 源代码中的属性,用于提供本地化规则和提示。 WPF 本地化注释包含两组信息:可本地化属性和自由格式本地化注释。 WPF 本地化 API 使用可本地化属性来指示要本地化的资源。 自由格式注释是应用程序作者想要包含的任何信息。
添加本地化注释
如果标记应用程序作者对 XAML 中的特定元素有要求,例如文本长度、字体系列或字号的约束,则可以在 XAML 代码中使用注释将此信息传达给本地化人员。 将注释添加到源代码的过程如下所示:
应用程序开发人员将本地化注释添加到 XAML 源代码。
在生成过程中,可以在 .proj 文件中指定是离开程序集中的自由格式本地化注释、去除部分注释,还是去除所有注释。 剥离的注释放置在单独的文件中。 使用标记
LocalizationDirectivesToLocFile
指定选项,例如:<LocalizationDirectivesToLocFile>
价值</LocalizationDirectivesToLocFile>
可分配的值包括:
无 - 注释和属性都保留在程序集内,不会生成单独的文件。
CommentsOnly - 仅去除程序集中的注释并将其放置在单独的 LocFile 中。
全部 - 从程序集中去除注释和属性,并将其放在单独的 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 节包含本地化属性和本地化.注释部分自由格式注释。 下表显示了特性和注释及其对本地化程序的含义。
本地化属性 | 含义 |
---|---|
$Content (不可修改的可读文本) | 无法修改 TextBlock 元素的内容。 本地化人员无法更改“Microsoft”一词。 内容对本地化程序可见(可读)。 内容的类别为文本。 |
FontFamily (不可修改可读) | TextBlock 元素的字体系列属性无法更改,但它对本地化程序可见。 |
本地化自由格式注释 | 含义 |
---|---|
$Content(商标) | 应用程序作者告诉本地化程序 TextBlock 元素中的内容是商标。 |
FontSize (商标字号) | 应用程序作者指示字体大小属性应遵循标准商标大小。 |
可本地化属性
Localization.Attributes 中的信息包含一系列对:目标值名称和关联的可本地化性值。 目标名称可以是属性名称,也可以是特殊$Content名称。 如果它是属性名称,则目标值是该属性的值。 如果$Content,则目标值为元素的内容。
有三种类型的属性:
类别。 这指定是否应从本地化工具修改值。 请参阅 Category。
可读性。 这指定本地化工具是否应读取值(并显示)。 请参阅 Readability。
可修改性。 这指定本地化工具是否允许修改值。 请参阅 Modifiability。
这些属性可以按空格分隔的任何顺序指定。 如果指定了重复属性,则最后一个属性将替代以前的属性。 例如,Localization.Attributes = “Unmodifiable Modifiable” 将 Modifiability 设置为 Modifiable,因为它是最后一个值。
可修改性和可读性是自我解释的。 Category 属性提供预定义的类别,用于在翻译文本时帮助本地化程序。 类别(如文本、标签和标题)提供有关如何翻译文本的本地化程序信息。 还有特殊类别:None、Inherit、Ignore 和 NeverLocalize。
下表显示了特殊类别的含义。
类别 | 含义 |
---|---|
没有 | 目标值没有定义的类别。 |
继承 | 目标值继承其父级的类别。 |
忽略 | 本地化过程中忽略目标值。 忽略仅影响当前值。 它不会影响子节点。 |
NeverLocalize | 当前值无法本地化。 此类别由元素的子级继承。 |
本地化注释
Localization.Comments 包含与目标值相关的自由格式字符串。 应用程序开发人员可以添加信息,以便向本地化人员提供有关如何翻译应用程序文本的提示。 注释的格式可以是“()”括起来的任何字符串。 使用“\”转义字符。