LINUX.ORG.RU

О соответствии страны и языка в локали

 , ,


0

3

Вот тут товарищ ilgors поднял интересную тему (гусары, молчать!) о локалях.

У него на машине стоит локаль ru_US.UTF-8, потому что ему нужен русский язык, но живёт он в США (точнее, только притворяется, что там живёт, но это не суть важно). От этого (а может, и не от этого) приложения работают неправильно.

Так вот, является ли такая локаль корректной?

Я об этом никогда серьёзно не задумывался, но подспудно считал, что территория (territory) в локали должна быть связана с языком. То есть ru_RU, ru_BY — это нормально, а ru_US — нет, потому что американского диалекта русского языка не существует. Однако сейчас я погуглил и никакого обоснования этому мнению не нашёл. Да и в самом деле, если человек хочет, чтобы всё было на русском, но, например, даты были в формате ГГГГ/ММ/ДД и точка в качестве десятичного разделителя, то что ему делать?

★★★★★

Ответ на: комментарий от anonymous

LC_TIME= не?

С одной стороны, это правда, можно отдельные элементы локали выставить по отдельности.

С другой стороны, как, получается, должен вести себя, например, DE, если пользователь говорит, что хочет русский язык, но живёт в Америке? Просто поставить ему LC_MESSAGES=ru_RU, LC_TIME=en_US и так далее?

Кроме того, я всё пытаюсь найти какой-нибудь стандарт про это, нашёл только POSIX Locale, но там, по ходу, вообще сказано, что название локали может быть каким угодно, таким, какое передавалось в localedef, только названия «C» и «POSIX» зарезервированы. Так что же, конвенции о названии локалей — это не более, чем устные народные предания?

proud_anon ★★★★★ ()

ru_US — cоздай такую локаль и поддерживай. С другой стороны про LC_TIME уже упоминали. И ... для европейцев больше en_GB.UTF-8 подходит — там хотя бы дата не в накроманском формате.

beastie ★★★★★ ()

Лопату блинов ему и пофиг, што приложения работают не правильно.

Pakostnik ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.