# Svenska tecken

## jaghetertoffe

Detta börjar väl bli tjatigt, jag har sett många liknande postningar, men: åäö funkar inte med vissa program!

```
export LC_ALL=sv_SE
```

har jag sist i .bashrc. 

Java kan inte skriva åäö och när man startar vissa program skriver de ut

felmeddelanden:

```
$ xmms&

[1] 5686

Gdk-WARNING **: locale not supported by C library
```

Här är min 02locale:

```
$ cat /etc/env.d/02locale

LC_ALL="sv_SE"

LC_TELEPHONE="sv_SE"

LANG="sv_SE"

LC_CTYPE="sv_SE"

LC_NUMERIC="sv_SE"

LC_TIME="sv_SE"

LC_MONETARY="sv_SE"

LC_ADDRESS="sv_SE"

LC_COLLATE="sv_SE"

LC_NAME="sv_SE"

LC_PAPER="sv_SE"

LC_NUMERIC="sv_SE"

SYSFONT="lat0-16"

LC_MEASUREMENT="sv_SE"

LC_MESSAGES="C"

LC_IDENTIFICATION="sv_SE"
```

Uppenbarligen är något fel:

```
#locale charmap

locale: Cannot set LC_CTYPE to default locale. Nu such file or directory

locale: Cannot set LC_MESSAGES to default locale. Nu such file or directory

locale: Cannot set LC_ALL to default locale. Nu such file or directory

ANSI_X3.4-1968
```

Någon som vet vad som är fel?

Jag skulle verkligen behöva åäö nu.

-toffe

----------

## jaghetertoffe

Någon?

----------

## kallamej

Har du /usr/share/i18n/locales/sv_SE?

----------

## jaghetertoffe

Japp, den har jag

----------

## jaghetertoffe

inga andra förslag?

----------

## kallamej

Om du bara kör locale? Vilken output?

----------

## jaghetertoffe

Då blir det såhär:

```
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=sv_SE

LC_CTYPE="sv_SE"

LC_NUMERIC="sv_SE"

LC_TIME="sv_SE"

LC_COLLATE="sv_SE"

LC_MONETARY="sv_SE"

LC_MESSAGES="sv_SE"

LC_PAPER="sv_SE"

LC_NAME="sv_SE"

LC_ADDRESS="sv_SE"

LC_TELEPHONE="sv_SE"

LC_MEASUREMENT="sv_SE"

LC_IDENTIFICATION="sv_SE"

LC_ALL=sv_SE
```

----------

## kallamej

Det verkar som att din 02locale i läses, eller snarare att din definition id .bashrc tar över. Testa att ta bort export LC_ALL från din .bashrc. Kommentera även bort LC_ALL från 02locale. Kör sedan 

```
env-update

source /etc/profile

locale
```

----------

## jaghetertoffe

Precis samma svar som innan.

Även efter omstart.

----------

## kallamej

Skumt, du borde ju fått LC_MESSAGES=C enligt den 02locale du postat ovan. De värden som är inom citationstecken enligt locale kommandot är ärvda, eller default, vilken inte heller verkar stämma med din 02locale då den har definitioner för allt. Testa med 

```
equery check glibc
```

om din glibc är OK (kräver gentoolkit).

----------

## jaghetertoffe

```
#equery check glibc

#
```

Jag vet inte vad som borde hända om jag kör ovanstående, men programmet terminerar utan output.

----------

## kallamej

Den säger bara till om något inte stämmer överens med det som installerades. Vet tyvärr inte vad som kan vara fel. Har du testat att byta till någon annan locale, bara för att se att den biten funkar?

----------

## jaghetertoffe

Jag har varit bortrest, så har inte kunnat testa att byta locale förrän nu...

Jag ändrade så min /etc/env.d/02locale är

```
LC_TELEPHONE="C"

LANG="C"

osv
```

Sedan gjorde jag en

```
env-update

source /etc/profile

locale
```

Ovanstående som root.

Nu blir det skumt:

Skriver jag 

```
locale
```

 som min vanliga användare får jag:

```
LANG=C

LC_TYPE=C

...

LC_ALL=
```

och inga felmeddelanden.

Upprepas som root:

```
locale: Cannot set LC_CTYPE to default locale. Nu such file or directory

locale: Cannot set LC_MESSAGES to default locale. Nu such file or directory

locale: Cannot set LC_ALL to default locale. Nu such file or directory 

LANG=C

LC_CTYPE="sv_SE"

...

LC_ALL=sv_SE
```

Hur fixar man det här?

Det enda jag egentligen vill är att svenska tecken ska hanteras korrekt, främst av Java.

----------

## kallamej

Förmodligen har du en .bashrc eller något annat för root. Hur som helst är felet inte i 02locale. Vet inte om det har någon betydelse men har du emergeat glibc med USE="nls"? Du kan ju testa några andra locales också, för att se om det är ett allmänt problem, eller bara relaterat till den svenska.

----------

## jaghetertoffe

Japp, jag hade en .bashrc för root som ställde till det.

Nu har jag tagit bort den aktuella raden från den filen.

Jag har inte "nls" i USE-sektionen i make.conf

Hur föreslår du att jag ska byta locale? Genom att ändra i 02locale eller köra en EXPORT? Hur testar jag sedan att allt funkar? Det är ju svenska tecken jag vill kunna skriva ut.... Nu när jag har "C" som språk i 02locale och rensat alla .bashrc får jag inga felmeddelanden.

----------

## kallamej

Det enklaste sättet att testa är att köra exemplevis

```
LC_CTYPE="xx_YY" xterm
```

där xx_YY är någon lämplig locale. Vad gäller nls är det förmodligen satt i /etc/make.profile/make.defaults, kolla med emerge info, eller equery uses glibc för att se vilka som är satta för glibc.

Hur som helst, det är ju inte C localen du vill ha, och varför det inte funkar med sv_SE vet jag inte, då du har rätt fil.

----------

## xanthax

WTF,

Va gör man om man saknar 02locale filen å vill ändra de permanent då ?

Kollade i /etc/env.d/ å där låg en 02distcc.

kan man skapa 02locale endå ?

Jaja inte direkt döds viktigt iom att jag kan exporta så länge men vid reboot ?

----------

## kallamej

Det är bara att skapa filen.

----------

## NiBe

Vad är det som plötsligt tvingar på en att meka med locale?

Jag har inte använt gentoo i drygt ett år nu och har kommit tillbaka till det. Sist behövde jag då inte bråka med det, och jag gillar verkligen inte att bli påtvingad något...

Edit: Kan tillägga att sist installerade jag Gentoo 1.4 releasen, nu är det 2004.2 inne på disken.

----------

