どうも電☆砲です。
今回はタイトルの通り、Pythonを使ったプラグラミングによる自動翻訳プログラムを作成してみました。
背景
最近はTradosという翻訳支援ソフト(CAT)を使って翻訳の副業をやっているのですが、この翻訳に結構時間を取られるんですよね。。。ということで、ふとこの翻訳作業を自動化できないものかと思い、Pythonを使ってちょっと作成してみました。
開発環境
- Windows 10 x64
- Anaconda 5.2.0
- Python 3.8.5
- SDL Trados Studio 2019
今回はTradosという翻訳支援ソフトを使います。有料ソフトですが、こちらにある中華系のサイトからクラック(無料)版を入手できます。
自動翻訳のフローチャート&自動翻訳のコード
全然複雑なことはしていません。翻訳したい.sdlxliff形式のファイルから、原文(source)と訳文(target)(ある場合)を抽出して、訳文がなければ、Google Apps Script(GAS)を利用して記述したAPIを使って自動翻訳して、原文と訳文のペア(CSV形式のバイリンガルファイル)を出力します。Google自動翻訳用のAPIについては、こちらを参考に作成しました。
こちら(GitHub)にコード一式とサンプル入力ファイル(テスト用)をアップロードしておきましたので、Tradosを使った自動翻訳を試してみたいという方は参考にしてみてください。
結果
こんな感じでA列に原文、B列に訳文(Google翻訳)を自動で出力することができます。ただし、訳文はGoogle翻訳そのままですので、ちゃんと前後の意味が通るように人手での訳文の修正が必要になります。
まとめ
今回はCSV形式で訳文を出力しましたが、これだと訳文をCSVファイルからsdlxliffファイルにコピペしないといけないので面倒です。次回は訳文を直接sdlxliffファイルに書き込むプログラムを書いてみたいと思います。
(2020年12月15日 追記)Trados専用のsdlxliffファイルから自動で翻訳して、その結果をsdlxliffファイルに戻して出力するプログラムができました!コードとサンプルは こちら(GitHub) からご覧ください。サンプルファイルの実行結果は以下の画像のようになります。これから機会があれば使いながら、バグ修正等は随時行っていきます。
参考サイト
3 分で作る無料の翻訳 API with Google Apps Script
Problems parsing XML/XLIFF with inline elements
xml.etree.ElementTree — The ElementTree XML API