Data Standard に用意されているダイアログとタブは、12 の異なる言語を自動的にサポートします。
これらの言語のテキスト文字列は、XML ファイルで定義されます。ファイルはここにあります。
C:\ProgramData\Autodesk\<Vault バージョン>\Extensions\DataStandard\<ローカライゼーション フォルダ>
ここで、 <言語コード> は言語のフォルダ名です(例: en-US、de-DE、it-IT)。
各言語フォルダに 2 つのファイルが含まれています。
これらのファイルは、カスタマイズされた Data Standard のダイアログ ボックスで異なる言語をサポートするように拡張できます。
既定では、Data Standard の UI 文字列およびプロパティの変換に使用される言語は、インストールされている Vault クライアントと同じです。ただし、これは以下にある DSLanguages.xml ファイルを修正して上書きできます。
C:\ProgramData\Autodesk\<Vault バージョン>\Extensions\DataStandard\Vault
DSLanguages.xml を正しく設定します。DB 言語をサーバの言語(例: en-US)に手動で変更します。言語コード ID=UI を空白のままにします。これにより、Vault Client はアクティブな言語パックに基づいて、ソースからプロパティのラベル、メッセージ、ヘッダを読み取ることができます(de-DE\UIString.xml から値を読み取るなど)。
<Language_Code ID="DB">en-US</Language_Code>
<Language_Code ID="UI"></Language_Code>
カテゴリ値を変更する – UIStrings.xml: クライアントの言語がサーバの言語と異なる場合、カテゴリ コンボボックスの VDS ダイアログにカテゴリ名が表示されません。したがって、UIStrings.xml のカテゴリ名を、Vault Server の言語に対応するカテゴリ名に変更することをお勧めします。次の図を参照してください。
Inventor および AutoCAD の場合、言語は自動的に決定され、設定できません。Data Standard は、CAD アプリケーションで使用されているのと同じ言語を使用しようとします。CAD アプリケーションが Data Standard でサポートされていない言語を使用している場合、代わりに英語が使用されます。
Data Standard はマッピングされたプロパティ(Inventor iProperty、AutoCAD DWG プロパティ、ブロック属性)を使用するため、Vault データベースの言語は CAD アプリケーションに影響しません。
サンプル: 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 ファイルには、言語を指定する属性 LanguageCode
を持つ <UIStrings>
要素が含まれています。<UIStrings>
要素は、<UIString>
要素の集合です。属性 ID は一意である必要があります。独自の文字列には、接頭語(例: ID="MYPREFIX_LBL1")を使用することをお勧めします。要素の値はテキスト文字列です。
次の式を使用して、UI 文字列を Data Standard の異なるコンポーネントで使用できます。
XAML ファイル: UIString[<ID>]
例: <Label Content="{Binding UISTring[LBL2]}"/>
上記のサンプルでは、UIStrings.xml(使用言語に基づく)で ID が LBL2 の <UIString>
要素を検索し、文字列 Title を返してダイアログにラベルとして表示します。
PowerShell ファイル: $UIString["<ID>"]
MenuDefinitions.xml ファイル: $UIString[<ID>]
。MNU ファイルは、VDS 2017 で MenuDefinitions.xml ファイルに置き換えられました。
これは、メニュー アイテム定義の変数 Description
、Hint
、Label
、NavigationTypes
で使用できます。詳細については、「MenuDefinitions.xml ファイル」を参照してください。
ダイナミック カテゴリ プロパティ グリッドでのラベル付け。既定では、ダイナミック カテゴリ グリッドの最初の列にプロパティ名(システム名)が表示されます。
$UIString[<ID>]
から取得されることに注意してください。ユーザ定義プロパティのシステム名を確認するには、[Vault の管理] > [動作] > [プロパティ] > [プロパティを作成/編集]のグリッドに[システム名]列を追加します。$UIString[<ID>]
からラベルが取得されます。ローカライズされた名称により、ラベルの動的なオーバーライドが有効になります。 <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 ファイルには、言語を指定する属性 LanguageCode
を持つ <PropertyTranslations>
要素が含まれています。<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