国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解Java中用于國際化的locale類

詳解Java中用于國際化的locale類

2020-05-11 11:40java教程網 JAVA教程

Java中也有用于轉換和劃分地區的國際化類java.lang.Locale,國際化在程序中設置語言和時間等時非常有用,下面我們就來詳解Java中用于國際化的locale類

1. Locale 介紹
Locale 表示地區。每一個Locale對象都代表了一個特定的地理、政治和文化地區。
在操作 Date, Calendar等表示日期/時間的對象時,經常會用到;因為不同的區域,時間表示方式都不同。
下面說說Locale對象的3種常用創建方式。
(1)獲取默認的Locale
使用方法:

?
1
Locale locale = Locale.getDefault()

(2) 直接使用Locale的靜態對象
Locale.java中提供了以下靜態對象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static final Locale CANADA
public static final Locale CANADA_FRENCH
public static final Locale CHINA
public static final Locale CHINESE
public static final Locale ENGLISH
public static final Locale FRANCE
public static final Locale FRENCH
public static final Locale GERMAN
public static final Locale GERMANY
public static final Locale ITALIAN
public static final Locale ITALY
public static final Locale JAPAN
public static final Locale JAPANESE
public static final Locale KOREA
public static final Locale KOREAN
public static final Locale PRC
public static final Locale ROOT
public static final Locale SIMPLIFIED_CHINESE
public static final Locale TAIWAN
public static final Locale TRADITIONAL_CHINESE
public static final Locale UK
public static final Locale US

使用方法:下面的Locale對象是對應 “中國(大陸)”的

?
1
Locale locale = Locale.SIMPLIFIED_CHINESE

(3)通過Locale的構造函數創建Locale對象
Locale的構造函數共有3個。如下:

?
1
2
3
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)

使用方法:

?
1
Locale local = new Locale("zh", "CN");

Locale類支持非常多的國家和地區。我們可以通過以下方法,查看Locale支持的全部區域:

?
1
2
3
4
5
Locale[] ls = Locale.getAvailableLocales();
 
for (Locale locale:ls) {
  System.out.println("locale :"+locale);
}

輸入結果如下:

?
1
All Locales: ja_JP, es_PE, en, ja_JP_JP, es_PA, sr_BA, mk, es_GT, ar_AE, no_NO, sq_AL, bg, ar_IQ, ar_YE, hu, pt_PT, el_CY, ar_QA, mk_MK, sv, de_CH, en_US, fi_FI, is, cs, en_MT, sl_SI, sk_SK, it, tr_TR, zh, th, ar_SA, no, en_GB, sr_CS, lt, ro, en_NZ, no_NO_NY, lt_LT, es_NI, nl, ga_IE, fr_BE, es_ES, ar_LB, ko, fr_CA, et_EE, ar_KW, sr_RS, es_US, es_MX, ar_SD, in_ID, ru, lv, es_UY, lv_LV, iw, pt_BR, ar_SY, hr, et, es_DO, fr_CH, hi_IN, es_VE, ar_BH, en_PH, ar_TN, fi, de_AT, es, nl_NL, es_EC, zh_TW, ar_JO, be, is_IS, es_CO, es_CR, es_CL, ar_EG, en_ZA, th_TH, el_GR, it_IT, ca, hu_HU, fr, en_IE, uk_UA, pl_PL, fr_LU, nl_BE, en_IN, ca_ES, ar_MA, es_BO, en_AU, sr, zh_SG, pt, uk, es_SV, ru_RU, ko_KR, vi, ar_DZ, vi_VN, sr_ME, sq, ar_LY, ar, zh_CN, be_BY, zh_HK, ja, iw_IL, bg_BG, in, mt_MT, es_PY, sl, fr_FR, cs_CZ, it_CH, ro_RO, es_PR, en_CA, de_DE, ga, de_LU, de, es_AR, sk, ms_MY, hr_HR, en_SG, da, mt, pl, ar_OM, tr, th_TH_TH, el, ms, sv_SE, da_DK, es_HN

下面選擇其中的兩個進行說明,如何利用它們來創建Locale對象:
例如,第一個輸出是“ja_JP”。
其中,ja代表“語言”,這里指日語;“JP”代表國家,這里指日本。
我們可以通過如下方法,創建“語言是日語,國家是日本的Locale對象”。

?
1
Locale locale = new Locale("ja", "JP");

例如,第三個輸出是“en”。
其中,en代表“語言”,這里指英語。
我們可以通過如下方法,創建“語言是英文的Locale對象”。

?
1
Locale locale = new Locale("en");

Locale 函數列表

?
1
2
3
4
// Locale的構造函數
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Object             clone()
boolean           equals(Object object)
static Locale[]       getAvailableLocales()
String             getCountry()
static Locale         getDefault()
String             getDisplayCountry(Locale locale)
final String         getDisplayCountry()
final String         getDisplayLanguage()
String             getDisplayLanguage(Locale locale)
String             getDisplayName(Locale locale)
final String         getDisplayName()
final String         getDisplayVariant()
String             getDisplayVariant(Locale locale)
String             getISO3Country()
String             getISO3Language()
static String[]       getISOCountries()
static String[]       getISOLanguages()
String             getLanguage()
String             getVariant()
synchronized int       hashCode()
synchronized static void   setDefault(Locale locale)
final String         toString()

