把应用程序blackberry multilang(不同的语言)

时间:2011-10-20 10:40:18

标签: 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 个答案:

答案 0 :(得分:1)

有一个示例导入--->导入黑莓样本----> LocalizationDemo解释如何在应用程序黑莓中使用multilang