製品プロパティ値をローカライズする

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

製品名は異なる地域にローカライズされることがあります。Microsoft Dynamics 365 (オンラインおよび設置型) では、ユーザーの言語に合わせてローカライズ名を表示するように、特定の製品属性にローカライズ ラベルを付けることができます。 このトピックでは、開発者のこの機能の使用方法について説明します。 アプリケーションでこの機能を使用する詳細な手順については、「ヘルプとトレーニング: 製品名とプロパティを複数の言語に翻訳する」を参照してください。

このトピックの内容

ローカライズされるプロパティ値をサポートする属性

ローカライズされたプロパティ名の取得

ローカライズした値を使用するクエリ

ローカライズ可能な属性のあるレコードを作成または更新する

ローカライズ可能な属性を翻訳する

言語をアンインストールする

ローカライズされるプロパティ値をサポートする属性

以下はローカライズできる値をサポートする属性が示されています。

  • Product.Name

  • DynamicProperty.Name

  • DynamicPropertyOptionSetItem.DynamicPropertyOptionName

  • DynamicPropertyOptionSetItem.DynamicPropertyOptionDescription

StringAttributeMetadataMemoAttributeMetadata クラスには、上記の表の 4 つを除くすべての属性がfalseの読み取り専用のIsLocalizableブール値があります。

ローカライズされたプロパティ名の取得

ユーザーの言語に合わせてローカライズされた値を取得するのに何も変わったことをする必要はありません。 ローカライズ値がユーザーの優先する言語にある場合は、それが返されます。 ローカライズされている値がない場合は、この組織の基本言語の値が返されます。 これには下位互換性があります。製品名属性を現在使用するコードは、ローカライズされた値を使用することで引き続き機能します。 プロパティ値のローカライズが不完全な場合、混在した言語の値が表示されることがあります。

特定のローカライズ可能属性のローカライズされたラベルを取得するには、RetrieveLocLabelsRequest メッセージを使用します。

ローカライズした値を使用するクエリ

ローカライズされた属性の値を使用する条件でエンティティを照会すると、まず優先する言語を使用して条件が検証され、その属性にローカライズされた値がない場合、基本言語値に戻されます。 ローカライズされた属性値のクエリの結果が存在する場合、優先する言語のクエリ結果です。 存在しない場合、結果は基本言語の値を使用します。

ローカライズ可能な属性のあるレコードを作成または更新する

ローカライズされた属性のあるレコードは、優先する言語が組織の基本言語でない限り、読み取り専用です。 組織の基本言語を使用してローカライズされたプロパティ値のあるレコードのみ作成できます。 ローカライズできる属性の基本言語値を更新している場合は、基本言語の値をクリアしない限り、属性のローカライズされた値は変更されません。 基本言語の値をnull、または空の文字列に設定すると、そのプロパティのすべてのローカライズされた値はクリアされます。

特定のローカライズされた属性のローカライズされたラベルを追加または更新するには、 SetLocLabelsRequestメッセージを使用するか、翻訳した値をインポートします。 ローカライズ可能な属性に対する変更は、レコードの監査履歴に表示されます。 ローカライズされた値の言語コード識別子 (LCID)は監査履歴に表示されます。

ローカライズ可能な属性を翻訳する

ローカライズ可能な属性をプログラムでローカライズするプロセスは、ローカライズされたソリューション ラベルの翻訳に使用するプロセスに似ています。詳細:カスタマイズされたエンティティおよび属性のテキストの翻訳

メタデータ値の翻訳と違って、ローカライズされた属性値をエクスポートおよびインポートするユーザーには、システム管理者セキュリティ ロールが必要ありません。 営業課長セキュリティ ロールには、ローカライズできる属性を翻訳する際に必要な特権が与えられています。 ローカライズされたプロパティ値を翻訳するユーザーには、表示のアクセス権を持つレコードのみをエクスポートでき、更新の特権を持つレコード更新できます。

