[[PageOutline]]
= Benten フィルター: ECMA 376「docx」形式
== 仕様
* 「*.docx」形式のファイルを翻訳することができます。
* パスワード保護などロックされているファイルは翻訳できません。
== 制限
文のなかに以下の変化があると、翻訳単位としては分かれた別のものになります。
* 書式スタイル
* フォント
* 文字飾り (強調の有無など)
* リンク
== 推奨
* 翻訳作業をおこないやすくするに、翻訳元ファイルの書式スタイルやフォントなどを可能な範囲で揃えてから翻訳プロジェクトに取り込むことを推奨します。
== 内部仕様
=== 共通
* ECMA-376 の WordProcessing を処理します。
* ECMA-376 の WordProcessing とは、Microsoft Office Word の docx 形式ファイルに該当します。
=== 処理対象ファイル
* ファイル名が拡張子「.docx」で終了するもの。
* ただし、ファイル名は「~$」からは始まらないもの。
* ZIP ファイルとして読み込んだ場合に ZIP エントリが 1 件以上存在するもの。このため、パスワード保護されたファイルなどは処理対象外となります。
=== 処理対象 XML ファイルおよびその要素
* docx を ZIP ファイルとしてみた場合の、内部に含まれる word/*.xml ファイルが処理対象です。
* ECMA-376 -> WordProcessing のうち、<w:t> のテキストを入出力します。
=== docx ファイルの正常化
* <w:r> の中の <w:t> について、まとめても支障がないと判断したものは これをまとめて処理します。
* これは、日本語の WORD ドキュメントの場合、複数の <w:r> に分かれている <w:t> は、実は 1 つにまとめることが可能であり、このように集約して 1 つの <w:r> にまとめることにより、翻訳作業の効率が向上するからです。
* w:rFonts 要素の w:hint 属性が、このような <w:r> の細切れ化を引き起こす主たる原因だと考え、w:hint しかない w:rFonts 属性を除去します。
* w:hint 属性を取り除いた結果 w:rFonts 要素の中身がなくなった場合には、この要素自身を除去してしまいます。
* これら加工を加えた結果、<w:r> の内容が <w:t> 以外で変わらないものが連続していれば、これを集約して 1 つにまとめてしまうことができます。
== 参考情報
* Microsoft Office XP および 2003 で docx ファイルを読み書きするためには、以下の互換機能パックを導入する必要があります。
* Microsoft: Word/Excel/PowerPointファイル形式用 Microsoft Office 互換機能パック
http://www.microsoft.com/downloads/details.aspx?FamilyId=941B3470%2D3AE9%2D4AEE%2D8F43%2DC6BB74CD1466&displaylang=ja
= リンク
* [FrontPage トップページに戻る]