BlackBerry中的I18N ( 国际化)

版权所有,转载请注明来自 http://mdev.cc SinFrancis

 

 

一般做WEB的都知道国际化,比如Struts等WEB框架的资源配置文件,Andriod中也有资源配置,会根据手机自身的本地配置

来匹配相关的资源,其实在BlackBerry中也有相关的配置,那就是我们的rrh和rrc文件了。

 

 

下面我将详细讲述如何进行BB的国际化!

 

1、开发工具 eclipse + BB4.5 插件 

      BB 8300汉化模拟器,可以显示英文和中文。

      没汉化的请看这个帖子:(http://sinfrancis.javaeye.com/blog/546371)

2. 建立BB项目 ,项目名称为 : blackB   (随便!)

 

3. 建立资源文件 rrh 和rrc

 如图:

 


 

 

 

blackB.rrh 为资源引导文件,blackB.rrc为默认的资源文件,blackB_en.rrc为英文资源文件,blackB_zh.rrc为中文资源文件。

 

当系统为英文的时候,将调用blackB_en.rrc里面的资源,中文时调用blackB_zh.rrc文件,否则调用blackB.rrc文件。

请看里面的内容:

 



 

 

 

 

添加key的时候只需要在rrh文件添加即可,它会自动将所有的rrc文件都添加上此key,然后就是在不同的文件中写value值。

 

 

4、调用

 

当建立了rrc文件的时候,系统会对应产生一个借口,比如rrc文件为 blackB.rrc ,那就会生成一个blackBResource 名称的接口,这个接口是看不到哦。

 

请看我刚才建立的rrc文件生成的接口:

 

 

Java代码 复制代码
  1. package res;   
  2.   
  3. public interface blackBResource {   
  4.     // Hash of: "res.blackB".   
  5.     long BUNDLE_ID = 0x671fc6087dc0beaaL;   
  6.     String BUNDLE_NAME = "res.blackB";   
  7.   
  8.     int hello = 0;   
  9.     int world = 1;   
  10. }  

 

 

接口生成完毕,那么接下来就是正式的调用了,调用的类需要继承生成的资源接口,然后生成ResourceBundle即可取得想要的资源,请看关键代码:

 

 

Java代码 复制代码
  1. class Screen1 extends MainScreen  implements blackBResource{   
  2.     ActiveRichTextField f;   
  3.   
  4.     /**  
  5.      * 加载资源  
  6.      */  
  7.     private ResourceBundle _resources = ResourceBundle.getBundle(BUNDLE_ID,   
  8.             BUNDLE_NAME);   
  9.     public Screen1() {   
  10.         f = new ActiveRichTextField(_resources.getString(hello)) ;   
  11.         add(f);   
  12.     }   
  13.        
  14. }  

 

类的全部代码:

 

 

 

Java代码 复制代码
  1. import res.blackBResource;   
  2.   
  3. import net.rim.device.api.i18n.ResourceBundle;   
  4. import net.rim.device.api.ui.UiApplication;   
  5. import net.rim.device.api.ui.component.ActiveRichTextField;   
  6. import net.rim.device.api.ui.container.MainScreen;   
  7.   
  8.   
  9.   
  10. /**  
  11.  * @site http://androidos.cc http://mdev.cc  
  12.  * @author SinFrancis Wong  
  13.  * @since 2009-12-09  
  14.  *  
  15.  */  
  16. public class Main extends UiApplication{   
  17.     public Main() {   
  18.         pushScreen(new Screen1());   
  19.     }   
  20.   
  21.     public static void main(String[] args) {   
  22.         Main m = new Main();   
  23.         m.enterEventDispatcher();   
  24.     }   
  25. }   
  26.   
  27. class Screen1 extends MainScreen  implements blackBResource{   
  28.     ActiveRichTextField f;   
  29.   
  30.     /**  
  31.      * 加载资源  
  32.      */  
  33.     private ResourceBundle _resources = ResourceBundle.getBundle(BUNDLE_ID,   
  34.             BUNDLE_NAME);   
  35.     public Screen1() {   
  36.         f = new ActiveRichTextField(_resources.getString(hello)) ;   
  37.         add(f);   
  38.     }   
  39.        
  40. }  

 

 

 

5、运行程序,运行8300模拟器,将程序安装进去,改变手机的语言,即可看到不同的效果。

 

你可能感兴趣的:(struts,String,Class,BlackBerry,resources,web框架)