2011-02-19 2 views
1

私はJavaで書かれたプログラムを国際化しようとしています。あなたは(ここで選択した国 Javaでアプリケーションを国際化するには?

  • ためlanuage(複数可)を提案しなければならないpreffer言語
  • られた国では

    1. :私はそこに私のプログラムのインストール中として表示いくつかの質問になることを期待してい

        :プログラムとしてメモリに必要なすべての情報を配置することその他の必要な質問

      Ather

    2. 通貨は、それはテキストが他の言語へのプログラムインターフェースに示した変更することができましいくつかのエディタを持つことも良いでしょう
    3. その他必要(標準)情報

    をdispalyingの

  • 日付と時刻の方法を使用していました。

    すでに他のプログラムのためにこのような仕事をしていた人の貢献が高く評価されます。

  • +0

    質問は? –

    +0

    良い問題の説明。あなたの質問は何ですか? –

    +0

    あなたがその言語を使っている国を尋ねることができるように、言語は始めるのが良いかもしれません。 –

    答えて

    5

    javaで最も一般的な方法は、ResourceBundleを使用することです。

    言語ごとにプロパティファイルを用意し、アプリのすべてのテキストを置くことができます。正しい名前で新しいファイルを作成すると、新しい言語を追加するのは難しいです。

    これらのファイルを編集するには、テキストエディタを使用してください。

    1

    Javaでは、通常、Locale.getLocale()コールで言語と国の情報を取得できます。これは、ユーザーのシステム(またはアカウント)が構成されているものです。その後、セットアップで尋ねる必要はありません。少なくとも、ユーザーが選択するための適切なデフォルトを提供することができます。

    多くのロケールの「通常の数値書式」(通貨を含む)のようなほとんどの情報は、すでにJavaランタイムに含まれており、NumberFormat、DateFormat、PrintWriter、Formatter、Collat​​orなどのさまざまなAPIを使用して使用できます。 。 use page for class Localeを見て、あなたのために既に存在しているもの(そして自分自身で何をしなければならないもの)の概要を知ることができます。

    0

    デスクトップアプリケーションを使用していると仮定します(インストーラのためです)。その場合は、thisリンクを読んでi18nについて考え始める。

    あなたが書いたものについては、彼がどこにいるかをユーザーに尋ねるのは意味がありません。メモリに何も保存する必要はありません。あなたが適切な形式クラス使用して、このオブジェクト、することができます簡単にフォーマット日付、時間、通貨と数字がある場合

    Locale currentLocale = Locale.getDefault(); 
    

    ::だけを経由して検出可能である現在のロケール設定、使用

    DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.getDefault()); 
    DateFormat dateTimeFormatter = DateFormat.getDateTimeInstance(
           DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.getDefault()); 
    Date now = new Date(); 
    String formattedDate = dateFormatter.format(now); 
    String formattedDateAndTime = dateTimeFormatter.format(now); 
    

    など、ただリンクを読んでください。おそらくロケール対応ソート(いわゆるCollat​​orsを介して)と文字列の外部化(Augustoが言及したResourceBundleを介して)をサポートする必要もあります。また、(単に連結するのではなく)複合文字列をフォーマットするためにMessageFormatを学ぶ必要があります。

    これはすべてではありませんが、i18nは実際には大きな話題ですが、これは良いスタートになります。