2011-08-02 7 views
0

私は1つのtextFeildとコマンドでシンプルなフォームを作っています。実行時に必要に応じて使用できるように、ペルシア語と英語の2つの言語を使用したいと考えています。LWUIT:ローカリゼーションの問題

私はResourceEditorを使用していくつかの翻訳を行い、English.resとFarsi.resという名前で保存し、それを自分のリソースに追加しました。

ローカリゼーションメソッドを呼び出す際に問題が発生しました。これを行う方法がわからないため、ここでコードを投稿してください。

これは私のコードです:

public class Midlet extends javax.microedition.midlet.MIDlet { 

    private Hashtable locale; 

    public void startApp() { 
     Display.init(this); 

     try { 
      Resources res = Resources.open("/Lang.res");  
      //Lang.res is resource file where these languages are stored 
      // using resoureEditor. 
      locale = res.getL10N("English.res", "en"); 

      /* See text below. */ 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

     Form main = new Form((String) locale.get("FORM")); 
     main.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 

     Label label = new Label((String) locale.get("NAME")); 
     TextField tf1 = new TextField(""); 
     Button button = new Button((String) locale.get("OK")); 

     main.addComponent(label); 
     main.addComponent(tf1); 
     main.addComponent(button); 

     main.addCommand(new Command((String) locale.get("BACK")) { 
      public void actionPerformed(ActionEvent evt) {} 
     }); 
     main.show(); 
    } 
    public void pauseApp() {} 
    public void destroyApp(boolean unconditional) {} 
} 

そして、これは私のEnglish.resです:

#Export locale from the Theme Creator 
#Tue Aug 02 19:35:55 IRDT 2011 
FORM=form 
OK=ok 
BACK=back 
NAME=name 

tryブロック内の2行は正しいですか?

 Resources res = Resources.open("/Lang.res");  
     locale = res.getL10N("English.res", "en"); 

lang.resはresoureEditorを使用してこれらの言語が格納されるリソースファイルです。

その他に何が必要ですか?

最初の行で例外が発生します。 enは、必要な言語ロケールの名前で、resファイルのvalueカラムに一致します。

それが正しいかどうかまだ分かりませんが、この最初の引数は何ですか?ロケール?

+0

あなた自身の回答を受け入れることができます@aida – frayab

答えて

0

「リソースエディタ」を使用してL10Nリソースを作成することをお勧めします。これはguiと同期させることができ、このタスクを簡単に行うことができ、コードで取得するのは簡単です。

try { 
     Constants.res = Resources.open("/Lang.res"); 
    } catch (Exception e){ 
     System.err.println("can't load resource file:" + e); 
    } 
Hashtable h = Constants.res.getL10N("English.res","en"); 
関連する問題