ローカライズ可能な属性をプログラムで翻訳するには、まず、ExportFieldTranslationRequestを使用して、現在のローカライズされたラベル定義をエクスポートする必要があります。ExportFieldTranslationResponse.ExportTranslationFile プロパティには、Microsoft Office Excelを使用して開く [Content_types].xml ファイルと crmFieldTranslations.xml ファイルを格納する圧縮crmFieldTranslations.zipファイルの **byte[]**が含まれます。ローカライズされたラベル ワークシートには、組織のプロビジョニングされた言語の LCID 値の列が含まれます。 基本言語の値の列が入力され、プロビジョニングされた各言語の列には、以前にローカライズされた値が含まれます。 このファイルは翻訳者によって編集され、ローカライズされたプロパティにローカライズされたラベルが提供されます。

ヒント

基本言語名のみの一括更新を実行する場合、基本言語の値も編集できます。

ローカライズされたラベルを提供するために crmFieldTranslations.xml ファイルを編集した後に、そのファイルを [Content_types].xml ファイルと共に圧縮してから、そのファイルを ImportFieldTranslationRequestTranslationFile プロパティとして設定します。

翻訳済みプロパティ値をエクスポートする際に含まれる値を変更する

エクスポートされた翻訳に含まれる値は、ローカライズ可能なプロパティ値をサポートするエンティティと関連付けられているカスタマイズ可能なビューによって制御されます。 製品エンティティのみ、カスタマイズ ユーザー インターフェイスにこのビューが表示されます。 これらのビューの名前は、フィールド翻訳のエクスポートです。 次の表には、これらのビューのSavedQueryId が含まれています。

エンティティ

SavedQueryId

既定FetchXml

product

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 です。

基本言語の値は翻訳のインポートによってクリアできません。

他の行の処理は続行されます。

警告: 行 {0} のセル数は、ワークシート {1}で行 1 のセル数と異なっています。

スプレッドシートのすべての行には、そのセルと同じ数が必要です。

他の行の処理は続行されます。

警告: 無効なエンティティ名が、ワークシート {0}、行 {1}、列A で見つかりました。

システムにワークシートの名前を使用する有効なエンティティがありません。

他の行の処理は続行されます。

警告: 無効なオブジェクト列名が、ワークシート {0}、行 {1}、列C で見つかりました。

システムにワークシートの名前を使用する有効なローカライズ可能属性がありません。

他の行の処理は続行されます。

警告: 無効なオブジェクトIDが、ワークシート {0}、行 {1}、列B で見つかりました。

この行に項目の組織と一致するレコードが存在しません。

他の行の処理は続行されます。

エラー: ワークシート {0}に行が見つかりませんでした。

インポートするワークシートは空です。

エラー: ワークシート {0} 内の組織 ID は、現在の組織 ID と一致しません。

エクスポート元と同じ組織にのみ、翻訳をインポートすことができます。

警告: 無効な言語コードが、ワークシート {0}、列 {1} で見つかりました。 | 詳細: {2}

列の LCID は、有効な整数でないか、言語がインストールされていないの言語パックです。

列の翻訳は無視されます。

有効なロケール ID 値については、「Locale ID (LCID) Chart (ロケール ID (LCID) の一覧)」で確認することができます。

エラー: 重複言語コードが、ワークシート {0}、列 {1} で見つかりました。

各列には異なる言語コードが必要です。

エラー: 翻訳ファイルが無効です。 圧縮ファイルには、そのルートに、CrmFieldTranslations.xml、[Content_Types].xml ファイルが含まれていることが必要です。

インポートする圧縮(zip)ファイルには、エラーに示されたファイルのみが含まれている必要があります。

エラー: 翻訳ファイルが無効か、必要なスキーマに準拠していません。

圧縮(zip)ファイルに含まれる CrmFieldTranslations.xml file は、そのシステムからエクスポートされ、ローカライズされている値を提供するためだけに編集されたファイルである必要があります。 そのほかの変更は、ファイルを無効にする可能性があります。

言語をアンインストールする

アンインストールする言語に提供されているローカライズされたラベルはシステムに保持されたままになり、言語が再インストールされると、元の状態になります。

関連項目

製品カタログ エンティティ
カスタマイズされたエンティティおよび属性のテキストの翻訳
ヘルプとトレーニング: 製品名とプロパティを複数の言語に翻訳する

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権