[gnu] Интернациональная локаль

dangerr

Пользуюсь локалью en_US, но всё же меня это не совсем устраивает. Где-то вылазили дюймы, где-то - бумага формата letter, где-то ещё что-то. Я не в восторге от дат формата MM/DD/YYYY. Вроде, конечно, критических вещей не было, всё легко решалось, но всё равно я не очень понимаю зачем надо это решать. Я просто хочу, чтобы всё в моей системе по-умолчанию соответствовало стандартам. При этом искать в какой локали какой стандарт соблюдается и знать все эти стандарты, чтобы определять каждую переменную LC_*, я не хочу.
Вот, например, пользователь датскую локаль для переменной LC_TIME, чтобы получить стандартное представление дат вида YYYY-MM-DD. Мне кажется это костылём, а я не люблю костыли.
По мне так должна быть локаль типа en_INT, чтобы там было всё в соответствии со стандартами ISO. болеее того, она, а не en_US должна быть дефолтной. Но ничего подобного я в директории /usr/share/i18n/locales не нашёл (en_IN - это английский для Индии). Как быть?

Ivan8209

Сделай её сам.
---
...Я работаю...

katrin2201

- собери свою локаль
- поставь локаль ru_RU с LANG и MESSAGES в en_US
- застрелись от безысходности

Maurog

Как быть?
POSIX не устроит\не работает ?

vall

Да ладно, это общеизвестный хак. Наверно можно весь LANG в неё ставить.
Вот тут предлагают изобрести глобализованную en_EU
http://unix.stackexchange.com/questions/62316/why-is-there-n...
POSIX не устроит\не работает ?
zurg:~$ LANG=POSIX date +%x
05/27/13
zurg:~$ LANG=en_DK.UTF-8 date +%x
2013-05-27

zurg:~$ LANG=en_DK.UTF-8 ncal
May 2013
Mo 6 13 20 27
Tu 7 14 21 28
We 1 8 15 22 29
Th 2 9 16 23 30
Fr 3 10 17 24 31
Sa 4 11 18 25
Su 5 12 19 26
zurg:~$ LANG=POSIX ncal
May 2013
Su 5 12 19 26
Mo 6 13 20 27
Tu 7 14 21 28
We 1 8 15 22 29
Th 2 9 16 23 30
Fr 3 10 17 24 31
Sa 4 11 18 25

dangerr

- собери свою локаль
Для этого мне надо вникать во все тонкости стандартизации и локализации. Кроме того, это будет только у меня. Мне неясно почему столь очевидную вещь не сделали разрабочики... glibc, насколько я понимаю.
- поставь локаль ru_RU с LANG и MESSAGES в en_US
Причём здесь локаль ru_RU вообще? Из русского мне надо только корректное отображение кирилицы и раскладку. Формат даты типа DD.MM.YYYY и запятая в качестве разделителя разрядов - это так стандартно. Лучше уж тогда en_DK действительно использовать, хотя что-то мне подсказывает, что у датчан, как и шведов, тоже запятая.
P.S. Ненавижу локализацию. Заказывал телефон с ebay из штатов, после того, как выбрал в форме, что живу в Швеции, интерфейс переключился на шведский без возможности вернуться к английскому. Пришлось копипастить в гугл-транслейт, чтобы понять чего от меня хотят. Что, блин, за тенденция такая. Вместо стандартизации делать везде локазизацию, от которой только проблемы могут быть.

katrin2201

У тебя, как обычно, весьма специфические требования и при том гнев праведника, почему же еще никто не догадался сделать так, как тебе надо.
Локаль ru_RU - потому что описание того, что тебе нужно, выглядит как "хочу чтоб все было так, как мне нравится". Потому и рекомендую то, что теоретически должно подходить большинству россиян. Хотя, наверное, именно тут и кроется моя ошибка...

dangerr

В чём специфичность требований, соответствовать интернациональным стандартам ISO, а не локальным стандартам какой-либо страны?
Русская локаль мне перестала подходить ещё когда я пользовался Windows XP, живя в ФДС.

Anturag

 
Пользуюсь локалью en_US, но всё же меня это не совсем устраивает. Где-то вылазили дюймы, где-то - бумага формата letter, где-то ещё что-то. Я не в восторге от дат формата MM/DD/YYYY.
Представляешь, а жители США в восторге.
 
Я просто хочу, чтобы всё в моей системе по-умолчанию соответствовало стандартам.
Что всё и каким стандартам? На дату/время в date есть поддержка RFC 2822 и ISO 8601, чего ещё не хватает?
 
По мне так должна быть локаль типа en_INT, чтобы там было всё в соответствии со стандартами ISO.
Хоти, про «всё» спросил выше.
 
При этом искать в какой локали какой стандарт соблюдается и знать все эти стандарты, чтобы определять каждую переменную LC_*, я не хочу.
Про какие стандарты речь? Ну не хочешь ты чего-то знать, нам-то зачем знать, что ты не хочешь знать?
Как всегда всплеск недовольства легко сводится к неосиляторству, неумению автора настроить свою систему и непониманию проблемы.

AlexV769

Тред не читал, у самого стоит вот так:
~>locale
LANG=
LC_CTYPE=en_US.UTF-8
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
Работает ровно так, как надо - кирилицу вводить могу, всё остальное по умолчанию на английском. С датой и календарем проблем не замечал.

dangerr

Представляешь, а жители США в восторге.
Я понимаю. Они на одном месте вертели все эти международные стандарты и чуть ли не единственными в мире остаются, кто не осилил измерять расстояние в метрах.
Что всё и каким стандартам? На дату/время в date есть поддержка RFC 2822 и ISO 8601, чего ещё не хватает?
Поддержка-то есть, я хочу чтобы стандарт применялся по-умолчанию, а не только если я припишу опцию --iso-8601
Совсем всё я перечислить может и не смогу, но вот:
первый день недели - понедельник
разделитель целой и дробной части - точка
везде английский язык (британский или американский - пофиг)
дата по iso 8601: YYYY-MM-DD
24-часовой формат времени
метрическая система
бумага А4

yroslavasako

Потому и рекомендую то, что теоретически должно подходить большинству россиян
засунь свою запятую себе в задницу. Русскую локаль придумал имбецил, который из всех программ видел только косынку локализованную

vall

С датой и календарем проблем не замечал.
первый день недели какой?

Anturag

я хочу чтобы стандарт применялся по-умолчанию, а не только если я припишу опцию --iso-8601
man alias
бумага А4
man paperconfig
первый день недели - понедельник
разделитель целой и дробной части - точка
везде английский язык (британский или американский - пофиг)
дата по iso 8601: YYYY-MM-DD
24-часовой формат времени
метрическая система
Всё остальное LC_* и настройка приложений. За невозможностью настроить приложение оставшиеся варианты — патчи, фичереквесты, отказ от использования приложения или смирение.

stm8796412

Поставь LC_MESSAGES в en_US (чтоб интерфейс был на английском), а остальное - в ru_RU (чтоб всё остальное было как в России, т. е. чтоб A4, чтоб неделя с понедельника и т. д.)
Иногда вылезают баги, например, Quassel и QtCreator показывают интерфейс на русском (хотя LC_MESSAGES стоит en_US), но это просто означает, что в этих программах баг, в таких случаях я отправляю баг-репорты (можно ещё самому пропатчить, не дожидаясь, пока они пофиксят) - собственно, это правильный способ устранения всех проблем в мире свободного ПО.
А никакой международной локали быть не может. Потому что не совсем понятно, какие стандарты должны туда входить. Американцы считают себя пупом Земли, и не захотят в гипотетическую en_INT включать какие-то стандарты, отличные от en_US

AlexV769

Понедельник.
Тоже самое и в
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

или
LANG=
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

vall

всё у вас бздшников не так как у нормальных людей

AlexV769

Гг. Фейл. Один из выводов был снят как раз на пингвинусе.

dangerr

То, что ты предлагаешь и есть набор костылей вместо нормальной международной локали. Особенно меня порадовало предложение использовать alias.
Про paperconfig я во-первых сразу же при установке соответствующего пакета, когда вижу в elog сообщение, ставлю а4. Во-вторых, для меня загадка почему это существует параллельно с LC_PAPER и что приоритетнее при различии настроек.
Вот как раз сегодня случилась неприятность из-за этой фигни. Поставил свой на рабочий компьютер cups на gentoo, установил сетевой ipp-принтер через ppd-файл на сайте университета и распечатал статью. Распечаталсь она на листе формата А3, сдвинутой в угол страницы. Это несмотря на paperconfig в А4 и установленный в настройках принтера через веб-интерфейс localhost:631 Media Size A4 (он там, кстати по-умолчанию). В диалоге печати то, что стоит по-умолчанию в размере меняется в зависимости от софтины, из которой я печатаю. Например, если печатать plain text через leafpad, то там стоит US Letter и причём выпадающий список неактивен. Принтер, видимо, не имея возможности уместить выдаваемое на печать на А4, переключается на А3.
Понятно, что эти проблемы решаемы. Вероятно, если я выставлю LC_PAPER в какую-нибудь из европейских локалей, то US Letter, возможно, изчезнет везде. Я просто не понимаю, зачем такие проблемы этим пользователям создавать.
А ещё: ты, может, пользуешься LFS? А то тебя так удивляет, когда человек хочет, чтобы простейшие вещи были уже разрешены разработчиками.

dangerr

Вроде как локаль "C" - это то, что было бы, если я бы вообще не делал locale-gen. И оно, как мне казалось, неюникодное, не?

vall

на каком?

AlexV769

~>cat /etc/debian_version
squeeze/sid

Anturag

То, что ты предлагаешь и есть набор костылей вместо нормальной международной локали.
Тебе «шашечки» или ехать? Если «шашечки», так жди международную локаль.

AlexV769

И оно, ..., неюникодное, не?
True. Но мне это совсем не мешает.

vall

странно всё это, в en_US ну никак не может быть понедельник. завтра посмотрю что там такое творится.

vall

локаль POSIX в glibc не определяет first_weekday, а по дефолту он 1, что значит воскресенье.

zurg:/# cat /etc/debian_version
jessie/sid
zurg:/# locale
LANG=POSIX
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
zurg:/# ncal
May 2013
Su 5 12 19 26
Mo 6 13 20 27
Tu 7 14 21 28
We 1 8 15 22 29
Th 2 9 16 23 30
Fr 3 10 17 24 31
Sa 4 11 18 25

dangerr

True. Но мне это совсем не мешает.
Я теперь окончательно запутался. Ладно список региональных стандартов... но тут ещё и кодировка символов!
Как применимо понятие кодировки символов, например, к размеру бумаги?
Что будет, если я поставлю LC_PAPER в C, когда у меня везде UTF8?
Оставить комментарий
Имя или ник:
Комментарий: