• OmegaTの訳文ファイル生成をコマンドラインで

    翻訳作業にOmegaTという翻訳メモリを使っている。
    • javaのpropertiesに対応している。
    • (翻訳メモリ的には当たり前だろうけど)用語集を定義できる。
    • 既翻訳文から類似した部分を提示してくれる。
    • 無償で利用できる。
    • UIがすっきりしていると思う。
    てなところが選定理由。

    原文ファイルから訳文ファイルを生成するのは、GUIメニューから実行するのだけど、これを自動化したい(antのbuildに組み込めないか)と思って調べた。

    こういうときオープンソースはいいよなーとソースを読んだら期待通りCLIが実装されてた。
    ※けど、よくよく見れば(英語版の)マニュアルにばっちり書いてあったのだった。

    ■antを実行するbat
    set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_15
    set OMEGAT_HOME=c:\Program Files\OmegaT
    cmd /c c:\path\to\ant\bin\ant.bat

    ■build.xml(部分)
    	<property name="project" location="omegat"/>
    <property environment="env"/>

    <target name="gentext">
    <java
    fork="true"
    jar="${env.OMEGAT_HOME}/OmegaT.jar"
    failonerror="true">
    <arg value="${project}"/>
    <arg value="--mode=console-translate"/>
    </java>
    </target>

    ディレクトリ構成
     ./
      build.xml
      omegat/ ・・・OmegaTのプロジェクト
       source/ ・・・原文ファイル置き場
       target/ ・・・訳文ファイル出力先


    環境:
     Windows XP Pro SP3
      JRE 6
       OmegaT 2.0.3
       Ant 1.7

  • javaの decompilerといえば

    Jad
    というイメージだったのだけど、
    Java Decompilerてのがあるらしい。


    • JDK 1.5.0、1.6.0に対応している。Generic/アノテーション
    • jarを一括して解析してくれる
    • 解析結果を一括して保存できる
    • jar、クラスごとにタブ表示され、クラス/インタフェース名をクリックすると当該jar/クラスにさくっと移動できる(これが結構いい)
    てなところがうれしい。

    時々逆コンパイルできなかった、みたいなメッセージが出てるのが気になるけど、ポストJadを探していたので非常に助かる。


  • Jadでよく使うオプション

    2010/01/30追記:
    今となってはjadよりもJava Decompilerをおすすめしたい。




    便利なJadで、よく使っているオプション。
    Jad - the fast JAva Decompiler
    jad.exe -8 -t -pi 100 -o -lnc -i -s .java *.class
    • -8:文字列をUNICODEのエスケープ表現を使わないで通常の文字列で出力する。
    • -t:インデントにタブを使う
    • -pi <num>:import行を「*」を使ってまとめる閾値。100だと、ほぼ纏められずにClass単位でimport行が吐かれるので、参照しているclassを探しやすい。Fully qualified namesで出力する方法もあるが、これだと出力結果が「うるさく」なるので、このオプションを使っている。
    • -o:プロンプトなしで上書き出力する
    • -lnc:元のソースの行番号をコメントで挿入する。例外のスタックトレースに元のソースの行番号が出てくる場合があり、これを追いかけやすくなるから。
    • -i:フィールドのデフォルト初期化も出力する。
    • -s <ext>:逆コンパイル後出力ファイルの拡張子。デフォルトは「.jad」。