しかし!、、、タグの部分を「翻訳しない」に設定するなど、うまく使えば下訳として使えました。最近、ちょっと活用を始めています。
一番便利なのは複数の用語集が使えることです。仕事で使う翻訳ツールは、Trados 以外にも独自ツール的なものがあるのですが、なかなか用語集が使えず、困っていました。ところが、PC-Transer で下訳すれば、簡単に用語集を参照できます。しかも、複数の用語集を設定できるので、クライアント指定の用語集から抜粋したもの、翻訳メモリで見つけたもの、自分なりに作成したものを分けて登録し、違う色で表示するようにしておくと、非常に便利です。
また、ツールによっては、1 文ごとに分節されず、長い文章が 1 つの分節に入っていることがあります。そんなときも、PC-Transer を対訳エディターとして使うと、1 文ずつ区切って、原文と訳文が左右に並ぶ形で作業できるので、訳抜けの心配もなく、非常に使いやすいです。
ただし、翻訳メモリのマッチ率の高い文章については、わざわざ PC-Transer にコピーするまでもないので、そのあたりは文章によって使い分けています。
文型メモリなども登録しておけば、さらに便利になるので、少しずつ進化させています。
これを利用して、早速マクロを改造しました。
---------- ここから ----------
// 現在 IE で開いている URL を取得し、
// URL 中の 「〇〇」を「△△」に変換し、IEで開く。
// IE から URL を取得
if( findwindowclass("IEFrame") == 0 ) {
message "Internet Explorerが起動されていません。";
endmacro;
}
ddeinitiate "iexplore", "WWW_GetWindowInfo";
$url = dderequest( "0xFFFFFFFF" );
ddeterminate;
if( leftstr($url, 1) == "\"" ) {
$url = midstr($url, 1, 1024);
#x = strstr($url, "\"");
if( #x >= 0 ) {
$url = leftstr($url, #x);
}
}
movetolineno 1,lineno+1;
insert $url;
insertreturn;
movetolineno 1,lineno-1;
// 〇〇 を △△ に置き換えて、開く。
replacedown "〇〇", "△△", nocasesense;
if( result == no ) {
message "△△に変換できません";
} else {
directtagjump;
if( result == no ) message "△△版が開きません";
}
endmacro;
---------- ここまで ----------
また、特殊な例かもしれませんが、その URL のうち一部を置き換えて、アクセスするということもあります。
これって、たくさんあると面倒ではありませんか。1 つや 2 つなら良いのですが、ひたすらリンク先の確認をするようなこともあって、そんなとき、この「ちまちま」と URL を置き換える作業がうっとうしくなってきます。
そこで、また秀丸マクロを作成してみました。
とても簡単なマクロのつもりだったのですが、あらかじめ IE が起動していないときに、2 つの URL に続けてアクセスすると、最初の URL の表示が出ない (おそらく、2 つ目の URL の表示が上書きする?) ため、うまくいきませんでした。そこで、IE が起動していないときは、2 秒 Wait をかけることにしました (1 秒ではだめでした)。ちょっと鈍くさい方法ですが、とりあえずこれでうまく行ってます。
---------- マクロのコード ----------
// カーソル行のテキストを URL とみなし、IE で開く。
// さらに、URL 中の 「〇〇」を「△△」に変換し、IEで開く。
// 「〇〇」が存在しない場合は、メッセージを表示する。
// IE が起動しているかを確認
#findIE = findwindowclass( "IEFrame" );
// カーソルを行の先頭に移動
movetolineno 1,lineno;
// ブラウザーで開く。
directtagjump;
if( result == no ) {
message "オリジナルが開きません";
}
// 〇〇 を △△ に置き換えて、開く。
replacedown "〇〇", "△△", nocasesense;
if( result == no ) {
message "△△に変換できません";
} else {
// IE が起動していない場合、 2秒待って、次の URL を開く。
if( #findIE == 0 ) {
#tickcount = tickcount + 2000;
while( 1 ){
if(#tickcount < tickcount) break;
}
}
// △△に置き換えた URL の表示
directtagjump;
if( result == no ) message "△△版が開きません";
}
endmacro;
-------------------
問題は、受け取ったプロジェクトの原文が .idml ファイルだったことですね。InDesign ドキュメントらしいということはわかったのですが、それ以上のことはわからないまま、作業しました。^^;
実際、Trados 2011 上では、原文のファイルフォーマットを気にする必要はなく、フォントの変更やリンクのタグが入っているなぁ、という認識くらいで作業はできました。
ただ、このタグが他のアプリケーションへコピーできなかったため、他の仕事でリンク先の確認が必要なときなど面倒だなと心配していたのです。
.idml ファイルについて調べてみたところ、.zip アーカイブになっているとのことで、実際、拡張子を .zip に変更して解凍してみたところ、多数の .xml ファイルが出てきました(Word の .docx ファイルのようなものですね)。Trados 2011 上で気になったタグの部分を調べてみたところ、元の IDML ファイルでは、もっと複雑なタグになっていて、Trados 2011 側では、これを意味がわかる程度に簡略化して表示していることがわかりました。つまり、Trados 上で表示しているようなタグ+テキストは、原文には存在しなかったのです。何となく、タグ+テキストでコピーできない理由がわかったような気がしました。
そこで、タグ内容の確認が必要になる、別のクライアントの .xml ファイルを、Trados 2011 のプロジェクトにしてみたところ、全く問題はないことがわかりました。タグごとに分節化されるので、何のタグなのかは確認しないといけませんが、作業上問題となることはなさそうです(このままだと、TagEditor の方が断然使いやすそうですが、これについては別途使い方を勉強しましょう)。
今のところ、タグのマークで表示されるものは、Trados 2011 でタグ化されたもののようです。
やっぱり、もっと Trados 2011 を理解しないといけませんね。
前回、表記スタイル等のチェックをするのに、秀丸マクロの searchdialog ではなく、grep を使うようにしたという話を書きました。
これは、対象となるファイル数が多いときに、1 つずつ秀丸で開いて検索するのが面倒だから、という理由でした。しかし、今度は検索する文字列が多い場合に、いくつも秀丸が開いてしまうという問題にぶつかりました。^^;
前回の例では、1 つのマクロ内に grep 文が 2 つだったのですが、検索するワードが多い場合、grep 文が 20 個、30個となってしまいます。
特に、search では、検索文字列の上限が 4095 文字なのですが、なぜか grep では 249 文字になるようです (search で 4095 文字まで OK だったので、同じ文字列を grep で使ったら、エラーで動かなくなりました)。秀丸マクロの注意書きには、「安全なマクロを作るうえでは、249文字までとしてください。」とあるので、理由は不明ですが、249 文字以下とすべきなのでしょう。
今回マクロ化しようしたのは、外来語のカタカナ表記の正誤表で、それなりの数があります。一度に検索できればよいのですが、検索文字列が 249 文字以下となるようにすると、grep 文を 30 回以上繰り返すことになってしまいました。
もちろん、このリストを全部マクロ化する必要があるのかという疑問はあるかもしれませんが、訳文を入力している最中に、「この単語は一覧表にあったかな?」などとイチイチ気にしていられませんから、やはりマクロにしておいて、最後に一気に検索する方が早いです。
そこで、今度は、
1) ファイル内で指定した語句を検索するマクロを作る
2) 指定したフォルダ内のすべてのファイルに対して、上記のマクロを実行するマクロを作る
という 2 段階の構成を考えました。
2) において、検索文字列にヒットしなかったら、そのファイルを閉じ、ヒットしたら、ファイルを開いたままにする、という構成にしておけば、不要なファイルがいくつも開いたままになるという問題もなくなります。さらに、開いたままのファイルに対して、1) のマクロをもう一度、実行することで、ヒットした語句を再確認することもできます。
具体的には、次のようになりました。
1) ファイル内の検索マクロ
----------------------------------------
$retval = "ok";
$str = "検索語句1|検索語句2|・・・・・";
searchdown $str, nocasesense, regular, hilight, masktag, loop;
if( result == 0 ) {
// message "該当するものがありません";
} else {
$retval = "ng";
question "次に進みますか?";
if( result == no ) {
endmacro $retval;
}
}
$str = "検索語句11|検索語句12|・・・・・";
searchdown $str, nocasesense, regular, hilight, masktag, loop;
(以下、上と同様。必要なだけ繰り返す。最後の if 文だけ下記のようにする)
if( result == 0 ) {
// message "該当するものがありません";
endmacro $retval;
} else {
$retval = "ng";
endmacro $retval;
}
----------------------------------------
※検索語句にヒットしたかどうかを戻り値で返すようにしておきます。
※この場合は、検索語句にヒットしなかったら、"ok" です。
2) 指定したフォルダ内のすべてのファイルに 1) のマクロを実行
----------------------------------------
// フォルダ内の .xml ファイルのリストを作成
grepdialog2 ".", "*.xml", ".", regular, filelist;
if(result<1) endmacro;
// 現在の秀丸のハンドルを保持
#grep = hidemaruhandle(0);
// リストの各項目について実行
gofiletop;
while(lineno < linecount2) {
// リストにあるファイルを開く
tagjump;
#handle = hidemaruhandle(0);
// マクロの実行
execmacro "上記 1) のマクロの名前";
// 戻り値を確認
$ret = getresultex(-1);
// 元の秀丸をアクティブにして、今の秀丸を閉じる
// 必要であれば、今の秀丸も残す
setactivehidemaru #grep;
if( $ret == "ok" ) {
closehidemaru #handle;
}
// Shift キーで途中終了
if(iskeydown(16)) break;
// 次の項目へ
movetolineno 1,lineno+1;
}
----------------------------------------
一回これを作っておけば、別の検索マクロも簡単に作れそうです。
03 | 2025/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
とりあえず、安定して翻訳の仕事を貰えるようになりましたが、まだまだ駆け出しです。胸をはって「翻訳家です」と言えるまで、日夜修行中(?)の身です。
趣味は音楽鑑賞と城めぐり。月平均 1 回以上のライブと登城がエネルギー源です!