поставить приложение blackberry multilang (на разных языках)

#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