多言語サポートのサイトの構成この章では、サイトの多言語サポートの構成について説明します。この章には次の項が含まれます。多言語サポートのサイトを構成すると、そのサイトのユーザーはロケール(言語バージョン)の指定をアセットに割り当て、アセットの翻訳を作成できるようになります。多言語コンテンツ用のサイト固有の配信ルールを作成するオプションもあり、そのルールによって、どの言語バージョンのアセットをオンライン・サイトで表示するか、訪問者のリクエストがそのコンテンツでまだ用意できていない言語バージョンの場合はどう対処するかが決まります。この章では、サイトの設計の計画作成および実装する場合に考慮する必要のあるトピックについて、多言語サポートの観点から説明します。そのうえで、多言語アセットと関連機能をサポートするためにサイトの構成に必要な手順について説明します。この項の内容は、次のとおりです。Sitesのロケール指定は、ディメンションの概念によって実装されます。ディメンションとは、別の点では意味的に同一であるアセットを区別する識別子のことです。ロケール(アメリカ英語はen_US)は、同一のコンテンツに対する2つの翻訳を区別するディメンションの1タイプです。ディメンションは、タイプ「ディメンション」のアセットで表されます。このアセット・タイプは、ユーザーが「ディメンション」アセット(サブタイプ「ロケール」)を作成できるよう、またコンテンツ・プロバイダがロケール指定を翻訳対象のアセットに割り当てることができるように、開発者がサイト単位で有効にする必要があります。注意:ユーザーは、ロケール指定が割り当てられていないアセットの翻訳を作成できません。各「ディメンション」アセットは、サイトでロケールを表示します。en_US「ディメンション」アセットはアメリカ英語、fr_CA「ディメンション」アセットはカナダ仏語を表します。コンテンツ・アセットにロケールが割り当てられると、その割当ては対応するアセット・タイプのassetType_Dim表に記録されます。指定されたロケールでのコンテンツの公開では、オンライン・サイトのロケールを有効にする必要があります。ロケールを示すディメンション・アセットを配信システムに公開し、サイトのディメンション・セットにそのロケールを加える必要があります。第30.1.2項「ディメンション・セット」を参照してください。ディメンション・セットロケールをすでに作成してある場合には、少なくとも1つのディメンション・セットを作成することをお薦めします。ディメンション・セットとはディメンション・アセット(ロケール)のグループ化のことで、サイト訪問者へのコンテンツの配信に次のような影響を与えます。ディメンション・セットは、オンライン・サイトで有効にするロケールの指定を定義します。ディメンション・セットはコンテンツが訪問者に表示される際の言語を指定します。あるディメンション・セットにはヨーロッパ言語が含まれ、他のセットにはアジア言語が含まれるなどです。ディメンション・セットは、ロケールに基づくコンテンツのフィルタリングを定義します。訪問者がリクエストした時点でコンテンツが訪問者の希望言語で存在しない場合の処理方法などです。ディメンション・セットを配信システムに公開しない場合には、ロケールのフィルタリングは機能しません。ロケール・フィルタリングの詳細は、第30.2項「ロケール・フィルタリングでの作業」を参照してください。Sitesのユーザー・インタフェースの操作には影響を与えません。オンライン・サイトの機能に対するロケール・フィルタリングでは、各ディメンション・セットで参照されている「ディメンション・セット」アセットと「ディメンション」アセットの両方を承認して配信システムに公開する必要があります。(参照されている「ディメンション」アセットは、それを参照する「ディメンション・セット」アセットに依存しているため、どちらもそれぞれの「ディメンション・セット」アセットで承認されている必要があります。サイト間の多言語サポート複数のサイトで多言語サポートを設定している場合、次のいずれかのシナリオの実装を選択できます。ロケールは作成するが、ディメンション・セットは作成しないこのオプションを選択すると、コンテンツ・プロバイダは複数の言語でコンテンツを管理できますが、レンダリング時のロケール・フィルタリングは有効になりません。すべての必須言語での翻訳が最初から各アセットに存在している場合にのみ、このオプションを使用します。ロケールとディメンション・セットを作成し、それらをサイト間で共有するこのオプションには、複数のサイトで多言語サポートを有効にする最も簡単な方法が用意されています。この方法で設定したサイトでは、ディメンション・セットに格納されたプロパティ(オンライン・サイト上で表示が有効化されたロケール、ロケール・フィルタリング・メソッド、および該当する場合はレンダリング時のアセット翻訳を検索する際における階層フィルタのトラバース経路であるフォールバック階層)を共有します。詳細は、第30.2.2.3項「階層フィルタ」を参照してください。複数のターゲット・サイトにレプリケートする基本となるサイトを作成する場合には、ロケールのターゲット・サイトへの共有が最善の方法です。各サイトに個別のロケールとディメンション・セットを作成するこのオプションでは、構成の複雑さが増加する分だけ、最高の柔軟性を得ることができます。サイトでこの方法を設定すると、ロケール・フィルタ・タイプやフォールバック階層などのプロパティを各サイトに合うよう調整できるというメリットがあります。注意:複数サイトで同一の言語を表すために「ディメンション」アセットの複製を作成できますが、不要な複雑さを招くため、お薦めしません。最後の2つのオプションの混在このオプションは、柔軟性と構成の複雑さのバランスが程よく取れています。可能なベスト・プラクティスとして、一意のロケールのプールを作成し、そのプールから各サイトで必要なロケールを共有し、必要に応じて各サイトでディメンション・セットを共有または作成するという方法があります。マスター・アセット、翻訳および多言語セットアセットを初めてロケールに割り当てる際には、アセットはマスター・ステータスまたはディメンションの親ステータスを取得します。マスター・ステータスを使用すると、多言語セット(コンテンツが意味的に同一であっても異なった言語で存在する一連のアセット)を構成できます。(これは、ディメンション・セットとは同一でない点に注意してください。ディメンション・セットはオンライン・サイトとアセットがレンダリングされる方法にのみ影響を及ぼします。)注意:マスター・アセットとディメンションの親は同じものです。Sitesのユーザー・インタフェースに表示されます。Sitesタグ・リファレンス、データベース表の名前(assetType_DimPなど)およびエレメント・コードで使用されます。「記事」アセットをアメリカ英語(en_US)として指定し、いずれかのロケールがサイトで有効になっている翻訳を作成した場合(フランス語(fr_CA)やドイツ語(de_DE)など)、翻訳はそれらのディメンションの親(アメリカ英語のアセット)を指し、それらのロケールとマスターが相互に同等な意味であることを示します。マスター・ステータスでアセットの翻訳を作成すると、アセットがコピーされ、選択したロケールがコピーに割り当てられます。次に、翻訳済のコンテンツを入力して新しいアセットとしてその翻訳を保存します。この時点で、ソース・アセットとその翻訳は多言語セットにリンクされ、翻訳にそのマスターとしてソース・アセットまたはディメンションの親が採用されます。マスターではないセットのメンバーにマスター・ステータスを指定できますが、マスターになることができるのは一度に1つのセット・メンバーのみです。リンク付けは、アセット・タイプに対してassetType_DimP表を介して実現されます。この表には次の情報が格納されています。Sitesインタフェースでマスター・アセットまたはいずれかの既存の翻訳から翻訳の作成を開始できますが、多言語セットのすべての翻訳は常にディメンションの親(マスター)アセットを指しています。注意:ロケールを意識したアセットがリビジョン追跡されている場合、アセットのロケール・データへの変更(ロケール指定やマスター・ステータスなど)により新しいバージョンのアセットは生成されません。翻訳およびアセット関係アセットが翻訳される際にアセット関係を処理する方法の要約は、次の表のとおりです。関係のタイプ動作アソシエーションアソシエーションが含まれているアセットを翻訳すると、ソース・アセットに関連付けられているすべてのアセットが、自動的に翻訳と関連付けられます。その後、関連付けられたアセットを翻訳して、その翻訳済のバージョンを翻訳済の親アセットと関連付けるかどうかを選択できます。コレクションコレクション・アセットの翻訳を作成すると、新しいコレクション・アセットはソース・アセットのメンバー・アセットを保持します。次に、メンバー・アセットを翻訳し、翻訳済バージョンを新しいコレクション・アセットに格納して、古いコレクションから引き継いだメンバー・アセットを置き換えることができます。新しい言語バージョンの静的リスト推奨を作成すると、新しい推奨アセットには、ソース・アセットのメンバー・アセットが保持されます。次に、メンバー・アセットを翻訳し、翻訳済バージョンを新しい推奨アセットに格納して、古いコレクションから引き継いだメンバー・アセットを置き換えることができます。動的リスト推奨はエレメント・コードで移入されるため、影響を受けません。関連アイテムのアソシエーションが含まれているアセットを翻訳すると、ソース・アセットに関連付けられているすべてのアセットが、自動的に翻訳と関連付けられます。その後、関連付けられたアセットを翻訳して、その翻訳済のバージョンを翻訳済の親アセットと関連付けるかどうかを選択できます。アセット・タイプの属性アセット・タイプの属性によるアソシエーションが含まれているアセットを翻訳すると、ソース・アセットに関連付けられているすべてのアセットが、自動的に翻訳と関連付けられます。その後、関連付けられたアセットを翻訳して、その翻訳済のバージョンを翻訳済の親アセットと関連付けるかどうかを選択できます。埋込みリンク埋込みリンクは影響を受けません。埋込みリンクを含むアセットが翻訳されるとは、リンク対象のコンテンツの対応する翻訳(存在する場合)を指すように、リンクを手動で更新する必要があります。レンダリング時のアセット関係の処理の詳細は、第30.2項「ロケール・フィルタリングでの作業」を参照してください。承認依存性あるアセットの編集により別の承認ステータスが変更される場合、2つのアセット間には承認依存性が存在します。ローカライズ済アセットに影響を与える承認依存性の要約は、次の表のとおりです。依存性アセット承認への影響Exists依存性は、ローカライズ済アセットと割り当てられたロケールを示す「ディメンション」アセットの間に存在します。ローカライズ済アセットの公開を承認するには、対応する「ディメンション」アセットも承認されている必要があります。多言語セットでは、マスター・アセットとそれにリンクされている各翻訳間にExists依存性が存在します。アセットの最初の翻訳を作成する場合には、アセットとその翻訳の両方を承認する必要があります。翻訳を承認するには、マスター・アセットが承認済の場合を除いて、対応するマスター・アセットも承認する必要があります。次の場合には、すべてのメンバーを再承認する必要があります。新規翻訳をセットに追加したり、既存の翻訳をセットから削除する場合。セットのマスター・アセットを編集する場合。セットの別のメンバーをマスターとして指定する場合。Exists依存性は、「ディメンション・セット」アセットとそのディメンション・セットで有効化されているロケールを示す「ディメンション」アセットの間に存在します。ディメンション・セットを承認するには、対応する「ディメンション」アセットも承認されている必要があります。理想的には、多言語サイトは起動される前にそのコンテンツに関して全部そろっていることが望ましいです。すべてのアセットとそれらの関連事項が必要な言語ですべて存在しているのが理想です。多くの場合、そうではありません。そのような場合、ロケール・フィルタを使用して、訪問者が指定した環境と言語プリファレンスに応じて、レンダリング時にサイトに表示されるアセットの言語バージョンを決定します。リクエストされたアセットがリクエストされた言語に存在しない場合、ビジネス・ロジックに対応を決定するように指定できます。ロケール・フィルタリングを使用して、元のコンテンツがオンライン・サイトに公開された後に、リクエストされた翻訳の作成をコンテンツ・プロバイダに許可することで、編集作業を徐々に広げていくことができます。ロケール・フィルタリングにより、欠落した翻訳が配信システムに公開されたらただちにサイトで自動的にそれらをピックアップできます。ロケール・フィルタリングにより配信システムで追加のロードが取り込まれる点に留意してください。追加のロードの容量は、フィルタリング・ロジックの複雑度に応じて異なります。この項の内容は、次のとおりです。ロケール・フィルタリングによるアセット関係の処理ロケール・フィルタリングの実装を選択する方法は、サイトのアセット関係を構造化する方法に影響を与えますし、オンライン・サイトの動作の方法に応じて、その逆もあります。次のオプションのいずれかの実装を選択できます。各ロケールに対して異なるアセット関係のツリーを保持するアセットのレンダリング時に、このモデルはリクエストされたアセットに関連付けられたどのようなアセットでもレンダリングします。英語とフランス語のアセットが存在し、バージョンごとに関連付けられたアセットの一意のセットが存在する場合、各バージョンは関連付けられた個別のアセットにレンダリングされます。フィルタリングは、訪問者が指定した言語プリファレンスと一致するリクエスト済アセットのバージョンを検索して配信する場合のみ使用されます。関連付けられたアセットは、すべての必要な言語に翻訳されていると見込まれています。このモデルでは、各言語に対して完全に独立したコンテンツが許可されます。IIサンプル・サイトで使用します。同じアセット関係ツリーをすべてのロケールに使用するアセットのレンダリング時に、このモデルは、訪問者が指定する言語プリファレンスとは無関係に、リクエストされたアセットのうち関連付けられたアセットを、リクエストされたアセットの特定言語バージョンと関連付けられたアセットに置換します。英語とフランス語のアセットが存在し、バージョンごとに関連付けられたアセットの一意のセットが存在する場合、訪問者が言語プリファレンスでフランス語を指定すると、フィルタリングはリクエストされたアセットのフランス語バージョンを検索して配信しますが、フランス語バージョンの関連付けられたアセットのかわりに英語バージョンの関連付けられたアセットに置換されます(フィルタリングが関連付けを導出する言語バージョンは英語であるという仮定により)。このモデルでは、すべての言語間で確実にコンテンツが一貫しています。上記の2つのモデルの混在サイトに最大量の柔軟性とカスタマイズが許可されます。2つのモデル間の最適の比率は、サイトで対象とする動作に応じて異なります。Sitesでは次のロケール・フィルタが提供されています。簡易フィルタ簡易参照フィルタ階層フィルタ(フォールバック・フィルタともいう)必要に応じて、カスタム・ロケール・フィルタ実装のオプションもあります。カスタム・フィルタの詳細は、第30.2.3項「カスタム・ロケール・フィルタ」を参照してください。実装を選択したフィルタのタイプに応じて、フィルタの対象となるアセットは次の条件のうちの1つまたは両方を満たしている必要があります。アセットには、割り当てられたロケールが指定されている必要があります。ロケールの指定がないアセットは、ロケール・フィルタで無視されます。相互の翻訳であるアセットは、多言語セットにリンクされている必要があります(マスター・アセットによって相互の翻訳として指定されます)。ない場合は、フィルタは必要な翻訳の検索を実行できません。簡易フィルタ簡易フィルタは、コンテンツが複数の言語で存在しているサイトで、1つの言語のみでレンダリングされる場合に選択できます。フィルタでは次がチェックされます。要求されたアセットが訪問者によって指定された言語のものであるかどうかアセットのロケールがサイトのディメンション・セットにリストされているかどうか両方の条件に一致していると、フィルタはレンダリング用のテンプレートにアセットを渡します。ない場合にはレンダリングされません。簡易フィルタでは、配信システムのパフォーマンスへの影響は最小になりますが、作業する必要のある編集作業量が増加します。アセットは必要な言語バージョンで存在する必要があり、そうでないとオンライン・サイトに表示されないためです。簡易参照フィルタ簡易参照フィルタは、1言語でのみレンダリングする必要のあるサイトで、複数言語でコンテンツが存在している可能性があっても、レンダリング時にすべての必要な翻訳が存在している保証のないサイトで理想的です。フィルタでは次がチェックされます。要求されたアセットが訪問者によって指定された言語のものであるかどうかアセットのロケールがサイトのディメンション・セットにリストされているかどうかリクエストされたアセットが訪問者の希望した言語で存在しない場合には、フィルタはアセットの翻訳をチェックして適切な代替アセットを検索します。フィルタが一致する翻訳を検出した場合には、それをテンプレートに渡します。ない場合には、レンダリングされません。(翻訳のロケールがサイトのディメンション・セットに存在しない場合にも、フィルタは何も返しません。)このフィルタでは、パフォーマンスと機能性の間の合理的なバランスが提供されます。検索の問合せにより配信システムへの負荷は多少増加しますが、アセット作成のための編集作業の量は軽減されます。必要な翻訳は、元のコンテンツがオンライン・サイトに公開された後で作成できるためです。欠落した翻訳が配信システムに公開されると、検索メカニズムがただちにそれらをピックアップします。FirstSiteIIサンプル・サイトでは、このフィルタがデフォルト・ロケール・フィルタとして使用されています。階層フィルタ階層フィルタは、リクエストされたアセットのロケールが訪問者によりリクエストされたロケールと一致しているかどうかをチェックします。ロケールが一致しない場合、フィルタはアセットの翻訳をチェックして、適切な代替の翻訳が存在しないか確認します。フィルタが一致する翻訳を検出した場合、それをテンプレートに渡します。検出しない場合には、サイトのディメンション・セットを構成する際に設定したフォールバック階層に従って、リクエストされたアセットの翻訳に置換します。フォールバック階層では、フィルタがリクエストされたアセット用に置換する必要のある言語バージョンとその順番が指定されます。次の階層について見てみましょう。en_UK(イギリス英語)この例では、訪問者がスイス独語(de_CH)のアセットをリクエストした場合、フィルタはアセットの翻訳を検索してアセットのスイス独語バージョンを検出すると、そのバージョンをテンプレートに渡します。フィルタがスイス独語バージョンを検出できない場合、階層パス内でその次に最適なロケールの独語(de_DE)にフォールバックします。同様に独語の翻訳が存在しない場合、フィルタはツリーの最上階に達するまで指定されたパスを階層内で追跡します。そのプロセスで一致が検出されない場合は、何もレンダリングされません。前述の例では、訪問者が単一の希望言語を指定する場合について説明しました。ユーザーが複数の希望言語を指定する場合(通常、順序付けられたリストのフォームで)、フィルタは訪問者の最も希望する言語に対するフォールバック階層で一致する検索を試行します。一致が検出されない場合には、フィルタはフォールバック階層で一致が検出されるまで、訪問者のリストで次の言語をチェックします。その場合、前述のように、フィルタは一致するロケールからフォールバック・ツリーの最上位までパスを追跡して、リクエストされたアセットの翻訳の置換を試行します。(その順番で希望)だとすると、フィルタはフォールバック階層で日本語の検出を試行します。日本語が階層に存在しない場合には、次に仏語の検出が試行されます。仏語は階層に存在するので、仏語からツリーのルート・ノードへのパスが追跡され、この項で前述した例のように、そのパスに従って置換が施行されます。階層フィルタは強力で便利ですが、次のような欠点があります。追加のデータベース問合せは、フィルタの負担が配信システムのパフォーマンスにかかります。パフォーマンス・ヒットを最小限にするには、できるだけ多くの必要な言語がコンテンツに存在するように編集して、フィルタのアクティビティを最小限にする必要があります。(別のフィルタの使用を選択することも可能です。)オンライン・サイトに表示するアセットに対するコントロールは、もっぱらサイト開発者や管理者の手にゆだねられます。これは、フィルタが、サイトへの訪問者が指定するプリファレンスの順ではなく(各訪問者からの複数言語のプリファレンスを受け入れるようにサイトが設定されていると仮定して)、ディメンション・セットで構成されたフォールバック・ツリーを追跡するためです。カスタム・ロケール・フィルタサイトの設計に応じて、カスタム・フィルタの作成を決定できます。サイトの設計により、ディメンション・セットで定義されたフィルタではなく、訪問者が指定するロケールの優先度を優先的に選択する階層(フォールバック)フィルタがコールされるとします。そのような場合は、「ディメンション・セット」アセットの「編集」フォームのフィールドで、カスタム・フィルタ・クラスを指定できます。構成依存性サイトにロケール・フィルタリングを組み込むことを決定した場合、結果として導入される追加の構成の依存性を説明する必要があります。構成の依存性によって、ページが配信システムでキャッシュされる方法が指定されます。アセットの検索連鎖ロケール・フィルタリングを使用してアセットの翻訳を検索する場合、検索プロセス時にロードされるアセットに基づいて、次のファクタがページのキャッシュ方法を指定します。採用されるフィルタリング・ロジック検索リクエスト元からのページとアセット訪問者が指定する言語プリファレンスリクエストされたアセットを含むキャッシュ済ページは、検索プロセス時にロードされたすべてのアセットに依存します。したがって、検索プロセス時にロードされたアセットが変更されると、影響を受けたページがキャッシュからフラッシュされます。簡易参照フィルタと次の多言語セットについて見てみましょう。de_DE(翻訳)訪問者が仏語バージョンを含むページをリクエストしているが、その訪問者の言語プリファレンスが独語の場合、検索連鎖は次のようになります。de_DEこの例では、フィルタはまず仏語バージョンにリンクされたマスター・アセットをロードし、次にそのマスター・アセットを使用して独語バージョンを検索するため、3つのアセットがすべてロードされます。したがって、これら3通のアセットのいずれかが変更されると、影響を受けたページがキャッシュからフラッシュされます。他方、ユーザーがセットのマスター・アセットであるアメリカ英語バージョンをリクエストすると、検索連鎖はもっと短くなります。en_USこの場合、仏語バージョンとアメリカ英語バージョンがロードされますが、独語バージョンはロードされません。したがって、独語バージョンを変更すると、対応するページがキャッシュからフラッシュされますが、仏語バージョンやアメリカ英語バージョンを変更してもフラッシュされません。Sitesに含まれるロケール・フィルタで採用される検索メカニズムの詳細は、第30.2.2項「含まれるロケール・フィルタ」を参照してください。第30.2.4.2項「キャッシング・ルール」では、多言語アセットに適用されるキャッシング・ルールについて説明します。キャッシング・ルール翻訳が検索されて影響を受けるページがキャッシュされると、次のいずれかが発生するたびにページがキャッシュからフラッシュされます。サイトへのフィルタリング・サポートの追加ロケール・フィルタリングのサポートをサイトに追加するには、サイトで使用するテンプレートとエレメント・コードを変更する必要があります。テンプレート・コードがアセットのc/cid値を介してアセットをフェッチすると、ロケール・フィルタは受信c/cid値でのフィルタのビジネス・ロジックを実行し、結果のc/cid値(またはなし)をレンダリング対象のテンプレートに返します。サイトの構造は、テンプレートへのロケール・フィルタリングの実装方法に影響を及ぼしますし、その逆の場合もあります。異なるシナリオで、サイトの動作を指定します。5つの記事があり、それぞれに2つの言語en(英語)とfr(仏語)のバージョンが存在するとします。その記事は、a1en、a1fr、a2en、a2frなどになります。これらの記事をコレクションに配置し、次のいずれかの方法でロケール・フィルタリングを実装します。英語コレクションc1enを作成して、それに英語の記事のすべてを割り当てます。この方法では、コレクションをレンダリングする前に、c1enアセットのc/cidに簡易フィルタを実行し、c/cid値をフィルタリングせずにその子をレンダリングします。c1enコレクションが単一言語であることを信頼しているためです。多言語コレクションを作成し(それにロケールを割り当てないで)、その記事を任意の言語に追加します。次に、各記事をレンダリングする際に、記事のc/cid値をフィルタリングして、記事が訪問者に指定されたロケールでレンダリングされるようにします。この項の残りの部分では、FirstSiteIIサンプル・サイトに基づいてコードの例を示します。多言語サポートの方法を把握するために、FirstSiteIIのコードを調べることをお薦めします。通常、フィルタリング・コードをユーティリティのエレメントに配置して、そのエレメントをテンプレートの最上部でコールしてc/cid値を処理します。次の例では、FSIILayoutテンプレートがrender:lookupタグを介してFSIICommon/Multilingual/Filterエレメントのアセットに格納されたフィルタ・コードをコールする方法を示しています。訪問者のロケール・プリファレンスの取得と保持フィルタリングを稼働するには、訪問者に希望の言語(ロケール)の指定を許可する必要があります。このプリファレンスは、サイト全体に伝搬される必要があります(すべてのテンプレートに渡される)。次の例では、これをFSIIWrapperエレメントで実現する方法を示します。この例の最後のセクションでは、セッション変数(例の初めの部分で、セッション変数が存在することを確認します)から値を取得してロケール変数を設定する方法を示しています。検索結果のフィルタリングオンライン・サイトに検索機能が備わっている場合、訪問者へ返された検索結果を、訪問者の言語プリファレンスに基づいてフィルタリングするように選択できます。次の例は、Page/SearchDetailViewテンプレートが検索結果のIListをフィルタリングして、問合せがすべての言語に対して実行され、目的の結果のみが返されるようにする方法を示しています。Sitesタグ・リファレンスを参照してください。FirstSiteIIサンプル・サイトのコードを調べて、多言語サポートを実装する方法を確認してください。多言語サポートのサイトの構成を開始する前に、次の前提条件が満たされているか確認します。これらの決定事項についてサイト管理者と合意しておくことがベストです。所属する組織のコンテンツ管理のニーズに基づいて、最初にサイト(複数可)に実装する言語の数を決定します。次のいずれかを実行できます。サイト(複数可)を作成して最初に単一言語をサポートし、必要に応じてその他の言語のサポートを追加する。前もってすべてのサイトで取り込む言語すべてを計画し、適切なロケールを作成しておく。既存のロケールとディメンション・セットを新しいサイト(複数可)で共有するか、個別のものを作成するかを決定します。詳細は、第30.1.3項「サイト間の多言語サポート」を参照してください。アセット関係をロケールの観点でレンダリング時に処理する方法を決定し、その決定に合ったロケール・フィルタリング・メソッドを選択します。この選択事項は、必要とするレベルのオートメーション、配信システムのパフォーマンスおよび編集の作業負荷の間のバランスをうまくとる必要があるため、サイトの管理者と合意しておくことがベストです。詳細は、第30.2項「ロケール・フィルタリングでの作業」を参照してください。次の事項に注意してください。別のフィルタリング・メソッドには、配信システムへのパフォーマンス・ヒットを犠牲にした異なったレベルのオートメーションが用意されています。フィルタが複雑になればなるほど、パフォーマンス・ヒットは高くなります。簡易参照フィルタには階層フィルタより高いパフォーマンスが備わっています。実装するフィルタリング・メソッドに応じて、サイト・コンテンツへの編集作業は徐々に広げていくことができます。オリジナル・コンテンツが作成されてライブ・サイトに公表された後で、翻訳を作成できます。実装するフィルタリング・ロジックは、必要とされる言語バージョンで存在していないコンテンツに対して実行する手順を決定します。単一言語サイトを多言語サイトに変換する場合には、デフォルト・ロケールをサイトのアセットに割り当てる際に使用するエレメント・コードを取得します。FirstSiteIIサンプル・サイトに基づいたサンプル・コードは、第30.4.10.1項「デフォルト・ロケールの一括割当て用サンプル・エレメント・コード」に記載されています。注意:多言語セットを備えたサイトをレプリケートする場合、マスター・アセットがターゲット・サイトで(共有またはコピーのいずれかにより)使用できることを確認してください。使用できない場合は、セット・メンバーはターゲット・サイトの相互の翻訳にリンクされなくなります。サイトに対する多言語サポートの構成この項では、多言語サポートのサイトを構成する際に必要な手順を説明します。この項の内容は、次のとおりです。構成のクイック・リファレンスこの項では、サイトの多言語サポートの構成に必要な手順の概要を述べます。構成プロセスの際には、このリストをクイック・リファレンスとして使用してください。サイトの多言語サポートを構成するには必要な決定と準備を行います。詳細は、第30.3項「サイトに対する多言語サポートの計画」を参照してください。「ディメンション」アセット・タイプおよび「ディメンション・セット」アセット・タイプをサイトで有効にします。手順は、第30.4.2項「「ディメンション」アセット・タイプおよび「ディメンション・セット」アセット・タイプの有効化」を参照してください。「ディメンション」アセット・タイプの「ロケール」サブタイプをサイトで有効にします。手順は、第30.4.3項「「ディメンション」アセット・タイプの「ロケール」サブタイプの有効化」を参照してください。目的のロケールを作成または共有します。手順は、次の各項を参照してください。新規ロケールの作成は、第30.4.4項「ロケールの作成」を参照してください。既存ロケールの共有は、第30.4.5項「ロケールの別のサイトへの共有」を参照してください。新規ロケールの作成か既存ロケールの共有のいずれかを決定する際のヘルプは、第30.1.3項「サイト間の多言語サポート」を参照してください。ディメンション・セットを作成または共有します。手順は、次の各項を参照してください。新規ディメンション・セットの作成は、第30.4.6項「ディメンション・セットの作成と構成」を参照してください。既存ディメンション・セットの共有は、第30.4.7項「ディメンション・セットの別のサイトへの共有」を参照してください。新規ディメンション・セットの作成か既存ディメンション・セットの共有のいずれかを決定する際のヘルプは、第30.1.3項「サイト間の多言語サポート」を参照してください。(オプション)既存の単一言語サイトを多言語サイトに変換する場合、デフォルトのロケールをサイトの各アセットに割り当てるエレメント・コードを実行します。手順については、第30.4.10項「デフォルト・ロケールのサイト内アセットへの一括割当て」を参照してください。この項には、サイトでカスタマイズできるサンプル・コードが記載されています。サイトで使用するテンプレートを変更して、ディメンション・セットの構成時に選択したロケール・フィルタのサポートを追加します。このプロセスの概要は、第30.2.5項「サイトへのフィルタリング・サポートの追加」を参照してください。注意:ロケール・フィルタリング以外にも、次のサイト機能を実装する必要があります。「ディメンション」アセット・タイプおよび「ディメンション・セット」アセット・タイプの有効化サイトで「ディメンション」アセットと「ディメンション・セット」アセットを作成する前に、対応するアセット・タイプとサブタイプを有効化する必要があります。この手順では、「ディメンション」アセット・タイプと「ディメンション・セット」アセット・タイプをサイトで有効にする方法を説明します。次の手順では、サイトで「ディメンション」アセット・タイプの「ロケール」サブタイプを有効にする方法を説明します。Sitesインタフェースにログインして、アセット・タイプを有効化するサイトを選択します。Adminインタフェースを選択します。ツリーで、「管理」タブを選択します。「管理」タブで、次の階層をドリル・ダウンします。「サイト」ノードを開きます。「サイト」ノードで、目的のサイトに対応するノードを開きます。必要なサイト・ノードで、「アセット・タイプ」ノードを開きます。「アセット・タイプ」ノードで、「有効化」ノードをダブルクリックします。Sitesに「アセット・タイプの有効化」フォームが表示されます。「アセット・タイプの有効化」フォームで、「ディメンション」アセット・タイプと「ディメンション・セット」アセット・タイプの隣にあるチェック・ボックスを選択します。「アセット・タイプの有効化」をクリックします。Sitesに「スタート・メニューの選択」フォームが表示されます。「スタート・メニューの選択」フォームで、すべてのチェック・ボックスを選択し、「アセット・タイプの有効化」をクリックします。Sitesにアセット・タイプがサイトで有効化されたことを確認するメッセージが表示されます。「ディメンション」アセット・タイプの「ロケール」サブタイプの有効化ロケールをサイトのアセットに割り当てる前に、サイトで「ディメンション」アセット・タイプの「ロケール」サブタイプを有効化する必要があります。Sitesインタフェースにログインして、サブタイプを有効化するサイトを選択します。Adminインタフェースを選択します。ツリーで、「管理」タブを選択します。「管理」タブで、次の階層をドリル・ダウンします。「アセット・タイプ」ノードを開きます。「アセット・タイプ」ノードで、「ディメンション」ノードを開きます。「ディメンション」ノードで、「サブタイプ」ノードをダブルクリックします。ディメンション」フォームが表示されます。フォームで、「ロケール」サブタイプの隣にある「編集」(鉛筆)アイコンをクリックします。ロケール」フォームが表示されます。「サイト」フィールドで、「ロケール」サブタイプを有効にするサイトを、[Ctrl]キーを押しながらクリックします。注意:既存のサイトの選択をそのままにするには、サイト名を[Ctrl]キーを押しながらクリックする必要があります。サイト名をクリックした場合は、他の選択済サイト(ある場合)の選択が解除されます。「保存」をクリックします。新規ロケールをサイトに追加するには、次の手順を実行して、目的のロケールを示す「ロケール」サブタイプの「ディメンション」アセットを作成します。Sitesシステムの別のサイトにある「ディメンション」アセットで示されている言語を指定する場合、その言語を示す既存の「ディメンション」アセットを現在のサイトで共有して冗長性を回避します。ロケールを作成するにはボタン・バーで、「新規」をクリックします。アセット・タイプのリストで、「新規ディメンション」を選択します。Sitesに「新規ディメンション」フォームが表示されます。「新規ディメンション」フォームで、次の手順を実行します。「名前」フィールドに、そのロケールの説明的な名前を入力します。ベスト・プラクティスとして、次の表記規則を使用することをお薦めします。639-1言語コード(仏語の場合はfr)YYは2文字のISO国コード(カナダの場合はCA)前述の例をまとめると、名前fr_CAはカナダ仏語を示します。「説明」フィールドに、このロケールが表す言語の説明を入力します。「サブタイプ」ドロップダウン・リストで、「ロケール」を選択します。「保存」をクリックします。ロケールの別のサイトへの共有ロケールを別のサイトで共有するには、対応する「ディメンション」アセットを共有する必要があります。Sitesインタフェースにログインして、共有するロケールに対する「ディメンション」アセットが存在するサイトを選択します。Adminインタフェースを選択します。目的の「ディメンション」アセットを検索し、その「調査」フォームを開きます。ボタン・バーで、「検索」をクリックします。アセット・タイプのリストで、「ディメンションの検索」を選択します。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的のアセットに移動して名前をクリックします。アセットが「調査」フォームで表示されます。アクション・バーで、「ディメンションの共有」を選択します。Sitesに「ディメンションの共有」フォームが表示されます。「ディメンションの共有」フォームで、「ディメンション」アセットを共有するサイトの隣にあるチェック・ボックスを選択します。Sitesシステム上のすべてのサイトで共有するには、「すべてのサイト」チェック・ボックスを選択します。)「変更の保存」をクリックします。選択したサイトでアセットが使用可能になったことを示すメッセージが表示されます。新規ディメンション・セットを作成して構成するには次の手順に従って、ディメンション・セットに追加する「ディメンション」アセット(ロケール)をブックマークに追加します。ボタン・バーで、「検索」をクリックします。「検索」フォームで、「ディメンションの検索」をクリックします。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的の「ディメンション」アセットに移動して、チェック・ボックスを選択します。「ブックマークに追加」をクリックします。次の手順に従って、ディメンション・セットを作成して構成します。ボタン・バーで、「新規」をクリックします。「新規」アセット・リストで、「新規ディメンション・セット」を選択します。Sitesに「新規ディメンション・セット」フォームが表示されます。「名前」フィールドに、そのディメンション・セットを説明する名前を入力します。ツリーで、「ブックマーク」タブを選択します。「ブックマーク」タブで、ディメンション・セットに追加するロケールを選択し、「選択したアイテムの追加」をクリックします。追加するロケールごとに、この手順を繰り返します。「ディメンション・フィルタ・クラス」フィールドで、目的のロケール・フィルタ・タイプを選択します。「詳細」オプションを選択すると、カスタム・フィルタ・クラスを指定できます。ロケール・フィルタ・タイプの詳細は、第30.2項「ロケール・フィルタリングでの作業」を参照してください。(オプション)手順2で「詳細」を選択した場合は、表示されたテキスト・ボックスにカスタム・フィルタ・クラスの名前を入力します。終了したら、「変更の保存」をクリックします。(オプション)手順2で階層フィルタを選択した場合は、第30.4.9項「階層フィルタのフォールバック階層の構成」の手順を完了して、フィルタのフォールバック階層を構成します。ディメンション・セットの別のサイトへの共有ディメンション・セットを別のサイトへ共有させるには、対応する「ディメンション・セット」アセットを共有する必要があります。Sitesにログインし、共有する「ディメンション・セット」アセットが存在するサイトを選択します。Adminインタフェースを選択します。目的の「ディメンション・セット」アセットを検索し、その「調査」フォームを開きます。ボタン・バーで、「検索」をクリックします。アセット・タイプのリストで、「ディメンション・セットの検索」を選択します。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的のアセットに移動して名前をクリックします。アセットが「調査」フォームで表示されます。アクション・バーで、「ディメンション・セットの共有」を選択します。Sitesに「ディメンション・セットの共有」フォームが表示されます。「ディメンション・セットの共有」フォームで、「ディメンション・セット」アセットを共有するサイトの隣にあるチェック・ボックスを選択します。Sitesシステム上のすべてのサイトで共有するには、「すべてのサイト」チェック・ボックスを選択します。)「変更の保存」をクリックします。選択したサイトでアセットが使用可能になったことを示すメッセージが表示されます。通常、サイトにディメンション・セットを作成する際にロケール・フィルタを構成します。既存のディメンション・セットのロケール・フィルタの構成を変更するには、次の手順を実行します。ロケール・フィルタを構成するには構成するロケール・フィルタのディメンション・セットを検索して、「調査」フォームで開きます。ボタン・バーで、「検索」をクリックします。「検索」フォームで、「ディメンション・セットの検索」をクリックします。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的のアセットに移動して名前をクリックします。アセットが「調査」フォームで表示されます。「ディメンション・フィルタ・クラス」フィールドで、目的のフィルタ・タイプの隣にあるオプションを選択します。「詳細」オプションを選択すると、カスタム・フィルタ・クラスを指定できます。ロケール・フィルタの詳細は、第30.2項「ロケール・フィルタリングでの作業」を参照してください。(オプション)手順2で「詳細」を選択した場合は、表示されたテキスト・フィールドにカスタム・フィルタ・クラスの名前を入力します。「変更の保存」をクリックします。(オプション)手順2で階層フィルタを選択した場合は、第30.4.9項「階層フィルタのフォールバック階層の構成」の手順を完了して、フィルタのフォールバック階層を構成します。階層フィルタのフォールバック階層の構成ディメンション・セットの構成時に階層(フォールバック)ロケール・フィルタを選択した場合は、次の手順を実行して、フィルタのフォールバック階層を構成します。階層ロケール・フィルタのフォールバック階層を構成するには新規ロケールを追加したり、既存ロケールをフォールバック階層で並べ替える場合、次の手順に従って、階層に追加するロケールを表す「ディメンション」アセットをブックマークに追加します。ボタン・バーで、「検索」をクリックします。「検索」フォームで、「ディメンションの検索」をクリックします。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的の「ディメンション」アセットに移動して、チェック・ボックスを選択します。「ブックマークに追加」をクリックします。「調査」フォームで、構成する階層フィルタが存在するディメンション・セットを検索して開きます。ボタン・バーで、「検索」をクリックします。「検索」フォームで、「ディメンション・セットの検索」をクリックします。目的の検索条件(ある場合)を指定して、「検索」をクリックします。検索結果のリストで、目的の「ディメンション・セット」アセットに移動して、ハイパーリンク名をクリックします。「調査」フォームに「ディメンション・セット」アセットが表示されます。フォールバック階層を構成します。注意:フォールバック階層を構成するときには、次の点に注意してください。ロケールは、フォールバック階層に1回のみ表示できます。階層からロケールを削除する必要がある場合は、ロケール・ノードの隣にある「削除」(ゴミ箱)アイコンをクリックします。階層内のロケールの位置を変更する必要がある場合は、そのロケールを削除して、目的の親ノードの下に追加します。「ディメンション・フィルタ・クラス」フィールドで、「ロケール階層の構成」をクリックします。Sitesに「ロケール階層の構成」フォームが表示されます。「ロケール階層の構成」フォームで、「編集」をクリックします。Sitesにフォームの編集可能バージョンが表示されます。ツリーで、「ブックマーク」タブを選択します。(オプション)階層が空白の場合には、「ブックマーク」タブでフォールバック階層の最上位ノードとして指定するロケールを選択し、「選択したアイテムの追加」をクリックします。階層に追加するロケールの親ノードを選択します。スクラッチから階層を作成する場合は、選択できるのは、手順dで追加した最上位レベルのノードのみです。階層作成時には、フォールバック・プロセスが発生していく方向(最も特殊なものから最も特殊でないものへという方向、つまりツリーのルート・ノード方向)に注意してください。「ブックマーク」タブで、手順eで選択した親ノードの下に表示するロケールを選択して、「選択したアイテムの追加」をクリックします。階層に追加するロケールごとに、手順eとfを繰り返します。フォールバック階層が完了したら、「変更の保存」をクリックします。デフォルト・ロケールのサイト内アセットへの一括割当て単一言語サイトから多言語サイトへ変換している場合、デフォルト・ロケールをサイト内のすべてのアセットに割り当てる必要があります。これを迅速に実現させるには、デフォルト・ロケールをアセットに割り当てるエレメントを実行します。注意:この手順のサンプル・エレメント・コードは、第30.4.10.1項「デフォルト・ロケールの一括割当て用サンプル・エレメント・コード」を参照してください。サンプル・コードは例として記載されているため、実際のサイトではカスタマイズする必要があります。デフォルト・ロケールをサイト内アセットへ一括して割り当てるにはCSElementアセットを作成して、デフォルト・ロケールをアセットに割り当てるエレメント・コードを保持します。手順1で作成したCSElementアセットを参照する、SiteEntryアセットを作成します。手順2で作成したSiteEntryアセットを、次のURLでコールします。Sitesシステムのホストです。Sitesが接続をリスニングするポート番号です。Sitesアプリケーションに割り当てられたアプリケーション・コンテキストのルートです。<siteentry_name>は、手順2で作成したSiteEntryアセットの名前です。エレメント・コードが実行を完了したら、アセットに目的のロケールが割り当てられていることを確認してください。割り当てられていない場合は、エレメント・コードの考えられるエラーをチェックします。デフォルト・ロケールの一括割当て用サンプル・エレメント・コードこの項には、FirstSiteIIサンプル・サイトに記述されたサンプル・エレメント・コードが記載されています。このコードは、次の操作を実行します。en_USという名前の「ディメンション」アセットを作成して、サイト内のデフォルト・ロケール指定を示します(この例ではアメリカ英語)。このデフォルト・ロケールをサイト内の「ページ」アセットに割り当てます。注意:この項のコードは、例として提供されています。これを使用すると決定したら、実際のサイトに対してカスタマイズしてください。デプロイ前にコードをテストしてください。この例には、エラー・チェック機能は含まれていません。reserved.法律上の注意点ライブラリ。