Data Standard に用意されているダイアログとタブは、12 の異なる言語を自動的にサポートします。
これらの言語のテキスト文字列は、XML ファイルで定義されます。ファイルはここにあります。
C:\ProgramData\Autodesk\<Vault のバージョン>\Extensions\DataStandard\<ローカライゼーション フォルダ>
ここで、<言語コード>は言語のフォルダ名です(例: en-US、de-DE、it-IT)。
これらのファイルは、カスタマイズされた Data Standard のダイアログ ボックスで異なる言語をサポートするように拡張できます。
Vault Client
既定では、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 の言語に対応するカテゴリ名に変更することをお勧めします。次の図を参照してください。
CAD
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"> <!--Labels used in XAMLs--> <UIString ID="LBL1">Folder</UIString> <UIString ID="LBL2">Title</UIString> <UIString ID="LBL3">Description</UIString> ... </UIStrings>
XML ファイルには <UIStrings> 要素が含まれており、言語を指定する属性 LanguageCode が指定されています。<UIStrings> 要素は <UIString> 要素のコレクションです。属性 ID は一意である必要があります。独自の文字列には、接頭語(例: ID="MYPREFIX_LBL1")を使用することをお勧めします。要素の値はテキスト文字列です。
UI 文字列を使用する方法
次の式を使用して、UI 文字列を Data Standard の異なるコンポーネントで使用できます。
例: <Label Content="{Binding UISTring[LBL2]}"/>
上記のサンプルでは、UIStrings.xml (使用言語に基づく)で ID が LBL2 の <UIString> 要素を検索し、文字列 Title を返してダイアログにラベルとして表示します。
MenuDefinitions.xml ファイル: $UIString[<ID>]MNU ファイルは、VDS 2017 で MenuDefinitions.xml ファイルに置き換えられました。
これは、メニュー アイテム定義の変数 Description、Hint、Label、NavigationTypes で使用できます。詳細については、「MenuDefinitions.xml ファイル」を参照してください。
Vault Client の Data Standard では、ラベルは「システム名」へのマッピングを持つ $UIString[<ID>] から取得されることに注意してください。ユーザ定義プロパティのシステム名を確認するには、[Vault の管理] > [動作] > [プロパティ] > [プロパティを作成/編集]のグリッドに[システム名]列を追加します。
Inventor および AutoCAD 用の Data Standard の場合、ラベルはカスタムの「iProperty」(Inventor)またはカスタムの「ファイル プロパティ」(AutoCAD)、あるいはブロック属性名(AutoCAD)へのマッピングを持つ $UIString[<ID>] から取得されます。ローカライズされた名称により、ラベルの動的なオーバーライドが有効になります。
UIString の例:
<!--In case of Vault, use system name of the property which is usually a GUID. --> <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 プロパティにアクセスできます。固定されたプロパティ名を使用する代わりに、次の構文を使用できます。
例: <TextBox Text="{Binding Prop[_XLTN_DESCRIPTION].Value}"/>
上記のサンプルの prefix_XLTN_ では、PropertyTranslations.xml で名前が DESCRIPTION の <PropertyTranslation> 要素を検索し、完全な式 _XLTN_DESCRIPTION を値 Description で置き換えます。テキスト ボックスのコンテンツが Vault プロパティの Description にバインドされます。