#blackberry #internationalization
#ежевика #интернационализация
Вопрос:
Я хочу сделать свое приложение Blackberry на разных языках. Это означает, что я использую английский в качестве языка по умолчанию, а затем, когда пользователь выбирает другой язык, все элементы и все приложения будут на другом языке. Я использую этот код и помещаю файлы Local.rrc и .rrh в один и тот же пакет. Я ничего не получаю на своем экране, только белый экран. Может ли кто-нибудь мне помочь?
package mypackage;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.i18n.*;
public class Local extends UiApplication {
public static void main(String[] args) {
Local theApp = new Local();
theApp.enterEventDispatcher();
}
public Local() {
pushScreen(new LocalScreen());
}
}
final class LocalScreen extends MainScreen implements LocalDemoResource {
private static ResourceBundle res =
ResourceBundle.getBundle(BUNDLE_ID, BUNDLE_NAME);
LabelField title;
RichTextField rtf;
public LocalScreen() {
super();
title = new LabelField(res.getString(FIELD_TITLE),LabelField.ELLIPSIS| LabelField.USE_ALL_WIDTH);
setTitle(title);
rtf = new RichTextField(res.getString(MESSAGE));
add(rtf); }
public void HelloWorldScreen()
{
LabelField title = new LabelField("HelloWorld Sample",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField("Hello World!"));
}
public boolean onClose() {
Dialog.alert(res.getString(GOODBYE));
System.exit(0);
return true;
}
protected void makeMenu(Menu menu, int instance) {
menu.add(_english);
menu.add(_french);
menu.add(_spanish);
menu.add(_close);
}
private MenuItem _close = new MenuItem(res.getString(CLOSE), 110, 10) {
public void run() {
onClose();
}
};
private MenuItem _english = new MenuItem(res.getString(ENGLISH), 110, 10)
{
public void run() {
Locale.setDefault (Locale.get(Locale.LOCALE_en, null));
refresh();
}
};
private MenuItem _french = new MenuItem(res.getString(FRENCH), 110, 10) {
public void run() {
Locale.setDefault (Locale.get(Locale.LOCALE_fr, null));
refresh();
}
};
private MenuItem _spanish = new MenuItem(res.getString(SPANISH), 110, 10)
{
public void run() {
Locale.setDefault (Locale.get(Locale.LOCALE_es, null));
refresh();
}
};
private void refresh() {
title.setText(res.getString(FIELD_TITLE));
deleteAll();
rtf = new RichTextField(res.getString(MESSAGE));
add(rtf);
_english.setText(res.getString(ENGLISH));
_french.setText(res.getString(FRENCH));
_spanish.setText(res.getString(SPANISH));
_close.setText(res.getString(CLOSE));
}
}
Комментарии:
1. В чем здесь проблема? Являются ли локальные ресурсы возвращающими пустые значения? Или на экран ничего не добавляется?
2. ничего не добавлено на экране, я получаю белый экран
3. Вы в состоянии достичь этого?? Если да, то, пожалуйста, поделитесь им
4. есть пример импорта —> импорт образцов blackberry —-> LocalizationDemo объясняет, как использовать multilang в приложении blackberry
Ответ №1:
Есть пример импорта —> импорт образцов blackberry —-> LocalizationDemo объясняет, как использовать multilang в приложении blackberry