複数言語をサポートするためのラベルのカスタマイズ

注意

Effective November 2020:

  • Common Data Service has been renamed to Microsoft Dataverse. Learn more
  • Some terminology in Microsoft Dataverse has been updated. For example, entity is now table and field is now column. Learn more

This article will be updated soon to reflect the latest terminology.

Common Data Service でカスタマイズを作成するときは、ラベルを使用することで複数の言語をサポートできます。

ラベルの使用

Microsoft.Xrm.Sdk.dll Web API
Label クラス Label ComplexType
LocalizedLabel クラス LocalizedLabel ComplexType

ラベルは、クライアント アプリケーションでユーザーに表示されるローカライズされた文字列です。 それらは、言語パックをサポートする Label (Label ComplexType または Label クラス) を使用して実装されます。 エンティティの表示名やオプション セット内のオプションなど、ユーザーに表示される文字列は複数の言語で保存できます。 ユーザーは、Common Data Service のフォームおよびビューに表示する言語を選択できます。

次の表に、Label を使用するすべてのメタデータの一覧を示します。

メタデータ プロパティ 内容
AttributeMetadata.Description 属性の説明。
AttributeMetadata.DisplayName 属性の表示名。
EntityMetadata.Description エンティティの説明。
EntityMetadata.DisplayCollectionName エンティティの複数形での表示名。
EntityMetadata.DisplayName エンティティの表示名。
AssociatedMenuConfiguration.Label 1 対 1 のエンティティ関連付けで使用されるラベル。
OptionMetadata.Label 候補リスト、状態、またはステータス属性のオプションで使用されるラベル。

Label には、インストールされている言語ごとに 1 つずつ文字列を格納することができます。 この配列は LocalizedLabels プロパティです。 常に、基本言語用に格納されたラベルが存在する必要があります。 その他の言語のラベルは null にすることができます。 ユーザーがユーザー インターフェイスをある言語で表示するときに、その言語の文字列のラベルがない場合は、基本言語のラベルが使用されます。

UserLocalizedLabel プロパティを使用して、ユーザーが選択した言語のラベルを取得できます。

ラベルで使用するメッセージ

以下の表には、複数の言語をサポートするためにローカライズされたラベルの操作に使用できるメッセージを一覧表示します。 翻訳のインポート時は、ソリューションのインポート時と同じ方法でインポート ジョブに基づいたレポートを生成できます。 詳細については、アンマネージド ソリューションのインポートを参照してください。

メッセージ Web API 操作 SDK アセンブリ
ExportTranslation
特定のソリューションのすべての翻訳を圧縮ファイルにエクスポートします。
ExportTranslation Action ExportTranslationRequest
ImportTranslation
圧縮ファイルからすべての翻訳をインポートします。
ImportTranslation Action ImportTranslationRequest
RetrieveFormattedImportJobResults
インポート ジョブの結果を、Office Excel で開ける形式の XML ドキュメントとして取得します。
RetrieveFormattedImportJobResults Function RetrieveFormattedImportJobResultsRequest
RetrieveLocLabels
指定された属性のローカライズされたラベルを取得します。
RetrieveLocLabels Function RetrieveLocLabelsRequest
SetLocLabels
指定された属性のローカライズされたラベルを設定します。
SetLocLabels Action SetLocLabelsRequest

基本言語のラベルのカスタマイズ

カスタマイズ ツールにはエンティティの表示名を編集する方法が用意されており、これらのプロパティをプログラムでカスタマイズできます。 エンティティ メッセージを編集することもできます。 ただし、すべてのメッセージが公開されるわけではありません。 アプリケーションで使用されるテキストを見つけてカスタマイズする別の方法は、翻訳をエクスポートし、基本言語の値を編集し、翻訳を再度インポートすることです。 これはこの機能の本来の目的ではありませんが、アプリケーションで使用されるテキストを識別してカスタマイズするためにサポートされている方法です。 詳細については、エンティティのメッセージの変更 を参照してください。

カスタマイズされたエンティティおよび属性のテキストの翻訳

アプリケーションのカスタマイズは基本言語でのみ実行できるので、カスタマイズ用のローカライズされたラベルを用意する場合は、組織で使用できる他の言語にローカライズできるように、ラベルのテキストをエクスポートする必要があります。

