19

私の組織は、企業のWebサイトを国際化(i16g?)する長いプロセスに着手しようとしています。このWebサイトは、Java EE(JSP /サーブレット、EJBなし)と(Documentum)WCMからプッシュされた静的コンテンツを組み合わせたものです。

ResourceBundle言語/ロケールごとに関連するプロパティファイル(「KEY = Translatedvalue」アプローチを含む)とともにを使用する「組み込み」メカニズムを使用した経験がありますが、ここでは、必要な場所でKEY値を参照するだけです。表示される翻訳されたテキスト。

私のディレクターは、以前の組織で別のアプローチを使用しており、Webページに実際の[英語]テキストを含むサードパーティのライブラリ(実際の名前を思い出せない)を使用したと述べています。実行時に、configxmlファイルの翻訳されたコンテンツに置き換えられます。(これがどのライブラリになるか知っている人はいますか?)

これを容易にするために、他にどのようなアプローチ/ライブラリ/フレームワークがあるのか​​興味があります。

ありがとう

4

5 に答える 5

13

@Pawel Dydaが述べたように、あなたの上司はおそらくgettextを意味していましたが、コスモポリタンもあなたの興味を引くかもしれません。

于 2012-04-10T08:40:13.103 に答える
5

私の会社はまた、Java用のGNU gettext関連ライブラリを維持しています(そしてすぐにScalaを対象とした拡張機能を備えています)。

GNU gettextの優れた機能をすべてサポートするだけでなく、日付/タイムスタンプと通貨の出力と入力を簡素化し、翻訳で「wiki」フォーマットを使用する機能を備えています(たとえば、単語にHTMLを太字で出力できます)。 、Javaメッセージのフォーマット、一般化された「エスケープ」サポート(たとえば、HTMLに含めるために出力を自動エスケープできるようにする)、および通貨の丸め。

これはオープンソースであり、現在githubのhttps://github.com/awkay/easy-i18n/にあります。

于 2014-02-01T19:18:54.800 に答える
4

sを使用していると聞くとResourceBundle、次のように表示されます。

ResourceBundle rb = ResourceBundle.getBundle("messages", locale);
String someString = rb.getString("some.key");

これがJavaServerPagesのアプローチである場合(スニペットでそのようなスニペットを使用する場合)、これは間違っています。代わりに、JSTLまたはSpringメッセージタグを使用する必要があります。

お問い合わせはGettextを使用したと思います(時間が足りないのでリンクはありません)。これは必ずしも最善のアプローチではありません。JSTLアプローチはJSPで最も一般的であり、そうしない非常に正当な理由がない限り、それに固執する必要があります。

于 2012-04-10T07:41:53.207 に答える
1

http://alexsexton.com/blog/2012/03/the-ux-of-language/を見る価値があります。gettextの背後にある考え方とgettextデザインの制限についての適切な説明があり、gettextへのより良いアプローチはICUメッセージ形式これはJDKMessageFormatクラスのベースです。http://site.icu-project.org/homeには、ICUメッセージ形式に基づくjavascriptライブラリもありますhttps://github.com/SlexAxton/messageformat .js

于 2013-01-05T19:01:49.783 に答える
1

もう1つの解決策を提案するのに遅すぎないことを願っています:https ://github.com/resource4j/resource4j

このライブラリは、Thymeleaf Webページレンダラーと統合されています。これにより、前述の問題が解決されます。ページテンプレートに英語のテキストを含め、実行時にローカライズされたバージョンに置き換えます。

于 2016-07-01T07:55:16.543 に答える