Как поменять локаль в java
Перейти к содержимому

Как поменять локаль в java

  • автор:

Класс Locale

Класс Java java.util.Locale позволяет учесть особенности региональных представлений алфавита, символов, чисел и дат. Автоматически виртуальная машина использует текущие региональные установки операционной системы, но при необходимости их можно изменять.

Для некоторых стран региональные параметры устанавливаются с помощью констант, например: Locale.US , Locale.FRANCE .

Для всех остальных объект класса Locale нужно создавать с помощью конструктора, например: Locale rus = new Locale(«ru», «RU»);

Существует константа Locale.ROOT . Она представляет локаль, для которой язык, страна равны пустой строке(«»). Эта локаль является базовой для всех остальных локалей. Используется для написания приложений, не зависящих от локали.

Определить текущий вариант региональных параметров можно следующим образом: Locale current = Locale.getDefault();

А можно и изменить для текущего экземпляра (instance) JVM: Locale.setDefault(Locale.CANADA)

Рассмотрим пример использования класса Locale :

import java.util.Locale; public class LocaleDemo1 < public static void main(String[] args) < Locale fr = Locale.FRANCE; Locale us = Locale.US; Locale uk = new Locale("uk", "UA"); Locale.setDefault(Locale.CANADA); Locale current = Locale.getDefault(); getLocaleInfo(current); getLocaleInfo(fr); getLocaleInfo(us); getLocaleInfo(uk); >private static void getLocaleInfo(Locale current) < System.out.println("Код региона: " + current.getCountry()); System.out.println("Название региона: " + current.getDisplayCountry()); System.out.println("Код языка региона: " + current.getLanguage()); System.out.println("Название языка региона: " + current.getDisplayLanguage()); System.out.println(); >>
  • Класс ResourceBundle
  • Класс NumberFormat
  • Задания

Как поменять локаль в java

Здравствуйте, Gajdalager, спасибо)

например есть объект типа jTextArea:

Locale ru = new Locale(«ru», «RU»); Locale en = new Locale(«en», «US»); InputContext InCon = TextArea.getInputContext(); Locale h = InCon.getLocale(); System.out.println(«language=» + h.getLanguage()); boolean status = InCon.selectInputMethod(ru); System.out.println(«status=» + status); InputContext InCon1 = TextArea.InputContext(); Locale h1 = InCon1.getLocale(); System.out.println(«language msg-hdr» data-get-automod-url=»/rs/message/2494323/automod» data-msg-id=»2494323″>

Смена языка (языковая панель) в Java

От: Enceladus
Дата: 21.05.07 06:20
Оценка:

Здравствуйте. Скажите пожалуйста как осуществить смену языка? В моем случае это апплет, в котором в определенных ситуациях возможно было бы сменить язык. скажем на русский шрифт. Заранее спасибо.

Re: Смена языка (языковая панель) в Java

От: aefimov http://twitter.com/#!/aefimov_box
Дата: 21.05.07 07:13
Оценка:

Здравствуйте, Enceladus, Вы писали:

E>Здравствуйте…Скажите пожалуйста как осуществить смену языка? В моем случае это апплет, в котором в определенных ситуациях возможно было бы сменить язык…скажем на русский шрифт…Заранее спасибо…

Вообще, конечно, «сменить язык на русский шрифт» — это сильно!
Начните копать здесь.

Re[2]: Смена языка (языковая панель) в Java

От: Enceladus
Дата: 29.05.07 10:22
Оценка:

Ну да. я не правильно написал))
Мне нужно сменить раскладку клавиатуры) (грубо говоря чтобы не нужно было менять язык вручную на панели задач ну или в языковой панели. )

Нашел такие варианты но все не то:

Locale l = Locale.getDefault();
System.out.println(l.getDisplayLanguage() + » — » + l.getDisplayCountry() + » — » + l.getLanguage());

все не то. сеттера у него нет. да и не выводит оно мне текущий язык. кажеться что это вообще дургая степь.

еще предложили такой вариант. но тоже без результатно. или я просто не там копал.

