Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Probleem met locale settings  (gelezen 744 keer)

Offline jclosed

  • Lid
Probleem met locale settings
« Gepost op: 2015/03/08, 09:31:47 »
Ik gebruik al geruime tijd Ubuntu 14.04 LTS, en geef de voorkeur aan KDE (hetgeen ik naast Gnome geïnstalleerd heb).

So far - so good. Helaas blijkt dat er toch een probleem rijst met de locale settings.
Ik gebruik namelijk als land Nederland (zodat tijd, currency enzovoorts goed staan), maar als taal Engels (US).

Als ik dit goed instel in de locale settings, blijkt dat alles gezet wordt naar de locale en_NL.UTF-8. Helaas blijkt deze locale in het geheel niet te bestaan.
De enige locale die bestaat is nl_NL.UTF-8, maar als ik die instel dan zit ik met een Nederlandstalige desktop. Dat is dus niet de bedoeling.

Normaliter is dit geen groot probleem, maar sommige programma's (waaronder sommige Steam games) crashen of starten niet op als de juiste locale ontbreekt. Een veel geziene error is:

Generic  ERROR Could not set LC_CTYPE locale! Check LANG, LC_CTYPE, LC_ALL

In oudere versies van Ubuntu was de locale en_NL.UTF-8 nog wel aanwezig, maar om de één of andere reden is hij nu niet meer te vinden. Als ik locale -a intyp, krijg ik alleen nl_AW, nl_AW.utf8, nl_BE.utf8 en nl_NL.utf8 te zien,maar en_NL.utf8 ontbreekt. Typ ik echter "locale" in dan krijg ik het volgende:

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=en_NL.UTF-8
LANGUAGE=en
LC_CTYPE="en_NL.UTF-8"
LC_NUMERIC=en_NL.UTF-8
LC_TIME=en_NL.UTF-8
LC_COLLATE="en_NL.UTF-8"
LC_MONETARY=en_NL.UTF-8
LC_MESSAGES="en_NL.UTF-8"
LC_PAPER=en_NL.UTF-8
LC_NAME=en_NL.UTF-8
LC_ADDRESS=en_NL.UTF-8
LC_TELEPHONE=en_NL.UTF-8
LC_MEASUREMENT=en_NL.UTF-8
LC_IDENTIFICATION=en_NL.UTF-8
LC_ALL=

Zoals je ziet worden wel degelijk de en_NL.UTF-8 locales toegewezen aan de variabelen. En dat gaat dus niet werken.

Als ik de taal van de desktop naar Nederlands zet is er geen vuiltje aan de lucht. Dan wordt de nl_NL.UTF-8 locale gebruikt, en die bestaat uiteraard. Maar dat wil ik dus niet. Ik wil een engelstalige desktop! Het is duidelijk dat nl_EN.UTF-8 op de één of andere manier toegevoegd moet worden. Waar haal ik die echter vandaan?

Is iemand al eens tegen dit probleem aangelopen? En zo ja - wat was de oplossing?

Offline jclosed

  • Lid
Re: Probleem met locale settings
« Reactie #1 Gepost op: 2015/03/08, 10:13:21 »
Goed - om mijn eigen vraag te beantwoorden... Ik heb een work-around gevonden.

Allereerst moet ik even mededelen dat dit een fout is in het configuratiescherm van KDE. Als je namelijk de het land op Nederland zet en de taal op Engels (US), dan wordt de boel door het configuratieprogramma verkeerd ingesteld. We hebben dus te maken met een bug.

Gelukkig is dit probleem snel op te lossen.

Je moet het volgende (hidden) bestand aanpassen: ~/.kde/env/setlocale.sh

Daar stond bij mij in:

LANG=en_NL.UTF-8
LANGUAGE=en:nl:en
LC_NUMERIC=en_NL.UTF-8
LC_TIME=en_NL.UTF-8
LC_MONETARY=en_NL.UTF-8
LC_PAPER=en_NL.UTF-8
LC_IDENTIFICATION=en_NL.UTF-8
LC_NAME=en_NL.UTF-8
LC_ADDRESS=en_NL.UTF-8
LC_TELEPHONE=en_NL.UTF-8
LC_MEASUREMENT=en_NL.UTF-8

Dit moet gewijzigd worden naar:

LANG=en_US.UTF-8
LANGUAGE=en:nl:en
LC_NUMERIC=nl_NL.UTF-8
LC_TIME=nl_NL.UTF-8
LC_MONETARY=nl_NL.UTF-8
LC_PAPER=nl_NL.UTF-8
LC_IDENTIFICATION=nl_NL.UTF-8
LC_NAME=nl_NL.UTF-8
LC_ADDRESS=nl_NL.UTF-8
LC_TELEPHONE=nl_NL.UTF-8
LC_MEASUREMENT=nl_NL.UTF-8

Waarna je het bestand weer opslaat. Je moet dan even de desktop herstarten (of de computer rebooten als je dat makkelijker vindt), en het probleem is opgelost. Houdt in de gaten dat als je het configuratiescherm gebruikt om de de taal/landinstelling te wijzigen, en dan weer naar Nederland/Engels gaat, dat je deze procedure moet herhalen.

Nog even een tip: Ik liep tegen het probleem aan toen ik Torchlight II onder Steam wilde spelen. Het spel startte gewoonweg niet op. Na de bovenstaande aanpassing gedaan te hebben liep het spel perfect.

Ik heb deze work-around gegeven voor mensen die tegen hetzelfde probleem aanlopen. Ik hoop dat ik hiermee ook anderen geholpen heb.