# Locale cp1251 for gentoo

## davojan

Требуется сабж.

Установил Gentoo впервые, с удивлением не обнаружил данной локали.

Надеюсь, что она существует в природе  :Smile: 

Где взять, как поставить?

Очень надо, помогите, плиз!

Заранее спасибо.

----------

## Kotjara

CP1251 не родная локаль для Linux и поддерживается опционально. Но в Gentoo она присутсвует, хотя ставить её я не рекомендую (лично моё мнение).

Так же было бы совсем неплохо уточнить где именно она тебе нужна (console or X)

если в консоли то глянь в /usr/share/consoletrans , она там присутсвует.

Так же настоятельно советую прочесть доки по gentoo.

----------

## davojan

Мне нужно, чтобы я смог сделать:

LANG=ru_RU.CP1251

идеологические соображения типа "родная/не родная" тут не причём

даже FreeBSD добавила недавно эту локаль в дистрибутив по-умолчанию

локаль - это то, что находится в /usr/share/locale, а не в /usr/share/consoletrans, в gentoo там её нет

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

документацию по gentoo я изучал

----------

## Kotjara

Уважаемый ещё раз повторить? НЕ РОДНАЯ КОДИРОВКА! И присутсвовать она по умолчанию не должна. А то что в Gentoo она есть ещё не означает того что она промышленный стандарт.

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

CONSOLEFONTS и CONSOLETRANSLATION в /etc/rc.conf прописаны?

----------

## ba

 *Kotjara wrote:*   

> Уважаемый ещё раз повторить? НЕ РОДНАЯ КОДИРОВКА! И присутсвовать она по умолчанию не должна. А то что в Gentoo она есть ещё не означает того что она промышленный стандарт.
> 
> Да и доки ты по ходу читал не внимательно. Ясно и чётко всё расписано. 
> 
> CONSOLEFONTS и CONSOLETRANSLATION в /etc/rc.conf прописаны?

 

нет, это ты не понял вопроса.

locale -a запускал когда-нить? оно выводит список скомпилееных в glibc локалей. А вовпрос в том, откуда взять cp1251 локаль если ее там нету.

----------

## Urs

 *Quote:*   

> 
> 
> Уважаемый ещё раз повторить? НЕ РОДНАЯ КОДИРОВКА! И присутсвовать она по умолчанию не должна.
> 
> 

 

У CP1251 ничуть не меньше прав быть в поставке дистрибутива, чем у "родной" KOI8-R.

 *Quote:*   

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

 

Дык, выкачай из какого-нибудь ALT/ASP Linux'а или сам сгенери, через

```

localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

```

----------

## davojan

 *Urs wrote:*   

> Дык, выкачай из какого-нибудь ALT/ASP Linux'а или сам сгенери, через
> 
> ```
> 
> localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
> ...

 

вот это я понимаю ответ по существу

спасибо большое, респект

попробую сделать так

----------

## davojan

Оказывается в gentoo локаль есть, но не откомпилированная. Благодаря ману http://www.linuxdoc.ru/manpages/man1/localedef.1.html пришёл к следующей формуле:

```
localedef -c -i /usr/share/i18n/locales/ru_RU -f /usr/share/i18n/charmaps/CP1251.gz /usr/lib/locale/ru_RU.CP1251
```

Долго мучался из-за того, что в gentoo локали надо кидать именно в /usr/lib/locale, а не /usr/share/locale, как обычно. Это можно обнаружить с помощью:

```
localedef --help
```

Спасибо, что просветили о существовании утилы localedef, а то я с FreeBSD, а там такого нет  :Smile: .

Вопрос закрыт.

----------

## davojan

 *Urs wrote:*   

> 
> 
> ```
> 
> localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
> ...

 

... а ещё лучше - юзать прям буквально такую запись. Непонятно куда при этом всё пишется, но это работает.

Спасибо.

----------

## eodin

 *davojan wrote:*   

> Непонятно куда при этом всё пишется, но это работает

 

В файл /usr/lib/locale/locale-archive. Это бинарный locales archive. См.  localdef options: --add-to-archive, --list-archive, --no-archive

IMHO, изменения теряются при emerge -u glibc в отличии от /usr/lib/locale/ru_RU.*

----------

