製品プロパティ値をローカライズする
製品名は異なる地域にローカライズされることがあります。 Dynamics 365 Sales では、ユーザーの言語に合わせてローカライズ名を表示するように、特定の製品属性にローカライズ ラベルを付けることができます。 このトピックでは、開発者のこの機能の使用方法について説明します。 アプリケーションでこの機能を使用する詳細な手順については、「製品名とプロパティを複数の言語に翻訳する」の以前のバージョンのドキュメントを参照してください。
ローカライズされるプロパティ値をサポートする属性
以下はローカライズできる値をサポートする属性が示されています。
Product.Name
DynamicProperty.Name
DynamicPropertyOptionSetItem.DynamicPropertyOptionName
DynamicPropertyOptionSetItem.DynamicPropertyOptionDescription
StringAttributeMetadataとMemoAttributeMetadata クラスには、上記の表の 4 つを除くすべての属性が
false
の読み取り専用のIsLocalizable
ブール値があります。
ローカライズされたプロパティ名の取得
ユーザーの言語に合わせてローカライズされた値を取得するのに何も変わったことをする必要はありません。 ローカライズ値がユーザーの優先する言語にある場合は、それが返されます。 ローカライズされている値がない場合は、この組織の基本言語の値が返されます。 これには下位互換性があります。製品名属性を現在使用するコードは、ローカライズされた値を使用することで引き続き機能します。 プロパティ値のローカライズが不完全な場合、混在した言語の値が表示されることがあります。
特定のローカライズ可能属性のローカライズされたラベルを取得するには、RetrieveLocLabelsRequest メッセージを使用します。
ローカライズした値を使用するクエリ
ローカライズされた属性の値を使用する条件でテーブルを照会すると、まず優先する言語を使用して条件が検証され、その属性にローカライズされた値がない場合、基本言語値に戻されます。 ローカライズされた属性値のクエリの結果が存在する場合、優先する言語のクエリ結果です。 存在しない場合、結果は基本言語の値を使用します。
ローカライズ可能な属性のあるレコードを作成または更新する
ローカライズされた属性のあるレコードは、優先する言語が組織の基本言語でない限り、読み取り専用です。 組織の基本言語を使用してローカライズされたプロパティ値のあるレコードのみ作成できます。 ローカライズできる属性の基本言語値を更新している場合は、基本言語の値をクリアしない限り、属性のローカライズされた値は変更されません。 基本言語の値をnull、または空の文字列に設定すると、そのプロパティのすべてのローカライズされた値はクリアされます。
特定のローカライズされた属性のローカライズされたラベルを追加または更新するには、 SetLocLabelsRequestメッセージを使用するか、翻訳した値をインポートします。 ローカライズ可能な属性に対する変更は、レコードの監査履歴に表示されます。 ローカライズされた値の言語コード識別子 (LCID)は監査履歴に表示されます。
ローカライズ可能な属性を翻訳する
ローカライズ可能な属性をプログラムでローカライズするプロセスは、ローカライズされたソリューション ラベルの翻訳に使用するプロセスに似ています。 [!INCLUDE[proc_more_information]カスタマイズされたテーブルおよび列のテキストを翻訳する
メタデータ値の翻訳と違って、ローカライズされた属性値をエクスポートおよびインポートするユーザーには、システム管理者セキュリティ ロールが必要ありません。 営業課長セキュリティ ロールには、ローカライズできる属性を翻訳する際に必要な特権が与えられています。 ローカライズされたプロパティ値を翻訳するユーザーには、表示のアクセス権を持つレコードのみをエクスポートでき、更新の特権を持つレコード更新できます。
ローカライズ可能な属性をプログラムで翻訳するには、まず、ExportFieldTranslationRequestを使用して、現在のローカライズされたラベル定義をエクスポートする必要があります。 ExportFieldTranslationResponse。
ExportTranslationFile
プロパティには、Office Excel を使用して開くことができる Content_types.xml ファイルと crmFieldTranslations.xml ファイルを含む圧縮された crmFieldTranslations.zip ファイルの byte[]
が含まれます。 ローカライズされたラベルワークシートには、組織のプロビジョニングされた言語の LCID 値の列が含まれます。 基本言語の値の列が入力され、プロビジョニングされた各言語の列には、以前にローカライズされた値が含まれます。 このファイルは翻訳者によって編集され、ローカライズされたプロパティにローカライズされたラベルが提供されます。
チップ
基本言語名のみの一括更新を実行する場合、基本言語の値も編集できます。
ローカライズされたラベルを提供するために crmFieldTranslations.xml ファイルを編集した後に、そのファイルを [Content_types].xml ファイルと共に圧縮してから、そのファイルを ImportFieldTranslationRequest の TranslationFile
プロパティとして設定します。
翻訳済みプロパティ値をエクスポートする際に含まれる値を変更する
エクスポートされた翻訳に含まれる値は、ローカライズ可能なプロパティ値をサポートするテーブルと関連付けられているカスタマイズ可能なビューによって制御されます。 製品テーブルのみ、カスタマイズ ユーザー インターフェイスにこのビューが表示されます。 これらのビューの名前は、フィールド翻訳のエクスポートです。 次の表には、これらのビューのSavedQueryId
が含まれています。
テーブル | SavedQueryId |
既定FetchXml |
---|---|---|
製品 | 9cfe2a9f-13c4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> <entity name="product"> <attribute name="name" /> </entity> </fetch> |
dynamicproperty | 4833cf48-1ac4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical"> <entity name="dynamicproperty"> <attribute name="name" /> </entity> </fetch> |
dynamicpropertyoptionsetitem | d64cce30-1fc4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical"> <entity name="dynamicpropertyoptionsetitem"> <attribute name="dynamicpropertyoptionname" /> <attribute name="dynamicpropertyoptiondescription" /> </entity> </fetch> |
これらのビューのFetchXml
プロパティを編集して、含めたくない属性プロパティ値を除外します。 たとえば、アーカイブしたレコードを除外したり、特定の日付以降の更新を行った場合のみ含たりすることができます。
フィールド変換インポート ジョブの進捗の監視
システム ジョブ テーブルには、フィールド変換インポート ジョブの進行状況を監視するための以下のビューがあります。
すべてのフィールド変換インポート ジョブ
完了したフィールド変換インポート ジョブ
進行中のフィールド変換インポート ジョブ
自分のフィールド変換インポート ジョブ
開始前のフィールド変換インポート ジョブ
変換ジョブをインポートする際に、次の条件はエラーの原因になります。
メッセージ | 説明 |
---|---|
警告: ワークシート {0}、行{1} のインポート ファイルで指定された複数の行への書き込みアクセス許可がありません。 | インポートを実行しているユーザーは、インポート ファイル内の行への書き込みアクセス許可がない可能性があります。 他の行の処理は続行されます。 |
警告: ワークシート {0}、行 {1}、列 {2} にある基本言語翻訳文字列が null です。 | 基本言語の値は翻訳のインポートによってクリアできません。 他の行の処理は続行されます。 |
警告: The number of cells in 行 {0} のセル数は、ワークシート {1} で行 1 のセル数と異なっています。 | スプレッドシートのすべての行には、そのセルと同じ数が必要です。 他の行の処理は続行されます。 |
警告: 無効なテーブル名が、ワークシート {0}、行 {1}、列 A で見つかりました。 | システムにワークシートの名前を使用する有効なテーブルがありません。 他の行の処理は続行されます。 |
警告: 無効なオブジェクト列名が、ワークシート {0}、行 {1}、列 C で見つかりました。 | システムにワークシートの名前を使用する有効なローカライズ可能属性がありません。 他の行の処理は続行されます。 |
警告: 無効なオブジェクト ID が、ワークシート {0}、行 {1}、列 B で見つかりました。 | この行に項目の組織と一致するレコードが存在しません。 他の行の処理は続行されます。 |
エラー: ワークシート {0} に行が見つかりませんでした。 | インポートするワークシートは空です。 |
エラー: ワークシート {0} 内の組織 ID は、現在の組織 ID と一致しません。 | エクスポート元と同じ組織にのみ、翻訳をインポートすことができます。 |
警告: 無効な言語コードが、ワークシート {0}、列 {1} で見つかりました。 | 詳細: {2} | 列の LCID は、有効な整数でないか、言語がインストールされていないの言語パックです。 列の翻訳は無視されます。 有効なロケール ID 値は、ロケール ID (LCID) の一覧のページで確認できます。 |
エラー: 重複言語コードが、ワークシート {0}、列 {1} で見つかりました。 | 各列には異なる言語コードが必要です。 |
エラー: 翻訳ファイルが無効です。 圧縮ファイルには、ルートに次のファイルが含まれていることが必要です: CrmFieldTranslations.xml, [Content_Types].xml | インポートする圧縮(zip)ファイルには、エラーに示されたファイルのみが含まれている必要があります。 |
エラー: 翻訳ファイルが無効か、必要なスキーマに準拠していません。 | 圧縮 (zip) ファイルに含まれる CrmFieldTranslations.xml ファイルは、そのシステムからエクスポートされ、ローカライズされている値を提供するためだけに編集されたファイルである必要があります。 そのほかの変更は、ファイルを無効にする可能性があります。 |
言語をアンインストールする
アンインストールする言語に提供されているローカライズされたラベルはシステムに保持されたままになり、言語が再インストールされると、元の状態になります。