Узнайте, как получить локаль пользователя в Java, которая используется для форматирования контента в соответствии с демографическими данными пользователя(географической, политической или культурной информацией).
1. Что такое Локаль?
Предположим, что мы разрабатываем приложение и нас просят настроить приложение для международных конечных пользователей. Чтобы настроить наше приложение для международной аудитории, нам нужно будет знать местоположение пользователя, а затем отформатировать определенную информацию, связанную с местоположением(например, дату-время, валюту, метки полей и т. д.), на основе информации о местоположении.
Информация о местоположении в Java представлена классом Locale. Мы можем использовать этот класс для операций, чувствительных к локали, таких как отображение числа, суммы и т. д.
Класс Locale реализует IETF BCP 47, который предоставляет стандартизированный код или тег, используемый для идентификации человеческих языков в Интернете.
2. Получите локаль пользователя в веб-приложениях
В веб-приложениях Java информация о локали извлекается из объекта ServletRequest( и HttpServletRequest ), полученного на стороне сервера. Используйте вызов метода ниже для получения текущей информации о локали:
Locale currentLocale = httpServletRequest.getLocale();System.out.println(currentLocale.getDisplayLanguage()); //EnglishSystem.out.println(currentLocale.getDisplayCountry()); //United StatesSystem.out.println(currentLocale.getLanguage()); //enSystem.out.println(currentLocale.getCountry()); //US
3. Получите локаль по умолчанию в настольных приложениях
В настольных приложениях Java информация о локали извлекается с помощью Locale.getDefault(), который возвращает локаль по умолчанию, установленную в виртуальной машине Java. Мы также можем использовать системные свойства «user.country» и «user.language» для этой информации.
Виртуальная машина Java устанавливает локаль по умолчанию во время запуска на основе среды и настроек хост-машины.
Locale currentLocale = Locale.getDefault();System.out.println(currentLocale.getDisplayLanguage()); //EnglishSystem.out.println(currentLocale.getDisplayCountry()); //United StatesSystem.out.println(currentLocale.getLanguage()); //enSystem.out.println(currentLocale.getCountry()); //USSystem.out.println(System.getProperty("user.language")); //enSystem.out.println(System.getProperty("user.country")); //US
Вот и все, что касается простой, легкой, но важной информации о получении информации о локали в Java.