ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Portal開発者ガイド
11gリリース1(11.1.1)
B61384-01
  ドキュメント・ライブラリ
ライブラリ
製品リスト
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

14 多言語コンテンツの作成

この章では、Oracle Portal付属のAPIを使用して様々な言語でコンテンツを作成する方法について説明します。この章の内容は、次のとおりです。

詳細はOTN

これらのAPIの詳細は、Portal Centerの『Oracle Portal PL/SQL API Reference』を参照してください。

http://portalcenter.oracle.com

「Portal Focus Areas」セクションで「Portlet Development」をクリックし、次に、「APIs and References」セクションで「PL/SQL API Reference」をクリックします。


ヒント:

Webブラウザまたは外部アプリケーションからAPIをコールする場合、最初にセッション・コンテキストを設定する必要があります。詳細は、10.1項「セッション・コンテキストの設定」を参照してください。

14.1 多言語サポートの概要

APIを使用してポータル・オブジェクトの翻訳を作成するには、ページ・グループが複数の言語をサポートするようにページ・グループ管理者によって設定されている必要があります。APIを使用する前に、ページ・グループの構成方法と翻訳指定のあるオブジェクトの動作内容を理解するために『Oracle Fusion Middleware Oracle Portalユーザーズ・ガイド』の第20章「Portalコンテンツの翻訳」を参照することをお薦めします。

ポータル・オブジェクトの翻訳を作成または変更するための基本的方法は、言語コンテキストを設定し、次に、適切なコンテンツ管理APIを使用してアイテムを作成または変更することです。

14.2 デフォルト言語の問合せ

ページ・グループのデフォルト言語を確認するには、次の問合せを実行します。

select distinct wwnls_api.get_language(default_language) "Page Group Default Language"
from wwsbr_all_content_areas pg
where name = 'MyPageGroup';

SQL*Plusセッションの言語コンテキストを確認するには、以下の手順に従います。


注意:

SQL*Plusにログインしてユーザー・コンテキストを設定する場合、最初はNLS_LANG環境変数によって指定されている言語になります。

14.3 セッション言語の設定

コンテンツを別の言語で作成する前に、例14-1に示すように、wwctx_api.set_nls_language APIを使用してセッション言語を設定します。

例14-1 セッション言語の設定(set_nls_language API)

begin
  wwctx_api.set_nls_language(
    p_nls_language => wwnls_api.GREEK,
    p_nls_territory => wwnls_api.TER_GREECE
  );
exception
  ...
end;
/
詳細はOTN

使用可能な言語および地域の定数のリストは、Portal Centerの『Oracle Portal PL/SQL API Reference』のWWNLS_APIパッケージに関するドキュメントを参照してください。

http://portalcenter.oracle.com

「Portal Focus Areas」セクションで「Portlet Development」をクリックし、次に、「APIs and References」セクションで「PL/SQL API Reference」をクリックします。

14.4 既存の翻訳の変更

既存の翻訳の変更は、単に言語コンテキストを設定し、適切なAPIを使用してオブジェクトを変更するだけです。例14-2では、フランス語の翻訳を指定した既存のテキスト・アイテムのテキストを変更しています。

例14-2 翻訳の変更

declare
  l_item_master_id number;
begin
  -- Set the language context.
  wwctx_api.set_nls_language(
    p_nls_language => wwnls_api.FRENCH
  );
  -- Edit the item (this edits the French translation).
  l_item_master_id := wwsbr_api.modify_item(
    p_master_item_id => 453,
    p_item_id        => 454,
    p_caid           => 33,
    p_folder_id      => 45,
    p_display_name   => 'Revue de Film');
    p_text           => 'C'est le texte de la revue');
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/

例14-2で使用されるmodify_item APIの詳細は、11.2.2項「アイテムの編集」を参照してください。

14.5 アイテムの翻訳の作成

セッションがページ・グループのデフォルト言語とは異なる言語を使用し、ページ・グループに対してセッション言語の翻訳が有効である場合、add_item APIは、アイテムの作成時にアイテムの翻訳を作成します。たとえば、ページ・グループのデフォルト言語が英語で、セッション言語がフランス語であり、ページ・グループに対してフランス語の翻訳が有効である場合には、APIは、アイテム表に次の2行を追加します。

言語以外にも、これらの行は、アイテムIDなどすべての属性について同じ値を持つことになります。これを防ぐには、翻訳を作成する前に、常に最初にデフォルト言語でアイテムを追加することをお薦めします。

同様の状況下で、modify_item APIは、セッション言語の翻訳を更新します(翻訳が存在する場合)。翻訳が存在しない場合、セッション言語で翻訳が有効になっているかぎり、このAPIは新しい翻訳を作成します。このため、既存のアイテムに翻訳を追加する場合は、modify_item(またはmodify_item_post_upload)APIを使用します。例14-3では、ファイル・アイテムを作成してから、言語コンテキストを変更し、アイテムに翻訳を追加しています。

例14-3 翻訳の作成

declare
  l_item_masterthing_id  number;
  l_item_masterthing_id2 number;
  l_item_id              number;
begin
  -- Set the language context.
  wwctx_api.set_nls_language(
    p_nls_language => wwnls_api.AMERICAN
  );
  -- Add an item that resides on the same server as the portal content repository
  -- database.
  l_item_masterthing_id := wwsbr_api.add_item(
    p_caid          => 53,  - A known page group ID.
    p_folder_id     => 1,   - A known page ID.
    p_display_name  => 'My File',
    p_type_id       => wwsbr_api.ITEM_TYPE_FILE,
    p_type_caid     => wwsbr_api.SHARED_OBJECTS,
    p_region_id     => 513, - A known region on the page.
    p_description   => 'Description of my file',
    p_file_filename => '/docs_for_upload/English_File.txt'
  );
  -- Note that if the default language was not American then OracleAS Portal
  -- would in addition automatically create a translation of the item in the
  -- default language.
  --
  -- Determine the item id.
  select id
  into l_item_id
  from wwsbr_all_items
  where masterid = l_item_masterthing_id
    and caid = l_site_id
    and language = wwctx_api.get_nls_language
    and is_current_version = 1;
  -- Change the language context to French.
  wwctx_api.set_nls_language(
    p_nls_language => wwnls_api.FRENCH
  );
  -- Modify item adding its translation and any translated attributes.
  l_item_masterthing_id2 := wwsbr_api.modify_item(
    p_master_item_id => l_item_masterthing_id,
    p_item_id        => l_item_id,
    p_caid           => l_site_id,
    p_folder_id      => l_page_id,
    p_display_name   => 'Mon Fichier',
    p_description    => 'Description du fichier',
    p_file_filename  => '/docs_for_upload/French_File.txt'
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/

例14-3で使用されるadd_item APIの詳細は、12.4項「アイテムの作成」を参照してください。modify_item APIの詳細は、11.2.2項「アイテムの編集」を参照してください。

14.6 翻訳およびアイテムのバージョン

modify_item APIを使用してp_addnewversionをTRUEに設定し、デフォルト以外の言語でアイテムの新しいバージョンを作成しようとすると、新しいバージョンは作成されず、かわりに新しい翻訳が追加されます。

翻訳でバージョニングを使用する場合は、デフォルト言語でアイテムの新しいバージョンを作成して、その新しいバージョンを翻訳することをお薦めします。

翻訳でアイテムのバージョニングを使用する効果の詳細は、『Oracle Fusion Middleware Oracle Portalユーザーズ・ガイド』の20.3項「翻訳可能なコンテンツの作成」を参照してください。