Oracle APEXによるアプリケーション作成の利点として、多言語への対応が容易であることが挙げられます。以前にOracle APEXのアプリケーションの翻訳手順を紹介しているのですが、その記事を更新するにあたって、APEXが生成するXLIFFファイルの翻訳を支援するアプリケーションを作成してみました。
作成するアプリケーションは以下のように動作します。それぞれの文字列を翻訳するにあたって、DeepLによる翻訳APIを呼び出しています。また、あらかじめデータベースに翻訳結果が用意されていれば、一括で翻訳することも可能です。
テストのために作成したXLIFFファイルは以下になります。このファイルをアプリケーションにアップロードしています。翻訳されたXLIFFファイルは以下になります。
最初に雛形となるAPEXアプリケーションの作成から始めます。
表の作成
クイックSQLの以下のモデルより、翻訳前と翻訳後のXLIFFファイルを保存する表CWR_XLIFF_FILESおよび、翻訳に使用する文字列を保存する表CWR_MESSAGESを作成します。
# prefix: cwr
xliff_files
name vc255 /nn
source_lang vc50
target_lang vc50
xliff_result file
xliff_source file
messages
name vc255
message_language vc50
message_text vc4000
SQLワークショップのユーティリティよりクイックSQLを実行します。左ペインに上記のモデルを記述し、SQLの生成、SQLスクリプトの保存、レビューおよび実行を順次実行します。
いくつか確認の画面が開くので、それぞれ実行、即時実行を実施します。アプリケーションの作成は行いません。
表CWR_XLIFF_FILESおよびCWR_MESSAGESが作成されます。
初期アプリケーションの作成
APEXアプリケーションを作成します。
今回作成するアプリケーションのボタンなどのラベルは、英語で記述することにします。アプリケーション作成ウィザードによって設定されるラベルは、アプリケーション・ビルダーの言語で生成されます。そのため、アプリケーション作成ウィザードを実行する間だけ、環境を英語に切り替えます。
アプリケーション・ビルダーの先頭ページを開き、言語をEnglishに切り替えます。
App BuilderのCreateからNew Applicationを実行し、アプリケーション作成ウィザードを起動します。
アプリケーションのName(名前)はXLIFF Translateとします。デフォルトで作成されているページHomeは削除し、対話モード・レポートのページXLIFF Files、対話グリッドのページTranslate、同じく対話グリッドのページMessagesを追加します。
アプリケーション自体は日本語で動作させるため、SettingsのLanguageとしてJapanese(ja)を選択します。
ページXLIFF Filesを追加するために、Add Page(ページの追加)をクリックしInteractive Report(対話モード・レポート)を選択します。レポートとフォームで構成される一般的な表の操作画面を、表CWR_XLIFF_FILESに対して作成します。
Page Name(ページ名)はXLIFF Filesとします。Table or View(表またはビュー)、Interactive Report(対話モード・レポート)を選択し、Table or View(表またはビュー)としてCWR_XLIFF_FILESを選択します。Include Form(フォームを含める)にチェックを入れます。
Advanced(詳細)を開き、Set as Home Page(ホームページとして設定)にチェックが入っていることを確認します。
Add Page(ページの追加)をクリックします。
アプリケーションが作成された後は、開発環境を日本語に切り替えます。
BLOB列の調整
表CWR_XLIFF_FILESに含まれるBLOB列、XLIFF_SOURCEとXLIFF_RESULTが適切に扱われるように属性を調整します。
ページ番号1のXLIFF Filesの対話モード・レポートの列XLIFF_RESULTのBLOB属性として以下を設定します。
MIMEタイプ列 - XLIFF_RESULT_MIMETYPE