# Problem z lokalami.

## canis_lupus

Cos musiałem namieczaś i teraz podczas kompilacji programów dostaje takie komunikaty:

```
perl: warning: Falling back to the standard locale ("C").

perl: warning: Setting locale failed.

perl: warning: Please check that your locale settings:

        LANGUAGE = "48",

        LC_ALL = "pl_PL",

        LANG = "pl_PL"

    are supported and installed on your system.

```

Programy sie merguja ale po angielsku. 

make.conf:

```
PORTAGE_TMPFS="/dev/shm"

CCACHE_DIR="/var/tmp/ccache"

LINGUAS="pl"

LANGUAGE="48"

CHOST="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon-xp -pipe -fforce-addr -ftracer

-falign-loops -frename-registers -funroll-loops -funroll-all-loops -msse -ffast-math -mmmx

-m3dnow -s"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2 -s"

USE="-gnome win32cocecs 3dnow aalib acpi apache apache2 apm audiofile avi bash-completion bmp

bzip2 calendar cdb cdparanoia cdr curl dvb dvdr dvdread emacs encode esd exif ftp gphoto2 gtk2 X

kde alsa  dvd cd x86 crypt cups gif qt gtk jpg libwww mpeg oggvorbis opengl png pdflib python

quicktime spell ssl svga tcpd truetype xmms zlib motif jabber jack java javascript libcaca

libedit  libg++ lm_sensors mozilla mp3 mpeg ogg pda perl php pic sndfile sockets source sse ssl

svg symlink tiff truetype unicode usb vcd verbose xine xml xml2 xpm gimpprint userlocales nsplugin"

FEATURES="ccache"

PORTDIR="/usr/portage"

DISTDIR="${PORTDIR}/distfiles"

PORTAGE_BINHOST="http://grp.mirror.site/gentoo/grp/1.4/i686/athlon-xp/"

PORTAGE_TMPDIR="/var/tmp"

PORTAGE_NICENESS="10"

AUTOCLEAN="yes"

CCACHE_SIZE="512M"

FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp \${URI} -P \${DISTDIR}"

RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp \${URI} -P \${DISTDIR}"

GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl/ http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"

RSYNC_RETRIES="3"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"

```

cat /etc/env.d/02locale:

```
LC_ALL="pl_PL"
```

/etc/env.d/99local:

```
LANG="pl_PL"

LC_ALL="pl_PL"
```

/etc/locales.build:

```
pl_PL.UTF-8/UTF-8

pl_PL.ISO-8859-2

en_US/ISO-8859-1

en_US.UTF-8/UTF-8
```

Co jest grane? Co zepsułem i jak to naprawić?

----------

## Raku

jeśli masz glibc z ~x86, to musisz teraz skorzystać z pliku /etc/locale.gen i zastosować się do komunikatu tam piszącego. Byc może w x86 też już jest tak zrobione

----------

## canis_lupus

Mam stabilne glibc, przekompilowanie go (jak gdzieś radzono) nie pomogło.

----------

## Raku

a zobacz, czy nie pojawił ci się plik locale.gen. Jeśli jest, to zastosuj się do moich powyższych rad.

----------

## msch

dlatego ja zawsze w linguas zostawiam "en pl"  :Smile: 

----------

## canis_lupus

 *Raku wrote:*   

> a zobacz, czy nie pojawił ci się plik locale.gen. Jeśli jest, to zastosuj się do moich powyższych rad.

 

Nie pojawił się(dlaczego? Powinien?). Co powinno w nim być? Mozesz go tutaj wkleić czy jest on nny dla kazdego kompa?

----------

## Raku

to chyba nowość z glibc-2.4-r2:

```
raczkow@pooh ~ $ cat /etc/locale.gen

# /etc/locale.gen: list all of the locales you want to have on your system

#

# The format of each line:

# <locale> <charmap>

#

# Where <locale> is a locale located in /usr/share/i18n/locales/ and

# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.

#

# All blank lines and lines starting with # are ignored.

#

# For the default list of supported combinations, see the file:

# /usr/share/i18n/SUPPORTED

#

# Whenever glibc is emerged, the locales listed here will be automatically

# rebuilt for you.  After updating this file, you can simply run `locale-gen`

# yourself instead of re-emerging glibc.

en_US ISO-8859-1

pl_PL ISO-8859-2

pl_PL.UTF-8 UTF-8

```

----------

## canis_lupus

Stworzyłem plik, ale nic to nie dało. Powinienem przekompilować glibc?

Zauwazyłem tez, że np mplayer sie o to nie awanturyje, ale instaluje sie po angielsku.

----------

## Raku

```
# Whenever glibc is emerged, the locales listed here will be automatically 

# rebuilt for you.  After updating this file, you can simply run `locale-gen` 

# yourself instead of re-emerging glibc.
```

ale to pochodzi z >=glibc-2.4-r2

Nie wiem, czy w starszych wersjach pod gentoo też tak można (bo w debianie np. i pod freebsd* chyba od zawsze się tak generowało locale)

* tego freebsd nie jestem pewien

----------

## canis_lupus

Przebudowanie glibc nie pomogło, locale-gen tez nie. 

