Data Standard 附带的对话框和选项卡自动支持十二种不同的语言。
这些语言的文本字符串在 XML 文件中定义。这些文件位于以下位置:
C:\ProgramData\Autodesk\<Vault 版本>\Extensions\DataStandard\<本地化文件夹>
其中 <语言代码> 是语言的文件夹名称(例如 en-US、de-DE、it-IT)。
每个语言文件夹都包含两个文件:
这些文件可以扩展以支持自定义 Data Standard 对话框中的不同语言。
默认情况下,用于 Data Standard 用户界面字符串和特性转换的语言与安装的 Vault Client 相同。但是,可以通过修改位于以下位置的 DSLanguages.xml 文件替代该语言:
C:\ProgramData\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault。
正确设置 DSLanguages.xml:手动将数据库语言更改为服务器语言(例如 en-US)。将语言代码 ID=UI 留空:此操作可使 Vault 客户端基于活动语言包从源读取特性标签、消息和标题(例如,从 de-DE\UIString.xml 读取值)。
<Language_Code ID="DB">en-US</Language_Code>
<Language_Code ID="UI"></Language_Code>
更改类别值 - UIStrings.xml:当客户端语言与服务器语言不同时,系统不会显示类别组合框 VDS 对话框中的类别名称。因此,我们建议将 UIStrings.xml 中的类别名称更改为采用 Vault 服务器语言的类别名称。请参见下图:

对于 Inventor 和 AutoCAD,系统将自动确定语言,因此无法进行设置。Data Standard 会尝试使用 CAD 应用程序所使用的相同语言。如果 CAD 应用程序使用 Data Standard 不支持的语言,则会回退到英文版本。
Vault 数据库语言与 CAD 应用程序不相关,因为 Data Standard 使用映射的特性(Inventor iProperty、AutoCAD DWG 特性和块属性)。
示例:UIStrings.xml
<?xml version="1.0" encoding="utf-8"?>
<UIStrings LanguageCode="en-US">
<UIString ID="LBL1">Folder</UIString>
<UIString ID="LBL2">Title</UIString>
<UIString ID="LBL3">Description</UIString>
...
</UIStrings>
该 XML 文件包含 <UIStrings> 元素,其 LanguageCode 属性用于指定语言。<UIStrings> 元素是 <UIString> 元素的集合。属性 ID 必须是唯一的。对于您自己的字符串,Autodesk 建议您使用前缀(例如,**ID="MYPREFIX_LBL1"**)。该元素的值为文本字符串。
通过使用以下表达式,可将用户界面字符串用于不同的 Data Standard 组件:
XAML 文件:UIString[<ID>]
例如,<Label Content="{Binding UISTring[LBL2]}"/>
以上示例会在 UIStrings.xml(基于使用的语言)中查找 ID 为 LBL2 的 <UIString> 元素,返回 Title 字符串,并在对话框中将此显示为标签。
PowerShell 文件:$UIString["<ID>"]
MenuDefinitions.xml 文件:$UIString[<ID>]。在 VDS 2017 中,MNU 文件被替换为 MenuDefinitions.xml 文件。
这可以在菜单项定义的变量 Description、Hint、Label 和 NavigationTypes 中使用。有关详细信息,请参见 MenuDefinitions.xml 文件。
在动态类别特性栅格中添加标签。默认情况下,动态类别栅格中的第一列会列出特性名称(系统名称)。
$UIString[<ID>],后者具有到“系统名称”的映射。若要查看用户定义特性的系统名称,请在“Vault 管理”>“行为”>“特性”>“创建/编辑特性”中将“系统名称”列添加到栅格。$UIString[<ID>],后者具有到自定义 iProperty (Inventor)、自定义文件特性 (AutoCAD) 或块属性名称 (AutoCAD) 的映射。利用本地化的名称,可以实现动态替代标签。 <UIString ID ="7b6a617f-bf95-426f-a2fl-b4d0e9eec0a3">Zeichnungs-Titel</UIString>
适用于 en-US 的动态类别栅格中的结果,对于使用 de-DE 启动的客户端:

示例:PropertyTranslations.xml
<?xml version="1.0" encoding="utf-8"?>
<PropertyTranslations LanguageCode="en-US">
<PropertyTranslation Name="NAME">Name</PropertyTranslation>
<PropertyTranslation Name="TITLE">Title</PropertyTranslation>
<PropertyTranslation Name="DESCRIPTION">Description</PropertyTranslation>
...
</PropertyTranslations>
该 XML 文件包含 <PropertyTranslations> 元素,其 LanguageCode 属性用于指定语言。<PropertyTranslations> 元素是 <PropertyTranslation> 元素的集合。属性 Name 必须是唯一的。该元素的值是 Vault 特性的显示名称。
在 XAML 和 PowerShell 文件中,可以通过 Prop[<特性名称>] 表达式访问 Vault 特性。无需使用固定的特性名称,而是使用以下语法:
XAML 文件:<TextBox Text="{Binding Prop[_XLTN_<Name>].Value}"
例如:<TextBox Text="{Binding Prop[_XLTN_DESCRIPTION].Value}"/>
上述示例中的 prefix_XLTN_ 在 PropertyTranslations.xml 中查找名为 DESCRIPTION 的 <PropertyTranslation> 元素,并将完整表达式 _XLTN_DESCRIPTION 替换为值 Description。然后,文本框的内容将绑定到 Vault 特性 Description。
PowerShell 文件:$Prop["_XLTN_<Name>"].Value