Howto - Translating Word 2007 files in OmegaT

OmegaT 技術情報:
Word 2007(Office Open XML、.docx)ファイルを OmegaT で翻訳

この技術情報では、MS Office 2007(以降の版)のファイルを OmegaT で翻訳するためのヒントを提供します。

背景

Microsoft Office 2007 の登場により、Microsoft Word、Excel、Powerpoint は、デフォルトのファイル形式が新しくなりました。これは「Office Open XML」と呼ばれる形式であり、それぞれ .docx、.xlsx、.pptx という拡張子を持ちます。この形式は MS Office 2010 でも使われています。便宜上、これを「MS Office 2007 ファイル形式」と呼ぶことにします。

OmegaT はバージョン 1.7.1 以降、Microsoft Office 2007 ファイルを変換なしに直接扱えるようになりました。OmegaT 2.1.8 では、このファイル形式の取り扱いがさらに便利になりました。

OmegaT で .docx 形式を使用する利点

顧客/作成者が新版の Microsoft Office/Word の導入を進めるにつれ、翻訳者は新形式のファイルを受け取る機会が増えると予想されます。旧来の形式である .doc、.xls、.ppt とは異なり、新形式のファイルは、他の形式との間の変換で書式情報を失うことなく、OmegaT で直接取り扱うことができます。

また新形式は、旧形式の .doc、.xls、.ppt を取り扱う有効な方法をも提供します。なぜならば、旧形式を MS Office 2007 形式に変換し、OmegaT で翻訳してから、再度変換して旧形式に戻せばいいからです。この手順によって翻訳者は、Apache OpenOffice を使わずに済ませることができます。

MS Office 2007 形式への変換

MS Office 1997/2000/2003/XP ファイルを MS Office 2007 で開き、「名前を付けて保存」で新形式を選んで保存することによって、MS Office 2007 形式のファイルに変換することができます。(新形式は今では標準形式なので、MS Office 2007 では単に Word、Excel、Powerpoint のように表示されます。)

MS Office 2007 または 2010 を持っておらず、また購入する意思もないユーザーのために、Microsoft は旧版向けに 互換性プラグイン を提供しています。

Linux ユーザー:MS Office 2007 と Microsoft 互換性プラグインはいずれも、Crossover Linux 上で実行できます。

OmegaT で .docx、.xlsx、.pptx 形式を使用する場合の留意点

2.1.8 より前の版の OmegaT では、MS Office 2007 ファイル内で書式情報が変わるたびに長く連なったタグが生じ、このファイル形式を取り扱うことが実際的ではありませんでした。バージョン 2.1.8 では、デフォルトで、この連続タグが単一タグに統合・圧縮されるようになりました。したがって、MS Office 2007 ファイルを翻訳する場合は、OmegaT をバージョン 2.1.8 以降にアップグレードするべきです。

(.docx ファイルの取り扱いが容易になった代償として、書式の制御が若干制限されます。たとえば、原文中のある単語が太字かつイタリックになっている場合に、「タグ統合」機能がない状況であれば、翻訳者はこの単語を太字のみまたはイタリックのみにすることができます。「タグ統合」機能が働いていると、そのような選択はできません。ほとんどのユーザーにとっては、この欠点よりも、使いやすさの向上のほうがずっと大きいでしょう。)

.docx 形式もまた、「やっかいな」書式コードを導入した影響を受けやすいため、OmegaT の編集ウィンドウにわずらわしい無用なタグが表示されます。このようなタグは翻訳時に邪魔になるので、OmegaT で翻訳を開始する前にタグを除去することには意義があります。.docx 形式を取り扱う他の CAT ツールも OmegaT と同様の問題に直面しており、解決策も類似しているか同じです。

.docx ファイルから無用な書式コードを除去する方法

「やっかいな」コードを挿入しないように Word の設定を変更した後でも、たとえば自動ハイフネーションのためにそのようなコードがまだファイル内に存在し、設定の変更では除去されないかもしれません。このようなコードの除去について以下に記します。ただし、やっかいなコードを除去する以下の手順に従う前に、まず Word の設定を変更することを忘れないでください。そうでないと、次にファイルを開いた際に、Word が再びやっかいなコードを挿入してしまうかもしれません。

CodeZapper マクロ

前述のように、MS Office 2007 に関するこうした問題に直面しているのは、OmegaT だけではありません。翻訳者の David Turner は、この問題に対処するための MS Word マクロを書きました(強く推奨します)。

文字書式の均一化

テキストに対して CodeZapper マクロを実行する代わりに、書式を「均一化」するという方法があります。書式の「均一化」とは、選択したテキスト(たとえば 1 段落全体)の先頭文字の書式を、後続のすべての文字に適用することです。なお、これは書式の「削除」とは異なります。削除した場合は、文字書式は文書のデフォルト設定に戻ります。

基本的には、MS Word の全段落をコピーし、段落全体が最初の文字の書式に従うように元の位置にペーストすることによって、段落の書式を均一化することができます。

段落の文字書式を手動で均一化する

ステップ 1:段落記号を表示します。段落全体が選択されるまで各段落を繰り返しクリックして、マークを付けます。そこで、選択領域の末尾から 1 文字左へ移動し、段落記号を選択領域から外します。

ステップ 2:選択されたテキストをコピーします(Ctrl+C)ここで、「形式を選択して貼り付け」(Word 2003)を選択するか、または「貼り付け」ボタンの最下部の矢印をクリックして(Word 2007)「形式を選択して貼り付け」を選びます。最後に、「Unicode テキスト」を選んで内容を貼り付けます。