カスタマイズされたテキストの翻訳用のエクスポート

Web アプリケーション内の翻訳は ExportTranslation メッセージ (ExportTranslation Action または ExportTranslationRequest クラス) を使用してエクスポートすることができます。

エクスポートされたテキストは、Office Excel を使用して開く CrmTranslations.xml を含む、圧縮ファイルとして保存されます。 翻訳担当者、翻訳会社、およびローカリゼーション会社にはこのファイルを送信できます。

詳細は、Office 2003 XML リファレンス スキーマを参照してください。

翻訳されたテキストのインポート

カスタマイズされたエンティティまたは属性のテキストをエクスポートし、翻訳したら、ImportTranslation メッセージ (ImportTranslation Action または ImportTranslationRequest クラス) を使用して、Web アプリケーション内に翻訳済みのテキスト文字列をインポートすることができます。 インポートするファイルは、エクスポートされたときの CrmTranslations.xml および [Content_Types].xml ファイルを格納する圧縮ファイルである必要があります。

完了した翻訳をインポートした後、カスタマイズされたテキストは、そのテキストの翻訳後の言語を使用するユーザーに表示されます。

注意

Common Data Service では、500 文字を超える長さの翻訳済みテキストをインポートすることはできません。 翻訳ファイル内の任意のアイテムが 500 文字を超える長さの場合、インポート プロセスは失敗します。 インポート プロセスが失敗した場合は、失敗の原因となったファイル中の行を確認し、文字数を減らしてから再度インポートを試みてください。

カスタマイズは基本言語でのみサポートされるので、言語選択で設定した基本言語で Common Data Service を操作している可能性があります。 翻訳済みテキストが表示されることを確認するには、Common Data Service のユーザー インターフェイスの言語選択を変更する必要があります。 カスタマイズに関する追加の作業を行うには、基本言語に戻す必要があります。

組織で使用する言語の管理

Common Data Service では、サーバー上に複数の言語パックをインストールして、ユーザーが言語パックを選択できるようにすることができます。 言語パックをインストールする方法については、言語を有効にする を参照してください。 このセクションには、組織のためにインストールされた言語の管理で使用するメッセージに関する情報が含まれています。

次の表に、言語パックを操作する際に使用するメッセージを示します。 これらのメッセージは IOrganizationService.Execute メソッドとともに使用します。

メッセージ Web API 操作 SDK アセンブリ
DeprovisionLanguage
言語のプロビジョニングを解除するために必要なデータを格納します。
DeprovisionLanguage Action DeprovisionLanguageRequest
ProvisionLanguage
新しい言語をプロビジョニングするために必要なデータを格納します。
ProvisionLanguage Action ProvisionLanguageRequest
RetrieveAvailableLanguages
使用可能な言語の一覧を取得します。
RetrieveAvailableLanguages Function RetrieveAvailableLanguagesRequest
RetrieveDeprovisionedLanguages
サーバーにインストール済みの言語パックのうち、無効になっているものの一覧を取得します。
RetrieveDeprovisionedLanguages Function RetrieveDeprovisionedLanguagesRequest
RetrieveInstalledLanguagePacks
サーバーにインストール済みの言語パックの一覧を取得するために必要なデータを格納します。
RetrieveInstalledLanguagePacks Function RetrieveInstalledLanguagePacksRequest
RetrieveInstalledLanguagePackVersion
インストール済みの言語パックのバージョンを取得するために必要なデータを格納します。
RetrieveLicenseInfo Function RetrieveInstalledLanguagePackVersionRequest
RetrieveProvisionedLanguages
有効になっているサーバーにインストールされている言語パックの一覧を取得します。
RetrieveProvisionedLanguages Function RetrieveProvisionedLanguagesRequest
RetrieveProvisionedLanguagePackVersion
サーバーにインストールされている言語パックのバージョンを取得します。
RetrieveProvisionedLanguagePackVersion Function RetrieveProvisionedLanguagePackVersionRequest

関連項目

Dynamics 365 のメタデータ モデルの拡張
Dynamics 365 をカスタマイズする
エンティティのメッセージの変更
AttributeMetadata
EntityMetadata
OptionMetadata