//用的是swt 选择一种语言后 系统重新启动 起动后的画面的语言变化 private class ComboSelectedAction extends SelectionAdapter { //---------------------------------------------------------------------- /** * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ //---------------------------------------------------------------------- public void widgetSelected(SelectionEvent e) { String selectText = languageCombo.getText() ; if(selectText.equals(LANG_ENGLISH)){ //keepLang = "en_US"; keepLang = Locale.ENGLISH; }else if(selectText.equals(LANG_JAPANESE)){ //keepLang = "ja_JP"; keepLang = Locale.JAPANESE; }else if(selectText.equals(LANG_KOREAN)){ //keepLang = "ko_KR"; keepLang = Locale.KOREAN; }else if(selectText.equals(LANG_CHINESE)){ //keepLang = "zh_TW"; keepLang = Locale.TRADITIONAL_CHINESE; } } protected void okPressed() { keepLang.toString(); //当ok按钮按下时,取得的语言类型保存到文件中,然后系统重新启动,但保存的文件里面应该存入哪些信息呢??? //properties文件名分别是messages.properties,messages_ja.properties`messages_ko.properties,messages_zh_TW.properties
//AplMain.writeSystemProperties( setFilePathEXE() + INI_FILE ); //AplMain.restart() ; }
保存设置的语言keepLang这个串,然后系统重新启动的时候去读这个串,如果为中文,解析messages_zh.properties到map(如果为台湾加载messages_zh_TW.properties等等),界面加载的时候去map中取值
设置系统偏好就可以了,不用自己保存文件
[code="java"]
Preferences pref = Preferences.systemRoot();
pref.put("App_Lang", Locale.TRADITIONAL_CHINESE.toString());
[/code]
以后获取时:
[code="java"]
Locale locale=new Locale(pref.get("App_Lang", Locale.SIMPLIFIED_CHINESE.toString()));
System.out.println(locale);
[/code]