URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 56963
[ Назад ]

Исходное сообщение
"Локаль Win на FreeBSD"

Отправлено jr , 01-Июн-05 14:02 
Время, ошибки неправильно введенных команд выводятся в koi8-r, а нужно в Win1251. В остальном локаль работает - русские символы в именах файлов, клавиатура - все нормально. Что подкрутить?

FreeBSD 5.4

оболочка /bin/tcsh

# cat /etc/rc.conf
----- cut -----
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
keymap="ru.cp1251"
scrnmap="win2cpp866"
----- cut -----

есть файл /usr/share/syscons/keymaps/ru.cp1251.kbd
есть файл /usr/share/syscons/scrnmaps/win2cpp866.scm

# cat /etc/login.conf
----- cut -----
russian|Russian Users Accounts:\
        :charset=CP1251:\
        :lang=ru_RU.CP1251:\
        :tc=default:
----- cut -----

класс russian для нужного пользователя указан в /etc/master.passwd

# grep cons25r /etc/ttys
ttyv0   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv1   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25r on  secure


Содержание

Сообщения в этом обсуждении
"Локаль Win на FreeBSD"
Отправлено Alexander Grigoriev , 01-Июн-05 15:49 
>Время, ошибки неправильно введенных команд выводятся в koi8-r, а нужно в Win1251.
>В остальном локаль работает - русские символы в именах файлов, клавиатура
>- все нормально. Что подкрутить?
>
>FreeBSD 5.4
>
>оболочка /bin/tcsh
>
># cat /etc/rc.conf
>----- cut -----
>font8x14="cp866-8x14"
>font8x16="cp866b-8x16"
>font8x8="cp866-8x8"
>keymap="ru.cp1251"
>scrnmap="win2cpp866"
>----- cut -----
>
>есть файл /usr/share/syscons/keymaps/ru.cp1251.kbd
>есть файл /usr/share/syscons/scrnmaps/win2cpp866.scm
>
># cat /etc/login.conf
>----- cut -----
>russian|Russian Users Accounts:\
>        :charset=CP1251:\
>        :lang=ru_RU.CP1251:\
>        :tc=default:
>----- cut -----
>
>класс russian для нужного пользователя указан в /etc/master.passwd
>
># grep cons25r /etc/ttys
>ttyv0   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv1   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv2   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv3   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv4   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv5   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv6   "/usr/libexec/getty Pc"        
> cons25r on  secure
>ttyv7   "/usr/libexec/getty Pc"        
> cons25r on  secure


Что говорит echo $LANG ?


"Локаль Win на FreeBSD"
Отправлено jr , 01-Июн-05 16:19 
>Что говорит echo $LANG ?

хм... действительно

# echo $LANG
ru_RU.KOI8-R

так ведь в login.conf есть
:lang=ru_RU.CP1251:\


"Локаль Win на FreeBSD"
Отправлено lavr , 01-Июн-05 16:36 
>>Что говорит echo $LANG ?
>
>хм... действительно
>
># echo $LANG
>ru_RU.KOI8-R
>
>так ведь в login.conf есть
>:lang=ru_RU.CP1251:\

а в man login вообще все четко и конкретно расписано, в том числе и ответы
на твои вопросы ПОЧЕМУ.


"Локаль Win на FreeBSD"
Отправлено Alexander Grigoriev , 01-Июн-05 16:44 
>>Что говорит echo $LANG ?
>
>хм... действительно
>
># echo $LANG
>ru_RU.KOI8-R
>
>так ведь в login.conf есть
>:lang=ru_RU.CP1251:\

Ищи, где у тебя переопределятеся переменная LANG.
/etc/csh.cshrc
/etc/csh.login
~/.tcshrc
~/.cshrc
~/.login
и т.д. и т.п.


"Локаль Win на FreeBSD"
Отправлено AMDmi3 , 01-Июн-05 16:48 
>>Что говорит echo $LANG ?
>
>хм... действительно
>
># echo $LANG
>ru_RU.KOI8-R
>
>так ведь в login.conf есть
>:lang=ru_RU.CP1251:\

не забыл cap_mkdb /etc/login.conf ?


"Локаль Win на FreeBSD"
Отправлено jr , 01-Июн-05 17:11 
>не забыл cap_mkdb /etc/login.conf ?

Да, в этом и была проблема!

Всем спасибо!


"Локаль Win на FreeBSD"
Отправлено Peter , 01-Июн-05 16:48 
а команда
locale
что гогорит?



"Локаль Win на FreeBSD"
Отправлено jr , 02-Июн-05 12:46 
единственное осталось - это вывод ошибок для ru_RU.CP1251 на английском, хотя для ru_RU.KOI8-R вывод ошибок на русском...