Не знаю может я без дарно воспользовался подсказками. или просто не нашел. но подскажите плиз. как можно смену раскладки орагнизвать.

Re[3]: Смена языка (языковая панель) в Java

От: Gajdalager
Дата: 29.05.07 10:49
Оценка:

Здравствуйте, Enceladus, Вы писали:

E>Нашел такие варианты но все не то:

E>Locale l = Locale.getDefault();
E>System.out.println(l.getDisplayLanguage() + » — » + l.getDisplayCountry() + » — » + l.getLanguage());

E>все не то. сеттера у него нет.
Сеттер есть — Locale.setDefault
E>да и не выводит оно мне текущий язык. кажеться что это вообще дургая степь.
Да, другая Это локаль, т.е. региональные настройки. По тому, что тебе нужно нашел такую ссылку здесь, так что, думаю, платформенно-независимо пока что не получится.

<< RSDN@Home 1.1.4 stable SR1 rev. 568>>
Сейчас играет Ayreon — Day seven: Hope
Re[4]: Смена языка (языковая панель) в Java

От: Enceladus
Дата: 29.05.07 11:33
Оценка:

Здравствуйте, Gajdalager, Вы писали:

G>Здравствуйте, Enceladus, Вы писали:

E>>Нашел такие варианты но все не то:

E>>Locale l = Locale.getDefault();
E>>System.out.println(l.getDisplayLanguage() + » — » + l.getDisplayCountry() + » — » + l.getLanguage());

E>>все не то. сеттера у него нет.
G>Сеттер есть — Locale.setDefault
E>>да и не выводит оно мне текущий язык. кажеться что это вообще дургая степь.
G>Да, другая Это локаль, т.е. региональные настройки. По тому, что тебе нужно нашел такую ссылку здесь, так что, думаю, платформенно-независимо пока что не получится.

А платформенно зависимая? Для винды в данном случае.

Re[5]: Смена языка (языковая панель) в Java

От: Gajdalager
Дата: 29.05.07 12:11
Оценка:

Здравствуйте, Enceladus, Вы писали:

E>А платформенно зависимая? Для винды в данном случае.
через JNI обращаться к WinAPI?

Интернализация Java – Десятичный формат, специфичный для локали

По умолчанию объект DecimalFormat использует локаль JVM. Мы можем изменить локаль по умолчанию при создании объекта DecimalFormat с помощью класса NumberFormat. В приведенном ниже примере мы будем использовать один и тот же шаблон для двух разных локалей, и вы сможете увидеть разницу в выходных данных.

IOTester.java

import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; public class I18NTester  public static void main(String[] args)  String pattern = "###.##"; double number = 123.45; Locale enlocale = new Locale("en", "US"); Locale dalocale = new Locale("da", "DK"); DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(enlocale); decimalFormat.applyPattern(pattern); System.out.println(decimalFormat.format(number)); decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(dalocale); decimalFormat.applyPattern(pattern); System.out.println(decimalFormat.format(number)); > >

Выход

Будет напечатан следующий результат.

Как поменять язык в java

Если вы используете стандартные библиотеки Java для создания пользовательского интерфейса, например, классы Swing или JavaFX , то вы можете изменить язык интерфейса пользователя с помощью класса Locale .

Например, чтобы установить язык на французский, вы можете использовать следующий код:

Locale.setDefault(new Locale("fr", "FR")); 

Этот код устанавливает локаль на французскую локаль. При создании экземпляров Swing или JavaFX ваши компоненты интерфейса пользователя будут использовать французские ресурсы.

Если вы хотите изменить язык консольного вывода, то можно использовать тот же класс Locale для изменения локали консоли.

System.out.println(Locale.getDefault()); // => ru_RU Locale.setDefault(new Locale("fr", "FR")); System.out.println(Locale.getDefault()); // => fr_FR 

Этот код выведет текущую локаль и затем изменит ее на французскую локаль и выведет ее снова.

Если же вам нужно изменить сами языковые настройки в вашем приложении, то вам нужно обратиться к соответствующей документации или руководству по вашему фреймворку или библиотеке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *