Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Locale extends Object implements Cloneable, Serializable
Locale
объект представляет определенную географическую, политическую, или культурную область. Работа, которая требует a Locale
выполнять его задачу вызывают чувствительное к локали и использует Locale
адаптировать информацию для пользователя. Например, отображение числа является секретной операцией локали — число должно быть отформатировано согласно таможне и соглашениям собственной страны пользователя, области, или культуры. Locale
class реализует BCP IETF 47, который составляется из
A Locale
объект логически состоит из полей, описанных ниже.
Locale
всегда канонизирует к нижнему регистру.[a-zA-Z]{2,8}
. Отметьте, что это не полное производство языка BCP47, так как оно исключает extlang. Они не необходимы, так как современные трехбуквенные коды языка заменяют их.Locale
всегда канонизирует к случаю title (первая буква является верхним регистром, и остальная часть букв нижний регистр).[a-zA-Z]{4}
Locale
всегда канонизирует к верхнему регистру.[a-zA-Z]{2} | [0-9]{3}
Locale
. То, где есть две или больше разновидности, оценивает каждое указание на ее собственную семантику, эти значения должны быть упорядочены важностью с самым важным, первым, разделенным подчеркиванием (' _ '). Различное поле является чувствительным к регистру.Однако, различное поле в Locale
исторически использовался для любого вида изменения, не только изменений языка. Например, некоторые поддерживаемые разновидности, доступные в Java Среды выполнения SE, указывают на альтернативные культурные поведения, такие как сценарий числа или тип календаря. В BCP 47 этих видов информации, которая не идентифицирует язык, поддерживаются подтегами расширения или подтегами личного пользования.
SUBTAG (('_'|'-') SUBTAG)*
где SUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}
. (Отметьте: BCP 47 только дефис использования ('-') как разделитель, это более снисходительно).Locale
реализуйте семантику и синтаксис BCP 47 подтегов расширения и подтеги личного пользования. Расширения являются нечувствительными к регистру, но Locale
канонизирует все ключи расширения и оценивает нижнему регистру. Отметьте, что у расширений не может быть пустых значений.[0-9a-zA-Z]
. У правильно построенных значений есть форма SUBTAG ('-' SUBTAG)*
где для ключа 'x' SUBTAG = [0-9a-zA-Z]{1,8}
и для других ключей SUBTAG = [0-9a-zA-Z]{2,8}
(то есть, 'x' позволяет одно-символьные подтеги).Locale
class не обеспечивает функций проверки допустимости. Builder
только проверки, если отдельное поле удовлетворяет синтаксическое требование (правильно построено), но не проверяют значения непосредственно. См. Locale.Builder
для деталей. UTS#35, "Язык разметки Данных Локали Unicode" определяет дополнительные атрибуты и ключевые слова, чтобы переопределить или совершенствовать поведение значения по умолчанию, связанное с локалью. Ключевое слово представляется парой ключа и типа. Например, "тайский ню" указывает, что тайские локальные цифры (оцените: "тайский язык"), должен использоваться для того, чтобы отформатировать числа (ключ: "ню").
Ключевые слова отображаются на BCP 47 значений расширения, используя ключ 'u' расширения (UNICODE_LOCALE_EXTENSION
). Вышеупомянутый пример, "тайский ню", становится расширением "u-nu-thai".code
Таким образом, когда a Locale
объект содержит атрибуты локали Unicode и ключевые слова, getExtension(UNICODE_LOCALE_EXTENSION)
возвратит Строку, представляющую эту информацию, например, "тайского ню". Locale
class также обеспечивает getUnicodeLocaleAttributes()
, getUnicodeLocaleKeys()
, и getUnicodeLocaleType(java.lang.String)
которые позволяют Вам атрибутам локали Unicode доступа и парам ключа/типа непосредственно. Когда представлено как строка, атрибуты списков Расширения Локали Unicode в алфавитном порядке, сопровождаемый последовательностями ключа/типа с ключами, перечисленными в алфавитном порядке (порядок подтегов, включающих тип ключа, фиксируется, когда тип определяется),
У правильно построенного ключа локали есть форма [0-9a-zA-Z]{2}
. У правильно построенного типа локали есть форма "" | [0-9a-zA-Z]{3,8} ('-' [0-9a-zA-Z]{3,8})*
(это может быть пусто, или серия подтегов 3-8 alphanums в длине). У правильно построенного атрибута локали есть форма [0-9a-zA-Z]{3,8}
(это - единственный подтег с той же самой формой как подтег типа локали).
Расширение локали Unicode определяет дополнительное поведение в чувствительных к локали службах. Хотя спецификация LDML определяет различные ключи и значения, фактические чувствительные к локали реализации службы в среде выполнения Java не могли бы поддерживать определенные атрибуты локали Unicode или пар ключа/типа.
Есть несколько различных способов создать a Locale
объект.
Используя Locale.Builder
можно создать a Locale
объект, который приспосабливает BCP 47 синтаксисам.
Locale
class предоставляет трем конструкторам:
Эти конструкторы позволяют Вам создавать aLocale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
Locale
объект с языком, страной и разновидностью, но невозможно определить сценарий или расширения. Метод forLanguageTag(java.lang.String)
создает a Locale
объект для правильно построенного BCP 47 тегов языка.
Locale
class обеспечивает много удобных констант, которые можно использовать, чтобы создать Locale
объекты для обычно используемых локалей. Например, следующее создает a Locale
объект для Соединенных Штатов:
Locale.US
Если приложение или система интернационализируются и обеспечивают локализованные ресурсы для многократных локалей, это иногда должно находить одну или более локалей (или теги языка), которые встречают определенное предпочтение каждого пользователя. Отметьте, что термин "тег языка" используется взаимозаменяемо с "локалью" в этой документации соответствия локали.
Чтобы сделать соответствие привилегированных локалей пользователя к ряду тегов языка,
Предпочтение пользователя вызывают Приоритетным Списком Языка и выражается как список диапазонов языка. Есть синтаксически два типа диапазонов языка: основной и расширенный. См. Locale.LanguageRange
для деталей.
Работа фильтрации возвращает все теги языка соответствия. Это определяется в RFC 4647 следующим образом: "В фильтрации каждый диапазон языка представляет наименее определенный тег языка (то есть, тег языка с наименьшим количеством числа подтегов), который является приемлемым соответствием. У всех тегов языка в соответствующем наборе тегов будет равное или большее число подтегов чем диапазон языка. Каждый неподстановочный подтег в диапазоне языка появится в каждых из соответствующих тегов языка."
Есть два типа фильтрации: фильтрация для диапазонов языка Бэйсик (вызванный "основная фильтрация") и фильтрация для расширенных диапазонов языка (вызванный "расширенная фильтрация"). Они могут возвратить различные результаты тем, какие диапазоны языка включаются в данный Приоритетный Список Языка. Locale.FilteringMode
параметр, чтобы определить, как фильтрация должна быть сделана.
Работа поиска возвращает лучшие теги языка соответствия. Это определяется в RFC 4647 следующим образом: "В отличие от этого, с фильтрацией, каждый диапазон языка представляет самый определенный тег, который является приемлемым соответствием. Первый найденный тег соответствия, согласно приоритету пользователя, считают самым близким соответствием и является возвращенным элементом."
Например, если Приоритетный Список Языка состоит из двух диапазонов языка, "zh-Hant-TW"
и "en-US"
, в расположенном по приоритетам порядке метод поиска прогрессивно ищет теги языка ниже, чтобы найти лучший тег языка соответствия.
Если есть тег языка, который соответствует полностью к диапазону языка выше, тег языка возвращается.1. zh-Hant-TW 2. zh-Hant 3. zh 4. en-US 5. en
"*"
специальный диапазон языка, и он игнорируется в поиске.
Если многократный язык тегирует соответствие в результате подтега '*'
включенный в диапазон языка, первый тег языка соответствия, возвращенный Iterator
по a Collection
из языка теги обрабатывается как лучшее соответствие того.
Как только Вы создали a Locale
можно запросить это для информации о себе. Использовать getCountry
получить страну (или область) код и getLanguage
получить код языка. Можно использовать getDisplayCountry
получить имя страны, подходящей для того, чтобы вывести на экран пользователю. Точно так же можно использовать getDisplayLanguage
получить имя языка, подходящего для того, чтобы вывести на экран пользователю. Интересно, getDisplayXXX
методы самостоятельно чувствительны к локали и имеют две версии: тот, который использует значение по умолчанию DISPLAY
локаль и тот, который использует локаль, определенную как параметр.
Платформа Java обеспечивает много классов, которые выполняют секретные операции локали. Например, NumberFormat
class форматирует числа, валюту, и проценты чувствительным к локали способом. Классы такой как NumberFormat
имейте несколько методов удобства для того, чтобы создать объект значения по умолчанию того типа. Например, NumberFormat
class обеспечивает эти три метода удобства для того, чтобы они создали значение по умолчанию NumberFormat
объект:
У каждого из этих методов есть две разновидности; один с явной локалью и один без; последнее использование значение по умолчаниюNumberFormat.getInstance() NumberFormat.getCurrencyInstance() NumberFormat.getPercentInstance()
FORMAT
локаль: ANumberFormat.getInstance(myLocale) NumberFormat.getCurrencyInstance(myLocale) NumberFormat.getPercentInstance(myLocale)
Locale
механизм для того, чтобы идентифицировать вид объекта (NumberFormat
) то, что требуется добраться. Локаль является только механизмом для того, чтобы идентифицировать объекты, не контейнер для объектов непосредственно. Чтобы поддержать совместимость с существующим использованием, конструкторы Локали сохраняют свое поведение до версии 1.7 среды выполнения Java. То же самое в значительной степени истинно для toString
метод. Таким образом объекты Локали могут продолжать использоваться, как они были. В частности клиенты, которые анализируют вывод toString на язык, страну, и различные поля, могут продолжать делать так (хотя этому строго обескураживают), хотя у различного поля будет дополнительная информация в нем, если сценарий или расширения будут присутствовать.
Кроме того, BCP 47 вводит ограничения синтаксиса, которые не налагаются конструкторами Локали. Это означает, что преобразования между некоторыми Локалями и BCP 47 тегов языка не могут быть сделаны, не теряя информацию. Таким образом toLanguageTag
не может представить состояние локалей, язык которых, страна, или разновидность не соответствуют BCP 47.
Из-за этих проблем рекомендуется, чтобы клиенты перешли далеко от построения несоответствующих локалей и использовали forLanguageTag
и Locale.Builder
API вместо этого. Клиенты, требующие строкового представления полной локали, могут тогда всегда полагаться toLanguageTag
с этой целью.
По причинам совместимости две несоответствующих локали обрабатываются как особые случаи. Они - ja_JP_JP и th_TH_TH. Они плохо формируются в BCP 47, так как разновидности слишком коротки. Чтобы ослабить миграцию к BCP 47, они обрабатываются особенно во время конструкции. Эти два случая (и только они) заставляют конструктора генерировать расширение, все другие значения ведут себя точно, как они сделали до Java 7.
Java использовал ja_JP_JP, чтобы представить японский язык как использующийся в Японии вместе с японским Имперским календарем. Это - теперь представимое использование расширения локали Unicode, определяя ключ ca локали Unicode (для "календаря") и тип japanese. Когда конструктора Локали вызывают с параметрами "ja", "JP", "JP", расширение "u-ca-japanese" автоматически добавляется.
Java использовал th_TH_TH, чтобы представить тайский язык как использующийся в Таиланде вместе с тайскими цифрами. Это - также теперь представимое использование расширения локали Unicode, определяя ключ nu локали Unicode (для "числа") и значение thai. Когда конструктора Локали вызывают с параметрами "th", "TH", "TH", расширение "u-nu-thai" автоматически добавляется.
Во время сериализации writeObject пишет все поля в поток вывода, включая расширения.
Во время десериализации readResolve добавляет расширения как описано в Особых случаях, только для этих двух случаев th_TH_TH и ja_JP_JP.
Конструктор локали всегда преобразовывал три кода языка в их ранее, obsoleted формы: he отображается на iw, yi отображается на ji, и id отображается на in. Это продолжает иметь место, чтобы не повредить назад совместимость.
API, добавленные в 1.7 картах между старыми и новыми кодами языка, поддерживая старые коды, внутренние к Локали (так, чтобы getLanguage
и toString
отразите старый код), но использование новых кодов в BCP 47 API тега языка (так, чтобы toLanguageTag
отражает новый). Это сохраняет эквивалентность между Локалями независимо от того, которые кодируют, или API используется, чтобы создать их. Механизм поиска пакета ресурса значения по умолчанию Java также реализует это отображение, так, чтобы ресурсы можно было назвать, используя любое соглашение, см. ResourceBundle.Control
.
Конструкторы Локали всегда определяли, что язык и страна param быть двумя символами в длине, хотя практически они приняли любую длину. Спецификация была теперь ослаблена, чтобы позволить коды языка двух - восьми символов и страны (область) коды двух - трех символов, и в частности трехбуквенные коды языка и трехразрядные коды области как определено в Реестре Подтега Языка IANA. Для совместимости реализация все еще не налагает ограничение длины.
Locale.Builder
, ResourceBundle
, Format
, NumberFormat
, Collator
, Сериализированная ФормаМодификатор и Тип | Класс и Описание |
---|---|
static class |
Локаль. Разработчик
Builder используется, чтобы создать экземпляры Locale от значений, сконфигурированных методами set. |
static class |
Локаль. Категория
Перечисление для категорий локали.
|
static class |
Локаль. FilteringMode
Это перечисление обеспечивает константы, чтобы выбрать режим фильтрации для соответствия локали.
|
static class |
Локаль. LanguageRange
Этот class выражает Диапазон Языка, определенный в
|
Модификатор и Тип | Поле и Описание |
---|---|
static Locale |
КАНАДА
Полезная константа для страны.
|
static Locale |
CANADA_FRENCH
Полезная константа для страны.
|
static Locale |
КИТАЙ
Полезная константа для страны.
|
static Locale |
КИТАЙСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
АНГЛИЙСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
ФРАНЦИЯ
Полезная константа для страны.
|
static Locale |
ФРАНЦУЗСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
НЕМЕЦКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
ГЕРМАНИЯ
Полезная константа для страны.
|
static Locale |
ИТАЛЬЯНСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
ИТАЛИЯ
Полезная константа для страны.
|
static Locale |
ЯПОНИЯ
Полезная константа для страны.
|
static Locale |
ЯПОНСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
КОРЕЯ
Полезная константа для страны.
|
static Locale |
КОРЕЙСКИЙ ЯЗЫК
Полезная константа для языка.
|
static Locale |
PRC
Полезная константа для страны.
|
static char |
PRIVATE_USE_EXTENSION
Ключ для расширения личного пользования ('x').
|
static Locale |
КОРЕНЬ
Полезная константа для корневой локали.
|
static Locale |
SIMPLIFIED_CHINESE
Полезная константа для языка.
|
static Locale |
ТАЙВАНЬ
Полезная константа для страны.
|
static Locale |
TRADITIONAL_CHINESE
Полезная константа для языка.
|
static Locale |
ВЕЛИКОБРИТАНИЯ
Полезная константа для страны.
|
static char |
UNICODE_LOCALE_EXTENSION
Ключ для расширения локали Unicode ('u').
|
static Locale |
US
Полезная константа для страны.
|
Конструктор и Описание |
---|
Locale(String language)
Создайте локаль из кода языка.
|
Locale(String language, String country)
Создайте локаль из языка и страны.
|
Locale(String language, String country, String variant)
Создайте локаль из языка, страны и разновидности.
|
Модификатор и Тип | Метод и Описание |
---|---|
Объект |
clone()
Переопределения Cloneable.
|
boolean |
equals(Object obj)
Возвращает true, если эта Локаль равна другому объекту.
|
static List<Locale> |
filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
Возвращает список соответствия
Locale экземпляры используя механизм фильтрации определяются в RFC 4647. |
static List<Locale> |
filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)
Возвращает список соответствия
Locale экземпляры используя механизм фильтрации определяются в RFC 4647. |
static List<String> |
filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags)
Возвращает список соответствия тегов языков, используя основной механизм фильтрации, определенный в RFC 4647.
|
static List<String> |
filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)
Возвращает список соответствия тегов языков, используя основной механизм фильтрации, определенный в RFC 4647.
|
static Locale |
forLanguageTag(String languageTag)
Возвращает локаль для указанного BCP IETF 47 строк тега языка.
|
static Locale[] |
getAvailableLocales()
Возвращает массив всех установленных локалей.
|
Строка |
getCountry()
Возвращает код страны/области для этой локали, которая должна или быть пустой строкой, верхний регистр ISO 3166 2-буквенный код, или ООН М. 49 3-разрядного кода.
|
static Locale |
getDefault()
Получает текущую стоимость локали значения по умолчанию для этого экземпляра виртуальной машины Java.
|
static Locale |
getDefault(Locale.Category category)
Получает текущую стоимость локали значения по умолчанию для указанной Категории для этого экземпляра виртуальной машины Java.
|
Строка |
getDisplayCountry()
Возвращает имя для страны локали, которая является подходящей для дисплея пользователю.
|
Строка |
getDisplayCountry(Locale inLocale)
Возвращает имя для страны локали, которая является подходящей для дисплея пользователю.
|
Строка |
getDisplayLanguage()
Возвращает имя для языка локали, который является подходящим для дисплея пользователю.
|
Строка |
getDisplayLanguage(Locale inLocale)
Возвращает имя для языка локали, который является подходящим для дисплея пользователю.
|
Строка |
getDisplayName()
Возвращает имя для локали, которая является подходящей для дисплея пользователю.
|
Строка |
getDisplayName(Locale inLocale)
Возвращает имя для локали, которая является подходящей для дисплея пользователю.
|
Строка |
getDisplayScript()
Возвращает имя для сценарий локали, который является подходящим для дисплея пользователю.
|
Строка |
getDisplayScript(Locale inLocale)
Возвращает имя для сценария локали, который является подходящим для дисплея пользователю.
|
Строка |
getDisplayVariant()
Возвращает имя для различного кода локали, который является подходящим для дисплея пользователю.
|
Строка |
getDisplayVariant(Locale inLocale)
Возвращает имя для различного кода локали, который является подходящим для дисплея пользователю.
|
Строка |
getExtension(char key)
Возвращает расширение (или личное пользование) значение, связанное с указанным ключом, или нулем, если нет никакого расширения, связанного с ключом.
|
Set<Character> |
getExtensionKeys()
Возвращает набор ключей расширения, связанных с этой локалью, или пустым множеством, если у этого нет никаких расширений.
|
Строка |
getISO3Country()
Возвращает трехбуквенное сокращение для страны этой локали.
|
Строка |
getISO3Language()
Возвращает трехбуквенное сокращение языка этой локали.
|
static String[] |
getISOCountries()
Возвращает список всех 2-буквенных кодов страны, определенных в ISO 3166.
|
static String[] |
getISOLanguages()
Возвращает список всех 2-буквенных кодов языка, определенных в ISO 639.
|
Строка |
getLanguage()
Возвращает код языка этой Локали.
|
Строка |
getScript()
Возвращает сценарий для этой локали, которая должна или быть пустой строкой или ISO 15924 4-буквенный код сценария.
|
Set<String> |
getUnicodeLocaleAttributes()
Возвращает набор unicode атрибутов локали, связанных с этой локалью, или пустым множеством, если у этого нет никаких атрибутов.
|
Set<String> |
getUnicodeLocaleKeys()
Возвращает набор ключей локали Unicode, определенных этой локалью, или пустым множеством, если у этой локали нет ни одного.
|
Строка |
getUnicodeLocaleType(String key)
Возвращает тип локали Unicode, связанный с указанным ключом локали Unicode для этой локали.
|
Строка |
getVariant()
Возвращает различный код для этой локали.
|
boolean |
hasExtensions()
|
int |
hashCode()
Переопределите хэш-код.
|
static Locale |
lookup(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
Возвраты a
Locale экземпляр для лучше всего соответствующего тега языка, используя механизм поиска определяется в RFC 4647. |
static String |
lookupTag(List<Locale.LanguageRange> priorityList, Collection<String> tags)
Возвращает лучше всего соответствующий тег языка, используя механизм поиска, определенный в RFC 4647.
|
static void |
setDefault(Locale.Category category, Locale newLocale)
Устанавливает локаль значения по умолчанию для указанной Категории для этого экземпляра виртуальной машины Java.
|
static void |
setDefault(Locale newLocale)
Устанавливает локаль значения по умолчанию для этого экземпляра виртуальной машины Java.
|
Локаль |
stripExtensions()
Возвращает копию этого
Locale без расширений. |
Строка |
toLanguageTag()
Возвращает правильно построенный BCP IETF 47 тегов языка, представляющих эту локаль.
|
Строка |
toString()
Возвращает строковое представление этого
Locale объект, состоя из языка, страны, разновидности, сценария, и расширений как указано ниже: |
public static final Locale ENGLISH
public static final Locale FRENCH
public static final Locale GERMAN
public static final Locale ITALIAN
public static final Locale JAPANESE
public static final Locale KOREAN
public static final Locale CHINESE
public static final Locale SIMPLIFIED_CHINESE
public static final Locale TRADITIONAL_CHINESE
public static final Locale FRANCE
public static final Locale GERMANY
public static final Locale ITALY
public static final Locale JAPAN
public static final Locale KOREA
public static final Locale CHINA
public static final Locale PRC
public static final Locale TAIWAN
public static final Locale UK
public static final Locale US
public static final Locale CANADA
public static final Locale CANADA_FRENCH
public static final Locale ROOT
public static final char PRIVATE_USE_EXTENSION
getExtension(char)
, Locale.Builder.setExtension(char, String)
, Постоянные Значения полейpublic static final char UNICODE_LOCALE_EXTENSION
getExtension(char)
, Locale.Builder.setExtension(char, String)
, Постоянные Значения полейpublic Locale(String language, String country, String variant)
Отметьте:
language
- Альфа ISO 639 2 или альфа 3 кода языка, или язык подтегируют до 8 символов в длине. См. Locale
Описание class о допустимых значениях языка.country
- Альфа ISO 3166 2 кода страны или ООН М. 49 числовых 3 кодов области. См. Locale
Описание class о допустимых значениях страны.variant
- Любое произвольное значение, используемое, чтобы указать на изменение a Locale
. См. Locale
Описание class для деталей.NullPointerException
- брошенный, если каким-либо параметром является нуль.public Locale(String language, String country)
Отметьте:
language
- Альфа ISO 639 2 или альфа 3 кода языка, или язык подтегируют до 8 символов в длине. См. Locale
Описание class о допустимых значениях языка.country
- Альфа ISO 3166 2 кода страны или ООН М. 49 числовых 3 кодов области. См. Locale
Описание class о допустимых значениях страны.NullPointerException
- брошенный, если любым параметром является нуль.public Locale(String language)
Отметьте:
language
- Альфа ISO 639 2 или альфа 3 кода языка, или язык подтегируют до 8 символов в длине. См. Locale
Описание class о допустимых значениях языка.NullPointerException
- брошенный, если параметром является нуль.public static Locale getDefault()
Виртуальная машина Java устанавливает локаль значения по умолчанию во время запуска, основанного на среде узла. Это используется многими чувствительными к локали методами, если никакая локаль явно не определяется. Это может быть изменено, используя setDefault
метод.
public static Locale getDefault(Locale.Category category)
Виртуальная машина Java устанавливает локаль значения по умолчанию во время запуска, основанного на среде узла. Это используется многими чувствительными к локали методами, если никакая локаль явно не определяется. Это может быть изменено, используя setDefault (Локаль. Категория, Локаль) метод.
category
- указанная категория, чтобы получить локаль значения по умолчаниюNullPointerException
- если категория является нулемsetDefault(Locale.Category, Locale)
public static void setDefault(Locale newLocale)
Если есть менеджер безопасности, checkPermission
метод вызывают с a PropertyPermission("user.language", "write")
разрешение перед локалью значения по умолчанию изменяется.
Виртуальная машина Java устанавливает локаль значения по умолчанию во время запуска, основанного на среде узла. Это используется многими чувствительными к локали методами, если никакая локаль явно не определяется.
Начиная с изменения локали значения по умолчанию может влиять на многие различные области функциональности, этот метод должен только использоваться, если вызывающая сторона готовится повторно инициализировать чувствительный к локали код, работающий в пределах той же самой виртуальной машины Java.
Устанавливая локаль значения по умолчанию с этим методом, все локали значения по умолчанию для каждой Категории также устанавливаются в указанную локаль значения по умолчанию.
newLocale
- новая локаль значения по умолчаниюSecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет работу.NullPointerException
- если newLocale
нульSecurityManager.checkPermission(java.security.Permission)
, PropertyPermission
public static void setDefault(Locale.Category category, Locale newLocale)
Если есть менеджер безопасности, его checkPermission метод вызывают с PropertyPermission ("user.language", "запишите"), разрешение прежде, чем локаль значения по умолчанию будет изменена.
Виртуальная машина Java устанавливает локаль значения по умолчанию во время запуска, основанного на среде узла. Это используется многими чувствительными к локали методами, если никакая локаль явно не определяется.
Начиная с изменения локали значения по умолчанию может влиять на многие различные области функциональности, этот метод должен только использоваться, если вызывающая сторона готовится повторно инициализировать чувствительный к локали код, работающий в пределах той же самой виртуальной машины Java.
category
- указанная категория, чтобы установить локаль значения по умолчаниюnewLocale
- новая локаль значения по умолчаниюSecurityException
- если менеджер безопасности существует и его checkPermission метод не позволяет работу.NullPointerException
- если категория и/или newLocale являются нулемSecurityManager.checkPermission(java.security.Permission)
, PropertyPermission
, getDefault(Locale.Category)
public static Locale[] getAvailableLocales()
LocaleServiceProvider
реализации. Это должно содержать, по крайней мере, a Locale
экземпляр, равный Locale.US
.public static String[] getISOCountries()
Отметьте: Locale
class также поддерживает другие коды для страны (область), такие как 3-буквенная числовая ООН М. 49 кодов области. Поэтому, список, возвращенный этим методом, не содержит ВСЕ допустимые коды, которые могут использоваться, чтобы создать Локали.
public static String[] getISOLanguages()
Отметьте:
Locale
class также поддерживает коды языка до 8 символов в длине. Поэтому, список, возвращенный этим методом, не содержит ВСЕ допустимые коды, которые могут использоваться, чтобы создать Локали. public String getLanguage()
Отметьте: ISO 639 не является устойчивым стандартом — коды некоторых языков изменились. Конструктор локали распознает и новое и старые коды для языков, коды которых изменились, но эта функция всегда возвращает старый код. Если Вы хотите проверить на определенный язык, код которого изменился, не делать
if (locale.getLanguage().equals("he")) // BAD! ...Вместо этого сделайте
if (locale.getLanguage().equals(new Locale("he").getLanguage())) ...
getDisplayLanguage()
public String getScript()
getDisplayScript()
public String getCountry()
getDisplayCountry()
public String getVariant()
getDisplayVariant()
public boolean hasExtensions()
true
если это Locale
имеет любые расширенияpublic Locale stripExtensions()
Locale
без расширений. Если это Locale
не имеет никаких расширений, этого Locale
возвращается.Locale
без расширений, или this
если this
не имеет никаких расширенийpublic String getExtension(char key)
[0-9A-Za-z]
. Ключи являются нечувствительными к регистру, таким образом, например 'z' и 'Z' представляют то же самое расширение.key
- ключ расширенияIllegalArgumentException
- если ключ не правильно построенPRIVATE_USE_EXTENSION
, UNICODE_LOCALE_EXTENSION
public Set<Character> getExtensionKeys()
public Set<String> getUnicodeLocaleAttributes()
public String getUnicodeLocaleType(String key)
key
- ключ локали UnicodeIllegalArgumentException
- если ключ не правильно построенNullPointerException
- если key
нульpublic Set<String> getUnicodeLocaleKeys()
public final String toString()
Locale
объект, состоя из языка, страны, разновидности, сценария, и расширений как указано ниже: язык + "_" + страна + "_" + (разновидность + "_#" | "#") + сценарий + "-" + расширенияЯзык всегда является нижним регистром, страна всегда является верхним регистром, сценарий всегда является случаем title, и расширения всегда являются нижним регистром. Расширения и подтеги личного пользования будут в каноническом порядке как объяснено в
toLanguageTag()
. Когда у локали нет ни сценария, ни расширений, результатом является то же самое как в Java 6 и предшествующий.
Если и язык и поля страны будут отсутствовать, то эта функция возвратит пустую строку, даже если разновидность, сценарий, или поле расширений будут присутствовать (у Вас не может быть локали с только разновидностью, разновидность должна сопровождать правильно построенный язык или код страны).
Если сценарий или расширения присутствуют и различны, отсутствует, никакое подчеркивание не добавляется перед "#".
Это поведение разрабатывается, чтобы поддерживать отладку и быть совместимым с предыдущим использованием toString
тот ожидаемый язык, страна, и различные поля только. Чтобы представить Локаль как Строку в целях обмена, использовать toLanguageTag()
.
Примеры:
toString
в class Object
getDisplayName()
, toLanguageTag()
public String toLanguageTag()
Если это Locale
имеет язык, страну, или разновидность, которая не удовлетворяет BCP IETF, 47 требований синтаксиса тега языка, этот метод обрабатывает эти поля как описано ниже:
Язык: Если язык будет пуст, или не правильно построен (например или "e2"), то это будет испускаться как "und" (Неопределенный).
Страна: Если страна не будет правильно построена (например "12" или "США"), то это будет опущено.
Разновидность: Если разновидность правильно построена, каждый подсегмент (разграниченный '-' или '_') испускается как подтег. Иначе:
[0-9a-zA-Z]{1,8}
(например "WIN" или "Oracle_JDK_Standard_Edition"), первый плохо сформированный подсегмент и все следующее будет добавлено к подтегу личного пользования. Первый добавленный подтег будет "lvariant", сопровождаемым подсегментами в порядке, разделенном дефисом. Например, "x-lvariant-WIN", "Oracle-x-lvariant-JDK-Standard-Edition". [0-9a-zA-Z]{1,8}
, разновидность будет усеченной и проблематичный подсегмент, и весь после подсегментов будет опущен. Если остаток будет непуст, то он будет испускаться как подтег личного пользования как выше (даже если остаток, окажется, будет правильно построен). Например, "Solaris_isjustthecoolestthing" испускается как "x-lvariant-Solaris", не как "solaris".Специальные Преобразования: Java поддерживает некоторые старые представления локали, включая осуждаемые коды языка ISO, для совместимости. Этот метод выполняет следующие преобразования:
Отметьте: Хотя тег языка, создаваемый этим методом, правильно построен (удовлетворяет требования синтаксиса, определенные BCP IETF 47 спецификаций), это - не обязательно допустимый BCP 47 тегов языка. Например,
new Locale("xx", "YY").toLanguageTag();возвратит "xx-YY", но язык подтегируют "xx", и "YY" подтега области недопустимы, потому что они не регистрируются в Реестре Подтега Языка IANA.
forLanguageTag(String)
public static Locale forLanguageTag(String languageTag)
Если указанный тег языка содержит какие-либо плохо сформированные подтеги, первое, такой подтег и весь после подтегов игнорируются. Сравнитесь с Locale.Builder.setLanguageTag(java.lang.String)
который выдает исключение в этом случае.
Следующие преобразования выполняются:
Locale loc; loc = Locale.forLanguageTag("en-US-x-lvariant-POSIX"); loc.getVariant(); // returns "POSIX" loc.getExtension('x'); // returns null loc = Locale.forLanguageTag("de-POSIX-x-URP-lvariant-Abc-Def"); loc.getVariant(); // returns "POSIX_Abc_Def" loc.getExtension('x'); // returns "urp"
Locale.forLanguageTag("ar-aao").getLanguage(); // returns "aao" Locale.forLanguageTag("en-abc-def-us").toString(); // returns "abc_US"
Locale.forLanguageTag("ja-JP-x-lvariant-JP").toLanguageTag(); // returns "ja-JP-u-ca-japanese-x-lvariant-JP" Locale.forLanguageTag("th-TH-x-lvariant-TH").toLanguageTag(); // returns "th-TH-u-nu-thai-x-lvariant-TH"
Это реализует производство 'Тега языка' BCP47, и так поддерживает grandfathered (регулярный и неправильный) так же как теги языка личного пользования. Одинокие теги личного пользования представляются как пустой язык и расширение 'x-whatever', и теги grandfathered преобразовываются в их канонические замены, где они существуют.
Теги Grandfathered с каноническими заменами следующие:
тег grandfathered | современная замена | |
---|---|---|
искусство-lojban | jbo | |
i-ami | ami | |
i-bnn | bnn | |
i-hak | hak | |
i-klingon | tlh | |
i-люкс | фунт | |
i-язык-навахо | nv | |
i-pwn | pwn | |
i-tao | tao | |
i-Тей | Тей | |
i-tsu | tsu | |
нет | nb | |
нет | nn | |
sgn-BE-FR | sfb | |
sgn-BE-NL | vgt | |
sgn-CH-DE | sgg | |
zh-guoyu | cmn | |
zh-язык-хакка | hak | |
zh-min-nan | Нэн | |
zh-Сянцзян | hsn |
Теги Grandfathered без современной замены будут преобразованы следующим образом:
тег grandfathered | преобразовывает в | |
---|---|---|
буфер-перемещаемого-изображения-gaulish | xtg-x-cel-gaulish | |
en-GB-oed | en-GB-x-oed | |
i-значение-по-умолчанию | en-x-i-default | |
i-enochian | und-x-i-enochian | |
i-mingo | see-x-i-mingo | |
zh-min | nan-x-zh-min |
Для списка всех тегов grandfathered см. Реестр Подтега Языка IANA (поиск "Тип: grandfathered").
Отметьте: нет никакой гарантии этого toLanguageTag
и forLanguageTag
будет поездка туда и обратно.
languageTag
- тег языкаNullPointerException
- если languageTag
null
toLanguageTag()
, Locale.Builder.setLanguageTag(String)
public String getISO3Language() throws MissingResourceException
MissingResourceException
- MissingResourceException бросков, если трехбуквенное сокращение языка не доступно для этой локали.public String getISO3Country() throws MissingResourceException
Коды ISO 3166-1 могут быть сочтены онлайновыми.
MissingResourceException
- MissingResourceException бросков, если трехбуквенное сокращение страны не доступно для этой локали.public final String getDisplayLanguage()
DISPLAY
локаль. Например, если локаль является fr_FR и значением по умолчанию DISPLAY
локаль является en_US, getDisplayLanguage () возвратит "французский язык"; если локаль является en_US и значением по умолчанию DISPLAY
локаль является fr_FR, getDisplayLanguage () возвратит "anglais". Если возвращенное имя не может быть локализовано для значения по умолчанию DISPLAY
локаль, (говорят, у нас нет японского имени для хорватского языка), эта функция возвращается к английскому имени, и использует код ISO в качестве значения последнего средства. Если локаль не определяет язык, эта функция возвращает пустую строку.public String getDisplayLanguage(Locale inLocale)
NullPointerException
- если inLocale
null
public String getDisplayScript()
DISPLAY
локаль. Возвращает пустую строку, если эта локаль не определяет код сценария.DISPLAY
локальpublic String getDisplayScript(Locale inLocale)
DISPLAY
локальNullPointerException
- если inLocale
null
public final String getDisplayCountry()
DISPLAY
локаль. Например, если локаль является fr_FR и значением по умолчанию DISPLAY
локаль является en_US, getDisplayCountry () возвратит "Францию"; если локаль является en_US и значением по умолчанию DISPLAY
локаль является fr_FR, getDisplayCountry () возвратит "Etats-Unis". Если возвращенное имя не может быть локализовано для значения по умолчанию DISPLAY
локаль, (говорят, у нас нет японского имени для Хорватии), эта функция возвращается к английскому имени, и использует код ISO в качестве значения последнего средства. Если локаль не определяет страну, эта функция возвращает пустую строку.public String getDisplayCountry(Locale inLocale)
NullPointerException
- если inLocale
null
public final String getDisplayVariant()
DISPLAY
локаль. Если локаль не определяет различный код, эта функция возвращает пустую строку.public String getDisplayVariant(Locale inLocale)
NullPointerException
- если inLocale
null
public final String getDisplayName()
язык (сценарий, страна, разновидность)в зависимости от которого поля определяются в локали. Если язык, sacript, страна, и различные поля все пусты, эта функция возвращает пустую строку.
язык (страна)
язык (разновидность)
сценарий (страна)
страна
public String getDisplayName(Locale inLocale)
язык (сценарий, страна, разновидность)в зависимости от которого поля определяются в локали. Если язык, сценарий, страна, и различные поля все пусты, эта функция возвращает пустую строку.
язык (страна)
язык (разновидность)
сценарий (страна)
страна
NullPointerException
- если inLocale
null
public Object clone()
public int hashCode()
hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
equals
в class Object
obj
- ссылочный объект, с которым можно сравниться.Object.hashCode()
, HashMap
public static List<Locale> filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)
Locale
экземпляры используя механизм фильтрации определяются в RFC 4647.priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеlocales
- Locale
экземпляры используются для того, чтобы соответствоватьmode
- фильтрация режимаLocale
экземпляры для того, чтобы соответствовать теги языка, сортированные в порядке убывания основанный на приоритете или весе, или пустом списке, если ничто не соответствует. Список является поддающимся изменению.NullPointerException
- если priorityList
или locales
null
IllegalArgumentException
- если один или более расширенные диапазоны языка включаются в данный список когда Locale.FilteringMode.REJECT_EXTENDED_RANGES
определяетсяpublic static List<Locale> filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
Locale
экземпляры используя механизм фильтрации определяются в RFC 4647. Это эквивалентно filter(List, Collection, FilteringMode)
когда mode
Locale.FilteringMode.AUTOSELECT_FILTERING
.priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеlocales
- Locale
экземпляры используются для того, чтобы соответствоватьLocale
экземпляры для того, чтобы соответствовать теги языка, сортированные в порядке убывания основанный на приоритете или весе, или пустом списке, если ничто не соответствует. Список является поддающимся изменению.NullPointerException
- если priorityList
или locales
null
public static List<String> filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)
priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеtags
- теги языкаmode
- фильтрация режимаNullPointerException
- если priorityList
или tags
null
IllegalArgumentException
- если один или более расширенные диапазоны языка включаются в данный список когда Locale.FilteringMode.REJECT_EXTENDED_RANGES
определяетсяpublic static List<String> filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags)
filterTags(List, Collection, FilteringMode)
когда mode
Locale.FilteringMode.AUTOSELECT_FILTERING
.priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеtags
- теги языкаNullPointerException
- если priorityList
или tags
null
public static Locale lookup(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
Locale
экземпляр для лучше всего соответствующего тега языка, используя механизм поиска определяется в RFC 4647.priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеlocales
- Locale
экземпляры используются для того, чтобы соответствоватьLocale
экземпляр, выбранный основанный на приоритете или весе, или null
если ничто не соответствует.NullPointerException
- если priorityList
или tags
null
public static String lookupTag(List<Locale.LanguageRange> priorityList, Collection<String> tags)
priorityList
- Приоритетный Список Языка пользователя, в котором каждый тег языка сортируется в порядке убывания основанный на приоритете или весеtags
- сильные запахи языка используются для того, чтобы соответствоватьnull
если ничто не соответствует.NullPointerException
- если priorityList
или tags
null
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92