1

locale -a возвращает
С
С.UTF-8
en_GB.utf8
PROSIX
ru_RU.utf8

Я понимаю, это значения каких-то переменных.
Из них понял только en_GB.utf8 - это значение LANG в файле /ets/default/locale
Больше в этом файле ничего нет.

Каким переменным принадлежат
С
С.UTF-8
PROSIX
ru_RU.utf8

в каких файлах они сидят и за что отвечают?

2

Ихмо вопрос детский be
http://ru.wikipedia.org/wiki/Locale
http://debianworld.ru/articles/nastrojk … tu-debian/

Hunter, who is on the trail ...

3

Извините, но ответ тоже детский. В ссылках нет ответа ни на один из моих вопросов.
Хуже, эти ссылки плодят новые вопросы. Например там сказано, что переменные находятся в файле etc/console-cyrillic. У меня этот файл есть, но он пустой.

4

Вот что у меня

 Консоль:
$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
ru_RU.utf8

 Консоль:
$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

andrei186 пишет:

Например там сказано, что переменные находятся в файле etc/console-cyrillic. У меня этот файл есть, но он пустой.

Все зависит от версии Debian, у меня тестинг с systemd

Если после установки появится необходимость в перенастройке, то для этих целей необходимо выполнить:

 Консоль:
sudo dpkg-reconfigure console-cyrillic

После того, как все настройки сделаны, необходимо перезагрузить систему, либо выполнить:

 Консоль:
sudo /etc/init.d/console-cyrillic start

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

Hunter, who is on the trail ...

5

Как понимать, что она вывела?

детский сад.  Ладно, вот цитата:

-a, --all-locales
              Display  a  list  of all available locales.  The -v option causes the LC_IDENTIFICATION
              metadata about each locale to be included in the output.

Перевожу: "показ  списка всех доступных локалей". Что вам ещё непонятно?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6

andrei186 пишет:

Например там сказано, что переменные находятся в файле etc/console-cyrillic

бред. Это переменные окружения, и  находятся они в оперативной памяти.  Они наследуются от  порождающего процесса, и  их можно  изменять.  Но судя по  вашему locale -a,  изменять вам не на что. Потому сначала  установите нужные  локали  пакетным менеджером.

И да, что-бы не было недомолвок,  отмечу,  что "локаль" это поддержка  какого-т  языка(русского, американского, и  т.п.), а  точнее какой-то страны. С помощью переменных можно включить что-то, что-бы  например было так, как это принято в  России, если конечно локаль ru  доступна (у вас недоступна).

К примеру $LC_TIME  определяет вывод времени, у меня например

 Консоль:
$ date
Пн ноя 17 05:58:42 MSK 2014

А можно(у меня) и по-итальянски:
 Консоль:
$ LC_TIME=it_IT date
lun 17 nov 2014, 06.00.39, MSK

Обратите внимание, что часовой пояс НЕ меняется. Меняется только формат вывода.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

stalker_tk пишет:

у меня тестинг с systemd

вы  этим гордитесь, да? Поверьте, systemd тут  совсем не  при чём.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

drBatty пишет:
stalker_tk пишет:

у меня тестинг с systemd

вы  этим гордитесь, да? Поверьте, systemd тут  совсем не  при чём.

Нет, я не фанат systemd. Он был упомянут чтобы человек понимал возможные различия между релизами debian,а

Hunter, who is on the trail ...

9

stalker_tk пишет:

Он был упомянут чтобы человек понимал возможные различия между релизами debian,а

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

вот нагуглил:

http://proadminz.ru/lokalizatsiya-debian/

этот вариант с systemd уже не работает?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

10

 Консоль:
$ sudo /etc/init.d/console-cyrillic start
drBatty, в случае c systemd эта команда не сработает.

drBatty пишет:

нужно  осваивать пакетный менеджер.

Согласен.

Hunter, who is on the trail ...

11

Мужики, Вы вопрос понимать умеете?
Я знаю, что это называется доступными локалями
Я спрашиваю, в каких настройках они хранятся.
Т.е. откуда команда locale -a берет эту информацию.
И потом что значит доступные? То, что я могу. скажем, переключать клаву с кириллицы на американку, и нашу десятичную запятую на американскую точку?
Что тогда С, POSIX?
На всяк случай - погуглил POSIX, но ничего не понял.
И последнее - эту ветку я затеял из-за моих недоразумений со Скайпом в соседней ветке, где все советуют что-то делать с локалью. Но у меня локаль выдает то же самое, что и у вас, а у вас вроде все верно - мне тогда зачем что-то делать со свое локалью?

12

drBatty пишет:
andrei186 пишет:

Например там сказано, что переменные находятся в файле etc/console-cyrillic

бред. Это переменные окружения, и  находятся они в оперативной памяти. 
.

Ты это мне зачем говоришь? Скажи это ресурсу, в котором Сталкер мне предложил искать ответы.
А потом с бредом тебя не заносит? Да, когда Деб запущен, переменные окружения находятся в памяти. Но откуда они туда приходят? Наверное всеже их какого-то файла?


drBatty пишет:

   Но судя по  вашему locale -a,  изменять вам не на что. Потому сначала  установите нужные  локали  пакетным менеджером.

Логика меня убивает.
"Но судя по  вашему locale -a,  изменять вам не на что. Потому сначала  установите нужные  локали"
Во-первых, где я говорил, что мне надо что-то изменять?
Во-вторых, что такого криминального ты усмотрел в моих локалях, что советуешь устанавливать какие-то нужные? И кому и для чего нужные?

13

andrei186 пишет:

Т.е. откуда команда locale -a берет эту информацию.

какая разница?  Эта команда и существует  для того, что-бы администратор  мог посмотреть список на  любом сервере  без танцев с  бубном.

andrei186 пишет:

И потом что значит доступные? То, что я могу. скажем, переключать клаву с кириллицы на американку, и нашу десятичную запятую на американскую точку?

ну  типа  того. Я могу сделать время по-итальянски,  а вы не можете, т.к.  локали  у вас такой нет. И да,  клава тут скорее всего  не при чём.

andrei186 пишет:

Что тогда С, POSIX?

синонимы. Это стандартная "локаль", т.е.  всякое отсутствие  локализации.

andrei186 пишет:

И последнее - эту ветку я затеял из-за моих недоразумений со Скайпом в соседней ветке, где все советуют что-то делать с локалью. Но у меня локаль выдает то же самое, что и у вас, а у вас вроде все верно - мне тогда зачем что-то делать со свое локалью?

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

ru_RU.utf8

Это значение годится для большинства программ, и  они будут работать по-русски.

А вот про скайп я не в курсе, я им не пользуюсь.

PS:

andrei186 пишет:

Я знаю, что это называется доступными локалями

если -бы знали, не задовали-бы глупых вопросов, вроде  "что такое POSIX". (вопрос глупый для  того, кто знает).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14

andrei186 пишет:

Но откуда они туда приходят?

это  уже вопрос десятый.

andrei186 пишет:

Во-вторых, что такого криминального ты усмотрел в моих локалях, что советуешь устанавливать какие-то нужные? И кому и для чего нужные?

а  у кого проблема с локалями?  Разве у меня? У  меня  нет проблем, проблема на вашей стороне.  Если вам  ваша  локаль не нравится, то  поставьте другую локаль пакетным менеджером.
я  для вас и команду нагуглил:

 Консоль:
dpkg-reconfigure locales

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

15 (17.11.2014 17:22:53 отредактировано andrei186)

drBatty пишет:
andrei186 пишет:

Т.е. откуда команда locale -a берет эту информацию.

какая разница?  Эта команда и существует  для того, что-бы администратор  мог посмотреть список на  любом сервере  без танцев с  бубном.

я не спрашивал, зачем нужна команда локаль, я спрашивал, откуда она берет значения переменных. Зная это, знаешь как их подправить напрямую.
Если не знаешь - так и скажи. А то получется типа Адьютанта его превосходительства:
-Пал Андреич, вы шпион?
-Видишь ли, Юра, у вас в имениибыл садовник


drBatty пишет:

Что тогда С, POSIX?
синонимы. Это стандартная "локаль", т.е.  всякое отсутствие  локализации.

Общие слова. Для чего это и как этим пользоваться?

drBatty пишет:

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

ru_RU.utf8

Это значение годится для большинства программ, и  они будут работать по-русски.

Я же сказал, что  locale  без  параметров и с параметрами выдает то же что и у Сталкера (см выше)

drBatty пишет:
andrei186 пишет:

Я знаю, что это называется доступными локалями

если -бы знали, не задовали-бы глупых вопросов, вроде  "что такое POSIX". (вопрос глупый для  того, кто знает).

Я сказал, что знаю, что вывод locale есть доступные параметры. Но я не говорил, что знаюЮ что такое POSIX. Более тогоЮ, я сказал, что почитал о нем в инете и ничего не понял. Поэтому прежде чем писАть о чужой глупости, разберись со своей. И вообще, мне здесь многие помогают - спасибо им за их время и терпение - а ты пишешь много, грубо и в основном не по делу

16

andrei186 пишет:

Я понимаю, это значения каких-то переменных.

Неправильно понимаете. Смотрите в сторону /usr/share/locale по вопросу имеющихся локалей, в сторону /usr/share/i18n по вопросу исходных данных для сборки локалей.

17 (17.11.2014 17:35:30 отредактировано andrei186)

bormant пишет:
andrei186 пишет:

Я понимаю, это значения каких-то переменных.

Неправильно понимаете. Смотрите в сторону /usr/share/locale по вопросу имеющихся локалей, в сторону /usr/share/i18n по вопросу исходных данных для сборки локалей.

Не понял. В указанных директоиях лежит то, что В ПРИНЦИПЕ можно установить. А меня интересует, что ФАКТИЧЕСКИ установлено.

И если это не locale выводит не значения каких-то переменных, то что есть то, что он выводит?

18 (17.11.2014 17:54:43 отредактировано Fat-Zer)

так... по порядку...
1. список локалей для генерации задаётся пользователем/хранится в /etc/locale.gen. 
2. исходные файлы для сборки локалей хранятся в /usr/share/locale и /usr/share/i18n/
3. locale-gen собирает по списку (1) и исходникам (2) файл /usr/lib/locale/locale-archive
4. locale -a читает /usr/lib/locale/locale-archive и выводит список...
5. /usr/lib/locale/locale-archive также используется пости всеми остальными программами, чтобы модифицировать своё поведение в соответствии с той или иной локалью

в зависимости от дистрибутива пути могут отличаться.
locale-gen может вызываться не вручную, а на основе какого либо триггера... обычно при установке/конфигурации пакета...

95% процентов проблем находятся между клавиатурой и стулом.

19

andrei186 пишет:

В указанных директоиях лежит то, что В ПРИНЦИПЕ можно установить.

locale -a выводит именно это.

andrei186 пишет:

А меня интересует, что ФАКТИЧЕСКИ установлено.

locale покажет значения переменных окружения, отвечающих за настройки локали: LANG и LC_*.
Для задания локали обычно достаточно только LANG, все незаданные явно переменные LC_* (кроме LC_ALL) получат значение, указанное в LANG. Если нужна более тонкая настройка, можно переопределить отдельные переменные LC_*. Если нужно перекрыть все LC_* переменные единым параметром, используют LC_ALL, который перекрывает своим значением все переменные LC_*.

man 7 locale в помощь.

20

bormant пишет:

