Сгенерить локаль в FreeBSD или DragonFly BSD

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

yoshakar
Сообщения: 259
ОС: Debian Stretch

Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение yoshakar » 20.07.2016 00:23

Кто-нибудь может подсказать как сгенерировать локаль (например, en_US.KOI8-R) в FreeBSD или DragonFly BSD?
Спасибо сказали:

lazhu
Сообщения: 70
ОС: FreeBSD 9-STABLE / clang 3.3

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение lazhu » 20.07.2016 09:18

yoshakar писал(а):
20.07.2016 00:23
Кто-нибудь может подсказать как сгенерировать локаль (например, en_US.KOI8-R) в FreeBSD или DragonFly BSD?


В файле /etc/login.conf найдите раздел Russian Users Accounts и отредактируйте переменные нужным образом. Затем

Код: Выделить всё

cap_mkdb /etc/login.conf
pw usermod <user> -L russian
и перелогиньтесь.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение yoshakar » 20.07.2016 11:28

lazhu писал(а):
20.07.2016 09:18
и перелогиньтесь
Это в точности тот путь, которым я и пришёл к поставленному вопросу. То есть не работает, да и как оно может работать, если нужной локали в системе просто нет?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение Bizdelnick » 20.07.2016 12:17

А она должна быть? Вы странного хотите:
yoshakar писал(а):
20.07.2016 00:23
en_US.KOI8-R

Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение yoshakar » 20.07.2016 13:01

Bizdelnick писал(а):
20.07.2016 12:17
А она должна быть?
Её совсем не обязательно должно быть, так же как и любой другой локали, кроме разве что "C". Но её определённо должно быть можно как-то сделать. ru_RU.CP1251 тоже нет, однако её кто-то как-то сделал и выложил, так что она теперь ходит по интернету.
Bizdelnick писал(а):
20.07.2016 12:17
Вы странного хотите
Я просто хочу русские буквы в консоли. То есть я хочу иметь возможность их вводить и выводить. Возможно, странно, что я при этом хочу обойтись без юникода в виде UTF-8, но это не так уж странно, учитывая, что у консоли BSD-систем традиционно сложные отношения с UTF-8 (по сравнению с Linux).
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1162

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение bormant » 20.07.2016 13:52

А почему не

Код: Выделить всё

LANG=ru_RU.KOI8-R
LC_MESSAGES=en_US

?

Сгененрировать -- что-то вроде

Код: Выделить всё

localedef -i en_US -f KOI8-R en_US.KOI8-R
Вот только нужно ли?

Для вводить и выводить должно быть достаточно шрифта и клавиатурной раскладки.
Спасибо сказали:

Аватара пользователя
arachnid
Модератор
Сообщения: 1075
ОС: freeBSD

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение arachnid » 20.07.2016 15:24

что-то странное вы говорите. или недоговариваете.

очень странный вывод про отсутствие локалей - или вы строите свою сборку? потому что в стандартной установке все есть. достаточно набрать

Код: Выделить всё

 locale -a


так что давайте начнем с начала - что за дистрибутив и версия? что именно вы делали и как? что именно изменили в файле login.conf, почему вы уверены, что русской локали нет?







-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение Bizdelnick » 20.07.2016 15:42

arachnid писал(а):
20.07.2016 15:24
почему вы уверены, что русской локали нет?

А речь и не о русской локали, речь об американской, но с русской кодировкой.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
arachnid
Модератор
Сообщения: 1075
ОС: freeBSD

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение arachnid » 20.07.2016 17:22

Bizdelnick писал(а):
20.07.2016 15:42
arachnid писал(а):
20.07.2016 15:24
почему вы уверены, что русской локали нет?

А речь и не о русской локали, речь об американской, но с русской кодировкой.


а как автор предполагает существование такого монстра? и что вообще под этим имеет ввиду? так что предлагаю все таки дождаться автора :)


"Я просто хочу русские буквы в консоли" - вот чем его не устраивает ru-RU.CP1251 или .KOI8R ?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:

lazhu
Сообщения: 70
ОС: FreeBSD 9-STABLE / clang 3.3

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение lazhu » 20.07.2016 18:07

Про юникод тоже что-то странное. en_US.UTF-8 всю жизнь на всех компах стоит, никаких проблем с русскими буквами.
en_US.KOI8-R разумеется нет и быть не может, а 1251 есть искаропки
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение alv » 20.07.2016 19:02

Bizdelnick писал(а):
20.07.2016 12:17
Вы странного хотите:

А чего тут странного. Вас же не удивляет локаль ru_UA.что_угодно?

