私は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カラムに一致します。
それが正しいかどうかまだ分かりませんが、この最初の引数は何ですか?ロケール?
あなた自身の回答を受け入れることができます@aida – frayab