2023年1月12日木曜日

XLIFFファイル翻訳支援アプリの作成(4) - 翻訳済みテキストの活用

 Oracle APEXには10言語(ドイツ語、英語、スペイン語、フランス語、イタリア語、ブラジル - ポルトガル語、繁体中国語、簡体中国語、日本語、韓国語)の翻訳済みテキストが含まれています。

APEXの翻訳済みのメッセージは、APEXがインストールされているスキーマにある表WWV_FLOW_MESSAGES$に保存されています。これは内部表で、Autonomous Databaseでは直接アクセスすることはできません。標準ビューも提供されていないため、翻訳済みメッセージはオンプレミスのインスタンスにインストールしたAPEXから取り出す必要があります。

Oracle Database Express Editionなどを使ってOracle APEXの環境を作成し、メッセージを取り出すことにします。このような環境がすでに作成済みとして、作業を進めていきます。

最初にSYSまたはSYSTEMにて、データベースに接続します。

APEXがインストールされているスキーマはAPEX_バージョン番号となっています。先頭3桁ばメジャー、後ろ3件がマイナー・バージョンです。APEX 22.2の場合、APEX_220200となります。

current_schemaをAPEX_220200に変更します。

alter session set current_schema = apex_220200;

SQL> alter session set current_schema = apex_220200;


Session altered.


SQL> 


APEXのワークスペース・スキーマがAPEXDEVとして作成済みとします。表WWV_FLOW_MESSAGES$のコピーをAPEXのワークスペース・スキーマに作成します。

create table apexdev.apex222_messages as select * from wwv_flow_messages$;

SQL> create table apexdev.apex222_messages as select * from wwv_flow_messages$;


Table created.


SQL> 


表WWV_FLOW_MESSAGES$のコピーがAPEX222_MESSAGESとして作成されました。

APEXのワークスペースにサインインし、SQLワークショップユーティリティデータ・ワークショップを開きます。

データのアンロードを実行します。


アンロードする形式として、より安全なXML形式を選択します。


アンロード対象のとして先ほど作成したAPEX222_MESSAGESを選択します。列として最低限NAMEMESSAGE_LANGUAGEMESSAGE_TEXTを選択します。

以上を設定し、データのアンロードを実行します。


ファイルapex222_messages.xmlがダウンロードされます。

メッセージのインポート先のインスタンスに作成されているAPEXワークスペースにサインインし、先ほどと同様にデータ・ワークショップを開きます。

今回はデータのロードを実行します。


先ほどダウンロードしたファイルapex222_messages.xmlを、ファイルとして選択します。


ロード先新規表表名APEX222_MESSAGESを指定します。ここで作成する表のデータを表CWR_MESSAGESに投入します。


データのロードが完了したら、データ・ワークショップでの作業は終了です。


以前のバージョンのテキストが投入済みである場合は、最初に表CWR_MESSAGESより削除します。

delete from cwr_messages where name in (select name from apex222_messages);


APEX 22.2に含まれているメッセージを表CWR_MESSAGESに移入します。

insert into cwr_messages(name, message_language, message_text) select name, message_language, message_text from apex222_messages;


以上で、Oracle APEXに含まれている翻訳済みテキストを、表CWR_MESSAGESに投入できました。

最後の記事では、本記事で作成したXLIFFファイル翻訳支援アプリケーション自体を、表CWR_MESSAGESに投入したAPEXの翻訳済みのテキストを使用して翻訳してみます。

続く