多次元モデルの翻訳 (Analysis Services)

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Data Toolsで翻訳を定義するには、翻訳するSQL Server Analysis Services オブジェクトの適切なデザイナーを使用します。 翻訳を定義すると、関連付けられたSQL Server Analysis Services オブジェクトのプロパティに対して、指定された明示的なリテラル値を持つ適切なSQL Server Analysis Services オブジェクトに関連付けられた Translation オブジェクトが、指定した言語で作成されます。

多言語データ モデルの要素

多言語ソリューションで使用するデータ モデルには、単にラベル (フィールド名と説明) を翻訳する以上の処置が必要になります。 また、さまざまな言語スクリプトで表記したデータ値を提供する必要もあります。 多言語ソリューションを実現するには、個々の属性に外部データベース内の列をバインドし、データを取得する必要があります。

Adventure Works サンプル データベース (多次元かつリレーショナルなデータ ウェアハウス) は、Analysis Services の翻訳機能の例を示しています。 このサンプル モデルには、翻訳されたキャプションと説明が含まれています。 サンプルのリレーショナル データ ウェアハウスに含まれる翻訳した値の列が、モデル内のローカライズされた属性メンバーを提供します。

モデルで使用できる翻訳されたデータ値を表示するには、次の手順を実行します。

  1. デザイナーで、Adventure Works 多次元モデルを開きます。

  2. ソリューション エクスプローラーで、[データ ソース ビュー] を開き、[Adventure Works DW<version.dsv>] をダブルクリックします。

  3. dimDate、dimProduct、dimProductCategory、または dimProductSubcateogry を検索します。 これらのすべてのディメンションには、月、曜日、製品名、カテゴリ名などの、翻訳されたメンバーの属性が含まれています。

  4. 任意のフィールドを右クリックし、 [データの探索]を選択します。 各メンバーの英語、スペイン語、およびフランス語の翻訳が表示されます。

日付、時刻、通貨の形式は、翻訳を通じては実装されません。 クライアントのロケールに基づいてカルチャに固有の形式を動的に提供するには、通貨変換ウィザードと FormatString プロパティを使用します。 詳細については、 通貨換算 (Analysis Services)FormatString 要素 (ASSL) に関するページを参照してください。

翻訳の定義

キューブに翻訳を追加する

