[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
質問
私は20人以上の開発者がいるチームのメンバーです。各開発者は、別々のモジュール(10近くのモジュール)で作業しています。各モジュールには少なくとも50のCRUDフォームがあり、これは現在、500近くあることを意味します。 追加ボタン , 保存ボタン , 編集ボタン など。
しかし、アプリケーションをグローバル化したいので、アプリケーション内のテキストを翻訳できるようにする必要があります。例えば、どこでも、単語 を追加する は アジュタ に変更する必要があります。
私たちがこれまで行ってきたことは、UI またはプレゼンテーション レイヤーの各ビューについて、翻訳のキーと値のペアの辞書を持つということです。そして、ビューをレンダリングする際に、この辞書を使用して必要なテキストや文字列を翻訳します。しかし、このアプローチでは、500個近い を追加します。 が500個もあることになります。これはDRYの原則を破っていることになります。
一方、共通の文字列を一元化すると、例えば を追加する を一箇所に集め、開発者にあらゆる場所でそれを使うよう求めると、ある文字列が集中辞書にすでに定義されているかどうかがわからないという問題が発生します。
他の選択肢として、翻訳辞書を持たず、Google 翻訳や Bing Translator などのオンライン翻訳サービスを使用することも可能かもしれません。
私たちが遭遇したもうひとつの問題は、プロジェクトを期限内に納品しなければならないというストレスから、開発者の中には 翻訳キー . 例えば、追加ボタンのテキストについて、ある開発者は 追加 を使い、別の開発者は 新しい など。
アプリケーションの文字列リソースのグローバル化とローカライズのベストプラクティス、または最もよく知られている方法は何ですか?
どのように解決するのですか?
私が知っている限りでは
localeplanet
という、JavaScriptのローカライズと国際化のための良いライブラリがあります。さらに、それはネイティブであり、他のライブラリ(例えば、jQuery)に依存していないと思います。
ライブラリのウェブサイトはこちらです。 http://www.localeplanet.com/
Mozilla によるこの記事もご覧ください。クライアントサイドの翻訳に関する非常に優れた方法とアルゴリズムを見つけることができます。 http://blog.mozilla.org/webdev/2011/10/06/i18njs-internationalize-your-javascript-with-a-little-help-from-json-and-the-server/
これらの記事/ライブラリに共通する部分は、(1)(2)(3)(4)(5)(6)のように
i18n
クラスと
get
のような小さい関数名を定義しています。
_
のような小さな関数名も定義しています)。
key
を
value
. 私の説明では
key
は翻訳したい文字列を意味し
value
は翻訳された文字列を意味します。
では、JSONドキュメントに
key
と
value
's.
例えば
var _ = document.webL10n.get;
alert(_('test'));
そして、そのJSONです。
{ test: "blah blah" }
現在普及しているライブラリのソリューションを利用するのは良い方法だと思います。
関連
-
[解決済み】ベストプラクティスの多言語ウェブサイト
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
-
[解決済み] javascriptオブジェクトの要素数
-
[解決済み] Nodejsで大きなJSONファイルをパースする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] ドット記法の文字列を使用してオブジェクトの子プロパティにアクセスする [重複].