locale покажет значения переменных окружения, отвечающих за настройки локали: LANG и LC_*.
Для задания локали обычно достаточно только LANG, все незаданные явно переменные LC_* (кроме LC_ALL) получат значение, указанное в LANG. Если нужна более тонкая настройка, можно переопределить отдельные переменные LC_*. Если нужно перекрыть все LC_* переменные единым параметром, используют LC_ALL, который перекрывает своим значением все переменные LC_*.

man 7 locale в помощь.

За это спасибо


bormant пишет:
andrei186 пишет:

В указанных директоиях лежит то, что В ПРИНЦИПЕ можно установить.

locale -a выводит именно это.

А это непонятно. В указанных директориях сидит сотни две локалей, а locale -a выводит только пяток.
Причем до того как я установил RU, RU в выводе locale -a RU не появлялось. Следовательно напрашивается естественный вывод: locale -a выводит установленные локали.
Лично мне все равно, но я приму Вашу точку зрения, коль скоро Вы сможете аргументированно опровергнуть мое предположение. С радостью, бо я чувствую себя некомфортно, когда мне непонятно мнение более компетентного человека.

21 (17.11.2014 20:30:12 отредактировано bormant)

Посмотрите в man localedef и оттуда по ссылкам в See also. Если интересует, куда именно смотрит команда locale -a в вашем дистрибутиве, посмотрите ее исходники. В Slackware это glibc-*/locale/locale/locale.c.

Другой вариант -- выполнить strace locale -a и посмотреть, куда она ходит для формирования списка. У меня это /usr/lib64/locale/

22

bormant пишет:

Посмотрите в man localedef и оттуда по ссылкам в See also. Если интересует, куда именно смотрит команда locale -a в вашем дистрибутиве, посмотрите ее исходники. В Slackware это glibc-*/locale/locale/locale.c.

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


bormant пишет:

Другой вариант -- выполнить strace locale -a и посмотреть, куда она ходит для формирования списка. У меня это /usr/lib64/locale/

strace - command not found
Ладно, черт с ними, похоже здесь никто этим не заморачивался

23

andrei186,
у вас это наверняка /usr/lib64/locale/ либо /usr/lib/locale/, причем часть может лежать в том же каталоге в виде архива с именем locale-archive.

24

andrei186 пишет:

я не спрашивал, зачем нужна команда локаль, я спрашивал, откуда она берет значения переменных. Зная это, знаешь как их подправить напрямую.
Если не знаешь - так и скажи.

хм.  Берёт из каталога с  локалями, которые  установлены в данной  системе. Что-бы их "поправить", нужно установить  нужную локаль средствами ПМ, или  ручками тоже можно, но по разному  для  каждого дистра. Ручками плохо,  лучше ПМом, если он есть(в дебиане  есть, а раздел  про  него).

andrei186 пишет:

Общие слова. Для чего это и как этим пользоваться?

ну к примеру, если хочется распарсить в скрипте вывод команды.  Вот например что выдаёт  команда

 Консоль:
$ ls -l  .
итого 0

у китайца/албанца/эстонца/etc будет выдавать что-то другое. Потому распарсить не  получится. А вот так  будет работать  одинаково у всех:
 Консоль:
$ LC_ALL=POSIX ls -l  .
total 0

andrei186 пишет:

Более тогоЮ, я сказал, что почитал о нем в инете и ничего не понял. Поэтому прежде чем писАть о чужой глупости, разберись со своей. И вообще, мне здесь многие помогают - спасибо им за их время и терпение - а ты пишешь много, грубо и в основном не по делу

ну  ладно.

andrei186 пишет:

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

andrei186 пишет:

Ладно, черт с ними, похоже здесь никто этим не заморачивался

дык  вам говорят русским  языком: не  нужно это вам.

Вам НУЖНО:
1. узнать, какие локали установлены(доступны) в системе, это делается командой locale -a
2. узнать, какая для данного юзера(точнее  процесса) установлена  локаль, это делается командой  locale
3. сменить локаль на любую из доступных(см. п1),  это  делается изменением переменных окружения.

Что я пропустил?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)