OmegaTの分節化規則の設定2020年12月23日 12:51

OmegaTのsegmentation rules(分節化規則)は、グローバル設定とプロジェクト設定がある。少々わかりにくい点もあり、留意を要する。

基本となるのはグローバル設定であり、「Options>Segmentation」で設定する。

プロジェクト特有の分節化規則が必要な場合は、「Project>Properties>Segmentation」を選ぶ。「Make the segmentation rules project specific」のチェックが入っていないときは変更できないが、チェックを入れるとプロジェクトごとの規則を設定できるようになる。最初はグロ-バル設定と同じ規則になっており、そこからの変更事項が、プロジェクトを再度読み込んだ際に反映される。

「Make the segmentation rules project specific」のチェックを外すと、分節化規則はグローバル設定に戻る。その際に、既存のプロジェクト設定は保存されずに消えてしまうので要注意だ。

プロジェクト設定が有効になっているときは、「Options>Segmentation」からグローバル設定を変更しても分節化には反映されない。プロジェクト設定を無効にしないとグローバル設定は有効にならないので、留意が必要だ。

OmegaTで全角/半角変換するgroovyスクリプト2020年08月21日 10:28


OmegaTの現在の訳文分節中の英数字・記号を、全角から半角、
および半角から全角に変換するgroovyスクリプトを書いてみた。
筆者のJava/Groovyに関する知識は皆無に等しいので、
他の方が書いたスクリプトを適当に組み合わせた。
特に参考にしたのはKos Ivantsovさんのブログだ。
とりあえず動いているが、改良すべき点があればご教示
いただけるとありがたい。

------------------------

// Convert from Zenkaku to Hankaku in current target
// 訳文分節の英数字・記号を全角から半角に変換
// 英数字・記号は文字コード順に「!」から「~」まで
//
// Script name: Convert_Zenkaku_to_Hankaku.groovy
// Author   Kasuya
// Date     2020-08-21
// Version  0.1

import static javax.swing.JOptionPane.*
import static org.omegat.util.Platform.*

// Abort if no project is opened
def prop = project.projectProperties
if (!prop) {
  final def title = 'Convert from Zenkaku to Hankaku'
  final def msg   = 'Try again after opening a project.'
  showMessageDialog null, msg, title, INFORMATION_MESSAGE
  return
}

target = editor.getCurrentTranslation()
if (target != null) {
  target = target.replaceAll(/[\uff01-\uff5e]/){new String((char)(((int)it)-65248))}
}
editor.replaceEditText(target)

------------------------

// Convert from Hankaku to Zenkaku in current target
// 訳文分節の英数字・記号を半角から全角に変換
// 英数字・記号は文字コード順に「!」から「~」まで
// 
// Script name: Convert_Hakaku_to_Zennkaku.groovy
// Author   Kasuya
// Date     2020-08-21
// Version  0.1

import static javax.swing.JOptionPane.*
import static org.omegat.util.Platform.*

// Abort if no project is opened
def prop = project.projectProperties
if (!prop) {
  final def title = 'Convert from Hankaku to Zenkaku'
  final def msg   = 'Try again after opening a project.'
  showMessageDialog null, msg, title, INFORMATION_MESSAGE
  return
}

target = editor.getCurrentTranslation()
if (target != null) {
  target = target.replaceAll(/[\u0021-\u007e]/){new String((char)(((int)it)+65248))}
}
editor.replaceEditText(target)

------------------------

OmegaTの検索ウィンドウから各分節への移動2014年04月09日 10:37

後記(2015/6/6):キーボード操作のみで検索ウィンドウから各分節に移動できる機能がOmegaT 3.5で追加された。開発チームに感謝。
--------------------------------------------------

OmegaTで検索を実行すると上図のように検索ウィンドウが開く。ここで、編集したい分節をダブルクリックすると、編集ウィンドウ上でその分節が編集可能になる。ただし、ダブルクリック直後は検索ウィンドウが選択された状態になっているので、編集ウィンドウを再度クリックするなどの操作が必要になる。

このあたりの操作を楽にするために、マウスを使わずにキーボード操作のみで検索ウィンドウから各分節に移動できるようにするAutoHotkeyスクリプトを書いた。

SetTitleMatchMode, 2
#IfWinActive, OmegaT
  ^vkE2sc073::
    Backup := Clipboard
    Send, +{Home}{Right}^{Right}^+{Right}^c!{Tab}^j
    WinWaitNotActive, OmegaT
    Send, ^v{Enter}
    Clipboard := Backup
  return