2. Locale示例
下面通過示例演示在Date中使用Locale的。
參考代碼如下(LocaleTest.java):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.util.Locale;
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
 
/**
 * Locale 的測試程序
 */
public class LocaleTest {
 
  public static void main(String[] args) {
    // 2種不同的Locale的創建方法
    testDiffDateLocales();
 
    // 顯示所有的Locales
    testAllLocales();
  }
 
 
  /**
   * 2種不同的Locale的創建方法
   */
  private static void testDiffDateLocales() {
    // date為2013-09-19 14:22:30
    Date date = new Date(113, 8, 19, 14, 22, 30);
 
    // 創建“簡體中文”的Locale
    Locale localeCN = Locale.SIMPLIFIED_CHINESE;
    // 創建“英文/美國”的Locale
    Locale localeUS = new Locale("en", "US");
 
    // 獲取“簡體中文”對應的date字符串
    String cn = DateFormat.getDateInstance(DateFormat.MEDIUM, localeCN).format(date);
    // 獲取“英文/美國”對應的date字符串
    String us = DateFormat.getDateInstance(DateFormat.MEDIUM, localeUS).format(date);
 
    System.out.printf("cn=%s\nus=%s\n", cn, us);
  }
 
  /**
   * 顯示所有的Locales
   */
  private static void testAllLocales() {
    Locale[] ls = Locale.getAvailableLocales();
 
    System.out.print("All Locales: ");
    for (Locale locale:ls) {
      System.out.printf(locale+", ");
    }
    System.out.println();
  }
}

 

3.使用ResouceBundle讀取國際化資源文件

ResourceBundle資源包包含特定語言環境的對象。使用其可以加載并讀取語言環境資源。
1.輕松的本地化或者翻譯成不同的語言
2.一次處理多個語言環境
3.以后可以輕松的進行修改,一遍支持更多的語言環境。
 
當程序需要特定于語言環境的對象時,它使用getBundle()方法加載ResourceBundle類

?
1
ResourceBundle rb = ResourceBundle.getBundle(“res.MessageBundle”, currentLocale);

其中,res.MessageBundle代表的是我們在src下建立了一個res文件夾,而res文件夾下有一個名為MessageBundle.properteis的資源文件。我們允許在此建立多個國際化資源文件:

?
1
MessageBundle_zh_CN.properties;MessageBundle_en_US.properteis;

其中MessageBundle就是要在構造ResourceBundle時使用的字符串,這個名字合法即可,不需要特定約束。后邊的名字一定要遵循規則,

?
1
resourceName_language_country.properteis;

然后我們使用rb.getString(key);就可以獲取資源文件中的Key對應的value.
使用Struts1.x實現國際化自動切換

查看Struts源碼就可以發現,語言環境信息就存放在session中,通過this.setLocale(request, locale);
所以要實現國際化就要在頁面上點擊超鏈接經過Action的時候改變會話中Locale(語言環境)的值。在Action中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//接受客戶端傳過來的語言請求信息
String language = request.getParameter(“myLanguage”);
 
//定義語言地區信息
Locale currentLocale = null;
 
//根據不同的請求創建不同的語言環境信息
if (“zh”.equals(language)) {
  currentLocale = new Locale(“zh”, “CN”);
} else if (“en”.equals(language)) {
  currentLocale = new Locale(“en”, “US”);
}
 
//……
//將session中的信息更改掉 
this.setLocale(request, currentLocale);
 
//當然,在頁面顯示資源文件信息的時候采用如下這種方式:
 
//<bean:message key=”key” />

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩免费av一区二区 | 亚洲高清资源 | 男女全黄一级一级高潮免费看 | 国产精品久久久久国产精品 | 免费在线观看黄色网址 | 日韩在线免费观看视频 | 亚洲国产高清在线 | 桃色五月| 亚洲一区二区在线 | 免费成人黄色大片 | 国产日韩在线视频 | 午夜视频网 | 91久久夜色精品国产网站 | 一区二区欧美在线 | 国产视频一区二区 | 国内精品一区二区三区视频 | 日本精品在线观看 | 精品一区二区三区中文字幕 | 亚洲精品国产第一综合99久久 | 日本不卡高字幕在线2019 | 久久亚洲精品中文字幕 | 国产超碰在线观看 | 日韩午夜激情 | 国产精品高潮呻吟久久av野狼 | 精品一区久久 | 中文字幕精品一区 | 好吊妞国产欧美日韩免费观看视频 | 九一视频在线免费观看 | 精品国产一区二区三区性色av | 久9re热视频这里只有精品 | 久草免费福利 | 国产精品亚洲视频 | 欧美午夜一区二区三区免费大片 | 日韩理伦片在线观看视频播放 | 亚洲毛片在线观看 | 亚洲免费电影一区 | 日韩国产免费观看 | av中文字幕在线 | youjizz国产 | 91精品一区二区三区久久久久久 | 婷婷色国产偷v国产偷v小说 |