JAVA SWT,实现多国语言切换

 

//用的是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]