LỐP LOCALE

Khi cần tìm một phần mềm phù hợp cho thị trường quốc tế thì vấn đề khác biệt hiến nhiên cần chú ý đầu tiên là ngôn ngữ. vấn đề ngôn ngữ luôn là ườ ngại lớn nhất trong giao lưu quốc tế, trong đó có cả vấn đề quốc tế hoá phần mềm. Ngay cả khi một số nước sử dụng chung một ngôn ngữ, nhưng từng quốc gia, dân tộc có thề có những qui định khác nhau, do vậy vẫn phải tạo ra những phần mềm sao cho phù hợp với họ nhất có thể.

Trong tất cả các trường hợp, các thực đơn, tên các nút nhấn, các thông báo của chương trình sẽ phải được dịch sang ngôn ngữ bản địa. Ở đây, các thuật ngữ, các qui định biểu diễn dữ liệu luôn có khá nhiều sự khác biệt rất tinh vi. Ví dụ, các số được biểu diễn theo những khuôn dạng khác nhau giữa Anh (Mỹ) và Đức. Người Đức sử dụng dấu chấm ‘. ’ để phân biệt các đơn vị hàng ngàn, triệu và dấu phẩy “,” thập phân để phân biệt phần số nguyên với phần thập phân, như số 124.456,45, nhưng người Anh thì sử dụng ngược lại. vấn đề tương tự đối với việc hiển thị ngày tháng, thời gian, tiền tệ, v.v. Ngày tháng ở Mỹ được hiển thị theo mẫu tháng/ngày/năm, người Đức sử dụng theo thứ tự ngày/tháng/năm, trong khi người Trung Quốc lại sử dụng năm/tháng/ngày.

Để giải quyết những vấn đề nêu trên, Java cung cấp lớp Locate. Lớp này tập trung mô tả:

  • language: xác định ngôn ngữ, ví dụ English, German, Chinese, v.v
  • location: tên quốc gia, bản địa sử dụng ngôn ngữ nêu trên, ví dụ United State (Hoa Kỳ), Germany (Đức), China (Trung Quốc), v.v.
  • variant: (Tuỳ chọn) ít sử dụng, thường sử dụng trong những trường hợp ngoại lệ hoặc những tình huống phụ thuộc vào hệ thống qui định. Ví dụ, người Na-Uy sử dụng hai tập qui tắc viết vần; qui tắc truyền thống là Bokmal và qui tắc mới được gọi là Nynorsk. Khi muốn chọn Bokmal thì khai báo language = Norwegian, location = Norway, variant = Bokmal

Các ngôn ngũ bản địa được mã hoá trong ISO-639 (Bảng 8.1) bằng hai chữ cái thường cho ngôn ngữ và hai chữ cái hoa trong ISO-3166 (Bảng 8.2) cho tên của các quốc gia. Ta có thể xem danh sách đầy đủ các ngôn ngữ trong bảng mã ISO-639 ở http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt và danh sách đầy đủ các quốc gia trong bảng mã ISO-3166 ở http://www.niso.Org/3166.html.

Để xác định một vùng bản địa, ta phải khai báo mả ngôn ngữ, mã vùng (quốc gia) và biến thể nếu cần. Ví dụ:

Locale germanGermany – new Locate(“de”, “DE”};

Locale USA = new Locate(“en”, “US”};

Locale norwegianNorwayBokmal = new Locate (“no”, “NO”, “B”);

Để tiện lợi, JDK định nghĩa trong Locale một số ngôn ngũ phổ biến như:

Locale.CHINESE                                        Locale.ENGLISH

Locale.FRENCH                                         Locale.GERMAN

Locale.JAPANESE, v.v.

Tương tự, một sô tên nước được định nghĩa trong Locale.

Locale. CANADA.                                             Locale. CHINA

Locale.FRANCE                                                Locale.GERMANY

Locale.ITALY                                                   Locale.JAPAN

Locale.UK                                                        Locale.US, v.v.

java. util. Locale

■ static Locale getDefaultO Nhận lại một đối tượng bản địa mặc định.

  • static void setDefault(Locale 1)

Đặt lại đối tượng bàn địa mặc định là 1.

  • String getDisplayName()

Nhận lại tên của đối tượng hiển thị hiện thời.

  • String getDísplayName(Locale 1)

Nhận lai tên của đối tượng hiển thị được xác định bời 1 cho trước.

  • String getLanguage()

Nhận lại mã của ngôn ngữ theo bảng mã ISO-639.

  • String getDisplayLanguage()

Nhận lại tên của ngôn ngữ được xác định bởi đối tượng hiện thời.

  • String getDisplayLanguage(Locale 1)

Nhận lại tên cùa ngôn ngữ được xác định bời 1 cho trước.

  • String getCountryO

Nhận lại mã của nước được xác định trong bảng mâ ISO-3166.

  • String getDisplayCountrỵ()

Nhận lại tên của nước được xác định bời đối tượng hiện thời.

  • String getDisplayCountry(Locale 1)

Nhận lại tên của nước được xác định bời 1 cho trước.

  • String getVariant()

Nhận lại tên của biến thể.

  • String getDisplayVariant()

Nhận lại tên của biến thể được xác định bởi đổi tượng hiện thời.

  • String getDisplayVariant(Locate 1)

Nhận lại tên của biến thể được xác định bởi 1 cho trước.

  • String toString()

Nhận lại mô tà về đối tượng hiện thòi bao gồm mã tiếng, nước, biến thề được nối với nhau bằng dấu ví dụ “en US”.