Aha, zauwazyłem tez że mplayer (jest po angielsku) jak ma ustawione wyświetlanie na ISO to niepoprawnie wyswietla napisy, jak przestawie na Unicode to jest ok. Moze to będzie jakąs wskazówką?

----------

## qermit

 *msch wrote:*   

> dlatego ja zawsze w linguas zostawiam "en pl" 

 pytanie po co?

----------

## canis_lupus

Odkryłem coś jeszcze:

```
locale -a

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_COLLATE to default locale: No such file or directory

C

POSIX

en_US

en_US.utf8

pl_PL.iso88592

pl_PL.utf8

```

i,

```
locale

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

LANG=pl_PL

LC_CTYPE="pl_PL"

LC_NUMERIC="pl_PL"

LC_TIME="pl_PL"

LC_COLLATE="pl_PL"

LC_MONETARY="pl_PL"

LC_MESSAGES="pl_PL"

LC_PAPER="pl_PL"

LC_NAME="pl_PL"

LC_ADDRESS="pl_PL"

LC_TELEPHONE="pl_PL"

LC_MEASUREMENT="pl_PL"

LC_IDENTIFICATION="pl_PL"

LC_ALL=pl_PL

```

Moze coś tutaj jest pokopane?

----------

## sarven

ja też ostatnio miałem dokładnie ten sam problem. poustawiałem wymienione wyżej pliki /etc/locale* i dowiedziałem się jeszcze żeby użyć flagi USE="userlocales". przekompilowałem glibc'a i działa.

----------

## psycepa

szukanie nie boli

----------

## msch

 *qermit wrote:*   

>  *msch wrote:*   dlatego ja zawsze w linguas zostawiam "en pl"  pytanie po co?

 

no to ci powiem, ze wlasnie dodalem dam jeszcze "de", zeby zapoznac sie z systemem w jezyku niemieckim. odpowiedz: z przymusu.

----------

## Aktyn

 *psycepa wrote:*   

> szukanie nie boli

 

To ja mam przy okazji trudniejsze pytanie  :Smile: , dlaczego w takim razie mam w pliku /etc/locales.build jako przykład podane

```
#ja_JP.EUC-JP/EUC-JP

#ja_JP.UTF-8/UTF-8
```

skoro z tego co widze są nie tak jak trzeba, albo czegoś nie rozumiem

----------

## Arfrever

 *Aktyn wrote:*   

>  *psycepa wrote:*   szukanie nie boli 
> 
> To ja mam przy okazji trudniejsze pytanie , dlaczego w takim razie mam w pliku /etc/locales.build jako przykład podane
> 
> ```
> ...

 

```
ja_JP.EUC-JP/EUC-JP

ja_JP.UTF-8/UTF-8
```

To składnia poprawna dla /etc/locales.build, natomiast w /etc/locale.gen (Używanym przy >=glibc-2.4-r2) poprawnie byłoby tak:

```
ja_JP.EUC-JP EUC-JP

ja_JP.UTF-8 UTF-8
```

Sveikinu

Arfrever

----------

## canis_lupus

 *psycepa wrote:*   

> szukanie nie boli

 

To znalazłem zanim zadałem pytanie, jednak nie rozwiązuje to mojego problemu.

----------

## Aktyn

 *Arfrever wrote:*   

> 
> 
> To składnia poprawna dla /etc/locales.build, natomiast w /etc/locale.gen (Używanym przy >=glibc-2.4-r2) poprawnie byłoby tak:
> 
> ```
> ...

 

OKi po prostu nie zauważyłem że dotyczy ona innego pliku   :Confused:   czyli widziałem że nie widziałem   :Wink: 

@sarven:

jak widac w make.conf flaga userlocales jest dołączona.

@canis_lupus:

A przekompilowałeś glibca jeszcze raz z dobrymi ustawieniami? Przypomniało mi sie że kiedyś też nie miałem poprawnych lokali i w sumie nie wiem dlaczego, też mając poprawne pliki, pomogło przekompilowanie glibca. W sumie jeszcze jedna uwaga, zamiast make.conf lepiej pokazać emerge info

----------

## canis_lupus

Glibc przekompilowałem po ustawieniu plikiu /etc/locales.gen. Niestety to nie dało rezultatu.

----------

## Aktyn

 *canis_lupus wrote:*   

> Glibc przekompilowałem po ustawieniu plikiu /etc/locales.gen. Niestety to nie dało rezultatu.

 

No a jaki miałeś wtedy plik /etc/locales.build ?

Ewentualnie użyj innego ebuilda do glibca, ja mam  sys-libs/glibc-2.3.6-r3 

Choć musze przyznać że wcięło mi gdzieś flage userlocales (ciekawe kiedy  :Rolling Eyes:  ) i wybitnie mam szystko  :Smile: 

@msch:

qermit pewnie miał na myśli że "en" jest zawsze w domyśle, choć troche strzelam. A nie o kwestie do czego to prywatnie tam sobie stosujesz.

Tak samo jak masz domyślne locale "POSIX" i "C" . Ale nie testowałem tychże rozwiązań wiec taki na 100% pewny nie jestem.