return

前提条件:検索ウィンドウが最前面にあり、そのすぐ背後に編集ウィンドウがある。

操作:ジャンプ先の分節番号が含まれる折り返し行の任意の位置へキャレットを移動し、ショートカットキーを押す(上のスクリプトではCtrl+Backslash)。

動作:分節番号をコピーし、「分節へ移動」ウィンドウを開いて分節番号をペーストし、移動を実行する。なお、既存のクリップボード内容をバックアップし、動作完了時には元に戻す。

ついでながら、「数行スクロール」動作にショートカットを割り当てておくと、分節を順次閲覧しやすくなる。

いずれ、OmegaT本体にこのような機能がつくことを期待したいが、それまでの暫定策ということで。

OmegaT検索機能の補強2013年10月10日 17:36

後記(2015/6/6):編集ウィンドウ上で検索語が自動で強調(選択)される機能がOmegaT 3.5で追加された。開発チームに感謝。
--------------------------------------------------

OmegaTで検索を実行すると、検索語を含む分節の一覧が検索ウィンドウに表示される。編集したい分節をダブルクリックすれば、その分節が編集ウィンドウ上に表示される。

ここで問題なのは、検索ウィンドウ上では検索語が青色で表示されるものの、編集ウィンドウ上で検索語が強調(選択)されない。そのため検索語が見つけにくく、即座に編集することができない。


そこで、検索ウィンドウ上で長押し右クリックすれば別ウィンドウ(サクラエディタ)が開き、そこに対象分節の原文と訳文が表示され、検索語が選択状態になる仕組みを作った。


編集済みの訳文は、OmegaTへ自動で戻せる。OmegaTとサクラエディタ間の連携にはAutoHotkeyを使っている。使い慣れた高機能エディタに作業台が移るので、だいぶ楽になる。

往々にして、検索語を文脈に応じて異なる語に置換したいことがあるが、そんなときは、TenClipsを使って複数のクリップボードに異なる語を保管し、適宜貼り付けられるようにする。
http://www.paludour.net/TenClips.html

ここに記した「次を検索」機能はその場しのぎであり、本来はOmegaTの編集ウィンドウ上で検索語が選択状態になるのが望ましい。機能強化の要望があがっているので、いずれ実現するものと期待している。
http://sourceforge.net/p/omegat/feature-requests/890/

シンボリックリンクによるOmegaT関連ファイルの一元管理2013年09月28日 16:51

OmegaTでは、プロジェクトごとに用語集、辞書、翻訳メモリ(TMX)などの関連ファイルをしかるべきフォルダに入れる必要がある。こうした関連ファイルのなかには、複数のプロジェクトにまたがって汎用したいものもある。たとえば、あるプロジェクトのglossaryフォルダの中に、プロジェクト専用の用語集と一般的な汎用用語集を共存させたい場合である。

プロジェクトごとに汎用用語集を複製するのは容量の無駄遣いだし、1ファイルに加えた変更が他の複製ファイルに反映されないのでは不便だ。そこで、このようなファイルを一元管理する仕組みが欲しくなる。

一元管理したいファイル/フォルダのショートカットアイコンを各プロジェクトのしかるべきフォルダ内に入れても、OmegaTはリンク先ファイルの中身を読み込んでくれない。ショートカットは宛先が書かれたファイルに過ぎず、実体ファイルとしては扱えない。

リンク先ファイルの中身をアプリに読み込ませるには、シンボリックリンクを貼ればよい。Windows 7でシンボリックリンクを作成するには、コマンドプロンプトで
mklink /d "シンボリックリンクのパス" "リンク先のパス"
と入力する。パスはドラッグ&ドロップでも入力できる。「/d」は対象がディレクトリであることを表し、これを省略すれば対象はファイルとなる。作成したシンボリックリンクは好きな場所に移動できる。

また、右クリックメニューからシンボリックリンクを簡単に作成できるフリーソフトLink Shell Extensionもある。
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
コマンドプロンプトを開かずに済むので楽になる。

(後記:2013/11/1)
Yu-Tangさんからご指摘をいただいた点を付記しておく。「プロジェクト設定」のなかで、フォルダーの場所をプロジェクトの外に設定することができる。また、「書き込み可能な用語集ファイル」を別途指定できるので、それを使ってプロジェクト専用用語集と汎用用語集を区別すれば、シンボリックリンクを使わずに上記の目的を達成することも可能だ。

一方、omegatフォルダ内にスペルチェック辞書の項目追加・削除用に「learned_words.txt」と「ignored_words.txt」があるが、これを一元管理するような場合はやはりシンボリックリンクを張る必要がありそうだ。ただし、「learned_words.txt」を入れ替える作業は、対象プロジェクトが立ち上っていない状況で行う必要がある。そうでないと、プロジェクト終了時にメモリに保持していたデータによって上書きされてしまう。

OmegaTの入力補完機能2013年09月21日 11:36


OmegaT 3.0.1から、新たに入力補完機能(auto-completer)が追加された(3.0.3でさらに小修正)。従来は、用語集中のヒットした用語を編集ウィンドウに挿入するには、用語集ウィンドウで選択して右クリックするなどの、少々手首が疲れる手順を要した。新機能のショートカットキーを使えば、簡単に挿入できる。

編集ウィンドウ上で、Windows/Linuxの場合は「Ctrl+Space」、Macintoshの場合は「Esc」を押すと、用語集の項目一覧がポップアップウィンドウに表示されるので、アローキーを使って挿入したい用語を選べばよい。

先頭の1文字ないし数文字が入力された状態で「Ctrl+Space」または「Esc」を押せば、表示される用語を絞り込むことができる。これは特に英文を入力するときに有用なことがある。日本語入力の場合は、1文字入力するのにも往々にして漢字変換が必要なので、省力効果が減じるかもしれない。

WinとMacでショートカットキーが全く違うのが留意点であり、まだマニュアルに記載されていないようなのでメモしておく。

OmegaTの参考訳文表示をカスタマイズ2013年08月16日 10:11

OmegaTの ver. 2.6.1 update 2 から、参考訳文(Fuzzy Matches)ウィンドウ内の原文表示形式を変えられるようになった。これは重要な新機能だが、マニュアルに記載がないようなのでメモしておく。

従来の参考訳文ウィンドウでは、下図のように、参考訳文の原文にしかない単語のみを青色で表示する。これだと、どの単語を削除してどの単語を追加すればいいのか一目ではわからない。



そこで、メニュー「設定 > 外部 TMX ファイル」(または「Options > External TMXs」)を選び、参考訳文表示テンプレート中の ${sourceText} を ${diff} に書き換える。すると、参考訳文ウィンドウは次のように変わる。



横線で消されている単語を削除し、青色の単語を追加すれば、翻訳対象の原文になることが一目でわかる。

これで満足してもいいのだが、参考訳文と編集対象を見比べる際に目玉を動かす距離をさらに縮めたいという欲求もある。そこで、テキストエディタのウィンドウを別に開き、参考訳文の原文、翻訳対象の原文、参考訳文を上下に並べ、参考訳文の原文のみにある単語を赤背景、翻訳対象の原文のみにある単語を青背景にする、という仕組みを試作している。



複数の参考訳文がある場合、マッチ率のみで比較するのではなく、なるべく追加単語(青背景)の少ないものを選ぶようにする。書き加えるよりも削除するほうが一般に楽だからだ。上のケースでは、2番目の参考訳文のほうが使いやすい。

このような色分け表示により、参考訳文を効率的に選べるようになることを期待する。複数の参考訳文からいいとこ取りするような柔軟な編集もやりやすくなるであろう。

完成した訳文の行にカーソルがある状態でショートカットを押せば、その訳文がOmegaTの該当部分に自動で戻るようにする。

OmegaTとテキストエディタの連携2013年08月14日 11:55

OmegaTを使い始めて1年あまり経つが、その間に頻繁に機能向上やバグ修正がなされてきた。OmegaTを数年前に試用して放棄された方も、最新バージョンを試せば格段の進歩を感じるのではないだろうか。特にWindows版で日本語入力関連のバグが解消されたのは大きい。
OmegaTのUndo動作不具合
Windows版OmegaTの日本語入力の不具合

現在、翻訳メモリが有効と思われる案件にはOmegaTを使っているが、エディタ機能を補完するためにサクラエディタと連携させている。たとえば下記のような日英翻訳の画面があったとする。



ここで、作業中の分節に相当する原文、訳文、用語集が、テキストエディタのウィンドウで別に開くようになっている。



1行目が原文分節で、行末の赤色「@@」はマーカー。2行目が訳文分節で、用語集を用いた自動置換がすでになされている。4行目以降がマッチした用語集項目。原文項目の長語順にソートされており、その順番で訳文分節を対象に置換が行われる。

現状では、OmegaTの原文分節内はマウスを使わなければ選択できないが、このようにテキストエディタに移せばキーボード操作で選択できる。これは自分にとっては重要な点だ。
(後期:原文分節内のテキストをキーボード操作のみで選択する機能はOmegaT 3.6.0で実装された。)

いったん使い慣れた高機能テキストエディタに作業場を移せば、編集作業が格段に楽になる。訳文を完成させたら、それをOmegaTウィンドウの訳文分節に自動で戻す。

こうした自動置換機能があると、訳語が決まっている用語の脳内変換や打鍵が減ってだいぶ楽になる。年号・日付等の自動変換も組み入れることができる。

種々のツールをごちゃごちゃ組み合わせているので、残念ながら一般ユーザに提供できる技術になっていない。いずれはこの種の機能がOmegaTに標準装備されるものと期待している。

Windows版OmegaTの日本語入力の不具合2012年12月24日 15:33

後記(2013/4/26):下記のバグはOmegaT 3.0ベータ版で解消した。開発チームに感謝。

-----------------------------------------------

日本語を入力する際、通常は、変換対象の区切りや確定状況を表す下線が表示される。しかし、Windows版OmegaTで日本語を入力した場合、この下線が表示されない(正確には、入力の瞬間だけ表示され、すぐに消える)。Windows 7でもWindows 8でも試したが結果は同じだった。ちなみに、Macintosh版OmegaTでは問題なく下線が表示される。

なお、これは「Editor」画面で生じる問題であり、「Text Search」画面では正常に下線が表示される。

下線が表示されなくても日本語は入力できる。しかし、変換の区切りを変えるときなどに状況がわかりにくく、文字列が確定されたのかも確認しにくい。OmegaT上で長い日本語を入力をする方は不便を感じるかもしれない。自分は長い日本語を入力するときはテキストエディタ上に移して作業することが多いので、影響が緩和されていると思う。バグ報告済みなので、いずれ改善されるものと期待している。

バグ報告:
http://sourceforge.net/tracker/?func=detail&aid=3596178&group_id=68187&atid=520347

OmegaTプロジェクトパス名の取得2012年12月06日 16:00

OmegaTのエディタ機能を補完するために、OmegaTとサクラエディタとの間でデータをやりとりする仕組みを作った。特に用語集を使いやすくする必要性から、試用・改良を進めている。

OmegaTには、作業中の原文および訳文セグメント(分節)をテキストファイルとしてエクスポートする機能が用意されている。各セグメントを開いたときやプロジェクトを保存したときにファイルが更新され、プロジェクトを終了するとファイルは空になる。

テキストファイルがエクスポートされるディレクトリはOSによって異なり、マニュアルに記載されている。文字コードはUTF-8だ。この機能を利用すれば、OmegaTの作業対象セグメントを外部のアプリで処理しやすい。

もう1つ必要な情報は、作業中プロジェクトのパスであり、それを足掛かりにしてtmxファイルや用語集などに外部アプリからアクセスできる。YU-TANGさんのブログを参考に、見よう見まねで、作業中プロジェクトのパスをテキストファイルに書き出すgroovyスクリプトを書いた。

import javax.swing.JOptionPane;
def prop = project.getProjectProperties()
def folder = prop.getProjectRoot()
if (folder == null) {
  def title = "open project folder"
  def msg = "Open a project."
  JOptionPane.showMessageDialog(null, msg, title, JOptionPane.INFORMATION_MESSAGE);
} else {
  def fw=new File("c:\\project_path.txt").newWriter()
  fw.writeLine(folder)
  fw.close()
}

エクスポートするファイルの保存場所"c:\\project_path.txt"は適宜変更する。原文・訳文セグメントのほかにプロジェクトパスも書き出す機能がOmegaTの標準仕様になれば、一部のユーザにとっては便利だろう。

テキストエディタで処理した結果は、AutoHotkeyを介し、クリップボード経由でOmegaTに戻す(ほかのやり方を知らないので)。

こうしたアクセス手段を得たうえで、テキストエディタ上でどのような処理をするのか、別記事に記そうと思う。

最近のトラックバック

メッセージ

<< 2020/12 >>
01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

このブログについて

翻訳者が翻訳業務にまつわる備忘録を記すブログです。
Twitter(https://twitter.com/kasuya6

RSS