2009-02-23 6 views
9

国際化のためにGNU gettextを使って大規模なJavaアプリケーションを開発した経験がありましたか?私は自分のソースコードに英語のテキストを載せたいと思っていますが、私がやっていることは、私が参加している比較的大きなソフトウェアプロジェクトにとって実用的であることを確認したいと思います。国際化のためのJavaとGNU gettext

経験がある場合は、Javaでリソースを検索するために何を使用していますか?私は現在Gettext Commons(http://code.google.com/p/gettext-commons/)を試していますが、これは今までよく働いていたようです。

ソースコードの元のテキストを保持するgettextの代替手段はありますか? Windowsでサポートされている同様のツールは素晴らしいでしょう。

答えて

6

JSOMオープンソースのOpenStreetMap Javaエディタプロジェクトでは、Gettextライブラリを使用してすべての翻訳を処理しています。人々がKBabel、poedit、launchpadなどの翻訳ツールを使用できるようになっています。 )poファイルで作業するようにしてください。そこでプラットフォームの制約はありません。 あなたが言及したセットアップが任意のプラットフォーム上で使用することはできないと考える理由も、私は非常に表示されていない - あなたは確かにWindowsでgettextを使用することができますは、次を参照してください。人気のgettextのは、私は確かにそれをお勧めしますどのように考えるhereまたはhere

+0

答えをありがとう。 gettextのWindows版を正しく動作させるために問題が発生しましたが、これらの問題はおそらくもう少し努力して解決している可能性があります。 Cygwinを使ってWindowsデスクトップ上でGNUバージョンを実行しましたが、うまくいきました。 – dcstraw

3

代わりにplain old Java message resource bundlesを使用してください。

:私たちが開発チームで実際に使用しているのは、TMX formatの標準で、XMLファイルにローカライズ文字列を指定できます。これは、翻訳ツールでよく使用される形式です。 Here is a free oneを使用すると、これらのファイルをより簡単に編集できます。

それでも、XML処理ツールのおかげでより良いエンコーディング処理を除いて、メッセージリソースバンドルよりも実質的な利点や機能を提供していないため、これまで言及していません(国際化の処理英語とは異なる言語のリテラル)。

また、私たちのソフトウェアは、このXML形式を解析し、アプリケーションを再起動せずに言語間(HTMLページまたはSwingフレーム内)を変更できる独自のフレームワークです。このように文字通りの翻訳を扱う簡単なライブラリを開発することは難しいことではありませんが、実装する必要があるという欠点があります。

+2

Java組み込みのI18N機能をオプションとして評価していますが、gettextが実用的な代替方法であるかどうかを知りたかったのです。リソースバンドル上に複数の利点(例:複数可、コード可読性など)があります。 – dcstraw