----------

## Arfrever

 *Aktyn wrote:*   

> ja mam  sys-libs/glibc-2.3.6-r3 
> 
> Choć musze przyznać że wcięło mi gdzieś flage userlocales

 

Uwzględniając, że masz glibc-2.3.6-r3, jako ciekawostkę podam, że przy >=glibc-2.4-r2 flaga userlocales jest ignorowana.

 *Aktyn wrote:*   

> "en" jest zawsze w domyśle, choć troche strzelam.

 

Jest zawsze domyślnie.

Sveikinu

Arfrever

----------

## canis_lupus

 *Aktyn wrote:*   

>  *canis_lupus wrote:*   Glibc przekompilowałem po ustawieniu plikiu /etc/locales.gen. Niestety to nie dało rezultatu. 
> 
> No a jaki miałeś wtedy plik /etc/locales.build ?
> 
> 

 

```
cat /etc/locales.build

# This file names the list of locales to be built when glibc is installed.

# The format is <locale>/<charmap>, where <locale> is a locale from the

# /usr/share/i18n/locales directory, and <charmap> is name of one of the files

# in /usr/share/i18n/charmaps/. All blank lines and lines starting with # are

# ignored. Here is an example:

# en_US/ISO-8859-1

pl_PL.UTF-8/UTF-8

pl_PL.ISO-8859-2

en_US/ISO-8859-1

en_US.UTF-8/UTF-8
```

----------

## psycepa

locales.build:

pl_PL/UTF-8

locale.gen

pl_PL UTF-8

and ItJustWorks(tm)

----------

## canis_lupus

Ale ja Unicode nie uzywam. Mam coś żle?

----------

## psycepa

 *canis_lupus wrote:*   

> 
> 
> pl_PL.UTF-8/UTF-8
> 
> 

 

a to pewnie odpowiada za ISO-8859-2 nie ?  :Wink: 

usun te linijki dotyczace UTF, ustaw odpowiednio ISO i remerguj glibca

a i wywal flage unicode z use, o ile jej uzywasz ...

----------

## canis_lupus

Ale mam tez wpis "pl_PL.ISO-8859-2 ", więc myslałem ze w ten sposób będę miał mozliwość korzystania z obu systemów.

----------

## psycepa

no jak chcesz miec wsparcie dla obu kodowac to poustawiaj odpowiednio te locale

nie z '.' tylko z '/' i z ' ' odpowiednio, na podstawie podanych przykladow powinienes to zrobic w 2 minuty

pozdrawiam

----------

## 13Homer

Czy można mieć coś takiego:

```
pl_PL ISO-8859-2

pl_PL CP1250
```

, bo próbuję zmusić Eclipsa (a właściwie aplikacje uruchamiane spod niego) do korzystania z polskich liter i efekt jest taki, że niektóre są (łóż), innych nie ma (ąś). Aplikacja korzysta z OCI, gdzie mam ustawione NLS_LANG=POLISH_POLAND.EE8MSWIN1250 (próbowałem też POLISH_POLAND.EE8ISO8859P2, ale efekt jest gorszy, brakowało np. ł). Muszę korzystać z Cp1250, bo wszyscy inni używają Windowsów, więc niestety ja powinienem się dostosować. Kodowanie wydaje się być poprawne, gdy wpisuję polskie znaki w kodzie Javy, ale jeśli mam wypełnić jakieś pola w aplikacji, które później zapisywane są w bazie, to "znikają" litery "ąśź". Przy uruchamianiu aplikacji dodaję także bibliotekę nls_charset12.jar (bez tego często napisy zwracane z bazy są prezentowane jako "???").

Wszystkie LC_* mam ustawione na pl_PL i zastanawiam się, czy system potrafi w jakiś sposób rozróżnić wymagane kodowanie. Może powinienem stworzyć coś na kształt "pl_PL.windows CP1250"? Sprawdziłem to, ale jest dokładnie to samo (może powinienem dodatkowych zabiegów dokonać). Ktoś z Was może próbował zwalczyć coś takiego?

<EDIT>

Wywaliłem "unicode" z make.conf (+przebudowanie tego, co z tego korzysta) i mam polskie znaki w Torze. Napisy wstawione z Javy ("skrzaczone"), poprawione w Torze pokazują się poprawnie w aplikacji z Eclipse. Ewidentnie coś nie tak z parametryzacją Javy (zarówno aplikacja jak i tora korzystają z OCI, przełączenie aplikacji Javy na thina nic nie daje). Może trzeba jakoś sparametryzowac bezpośrednio Javę?

----------

## lazy_bum

 *canis_lupus wrote:*   

> 
> 
> ```
> cat /etc/locales.build
> 
> ...

 

```
cat /etc/locales.build

en_US/ISO-8859-1

en_US.UTF-8/UTF-8

pl_PL/ISO-8859-2

```

Teraz trochę zabawy: W powyższych [code] znajdź dwie różnice...

::edit::

Tak... ślepota nie boli, jeszcze 2 strona tego tematu była. :-P

::edit^2::

A co do autora tematu to jest [SOLVED] czy nie jest?

----------

