Как я могу определить, что алфавит для локали в Java? - PullRequest
6 голосов
/ 06 января 2009

Я хотел бы определить, что такое алфавит для данной локали, предпочтительно на основе значений заголовка браузера Accept-Language. Кто-нибудь знает, как это сделать, используя библиотеку при необходимости?

Ответы [ 5 ]

5 голосов
/ 19 августа 2010

взгляните на [LocaleData.getExemplarSet] [1]

например для английского это возвращает abcdefghijklmnopqrstuvwxyz

[1]: http://icu -project.org / apiref / icu4j / com / ibm / icu / util / LocaleData.html # getExemplarSet (com.ibm.icu.util.ULocale , int )

1 голос
/ 07 января 2009

Зависит от того, насколько конкретно вы хотите получить. Одно из мест, где можно посмотреть, - это свойства «Suppress-Script» в языковом реестре IANA .

В некоторых языках есть несколько «алфавитов», которые можно использовать для письма. Например, азербайджанский язык может быть написан латинским или арабским шрифтом. Большинство языков, таких как английский, написаны почти исключительно одним скриптом, поэтому правильный скрипт, разумеется, должен быть «подавлен» в кодах языков.

Итак, глядя на запись для русского языка, вы можете сказать, что предпочтительным шрифтом является кириллица, а для эфиопского - амхарский. Но немецкий, норвежский и английский не более конкретны, чем «латынь». Таким образом, с помощью этого метода вам будет трудно скрыть умлауты и шипы от американцев или предложить какой-нибудь сценарий кашмирскому писателю.

1 голос
/ 07 января 2009

Это английский ответ, написанный на Орхусе. Вчера я слышал, как некоторые немцы говорят: «Blödheit, предложение, это глупость». Однако один из них был одет в рубашку с надписью «Я знаю разницу между 文字 и الْعَرَبيّة».

Каков ответ на ваш вопрос для этого текста? Это разрешено? Разве это не английский текст?

1 голос
/ 07 января 2009

Если вы просто хотите узнать имя соответствующего набора символов для локали пользователя, вы можете попробовать класс nio.CharSet .

Если вы действительно хотите использовать заголовок Accept-Language, то есть старая O'Reilly статья по этому вопросу, в которой представлен довольно удобный класс под названием LanguageNegotiator .

Я думаю, что один из них даст вам достаточно приличное начало.

0 голосов
/ 07 января 2009

Здесь могут помочь Международные компоненты для Unicode . В частности, класс UScript выглядит многообещающе.

Из любопытства: для чего тебе это нужно?

...