翻訳 (Analysis Services)
適用対象: 多次元のみ
Analysis Services 多次元データ モデルでは、LCID に基づいてロケール固有の文字列を提供するために、キャプションの複数の翻訳を埋め込むことができます。 データベース名、キューブ オブジェクト、およびデータベース ディメンション オブジェクトに翻訳を追加できます。
翻訳を定義するには、メタデータと翻訳されたキャプションをモデル内に作成します。しかし、クライアント アプリケーションでローカライズされた文字列をレンダリングするには、Language
プロパティをオブジェクトに設定するか、または接続文字列で Locale Identifier
パラメーターを渡す (たとえば、LocaleIdentifier=1036
を設定するとフランス語の文字列が返されます) 必要があります。 同じオブジェクトでさまざまな言語の翻訳を同時にサポートする場合は、Locale Identifier
を使用するように計画してください。 Language
プロパティを設定する方法でも機能しますが、処理やクエリにも影響が出るため、意図しない結果になる恐れがあります。 Locale Identifier
は翻訳した文字列を返すためにのみ使用されるため、それを設定する方が適切です。
翻訳は、ロケール識別子 (LCID)、オブジェクトの翻訳されたキャプション (たとえば、ディメンションまたは属性の名前)、およびオプションとして対象言語でのデータ値を提供する列へのバインドで構成されます。 複数の翻訳を保持できますが、特定の接続で使用できる翻訳は 1 つのみです。 モデルに埋め込むことができる翻訳の数に理論上の制限はありませんが、翻訳を 1 つ追加するごとにテストの複雑さが増すことと、すべての翻訳で同じ照合順序を共有する必要があることから、ソリューションを設計する際にはこれらの当然の制約に注意してください。
ヒント
Excel、Management Studio、および SQL Server Profiler などのクライアント アプリケーションを使用して、翻訳した文字列を取得することができます。 詳細については、「 グローバリゼーションのヒントとベスト プラクティス (Analysis Services)」 を参照してください。
翻訳されたメンバーをサポートするモデルの設定
多言語ソリューションで使用するデータ モデルには、単にラベル (フィールド名と説明) を翻訳する以上の処置が必要になります。 また、さまざまな言語スクリプトで表記したデータ値を提供する必要もあります。 多言語ソリューションを実現するには、個々の属性に外部データベース内の列をバインドし、データを取得する必要があります。
Adventure Works サンプル データベース (多次元かつリレーショナルなデータ ウェアハウス) は、翻訳機能の例を示しています。 このサンプル モデルには、翻訳されたキャプションと説明が含まれています。 サンプルのリレーショナル データ ウェアハウスに含まれる翻訳した値の列が、モデル内のローカライズされた属性メンバーを提供します。
モデルで使用できる翻訳されたデータ値を表示するには、次の手順を実行します。
デザイナーで、Adventure Works 多次元モデルを開きます。
ソリューション エクスプローラーで、[データ ソース ビュー] を開き、[Adventure Works DW<version.dsv>] をダブルクリックします。
dimDate、dimProduct、dimProductCategory、または dimProductSubcateogry を検索します。 これらのすべてのディメンションには、月、曜日、製品名、カテゴリ名などの、翻訳されたメンバーの属性が含まれています。
任意のフィールドを右クリックし、 [データの探索]を選択します。 各メンバーの英語、スペイン語、およびフランス語の翻訳が表示されます。
日付、時刻、通貨の形式は、翻訳を通じては実装されません。 クライアントのロケールに基づいてカルチャに固有の形式を動的に提供するには、通貨変換ウィザードと FormatString
プロパティを使用します。 詳細については、 通貨換算 (Analysis Services) と FormatString 要素 (ASSL) に関するページを参照してください。
Analysis Services のチュートリアルの「Lesson 9: Defining Perspectives and Translations 」では、翻訳を作成してテストする手順について説明しています。
翻訳の定義
変換を定義すると、 Translation
Analysis Services データベース、ディメンション、またはキューブ オブジェクトの子としてオブジェクトが作成されます。 SQL Server Data Tools - ビジネス インテリジェンスを使用してソリューションを開き、翻訳を定義します。
キューブに翻訳を追加する
翻訳は、キューブ、メジャー グループ、メジャー、キューブ ディメンション、パースペクティブ、KPI、アクション、名前付きセット、および計算されるメンバーに追加できます。
ソリューション エクスプローラーで、キューブ名をダブルクリックして、キューブ デザイナーを開きます。
[翻訳] タブ を クリックします。このページには、翻訳をサポートするすべてのオブジェクトが一覧表示されます。
各オブジェクトについて、対象言語 (内部で LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。
照合順序は変更できないことに注意してください。 キャプションの翻訳によって複数の言語をサポートしている場合でも、1 つのキューブは基本的に 1 つの照合順序を使用します (この後説明するとおり、ディメンションの属性は例外)。 照合順序を共有している場合に言語が正しく並べ替えられない場合は、照合順序の要件に対応するためにキューブのコピーを作成する必要があるかもしれません。
プロジェクトをビルドし、配置します。
Excel などのクライアント アプリケーションを使用してデータベースに接続し、ロケール識別子を使用するように接続文字列を変更します。 詳細については、「 グローバリゼーションのヒントとベスト プラクティス (Analysis Services)」 を参照してください。
ディメンションおよび属性に翻訳を追加する
翻訳は、データベース ディメンション、属性、階層、および階層内のレベルに追加できます。
翻訳されたキャプションは、キーボードまたはコピー/貼り付けを使用して手動でモデルに追加しますが、ディメンションの属性メンバーについては、翻訳された値を外部データベースから取得できます。 具体的には、属性の CaptionColumn
プロパティをデータ ソース ビューの列にバインドできます。
照合順序の設定は、属性レベルでオーバーライドできます。たとえば、特定の属性について文字幅の区別で調整したり、バイナリ並べ替えを使用したりできます。 Analysis Services では、データ バインディングが定義されている照合順序が公開されます。 ディメンション属性の翻訳は DSV 内の別のソース列にバインドするので、ソース列で使用する照合順序を指定できるように、照合順序の設定が可能になっています。 リレーショナル データベース内の列の照合順序について詳しくは、「 Set or Change the Column Collation 」を参照してください。
ソリューション エクスプローラーで、ディメンション名をダブルクリックして、ディメンション デザイナーを開きます。
[翻訳] タブ を クリックします。このページには、翻訳をサポートするすべてのディメンション オブジェクトが一覧表示されます。
各オブジェクトについて、対象言語 (LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。
翻訳した値を提供する列に属性をバインドするには、次の手順を実行します。
ディメンション デザイナーの [翻訳]タブを表示した状態のまま、新しい翻訳を追加します。 言語を選択します。 ページに新しい列が表示され、翻訳した値を入力できます。
属性のいずれかに隣接する空のセルにカーソルを置きます。 属性をキーにすることはできませんが、その他のすべての属性は有効な選択肢です。 ドットが表示された小さいボタンが表示されているはずです。 そのボタンをクリックして、 [属性データの翻訳]ダイアログ ボックスを開きます。
キャプションの翻訳を入力します。 これは、対象言語のデータのラベルとして使用されます。たとえば、ピボット テーブルのフィールド一覧のフィールド名です。
属性メンバーの翻訳済みの値を提供するソース列を選択します。 ディメンションにバインドされたテーブルまたはクエリ内の既存の列のみ使用できます。 列が存在しない場合は、データ ソース ビュー、ディメンション、およびキューブを変更して列を選択する必要があります。
該当する場合は、照合順序と並べ替えの順序を選択します。
プロジェクトをビルドし、配置します。
Excel などのクライアント アプリケーションを使用してデータベースに接続し、ロケール識別子を使用するように接続文字列を変更します。 詳細については、「 グローバリゼーションのヒントとベスト プラクティス (Analysis Services)」 を参照してください。
データベース名の翻訳を追加する
データベース レベルでは、データベースの名前と説明に翻訳を追加できます。 翻訳されたデータベース名は、言語の LCID を指定するクライアント接続に表示されますが、ツールによっては表示されないことがあります。 たとえば、Management Studio でデータベースを表示する場合は、接続のロケール識別子を指定しても翻訳済みの名前は表示されません。 Management Studio で Analysis Services の接続に使用される API は、Language
プロパティを読み取りません。
ソリューション エクスプローラーで、プロジェクト名を右クリックし、 [データベースの編集] を選択して、データベース デザイナーを開きます。
[翻訳] 内で、対象言語 (LCID に解決される)、キャプションの翻訳、および説明の翻訳を指定します。 Management Studio でサーバーの言語を設定したとしても、1 つの属性に対して翻訳のオーバーライドを追加したとしても、言語の一覧は Analysis Services 全体で一貫性が保たれます。
データベースの [プロパティ] ページで、翻訳に対して指定したのと同じ LCID を
Language
に設定します。 必要であれば、Collation
にも値を設定します (既定値が意味をなさなくなった場合)。データベースをビルドして配置します。
翻訳の解決
クライアント アプリケーションがロケール識別子を要求すると、Analysis Services インスタンスは Analysis Services オブジェクトのデータとメタデータを最も近い一致する LCID に解決しようとします。 クライアント アプリケーションが既定の言語を指定しない場合、またはニュートラル ロケール識別子 (0) またはプロセスの既定の言語識別子 (1024) を指定している場合、Analysis Services はインスタンスの既定の言語を使用して Analysis Services オブジェクトのデータとメタデータを返します。
参照
Analysis Services 多次元のグローバル化のシナリオ
言語および照合順序 (Analysis Services)
列の照合順序の設定または変更
グローバリゼーションのヒントとベスト プラクティス (Analysis Services)