翻訳は、キューブ、メジャー グループ、メジャー、キューブ ディメンション、パースペクティブ、KPI、アクション、名前付きセット、および計算されるメンバーに追加できます。

  1. ソリューション エクスプローラーで、キューブ名をダブルクリックして、キューブ デザイナーを開きます。

  2. [翻訳] タブ クリックします。このページには、翻訳をサポートするすべてのオブジェクトが一覧表示されます。

  3. 各オブジェクトについて、対象言語 (内部で LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。

    照合順序は変更できないことに注意してください。 キャプションの翻訳によって複数の言語をサポートしている場合でも、1 つのキューブは基本的に 1 つの照合順序を使用します (この後説明するとおり、ディメンションの属性は例外)。 照合順序を共有している場合に言語が正しく並べ替えられない場合は、照合順序の要件に対応するためにキューブのコピーを作成する必要があるかもしれません。

  4. プロジェクトをビルドし、配置します。

  5. Excel などのクライアント アプリケーションを使用してデータベースに接続し、ロケール識別子を使用するように接続文字列を変更します。 詳細については、「 グローバリゼーションのヒントとベスト プラクティス (Analysis Services)」 を参照してください。

ディメンションおよび属性に翻訳を追加する

翻訳は、データベース ディメンション、属性、階層、および階層内のレベルに追加できます。

翻訳されたキャプションは、キーボードまたはコピー/貼り付けを使用して手動でモデルに追加しますが、ディメンションの属性メンバーについては、翻訳された値を外部データベースから取得できます。 具体的には、属性の CaptionColumn プロパティをデータ ソース ビューの列にバインドできます。

照合順序の設定は、属性レベルでオーバーライドできます。たとえば、特定の属性について文字幅の区別で調整したり、バイナリ並べ替えを使用したりできます。 SQL Server Analysis Servicesでは、データ バインディングが定義されている場所で照合順序が公開されます。 ディメンション属性の翻訳は DSV 内の別のソース列にバインドするので、ソース列で使用する照合順序を指定できるように、照合順序の設定が可能になっています。 リレーショナル データベース内の列の照合順序について詳しくは、「 Set or Change the Column Collation 」を参照してください。

  1. ソリューション エクスプローラーで、ディメンション名をダブルクリックして、ディメンション デザイナーを開きます。

  2. [翻訳] タブ クリックします。このページには、翻訳をサポートするすべてのディメンション オブジェクトが一覧表示されます。

    各オブジェクトについて、対象言語 (LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。

  3. 翻訳した値を提供する列に属性をバインドするには、次の手順を実行します。

    1. ディメンション デザイナーの [翻訳]タブを表示した状態のまま、新しい翻訳を追加します。 言語を選択します。 ページに新しい列が表示され、翻訳した値を入力できます。

    2. 属性のいずれかに隣接する空のセルにカーソルを置きます。 属性をキーにすることはできませんが、その他のすべての属性は有効な選択肢です。 ドットが表示された小さいボタンが表示されているはずです。 そのボタンをクリックして、 [属性データの翻訳]ダイアログ ボックスを開きます。

    3. キャプションの翻訳を入力します。 これは、対象言語のデータのラベルとして使用されます。たとえば、ピボット テーブルのフィールド一覧のフィールド名です。

    4. 属性メンバーの翻訳済みの値を提供するソース列を選択します。 ディメンションにバインドされたテーブルまたはクエリ内の既存の列のみ使用できます。 列が存在しない場合は、データ ソース ビュー、ディメンション、およびキューブを変更して列を選択する必要があります。

    5. 該当する場合は、照合順序と並べ替えの順序を選択します。

  4. プロジェクトをビルドし、配置します。

  5. Excel などのクライアント アプリケーションを使用してデータベースに接続し、ロケール識別子を使用するように接続文字列を変更します。 詳細については、「 グローバリゼーションのヒントとベスト プラクティス (Analysis Services)」 を参照してください。

データベース名の翻訳を追加する

データベース レベルでは、データベースの名前と説明に翻訳を追加できます。 翻訳されたデータベース名は、言語の LCID を指定するクライアント接続に表示されますが、ツールによっては表示されないことがあります。 たとえば、Management Studio でデータベースを表示する場合は、接続のロケール識別子を指定しても翻訳済みの名前は表示されません。 Management Studio で Analysis Services の接続に使用される API は、 Language プロパティを読み取りません。

  1. ソリューション エクスプローラーで、プロジェクト名を右クリックし、 [データベースの編集] を選択して、データベース デザイナーを開きます。

  2. [翻訳] 内で、対象言語 (LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。

  3. データベースの [プロパティ] ページで、翻訳に対して指定したのと同じ LCID を Language に設定します。 必要であれば、 Collation にも値を設定します (既定値が意味をなさなくなった場合)。

  4. データベースをビルドして配置します。

翻訳オブジェクトの削除

ディメンションまたはキューブ デザイナーで、完全に削除する翻訳オブジェクトを右クリックします。 削除したオブジェクトは復元および再利用ができないので、続行する前に、影響を受けるオブジェクトの一覧を確認してください。

翻訳の解決

クライアント アプリケーションが指定した言語識別子の情報を要求した場合、SQL Server Analysis Services インスタンスは、SQL Server Analysis Services オブジェクトのデータとメタデータを、可能な限り最も近い言語識別子に解決しようとします。 クライアント アプリケーションで既定の言語を指定しない場合、またはニュートラル ロケール識別子 (0) またはプロセスの既定の言語識別子 (1024) を指定した場合、SQL Server Analysis Servicesはインスタンスの既定の言語を使用して、SQL Server Analysis Services オブジェクトのデータとメタデータを返します。

クライアント アプリケーションで既定の言語識別子以外の言語識別子が指定されている場合、インスタンスはすべての使用可能なオブジェクトに対して、可能なすべての翻訳を反復処理します。 指定した言語識別子が翻訳の言語識別子と一致する場合、SQL Server Analysis Servicesはその翻訳を返します。 一致するものが見つからない場合、SQL Server Analysis Servicesは次のいずれかのメソッドを使用して、指定した言語識別子に最も近い言語識別子を持つ翻訳を返そうとします。

  • 次の言語識別子の場合、SQL Server Analysis Servicesは、指定した言語識別子の翻訳が定義されていない場合、代替言語識別子の使用を試みます。

    指定された言語識別子 代替言語識別子
    3076 - 中国語 (中華人民共和国香港特別行政区) 1028 - 中国語 (台湾)
    5124 - 中国語 (中華人民共和国マカオ特別行政区) 1028 - 中国語 (台湾)
    1028 - 中国語 (台湾) 既定の言語
    4100 - 中国語 (シンガポール) 2052 - 中国語 (中華人民共和国)
    2074 - クロアチア語 既定の言語
    3098 - クロアチア語 (キリル文字) 既定の言語
  • 他のすべての指定された言語識別子について、SQL Server Analysis Servicesは、指定した言語識別子の第 1 言語を抽出し、Windows によってプライマリ言語に最適な言語識別子として示される言語識別子を取得します。 最適な言語識別子の翻訳が見つからない場合や、指定された言語識別子が第一言語に最適なものである場合は、既定の言語が使用されます。

参照

Analysis Services のグローバリゼーションのシナリオ
言語および照合順序 (Analysis Services)