128

私は 20 人以上の開発者がいるチームの一員です。各開発者は個別のモジュール (10 モジュール近く) で作業します。各モジュールには、少なくとも 50 個の CRUD フォームがある可能性があります。これは、現在、500 個近くの追加ボタン保存ボタン編集ボタンなどがあることを意味します。

ただし、アプリケーションをグローバル化する必要があるため、アプリケーションでテキストを翻訳できる必要があります。たとえば、フランスのユーザーにとってはどこでもaddという単語がajouterになるはずです。

これまでに行ったことは、UI またはプレゼンテーション層の各ビューに対して、翻訳のキーと値のペアのディクショナリがあることです。次に、ビューをレンダリングしながら、この辞書を使用して必要なテキストと文字列を翻訳します。しかし、このアプローチでは、500 個の辞書に 500 個近くの辞書が追加されるようになりました。これは、DRY プリンシパルに違反したことを意味します。

一方、addを 1 か所に配置するなど、共通の文字列を集中化して、開発者にどこでも使用するように依頼すると、集中化された辞書に文字列が既に定義されているかどうかわからないという問題が発生します。

もう 1 つのオプションは、翻訳辞書を持たず、Google 翻訳や Bing Translator などのオンライン翻訳サービスを使用することです。

私たちが遭遇したもう 1 つの問題は、プロジェクトを予定どおりに納品するというストレスにさらされている一部の開発者が、翻訳キーを覚えていないということです。たとえば、追加ボタンのテキストについて、ある開発者はaddを使用し、別の開発者はnewなどを使用しました。

アプリケーションの文字列リソースのグローバリゼーションとローカリゼーションのベスト プラクティス、または最もよく知られている方法は何ですか?

4

3 に答える 3

53

私の知る限りlocaleplanet、JavaScript のローカライゼーションと国際化のための優れたライブラリがあります。さらに、ネイティブであり、他のライブラリ (jQuery など) に依存していないと思います。

ライブラリの Web サイトは次のとおりです: http://www.localeplanet.com/

Mozilla によるこの記事も参照してください。クライアント側の翻訳に非常に優れた方法とアルゴリズムを見つけることができます。a-little-help-from-json-and-the-server/

これらすべての記事/ライブラリの共通部分は、を取得/変換するためにi18nクラスとgetメソッドを使用することです (いくつかの方法では、 のような小さな関数名も定義します) 。私の説明では、翻訳したい文字列と翻訳された文字列の意味を説明しています。次に、と を格納するための JSON ドキュメントが必要です。_keyvaluekeyvalue
keyvalue

例えば:

var _ = document.webL10n.get;
alert(_('test'));

そしてここにJSONがあります:

{ test: "blah blah" }

現在人気のあるライブラリ ソリューションを使用することは、良いアプローチだと思います。

于 2013-01-16T13:03:42.613 に答える
14

jQuery.i18nは、Webページの国際化を可能にする軽量のjQueryプラグインです。これにより、Javaリソースバンドルの場合と同様に、カスタムリソース文字列を「.properties」ファイルにパッケージ化できます。提供された言語またはブラウザによって報告された言語に基づいて、リソースバンドル(.properties)をロードして解析します。

これについて詳しく知るには、JQueryを使用してページを国際化する方法をご覧ください。

于 2013-01-16T12:52:09.263 に答える