2016-04-06 18 views
0

私は国際化したいJSEで新しいアプリケーションを設計しています。 私はそのようなアプリケーションをしたことがありません。私は国際化のベストプラクティスを探しています。アプリケーションは、翻訳されたデータをファイルまたはDBに書き込んでいます。ベストプラクティスについて検索しましたが、私の主な質問(最初のもの)については何も見つかりませんでした。国際化対応の階層化アプリケーションの優れた実践

  • すべての国際化データをいくつかのレイヤーまたはオブジェクトの隣に配置する必要がありますか?

  • スイッチのケースを行うために、プロパティファイルを一種の列挙型として直接使用できますか?
    キャッチしたデータをリバースエンジニアリングしてデフォルトの国際化値を認識し、それを処理できますか?

+0

これは少し役に立ちます: http://www.avajava.com/tutorials/lessons/how-do-i-use-locales-and-resource-bundles-to-internationalize-my-application.html – Draken

答えて

1

私はいくつかの戦略に遭遇しました。私はプロパティファイルから始めます。

1つの要因は、データを専門的にでなければならないということですを維持:

  • バージョン管理に保管してください。
  • 私たち人間のバージョン番号を保持してください。 "1.0.23"
  • 翻訳を助けるために、テキストを整理していい状態にしておきます。
  • 一貫性のある翻訳のために用語集を使用して2番目のプロパティファイルを保持します。

私はDocBook XML、Excel、翻訳メモリからプロパティやJava ListResourceBundlesを生成していました。そして、はい、データベース。

いくつかの異なる当事者が異なる時間にテキストを使用するため、データの管理は慎重に行わなければなりません。 プログラミングツール、一貫性チェックとデータ準備、コミュニケーションは無視されないタスクです。

プロパティファイルは完全に理想的ではありませんが、IDEでは一般的にサポートされています。

UTF-8のすべてを設定しますが、プロパティファイルではISO-8859-1を使用しますが、\ uXXXXエスケープを使用するか、ビルドプロセスでエンコード変換を行うことができます。 ListResourceBundleよりも生成されたJavaソースは、代替となります。

+0

ありがとう、これは大いに役立ちますが、すべてのプロパティファイルを専用のパッケージに入れることができますか、プロパティファイルはそれらを使用するファイルの横に置かなければなりませんか?そして、作成されたファイルを読み返す際に、スイッチのケースに取り組む可能性のある方法を逆に組み込んでいますか? – MickMRCX

+0

テキストやスタイルを繰り返さないようにしたい。これは、i18nなどのトップパッケージで翻訳のための基礎として少なくとも1つの大きなファイルを持つことを意味します。モジュールごとにプロパティファイルを必要とするか、メインの翻訳メモリと統合するかは選択の余地があります。最後の質問では、 "xyz = [xyz]"のようなエントリを持つテストロケールを生成するか、または "xyz"と表示されている翻訳ログが欠けていますか? –

+0

だから私はすべての一般的な翻訳(追加/削除/ ...)と小さなファイルに特定の翻訳を入れて大きなファイルを作成する必要がありますか? 私がしたいのは、ファイル/ DB内の翻訳されたテキストを読み込み、プロパティファイルを検索して値の「名前」をデフォルトのプロパティファイルに切り替え、スイッチの場合にこの新しい値を使用することです。これは実現可能ですか?これはあまりにも時間がかかりませんでしたか? – MickMRCX