段落がインライン書式(太字、斜字、ハイパーリンクなど)を含まない場合、次のいずれかを行うことができます。

- マクロを使用して上で説明したように段落の書式を均一化してから、書式を追加します。

- 書式設定された部分の前までのテキストのみをマークし、そのテキストをコピーして元の位置に貼り付けます。書式設定された部分より後のテキストについて、同じ操作を繰り返します。

段落の文字書式を均一化するマクロの作成

マクロを作成することによって、上述の手順をあるていど自動化できます。マクロの作成(MS Office 2007向け)について以下に簡単に説明します。(詳しい説明については、関連の取扱説明書を参照するか、あるいはここここ、またはここをクリックしてください。)

まだしていなければ、以下のように「開発」タブをリボンに追加します。Office ボタンをクリックします。「Word のオプション」をクリックします。「Word のオプション」ダイアログボックス内で「基本設定」をクリックします。「[開発]タブをリボンに表示する」をチェックし、OK をクリックします。Word を閉じます。

もう一度 Word を起動し、新しい Word ファイルを作成し、次の例のように、3行以上からなるサンプルテキストの段落を作成します。

これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。これは段落です。

段落記号ボタンをクリックして、段落記号を表示します。

カーソルを段落の中(先頭行と末尾行以外)に置きます。

マクロの作成:

「開発」タブの中の「マクロの記録」をクリックします。

「マクロ名」ボックスの中に、「levelformat」のようなマクロの名称を入力します。すべての文書でマクロを使えるように、「マクロの保存先」ボックス内で「すべての文書(Normal.dotm)」を選びます。「Normal.dotm」を変更する場合、最初にバックアップをとっておいたほうがいいかもしれません。

「キーボード」ボタンをクリックします。「割り当てるキーを押してください」ボックス内をクリックして、割り当てられていないキーストロークを見つけてください。キーストロークが割り当て済みの場合は、そのことがダイアログ内に表示されるので、そのキーストロークを削除して別のキーストロークを試すことができます。Word を初期インストールした段階では、「Ctrl+Shift+9 」に機能は割り当てられていないようです。それ以外の割り当てられていないキーストロークを使うこともできます。

「割り当て」をクリックして、これから記録するマクロにショートカットキーを割り当てます。ここから先の操作はすべてマクロに記録されるので、以下の手順を注意深く実行してください。

Ctrl + 上矢印キー(カーソルが段落の先頭に移動します)

Ctrl + Shift + 下矢印キー(段落記号を含めて段落が選択されます。)

Shift + 左矢印キー(選択領域の末尾が 1 文字左へ移動し、段落記号が選択領域から外れます。)

Ctrl + C(段落をコピーします。)

Ctrl + V(段落のテキストが、元の場所に貼り付けられます。)

以上のコマンドを入力後に、「記録終了」をクリックします。

「マクロ」をクリックし、「levelformat」(またはマクロに与えた他の名称)を選択し、さらに「編集」を選択します。選んだマクロのコードが表示されます。「levelformat」のコードは次のようになります。

___________________
Sub levelformat()
'
' levelformat macro
'
'
Selection.MoveUp Unit:=wdParagraph, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Copy
Selection.PasteAndFormat (wdPasteDefault)
End Sub
___________________

次の行

Selection.PasteAndFormat (wdPasteDefault)

を、以下のように変更します。

Selection.PasteSpecial DataType:=wdPasteText

Ctrl+S によって保存し、マクロ編集ウィンドウを閉じます。

意図したとおりすべて動作すれば、マクロの導入に成功です。テストとして、1 単語を太字にするなど、Word 文書に何らかの書式を追加します。段落内の任意の場所にカーソルを置き、Ctrl+Shift+9(またはほかに選んだキーストローク)を押すと、設定した書式が消えるはずです。

ショートカットキーはいつでも変更できます。変更するには、Office ボタンをクリックし、開いたダイアログの右下にある「Word のオプション」をクリックします。

[ユーザー設定]→[コマンドの選択]をクリックします。ドロップダウンリストから[マクロ]を選びます。「levelformat」(またはほかに選んだ名称)を選択します。

ダイアログの下にある「ショートカットキー」の隣の「ユーザー設定」をクリックします。

「分類」ボックス内をスクロールして、「マクロ」を選択します。右側の「マクロ」ボックス内で、「levelformat」(またはほかに選んだ名称)を選択します。現在のショートカットキーが、「現在のキー」ボックス内に表示されます。そのキーを選んで、Delete を押します。次に、上述と同様に、新しいショートカットキーを入力し、「割り当て」をクリックしてキーを割り当てることができます。ダイアログを確認して閉じます。

同様の手順で、マクロ実行用のボタンを作成できます。

やはり Office ボタンをクリックし、さらに「Word のオプション」をクリックします。

[ユーザー設定]→[コマンドの選択]をクリックします。ドロップダウンリストから[マクロ]を選びます。マクロを選択します。

「追加」をクリックします。右側コラムにマクロコマンドが表示されるはずです。「変更」をクリックします。

使用するボタンイメージを選んで、「OK」→「OK」をクリックします。マクロのボタンイメージが、ツールバーに表示されるはずです。

このマクロは、視覚的な書式を含まない段落全体の書式を均一化するのに有用です。段落が望ましい書式を含んでいる場合は、段落を均一化した後に、削除した書式を復元する必要があります。多くの書式情報を含んでいる段落は、削除した書式を復元する作業が多くなるかもしれません。そのような段落については、次のような複数の代案があります。

Copyright Marc Prior 2009-2011