InDesign(CS3) + XMLで多言語展開マニュアルを作成する場合などに便利なツール(XML整形とu2029の変換)
InDesignには標準でXMLがサポートされていて上手に活用すれば便利なのですが、 いろいろと不便なことも多いです。 今回、InDesign+XMLを使った多言語マニュアルの制作を行うことになったのですが、 その際に、多言語展開を行うベースとなるマニュアルデータを作成する際に使ったツールを 紹介します。
(このエントリーは書きかけです。)
多言語展開ワークフロー
多言語展開の ワークフローとしては普通にDTP処理された(非XML化状態の)InDesignドキュメントから XML化作業をはじめます。
- InDesign上で、構造を表示してタグと本文の関連付を行いXMLへ書き出し
- XMLデータの翻訳
- 翻訳済XMLデータのInDesignへの読み込み
- 文字量の変化等により生じたレイアウト崩れを修正
- 展開先言語版マニュアルの完成
理屈は簡単です。
解決したいこと
ただ、XML書き出しの際困ったことは...
- 書き出されたXMLのデフォルトのフォーマットが人間が扱うにはフレンドリーでない
- 改行位置に u2029(ユニコード PARAGRAPH SEPARATOR)というキャラクタが埋め込まれているがこれを翻訳者の方が消してしまう恐れがある
という2点です。(とりあえずのこところ)
XMLフォーマットに関しては、 書き出すときに、XSLTを指定できたはずなので、 XSLTを適切に書いてやればいい話だとは思いますが、 今回は、慣れているやり方(JavaでXMLを操作する)で済ませることにします。
処理 XMLのフォーマットとu2029の対処
- XMLは適切にインデントと改行を入れる
- u2029は、
に置き換える
書き出し直後のXML
サンプルなのでこんな短いですが、実際には長いデータなので、
適切に改行やインデントが入っていないととても人間が扱えません。
また、「ありがとうございました。」のあとのスペース部分に、実際には、
u2029の文字コードが入っています。
これを、後述の自作ツールを使って処理してやると以下のようになります。
人間が取り扱い易い形式に変換したXML
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<div>
このたびは本製品をお買い上げいただき、ありがとうございました。
<br />
ご使用前に必ず本書をよくお読みください。
</div>
</Root>
このデータを使って、翻訳作業を行い、再度InDesignに読み込ませる前に、 u2029の処理を行います。 また、XMLをフォーマットしたことで、生じている無駄なスペースも削除します。
InDesignに読み込ませるためにもとに戻したXML