Show page source of FilterEcma376Docx #62747

[[PageOutline]]

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

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

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

== 内部仕様
=== 共通
 * [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376] の WordProcessing を処理します。
 * ECMA-376 の WordProcessing とは、Microsoft Office Word の docx 形式ファイルに該当します。

=== 処理対象ファイル
以下のような条件に合うファイルを処理対象とします。
 * ファイル名が拡張子「.docx」で終了するもの。
 * ただし、ファイル名は「~$」からは始まらないもの。
 * ZIP ファイルとして読み込んだ場合に ZIP エントリが 1 件以上存在するもの。このため、パスワード保護されたファイルなどは処理対象外となります。

=== 処理対象 XML ファイルおよびその要素
処理対象 XML ファイルおよびその要素については、以下のとおりです。
 * docx を ZIP ファイルとしてみた場合の、内部に含まれる word/*.xml ファイルが処理対象です。
 * ECMA-376 -> WordProcessing のうち、<w:t> のテキストを入出力します。

=== docx ファイルの正常化
翻訳作業に先立ち、まず docx ファイルを以下の手順で正常化します。
 * <w:r> の中の <w:t> について、まとめても支障がないと判断したものは これをまとめて処理します。
 * 日本語の WORD ドキュメントの場合、いわゆる半角文字と全角文字が交互に登場する場合には <w:r> が複数に分かれます。しかし、実は 複数の <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 つにまとめてしまうことができます。

== 参考情報
 * [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]
 * 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 トップページに戻る]