Thursday Jul 23, 2009

NetBeans チュートリアル : GUI フォームの国際化 (2)

前回は「自動国際化」機能を使って、GUI フォームを作成時に自動的にリソースバンドルに入れていくというやり方でした。今回はある程度完成したものに対して、国際化をしてみます。「国際化」機能を使えば既存の Java ソースコードはもちろん、既存の GUI フォームも変更できます。

プロジェクトやファイルをプロジェクトウィンドウで選択して、「ツール」>「国際化」>「国際化ウィザード」を選択します。

NetBeans

ソースに対してリソースバンドルを選択する画面が出てきます。リソースバンドルがなければ、「リソースを選択」ボタンを押してそこで新規にプロパティーファイルを作成することができます。

NetBeans

次のダイアログでは getString() を呼び出すための ResourceBundle のフィールドを作成するかしないかを設定します。以下の例ではチェックを入れているので、bundle.getString() という形式で呼び出されます。GUI フォームはこのチェックに関係なく、bundle というフィールドが作成されるみたいですね。

NetBeans

通常の Java ソースファイルだと、チェックを入れるとこのように。
    private static final ResourceBundle bundle = ResourceBundle.getBundle("examples/Bundle");
    String title = bundle.getString("FIND");
チェックを外すと、直接 getBundle().getString() のコードが挿入されます。
    String title = java.util.ResourceBundle.getBundle("examples/Bundle").getString("FIND");
次のダイアログでは実際のコードを参照しながら、キーと値を決めていきます。自動的にフィールドは入るのでこのままでも問題ないと思いますが、GUI フォームとは違ってキーはハードコードされた文字列から作成されます。なのでわかりにくいかもしれませんね。

NetBeans

個々に設定するには直接テーブルを編集してもかまいませんし、隣の ... ボタンを押して編集します。

NetBeans

詳細は以下のチュートリアルに参照してください。
関連するエントリ:

Wednesday Jul 22, 2009

NetBeans チュートリアル : GUI フォームの国際化

アプリケーションの国際化、この場合はメッセージの切り替えのことですが、あまり考えないで最初から作ってしまうといざちゃんとしたものを作ろうとした時に案外面倒だったりしますよね。NetBeans の Swing GUI ビルダーでは「自動国際化」機能があります。これは NetBeans 6.0 から入った機能で、自動的にコードに getString() を追加し、プロパティーファイルを生成してくれます。GUI フォームではないソースコードでも国際化機能を使ってプロパティーファイルにメッセージを抜き出すことができます。

試しに次のような GUI フォームで切り換えられるようにしてみましょう。これは NetBeans のサンプルプロジェクトに入っている GUI Form Examples というサンプルプロジェクトです。ラベルとチェックボックス、そしてボタンがあります。

NetBeans

フォームのプロパティーを表示するにはフォームのトップ、つまり一番上の親を選択します。

NetBeans

ここでプロパティーの「リソースと国際化」以下の「自動国際化」にチェックを入れます。これは通常は選択されていませんが、Java デスクトップアプリケーションや、NetBeans モジュールアプリケーションではデフォルトでオンになっています。

NetBeans

すると examples/Bundle.properties ファイルが自動的に作成され、その時点での必要なキーと値が書き込まれます。またソースコードにも必要な変更が入ります。どのように変更されたかは、「デザイン」タブではなく「ソー ス」タブを開いて、実際のソースコードを見てみてください。

プロジェクトウィンドウを見てみます。Bundle.properties が作成されていることがわかります。ここで日本語ロケール用のファイルを追加してみましょう。Bundle.properties を選択して、メニューから「追加」>「ロケール...」を選びます。

NetBeans

次のダイアログで言語コードを「ja - 日本語」を選びます。

NetBeans

Bundle_ja.properties が作成されました。Bundle.properties の内容がコピーされています。そういえば、NetBeans 6.7 からはこの Bundle.properties の見え方が変わっていますね。6.5 までは Bundle.properties 以下にそれぞれの言語がツリー表示されていました。

NetBeans

では実際に Bundle.properites を編集していきましょう。「編集」やダブルクリックでは生のデータをエディタに読み込み、そこで編集できます。ここでは「開く」を選んでプロパティーエディタを起動してみます。



プロパティーエディタが起動しました。キーと英語を見ながらここで日本語のリソースを変更していくことができます。

NetBeans

英語ロケールでは以下のように表示されていたのが、

NetBeans

必要な日本語を入れて日本語で起動するとこのようになります。

NetBeans

詳細は以下のチュートリアルにまとまっているのでぜひ使ってみてください。

Monday Jan 12, 2009

OpenSolaris 2008.11 日本語ドキュメント

OpenSolaris 2008.11 関連の日本語ドキュメントをメモしておきます。上の3つは読んでおきたいですね。
OpenSolaris のドキュメントの翻訳状況は以下の wiki にまとめられているのですね。OpenSolaris の g11n-ja-discuss フォーラムで日本語化を行なっているようです。
OpenSolaris 2008.11 で NetBeans や Java の GUI アプリケーションを使う時にはリリースノートの記述されている以下の回避策を参考にしてください。アンチエイリアスが効かないので日本語がギザギザで表示されてしまいます。NetBeans ユーザー FAQ にも記述してあります。

Tuesday Sep 25, 2007

Swing GTK L&F ってまだまだ?

NetBeans 6.0 Beta 1 のリリースノートを眺めているのですが…
う〜ん Swing の GTK ルック&フィールサポートはやっぱりまだまだダメなんですかね。以前日本語環境で OmegaTGlossitopeNetBeans の新しいインストーラの起動が失敗するというのを書きましたが、英語環境でもいろいろと 問題が起きる場合があるようです。このリリースノートだけでも3箇所記述があります。

Solaris や Linux などの GNOME デスクトップ環境で、Java 6 u1 以降で何か問題が発生したら Metal に切り替えて動かしてみてください。--laf オプションで切り替えられます。
% netbeans -laf javax.swing.plaf.metal.MetalLookAndFeel
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today