溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于java1.8中的語(yǔ)言國(guó)際化ResourceBundle的使用

發(fā)布時(shí)間:2020-06-19 11:29:34 來(lái)源:網(wǎng)絡(luò) 閱讀:541 作者:一杯開(kāi)心茶 欄目:軟件技術(shù)

比如你要寫(xiě)一個(gè)軟件,既要支持中文顯示和操作,也要支持英文顯示和操作。如何解決?
方法1,單獨(dú)寫(xiě)兩套軟件;方法2,一套軟件,兩套配置,對(duì)其中所有要顯示的字段都做兩份描述,一份中文,一份英文,程序啟動(dòng)的時(shí)候,根據(jù)操作語(yǔ)言選擇中文還是英文的描述。
java就提供了方法2這樣的api功能,ResourceBundle,簡(jiǎn)化了開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率。
使用起來(lái)也很方便,創(chuàng)建多個(gè)配置文件,然后在程序中根據(jù)用戶選擇使用哪套配置即可。

  1. 弄清楚路徑問(wèn)題

我們創(chuàng)建Message_zh_CN.properties文件和Message_en_CA.properties,這兩個(gè)文件放在項(xiàng)目的src路徑下,這兩個(gè)文件格式默認(rèn)是ISO-8859-1。文件名只要符合 xxx_xxx_xxx.properties格式即可,前面的部分可以替換。

Message_en_CA.properties文件中的內(nèi)容,其中{0}{1}{0}是參數(shù)綁定的用法,后面示例可以看到,這樣子就可以動(dòng)態(tài)綁定需要的內(nèi)容。

info= hello{0}{1}{0}

Message_zh_CN.properties

info= \u4f60\u597d\uff01{0}{1}{0}
  1. 代碼調(diào)用
package baseAPI;
import java.util.ResourceBundle;
import java.text.MessageFormat;
import java.util.Locale;
public class useResourceBundle {
    public static void main(String[] args) {
      //配置需要讀取的配置文件Message_en_CA.properties
        Locale zhLoc = new Locale("en","CA");       
        ResourceBundle rb = ResourceBundle.getBundle("Message",zhLoc);
        //通過(guò)getString方式獲取字段值
        System.out.println("內(nèi)容:"+rb.getString("info"));
        String str1="內(nèi)容:"+rb.getString("info");
        //此處使用了之前配置文件的{0}{1}
        System.out.println(MessageFormat.format(str1, " one","two"));
        //Message_zh_CN.properties
        Locale zhLoc1 = new Locale("zh","CN");
        rb = ResourceBundle.getBundle("Message",zhLoc1);
        System.out.println("內(nèi)容:"+rb.getString("info"));
        str1="內(nèi)容:"+rb.getString("info");
System.out.println(MessageFormat.format(str1, "一","二"));
    }
}
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI