Sẽ dễ dàng hơn nhiều nếu có những ổ cắm điện giống nhau trên khắp thế giới, nguyên tắc viết số và ngày tháng. Tuy nhiên, điều này vẫn chưa xảy ra và các lập trình viên phải tính đến điều này. Đặc biệt, lớp java.util.Locale cho phép bạn tính đến các đặc thù của cách biểu diễn khu vực của bảng chữ cái, ký hiệu, số và ngày tháng. Trong bài viết này, chúng ta sẽ xem xét lớp Java Locale và đưa ra các ví dụ về cách sử dụng nó.

Địa điểm là gì

Khi cài đặt hệ điều hành Microsoft Windows, bạn sẽ được hỏi về quốc gia và ngôn ngữ của mình. Trên thực tế, những khoảnh khắc như vậy có liên quan đến việc sử dụng Locale . Có thể nói bạn tạo một đối tượng của lớp Locale , chỉ định quốc gia và ngôn ngữ. Thao tác này sẽ hiển thị các cài đặt liên quan khác, chẳng hạn như hiển thị ngày và giờ. Máy ảo Java lấy các cài đặt vùng từ hệ điều hành. Tuy nhiên, ngôn ngữ mặc định trong Java có thể được thay đổi bằng một phương thức đặc biệt nếu cần thiết.

Tạo các đối tượng của Lớp ngôn ngữ Java

Đối với một số quốc gia, cài đặt ngôn ngữ được đặt bằng các hằng số, ví dụ:
Locale.US
Locale.UK
Đối với tất cả các quốc gia khác, một đối tượng của lớp Locale phải được tạo bằng cách sử dụng hàm tạo, ví dụ:
Locale ukr = new Locale("ukr", "UA");
Có một hằng số Locale.ROOT . Gốc ngôn ngữ đại diện cho ngôn ngữ nơi ngôn ngữ và quốc gia bằng chuỗi trống (""). Ngôn ngữ này là ngôn ngữ cơ sở cho tất cả các ngôn ngữ khác. Được sử dụng để viết các ứng dụng độc lập với miền địa phương. Hãy lấy một ví dụ nhỏ.
import java.util.Locale;

public class LocaleExample1 {

   public static void main(String[] args) {
       var uk = Locale.UK;
       System.out.println(uk);
       Locale ua = new Locale("ukr", "UA");
       System.out.println(ua);
          }

   }
Đây là đầu ra:
en_GB ukr_UA

Phương thức lớp địa phương. Cách xác định Ngôn ngữ hiện tại hoặc thay đổi nó

Có nhiều phương thức của lớp Locale trong Java. Bạn có thể học chúng từ Javadoc . Ở đây chúng tôi chỉ xem qua một vài trong số họ. Bạn có thể xác định cài đặt ngôn ngữ hiện tại bằng phương thức Locale.getDefault() :
Locale current = Locale.getDefault();
Bạn có thể thay đổi ngôn ngữ hiện tại cho phiên bản hiện tại của JVM bằng phương thức setDefault() :
Locale.setDefault(Locale.CANADA);
Chuỗi phương thức getCountry() trả về mã quốc gia hoặc mã vùng cho miền địa phương này. Nó có thể là chuỗi trống (mã 2 chữ cái ISO 3166 viết hoa) hoặc mã 3 chữ số UN M.49. Chuỗi getDisplayCountry() trả về tên quốc gia của ngôn ngữ phù hợp để hiển thị cho người dùng. Chuỗi getDisplayCountry(Locale inLocale) trả về tên quốc gia của miền địa phương phù hợp để hiển thị cho người dùng. Chuỗi getDisplayLanguage() trả về tên cho ngôn ngữ của ngôn ngữ phù hợp để hiển thị cho người dùng. Chuỗi getDisplayLanguage(Locale inLocale) trả về tên cho ngôn ngữ của ngôn ngữ phù hợp để hiển thị cho người dùng. Chuỗi getLanguage() trả về mã ngôn ngữ của Locale .

Ví dụ về lớp ngôn ngữ

import java.util.Locale;
//Locale Example
public class LocaleExample1 {

   public static void main(String[] args) {
       var uk = Locale.UK;
       System.out.println(uk);
       Locale ua = new Locale("ukr", "UA");
       System.out.println(ua);
       Locale.setDefault(Locale.CANADA);
       Locale current = Locale.getDefault();

       getLocaleInfo(current);
       getLocaleInfo(ua);
       getLocaleInfo(uk);
   }

   private static void getLocaleInfo(Locale current) {
       System.out.println("Country code: " + current.getCountry());
       System.out.println("Name of the Country: " + current.getDisplayCountry());
       System.out.println("Language Code: " + current.getLanguage());
       System.out.println("Language Name: "
               + current.getDisplayLanguage());
       System.out.println();
   }
}
Đây là đầu ra:
en_GB ukr_UA Mã vùng: CA Tên quốc gia: Canada Mã ngôn ngữ: vi Tên ngôn ngữ: Tiếng Anh Mã vùng: UA Tên quốc gia: Ukraine Mã ngôn ngữ: ukr Tên ngôn ngữ: Tiếng Ukraina