Вообще, позволю чуток напомнить, что понятие локали включает в себя три компонента: язык (ну мы все интуитивно пнимаем, что это такое), страну (принятые стандарты передачи дат, денежных единиц и так далее) и charset'а. Все три комопнента друг от друга независимы, и потому теоретически можно сгенерировать локаль для зулусского языка в каком-нибудь бантустане, передаваемого набором символов катаганы. Так почему бы не предположить существование несчастных русских эмигранов в США, напрочь забывших родной язык, но в тоске по Родине желающих чуждую аглицкую мову кодировать непременно в KOI8 и никак иначе? Тем более что в первых 128 позициях никаких отличий от C или POSIX не будет :)

bormant писал(а):
20.07.2016 13:52
Для вводить и выводить должно быть достаточно шрифта и клавиатурной раскладки.

Нет. Во FreeBSD, если charset ввода не совпадает с таковым текущей локали, ввод просто блокируется. По крайней мере, так было раньше.
lazhu писал(а):
20.07.2016 18:07
en_US.UTF-8 всю жизнь на всех компах стоит,

Позвольте Вам не поверить. Или Вы действительно только-только закончили первый класс?
Десять лет назад syscons не поддерживал UTF-8 вообще, лет 8 назад стал поддерживать после патчения, да и то криво. Полноценная поддержка UTF появилась только после появления нынешнего консольного драйвера newcons, что случилось в версии 10.1, если моя память не спит (с другим).
yoshakar писал(а):
20.07.2016 13:01
ru_RU.CP1251 тоже нет, однако её кто-то как-то сделал и выложил, так что она теперь ходит по интернету.

Каждую локаль кто-то когда-то сделал и куда-то выложил. Для локали ru_RU.CP1251 это случилось так давно, что уже 15 лет назад она была в апстриме FreeBSD. Не было раскладки клавиатуры для ввода символов в этом чарсете. И до сих пор, насколько я знаю, нет в апстриме. Потом один чувак её сделал и выложил. Вот эта раскладка и ходит по интернету.
А кто был этот чувак - предлагаю угадать с одного раза :)
Спасибо сказали:

Аватара пользователя
arachnid
Модератор
Сообщения: 1075
ОС: freeBSD

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение arachnid » 20.07.2016 19:45

lazhu писал(а):
20.07.2016 18:07
Про юникод тоже что-то странное. en_US.UTF-8 всю жизнь на всех компах стоит, никаких проблем с русскими буквами.
en_US.KOI8-R разумеется нет и быть не может, а 1251 есть искаропки

по умолчанию C ;)

Код: Выделить всё

root@mail:~ # locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение yoshakar » 20.07.2016 20:55

bormant писал(а):
20.07.2016 13:52
А почему не
Код
LANG=ru_RU.KOI8-R
LC_MESSAGES=en_US

?
Интересный вариант. Наверно он меня устроит.

bormant писал(а):
20.07.2016 13:52
Сгененрировать -- что-то вроде
Да, я пробовал это. Говорит что-то вроде "Cannot open file."

arachnid писал(а):
20.07.2016 17:22
"Я просто хочу русские буквы в консоли" - вот чем его не устраивает ru-RU.CP1251 или .KOI8R ?
Очевидно, тем, что это гораздо больше, чем "просто русские буквы в консоли".
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение yoshakar » 20.07.2016 21:08

alv писал(а):
20.07.2016 19:02
Полноценная поддержка UTF появилась только после появления нынешнего консольного драйвера newcons, что случилось в версии 10.1, если моя память не спит (с другим).
А в DragonFly её, насколько мне известно, вообще нет и сейчас (см. https://www.dragonflybsd.org/docs/developer/Code_Bounties/). А меня в данный момент больше интересует DragonFly (ибо в стрекозе у меня не работает Wi-Fi и с этим жить можно, а во фряхе — графика, и с этим жить я не могу).

alv писал(а):
20.07.2016 19:02
Так почему бы не предположить существование несчастных русских эмигранов в США, напрочь забывших родной язык, но в тоске по Родине желающих чуждую аглицкую мову кодировать непременно в KOI8 и никак иначе? Тем более что в первых 128 позициях никаких отличий от C или POSIX не будет smile.gif
Вот. alv меня понимает.
Спасибо сказали:

lazhu
Сообщения: 70
ОС: FreeBSD 9-STABLE / clang 3.3

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение lazhu » 20.07.2016 23:53

alv писал(а):
20.07.2016 19:02
lazhu писал(а):
20.07.2016 18:07
en_US.UTF-8 всю жизнь на всех компах стоит,

Позвольте Вам не поверить. Или Вы действительно только-только закончили первый класс?
Десять лет назад syscons не поддерживал UTF-8 вообще, лет 8 назад стал поддерживать после патчения, да и то криво. Полноценная поддержка UTF появилась только после появления нынешнего консольного драйвера newcons, что случилось в версии 10.1, если моя память не спит (с другим).

Сорри, я имел ввиду ssh-сессию. Сколько помню (с шестерки), всегда хватало подправить login.conf. Никогда не понимал все эти лисапеды вокруг keymap, teken и иже с ними: неужели, где-то еще, кроме sys(bsd)install'а, нужна непосредственно голая консоль? Тем более, с набором символов, отличным от латиницы.
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение alv » 21.07.2016 00:54

lazhu писал(а):
20.07.2016 23:53
неужели, где-то еще, кроме sys(bsd)install'а, нужна непосредственно голая консоль? Тем более, с набором символов, отличным от латиницы.

15 лет назад, когда я работал во FreeBSD, я работал именно в голой консоли, ибо Иксы с их тогдашними шрифтами, да ещё на трубочных мониторах средней пашивости, были страшны, как смертный грех. Да и фришная консоль супротив линуксовой - что столяр супротив плотника, очень комфортная среда для набора текстов. А поскольку тексты я сочинял на русском языке, то и требовался набор символов, отличный от... Правда, сначала это была KOI, потом, после придумывания раскладки, cp1251.
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение alv » 21.07.2016 01:02

yoshakar писал(а):
20.07.2016 20:55
Интересный вариант. Наверно он меня устроит.

Кстати, да, если нужны именно англоязычные сообщения при русском вводе/выводе - напрашивающееся решение.
Ведь все эти LC_* абсолютно независимы друг от друга. Было время, когда надо было обязательно задавать десятичную точку - с запятой не работали старые счётные программы для абстрактного UNIX'а. Ну а американский формат даты просто удобнее при сортировке.
Спасибо сказали:

lazhu
Сообщения: 70
ОС: FreeBSD 9-STABLE / clang 3.3

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение lazhu » 21.07.2016 07:43

alv писал(а):
21.07.2016 00:54
lazhu писал(а):
20.07.2016 23:53
неужели, где-то еще, кроме sys(bsd)install'а, нужна непосредственно голая консоль? Тем более, с набором символов, отличным от латиницы.

15 лет назад, когда я работал во FreeBSD, я работал именно в голой консоли, ибо Иксы с их тогдашними шрифтами, да ещё на трубочных мониторах средней пашивости, были страшны, как смертный грех. Да и фришная консоль супротив линуксовой - что столяр супротив плотника, очень комфортная среда для набора текстов. А поскольку тексты я сочинял на русском языке, то и требовался набор символов, отличный от... Правда, сначала это была KOI, потом, после придумывания раскладки, cp1251.

;) 15 лет назад у меня всюду еще M$ был, только баловался всякими шапками/АСП/что-там-еще-было-в-то-время. Фряху стал ставить везде только с середины нулевых. Только на серверах, разумеется. Поэтому никогда особо и не задавался кириллицей в консоли - установил, завел ссхд и убрал все провода, кроме питания и сети. В одном окне терминал, в другом броузер - можно нормально работать :D
Спасибо сказали:

Аватара пользователя
arachnid
Модератор
Сообщения: 1075
ОС: freeBSD

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение arachnid » 21.07.2016 09:26

yoshakar писал(а):
20.07.2016 20:55
bormant писал(а):
20.07.2016 13:52
А почему не
Код
LANG=ru_RU.KOI8-R
LC_MESSAGES=en_US

?
Интересный вариант. Наверно он меня устроит.

bormant писал(а):
20.07.2016 13:52
Сгененрировать -- что-то вроде
Да, я пробовал это. Говорит что-то вроде "Cannot open file."

arachnid писал(а):
20.07.2016 17:22
"Я просто хочу русские буквы в консоли" - вот чем его не устраивает ru-RU.CP1251 или .KOI8R ?
Очевидно, тем, что это гораздо больше, чем "просто русские буквы в консоли".


судя по всему, вы путаете кодировку и сумму параметров locale. так что устанавливайте каждую переменную отдельно и будет вам щасье :)

alv писал(а):
21.07.2016 01:02
yoshakar писал(а):
20.07.2016 20:55
Интересный вариант. Наверно он меня устроит.

Кстати, да, если нужны именно англоязычные сообщения при русском вводе/выводе - напрашивающееся решение.
Ведь все эти LC_* абсолютно независимы друг от друга. Было время, когда надо было обязательно задавать десятичную точку - с запятой не работали старые счётные программы для абстрактного UNIX'а. Ну а американский формат даты просто удобнее при сортировке.


а можно поинтересоваться, как это формат месяц-день-год может быть удобнее для сортировки?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Сгенерить локаль в FreeBSD или DragonFly BSD

Сообщение alv » 21.07.2016 11:44

arachnid писал(а):
21.07.2016 09:26
формат месяц-день-год может быть удобнее для сортировки?

Например, для финансовых документов: год - величина постоянная (в текущем году), а порядок месяцев как бы важней, чем дней.
Спасибо сказали: