# OmegaT 関連メモ(確認環境Ubuntu18.04 on Thinkpad X1G6) ## 目的 とりあえずUbuntu(18.04)環境で使えるようにする - 基本動作ができるようになる - ランチャーで起動できるようになる - Google機械翻訳がつかえるようになる - xautomationとスクリプトで自動処理できるようになる ## 基本情報 本家日本語サイトのこちらが参考になる https://omegat.org/ja/howtos/linux ## インストール関連 https://omegat.org/download - 上記からLinux 64bit JREつきをDLする(例:OmegaT_3.6.0_11_Linux_64.tar.bz2) ※注:snapでのインストールはしないこと(起動など各種処理がわかりづらくなったので) - DLしたtar.bz2を解凍し、インストール スクリプトを実行する。。 `./linux-install.sh` - インストール後は以下/usr/local/bin/omegat がリンクとなり /opt/omegat/配下のファイルから起動される /usr/local/bin/omegat -> /opt/omegat/OmegaT-default/OmegaT* - 起動:alt+F2でomegatと入力すれば起動できる ## 基本動作 操作の仕方は、検索してください。 - プロジェクトを新規作成 - 原文と訳文の言語を設定(原文:EN-US, 訳文:JP) ![](https://i.imgur.com/CA2JjIc.png) - プロジェクト内に原文を追加して、翻訳を開始する(プロジェクト内に複数原文を追加することで、翻訳メモリを共有し、一貫性を保てる) ![](https://i.imgur.com/RcDeDgu.png) - 基本操作:OmegaTでは文書が分節という単位で区切られ、この単位で翻訳を行う。Enterで順方向にすすみ、Ctl+Enterで逆方向に戻れる。特定の文節に飛びたいときは右クリックメニューから移動する。 ## ランチャー起動 Google Translate APIを使うときは起動オプションが必要なので、ランチャーからのGUI起動でらくにしておく。デスクトップエントリーを作成し、そこに起動オプションを追加する。 - デスクトップエントリーの作成: 自分のローカルに、OmegaT用のデスクトップエントリーを作成する。 `$vim omegat.desktop` エントリ内容はこんな感じに。 ``` [Desktop Entry] Type = Application Name = OmegaT GenericName = Translation Tool Icon = /home/tani/ダウンロード/omegat-icon/OmegaT_IconA_outline.png Exec = omegat Terminal = false ``` これを以下に置く。 ```~/.local/share/applications``` ※アイコン(Icon=)はお好きなように^^) - こちらは公式サイトから:![name=Masa Taniguchi](https://i.imgur.com/fJEWPSF.png =30x) - こちらも公式っぽい:![](https://i.imgur.com/3AE4BbV.png =30x) - これはたにオリジナル: ![reference link](https://i.imgur.com/yeWhi8u.png  =40x) ## 起動スクリプトへのGoogle Translate APIキー追加 上記の起動スクリプトにGoogle TranslateのA![Uploading file..._7kpe6er21]() PIキーをオプションとして追加する。(Google Translation APIキーの取得方法については、省略) /opt/omegat/OmegaT-default はシンボリックリンクで、実際は /opt/omegat/OmegaT_(versoin名) のスクリプトOmegaTが実行されるのでここに起動オプションをついきすううう `$vim /opt/omegat/OmegaT_(version)/OmegaT ` の最下段に以下を追加(キーがxxxx・・・) ``` "${JAVA}" -jar -Xmx1024M -Dgoogle.api.key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "${REALOMEGATPATH}/OmegaT.jar" "$@" ``` これでGoogle Translate を機械翻訳として使える形でランチャー起動ができるようになる。 ## PyAutoGIUによる翻訳作業自動化 ※当初xautomationを使っていたが、こちらテキストを貼り付ける際日本語など2バイト以上の文字列を扱えないことから、PythonベースのPyAutoGUIを用いることにする。 Google Translationを使って翻訳するにあたり、ここまでの設定では、分節ごとにCtl+M で機械翻訳を取り込み、次の分節へ移動、という作業を手動で実施することになる。これをPyAutoGIUで自動化することで翻訳作業を大幅に短縮させることができる。(ちなみに原文に戻すにはShift+Ctrl+Mでできる) ### まずPyautoGUIのインストール ```bash= $sudo pip3 install pyautogui Collecting pyautogui Downloading PyAutoGUI-0.9.53.tar.gz (59 kB) |████████████████████████████████| 59 kB 1.9 MB/s Collecting PyTweening>=1.0.1 Downloading pytweening-1.0.4.tar.gz (14 kB) Collecting mouseinfo Downloading MouseInfo-0.1.3.tar.gz (10 kB) Collecting pygetwindow>=0.0.5 Downloading PyGetWindow-0.0.9.tar.gz (9.7 kB) Collecting pymsgbox Downloading PyMsgBox-1.0.9.tar.gz (18 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing wheel metadata ... done : (略) ``` ちなみにPyAutoGUIのWriteメソッド(pyautogui.write)でもどうも 2byte文字が入力できないみたいで、pyperclip.copy+pyautogui.hotkeyの組み合わせで行うのがやり方の模様。 ```python= pyperclip.copy('こんにちは、世界') time.sleep(3) pyautogui.hotkey("ctrl","v") ``` if Pyperclip could not find a copy/paste mechanism for your system, Do; ````bash= sudo apt install xsel to install the xsel utility. sudo apt install xclip to install the xclip utility. ```` OmegaTで分節化してしまうと、分節数合わなくなるので、「文単位の分節化を有効にする」のチェックを外して再読込すること。(重要) ![](https://i.imgur.com/vT2Wmfh.png =600x) OmegaTのウインドウを左上に持ってきて、以下コードを実施する。引数は分節数に対応。omegatの画面の右下に表示される数字を見て設定。(多くても問題はなし) ```bash= $python3 omegat_machinetrans.py 548 ``` $ megat_machinetrans.py の内容 ```python= import pyautogui as ag # Library to conrol GUI import os import time import pyperclip as clp import sys loop_num = int(sys.argv[1]) ag.moveTo (200,200) #Move mouse to upleft of OmegaT GUI ag.click() #Click for line in range(loop_num): ag.hotkey('ctrl','m') # Excute Machine Translate(ctrl+M) ag.press('enter') time.sleep(1) # Wait for translation result via the internet exit() ``` ## (※廃止)xautomationによる翻訳作業自動化  ※当初xautomationは、テキストを貼り付ける際、日本語など2バイト以上の文字列を扱えないため、PythonベースのPyAutoGUIを用いることにする。 Google Translationを使って翻訳するにあたり、ここまでの設定では、分節ごとにCtl+M で機械翻訳を取り込み、次の分節へ移動、という作業を手動で実施することになる。これをxautomationで自動化することで翻訳作業を大幅に短縮させることができる。(ちなみに原文に戻すにはShift+Ctrl+Mでできる) - xautomationをインストールする `$sudo apt install xautomation` - 自動化スクリプトを作成する(当方例)  `$vim omegat_xauto 中身は以下のようにしている(通信環境によってSleep時間(sec)を調整したほうがよい) ``` #!/bin/bash export DISPLAY=:0 XTE="xte -x$DISPLAY" XPOS="xmousepos" $XTE 'mousemove 200 200' $XTE 'mouseclick 1' $XTE 'key Return' sleep 0.2 for i in `seq $1` do sleep 0.2 $XTE 'keydown Control_R' sleep 0.2 $XTE 'key m' sleep 0.4 $XTE 'keyup Control_R' sleep 0.2 $XTE 'key Return' sleep 0.2 done $XTE 'keyup Control_R' ``` いちおう原文に戻すスクリプトも作っておく。 $vim undo_omgat_xauto ``` #!/bin/bash export DISPLAY=:0 XTE="xte -x$DISPLAY" XPOS="xmousepos" $XTE 'mousemove 200 200' $XTE 'mouseclick 1' $XTE 'key Return' sleep 0.2 for i in `seq $1` do sleep 0.2 $XTE 'keydown Control_R' $XTE 'keydown Shift_R' sleep 0.2 $XTE 'key r' sleep 0.3 $XTE 'keyup Control_R' $XTE 'keyup Shift_R' sleep 0.3 $XTE 'key Return' sleep 0.2 done $XTE 'keyup Control_R' ``` - 使い方 - OmegaTとターミナル画面を並列に標示(OmegaT:左側 superkey+L) - コマンド実行ししばし待つ `$./omegat_xauto ループする回数(OmegaTの分節数と合わせて適当に)` ![](https://i.imgur.com/eR4AbaG.png) ## 翻訳、レビュ後ファイルの出力 最後にプロジェクトメニューから、「訳文ファイルを生成」もしくはCtl+Dを押すと翻訳、修正後のファイルが出力される。なおプロジェクトの保存はおなじメニューから「保存もしくは」Ctl+Sで。 以上