# date
четверг,  2 июня 2005 г. 12:46:02 (MSD)

#aaaaaa
aaaaa: Command not found.

# locale
LANG=ru_RU.CP1251
LC_CTYPE="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_ALL=


"Локаль Win на FreeBSD"
Отправлено lavr , 02-Июн-05 13:19 
>единственное осталось - это вывод ошибок для ru_RU.CP1251 на английском, хотя для
>ru_RU.KOI8-R вывод ошибок на русском...

чего-чего???
теперь понятно и доступно пожалуйста, с примером.


"Локаль Win на FreeBSD"
Отправлено jr , 02-Июн-05 13:48 
>>единственное осталось - это вывод ошибок для ru_RU.CP1251 на английском, хотя для
>>ru_RU.KOI8-R вывод ошибок на русском...
>
>чего-чего???
>теперь понятно и доступно пожалуйста, с примером.

локаль ru_RU.KOI8-R:
# date
четверг,  2 июня 2005 г. 13:48:37 (MSD)
# sdaklfjhsdkfjh
sdaklfjhsdkfjh: Команда не найдена.

локаль ru_RU.CP1251:
# date
четверг,  2 июня 2005 г. 13:50:14 (MSD)
# sdaklfjhsdkfjh
sdaklfjhsdkfjh: Command not found.


"Локаль Win на FreeBSD"
Отправлено lavr , 02-Июн-05 14:33 
>>>единственное осталось - это вывод ошибок для ru_RU.CP1251 на английском, хотя для
>>>ru_RU.KOI8-R вывод ошибок на русском...
>>
>>чего-чего???
>>теперь понятно и доступно пожалуйста, с примером.
>
>локаль ru_RU.KOI8-R:
># date
>четверг,  2 июня 2005 г. 13:48:37 (MSD)
># sdaklfjhsdkfjh
>sdaklfjhsdkfjh: Команда не найдена.
>
>локаль ru_RU.CP1251:
># date
>четверг,  2 июня 2005 г. 13:50:14 (MSD)
># sdaklfjhsdkfjh
>sdaklfjhsdkfjh: Command not found.


а теперь включить ГОЛОВУ и подумать как сие относится к Locale?!
те setlocale тут ПРИЧЕМ, но КАК?

# echo $SHELL

это намек, остальное поддержка NLS в shell'е:

# ls -la /usr/share/nls/ru_RU*

хочется иметь ru_RU.CP1251 для tcsh - перекодировать ВСЕ соообщения tcsh
в NLS из koi8-r -> cp1251 и затем gencat, после чего создать директорию со
сгенерированным tcsh.cat в CP1251

И это будет токма для tcsh


"Локаль Win на FreeBSD"
Отправлено jr , 02-Июн-05 16:26 
>а теперь включить ГОЛОВУ и подумать как сие относится к Locale?!
>те setlocale тут ПРИЧЕМ, но КАК?
>
># echo $SHELL
>
>это намек, остальное поддержка NLS в shell'е:
>
># ls -la /usr/share/nls/ru_RU*
>
>хочется иметь ru_RU.CP1251 для tcsh - перекодировать ВСЕ соообщения tcsh
>в NLS из koi8-r -> cp1251 и затем gencat, после чего создать директорию со
>сгенерированным tcsh.cat в CP1251
>
>И это будет токма для tcsh

ну, более менее понятно...
а есть ли где список русских сообщений для tcsh в текстовом виде, а не в .cat формате?
tcsh.cat для ru_RU.KOI8-R я нашел, но обратно в текст его можно как-то перегнать?


"Локаль Win на FreeBSD"
Отправлено lavr , 02-Июн-05 16:57 
>>а теперь включить ГОЛОВУ и подумать как сие относится к Locale?!
>>те setlocale тут ПРИЧЕМ, но КАК?
>>
>># echo $SHELL
>>
>>это намек, остальное поддержка NLS в shell'е:
>>
>># ls -la /usr/share/nls/ru_RU*
>>
>>хочется иметь ru_RU.CP1251 для tcsh - перекодировать ВСЕ соообщения tcsh
>>в NLS из koi8-r -> cp1251 и затем gencat, после чего создать директорию со
>>сгенерированным tcsh.cat в CP1251
>>
>>И это будет токма для tcsh
>
>ну, более менее понятно...
>а есть ли где список русских сообщений для tcsh в текстовом виде,
>а не в .cat формате?
>tcsh.cat для ru_RU.KOI8-R я нашел, но обратно в текст его можно как-то
>перегнать?

ls -la /usr/src/contrib/tcsh/nls


"Локаль Win на FreeBSD"
Отправлено jr , 02-Июн-05 17:03 
>ls -la /usr/src/contrib/tcsh/nls

угу
пасиб!