Я сделал простую форму с одним textFeild и командой, я хочу иметь два языка: фарси и английский, чтобы я мог использовать их в соответствии со своими потребностями во время выполнения.
Я сделал несколько переводов с помощью 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) {}
}
А это мой англ.res:
#Export locale from the Theme Creator
#Tue Aug 02 19:35:55 IRDT 2011
FORM=form
OK=ok
BACK=back
NAME=name
Верны ли эти две строки в блоке try
?
Resources res = Resources.open("/Lang.res");
locale = res.getL10N("English.res", "en");
Lang.res - это файл ресурсов, в котором эти языки хранятся с помощью resoureEditor.
Что еще мне нужно сделать?
Я получаю исключение в первой строке. en
- имя требуемой языковой локали, соответствующее столбцу значения в файле res.
Я все еще не уверен, правильно это или нет, но каков этот первый аргумент? Locale