2010-12-12 10 views
7

これを行うにはいくつかの方法があります。私はすべてのテキスト要素を定義し、ローカライゼーション文字列jsonをjavascriptから読み込み、いくつかのjavascriptを使ってテキストを置き換えます...また、いくつかの方法がありますそうすることもできます。たとえば、いくつかはプラットフォームを使用してそれを行う方法に依存しています。たとえば、J2EEはそれを実装する独自の方法を持っています。また、言語ごとに別のページを作成することもできます。Webアプリケーションでのローカリゼーションの方法は?

しかし、ローカリゼーションを行う方法はありますか?ありがとうございました。

答えて

15

あなたが本当に求めているのは、ローカリゼーションを正しく実装する方法です。またはアプリケーションのローカライズを容易にするためのプログラミング方法。

実際には国際化関連の質問です。あなたがローカライズするアプリケーションを容易にするために心に留めておく必要があるいくつかのものがあります。

  • 文字列(1つは明らかである)
  • が情報をスタイリングハードコードしないでくださいハードコーディングしないでください(タグのフォーマットは使用しないでください<b >,<i >,<強い>など; <p style="font-weight: bold;color: green;">Success!</p>)を使用しないでください。
  • [機能[A、B、C]は[a、b、c]と同じです。]などの複合メッセージは避けてください。彼らは正しく翻訳するのがかなり難しいです。多くの変数を持たない場合は、リソースに文字列を追加することに害を及ぼすことはありません。
  • 複合メッセージを連結演算子で連結したり、文字列を並べたりしないでください(例:String message = "Function " + function + " does " + whatItDoes;または#{['something']}<a href="whatever">#{['some_link']}</a>#{['something_else']})。代わりに書式設定(例:MessageFormat.format("Hello, {0}. You have {1} new messages.", name, mailCount);)を使用してください。これにより、翻訳者は文章を並べ替えることができず、ターゲットの言語文法規則のために必要になる可能性があります。
  • 複数の種類の文がある場合は、生のプレースホルダ(%s%i%uなど)を使用しないでください(代わりに、{0}、{1}のような番号の付いたプレースホルダを使用する方が実際的です)。繰り返しますが、翻訳者が文章を並べ替える必要がある場合もあります...
  • 英語に固有の言語構成を使用しないでください(PawełのダッシュボードはPawełが登録時に指定した名前です)。いくつかの言語も

、やるべき事があるにそれを正しく変換する方法はありません。

  • は(そのローカライズ人は要素のスタイルを変更することができるように)
  • スタイルシートのオーバーライドメカニズムを提供しています
  • 可能であれば、UTF-8エンコーディングを使用してください(可能であれば、HTMLページ、もしあれば電子メール、場合によってはリソースファイル[プロパティ]も同様)

をフォーマットし、あなたが適切にグローバル化したアプリケーションでは気にする必要があります(適切なタイムゾーンを設定することを含む)の数値、通貨、日付を検証し、言語検出ワークフローなどの局在化に関連していない多くのより多くの事、ありますが、それは実際にあります別の話。

2

ローカライズされた「リソースバンドル」の概念は、ほぼすべてのまともなWeb開発フレームワークにあります。アプリケーションでサポートされている各言語用のリソースバンドルがあることを確認するだけで、それぞれが同じ "キー"を使用してローカライズされた文字列を参照します。フレームワーク/言語で提供されている機能を使用して、「キー」に基づいてバンドルからテキストをロードしてください。

ロケールの検出が行われる限り、もう2つの方法があります。自動検出は、Webアプリケーションと、ユーザーに提供されるロケールドロップダウンとともに自動検出の組み合わせを使用する選択ベースのメカニズムによって使用されるかなり一般的なメカニズムです。

特定の手順は、言語/フレームワーク固有のものであるため、特定の回答に使用しているフレームワークについて言及したいと思うかもしれません。

0

一方、翻訳可能なリソースを抽出する方法を実際に求めている場合は、まったく別の答えが必要です。

私は言語ごとにページを使用しません。あなたが静的なWebページの間にほとんどそして遠くを持っていれば、それは良いかもしれません。動的なWebアプリケーションを構築する場合、特にコンテンツのサイズに関して急速に成長する可能性がある場合、これはあなたを殺します。そして、簡単に新しい言語を追加することはできません。

クライアント側でローカライズすると、アプリケーションがひどく遅くなりますが、そうしないでください。人々はそれを嫌うでしょう。

最後に、実装する典型的な方法(他にも多くの意味があるため、ここでは最適な単語ではありません)localizabilityは、単純に文字列をいくつかのリソースファイル(Javaワールド内のResourceBundle)に抽出し、 jar.jar、de.jar、fr-CA.jar)ファイルに基づいて命名された言語ごとに1つのjarを提案します。 jarファイルには、追加のCSSファイル(特定のスタイルをオーバーライドするために使用されるコンテンツ)も含まれている必要があります。私の前の答えで見つけられるものはすべて...

関連する問題