Show page source of FilterEcma376Docx #62739

[[PageOutline]]

= Benten フィルター: ECMA 376「docx」形式
== 仕様
 * 「*.docx」形式のファイルを翻訳することができます。
 * パスワード保護などロックされているファイルは翻訳できません。

== 制限
文のなかに以下の変化があると、翻訳単位としては分かれた別のものになります。
 * 書式スタイル
 * フォント
 * 文字飾り (強調の有無など)
 * リンク

== 推奨
 * 翻訳作業をおこないやすくするに、翻訳元ファイルの書式スタイルやフォントなどを可能な範囲で揃えてから翻訳プロジェクトに取り込むことを推奨します。

== 内部仕様
=== 共通
 * ECMA-376 -> docx ファイルのフィルターとしての実装です。
 * Microsoft Office Word の docx 形式ファイルの入出力を担います。これは ECMA-376 の WordProcessing に相当します。

=== 処理対象ファイル
 * ファイル名が拡張子「.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 トップページに戻る]