Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Få kalendern i engelska Gnome att starta på måndagar

Har ganska länge irriterat mig på att kalendern i Gnome (den som dyker upp om man klickar på klockan) har söndagar som första dag i veckan. Det är inte så konstigt, eftersom jag kör mitt operativsystem med en_US locale. Tiden kan man justera som man vill efter eget format med hjälp av gconf-editor, men åt startdag i veckan verkar det inte gå att göra så mycket från själva appleten. Lösniningen är att ändra locale-filen för den locale man använder. Skriv följande kommando i terminalen för att se vilken locale som du använder:

locale

Det är specifikt LC_TIME som är intressant, men på mitt system visar samtliga en_US.UTF-8. Sedan öppnar jag motsvarande fil med gedit

sudo gedit /usr/share/i18n/locales/en_US

I sektionen LC_TIME finns det två variabler som har med veckodagar att göra, nämligen first_weekday och first_workday. Här i Sverige är väl måndagar både första veckodag och arbetsdag, därför ändrar jag "first_weekday 1" till "first_weekday 2" och sparar filen. Sedan genererar jag om locale med kommandot

sudo locale-gen

Därefter startas datorn om och jag åtnjuter en Gnome-kalender som börjar på måndagar. Nu blir det mycket enklare att hålla reda på veckonumren (de kan ni ställa in i gconf-editor att de ska visas)!

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

pluckers bild

En alternativ lösning är att ändra i /etc/default/locale, dvs. sätt LANG till en_US.UTF-8 och LC_TIME till sv_SE.UTF-8. Fördelen med denna lösning är att den "överlever" en framtida uppdatering (som kommer skriva över "första-veckodag"-ändringen i en_US filen).

/Micke

pluckers bild

Bör väl tillägga att detta gäller debian-baserade system.

FoHs bild

Utmärkt tips! Bra att du skrev det, så kan jag söka på min blogg nästa gång jag ominstallerat ett system Smile Ska ordna den där lösningen direkt.

FoHs bild

En trevlig effekt av att använda ditt tips är att hela kalendern blir på svenska, dvs veckodagar, månader och sådant är på svenska. Fast det beror väl lite på hur man vill ha det, tycker man det är störigt med en svenska kalender i ett annars engelskt system kan man ju använda det andra sättet.

Om du inte vill ha det på svenska så borde det väl räcka med att inte ändra LANG utan bara LC_TIME

FoHs bild

Satte bara LC_TIME faktiskt. LANG är fortfarande en_US.

pluckers bild

Om du sätter LC_TIME=en_GB.UTF-8 så borde du få en kalender på engelska men fortfarande med måndag som första veckodag.

/Micke

FoHs bild

När jag först började läsa om det så såg jag någon som nämnde att de hade problem även med en_GB (de ville ha måndag som första veckodag också, och körde med en en_GB locale). Kontrollerade filen en_GB i /usr/share/i18n/locales och den säger 1/1 på firstweekday/workday faktiskt. Vilket iofs är jättekonstigt... vem jobbar på söndagar?

pluckers bild

När jag testade med LC_TIME=en_GB.UTF-8 så fick jag måndag som första veckodag i GNOME-kalendern, men när jag kontrollerade locale filen så var det som du uppger angivet att söndag var första veckodag (testade med cal och mycket riktigt så visade den söndag som första veckodag). Vill man vara säker så får man väl istället använda sig av en_IE. Jag har kontrollerat och den har måndag som första veckodag Wink

/Micke

FoHs bild

Konstigt. Trodde locale-filen var den som användes när LC_TIME sattes, eller det var källan till informationen. Så verkar ju inte vara fallet, eller så är det felkonfat någonstans kanske?

pluckers bild

Av ren nyfikenhet så har jag undersökt detta lite närmare och en_GB locale-filen är korrekt. Vilken dag som first_weekday indikerar är beroende av vad week anger (om week finns med i locale-filen) och i en_GB så har week värdet 7;19971201;4 (ISO 8601) vilket indikerar antal dagar i en vecka (7), första veckodagen (19971130 för söndag och 19971201 för måndag) och veckodagen som ska finnas i årets första vecka (4 = torsdag). Detta innebär att first_weekday 1 nu inte betyder söndag utan istället måndag. Skulle inte förvåna mig om detta ställer till en hel del problem i olika applikationer beroende på hur man har implementerat locale-hanteringen...

/Micke

FoHs bild

Ojdå. Känns onödigt omständigt vid första åtanken...

FoHs bild

Fick problem med de ändringar jag hade gjort i /etc/default/locale. Där hade jag LANG="en_US.UTF-8" och LC_TIME="sv_SE.UTF-8". Problemet uppdagades i terminalen vid installation och körning av OpenOffice 3.1, den gillade inte alls det som stod. Den föll tillbaka på standard C locale typ. Verkar som den vill ha samtliga variabler satta i locale-filen. Vet dock inte om den kommer acceptera det när man blandar locales.

pluckers bild

Vad fick du för felmeddelande?

/Micke

FoHs bild

Det var från lite olika ställen, verkade det som. Dels larmade något perl-bibliotek om det när jag försökte installera något, och dels var det där med C-biblioteket (som jag fattade det). Ja just ja, det var OpenOffice jag försökte uppdatera till 3.1. Det var under själva installationsfasen som jag fick felmeddelande från perl. Minnet är bra men kort, har för mig att jag laddade hem från OpenOffice.org och installerade med deras deb-filer. Försökte först med PPA:n från launchpad.net men det var något som inte fungerade där... En väldigt rörig beskrivning av mig, kan vi väl konstatera. Tongue Men ja, ska försöka återskapa det hela.

Edit: Nu vettekatten. Jag hade tydligen fått ordning på PPA:n för det var därifrån det var installerat. Kanske var deb-filerna som krånglade förut då. Hur som helst så testade jag att lägga till sv_SE.UTF-8 i filen igen, körde en locale-gen vilket jag inte tror behövs och så loggade jag ut och loggade in igen. Gnome-kalenderna ändrades, men jag är inte helt säkert på att resten av systemet ändras från det. Fick hur som helst inga felmeddelanden när jag startade OO från terminalen eller installerade några nya paket.

Det jag kan säga om felmeddelanden är väl att det helt enkelt talade om att det inte förstod locale och att den föll tillbaka på ett standardvärde. Den sa även på något ställe att de andra LC-"variablerna" inte var satta. Den räknade upp att LANG hade en_US och att LC_TIME hade sv_SE men att de andra var tomma. Kanske är så att man behöver specifikt specifiera dom också för att allt ska fungera smidigt.

pluckers bild

Jag har inte själv haft några problem med perl och locales, men en snabb sökning verkar tyda på att det vanligtvis beror på felaktigheter i själva locales-installationen. En ominstallation (eller enbart omkonfiguration) av locales har varit lösningen i en del fall. Att det skulle vara nödvändigt att specificera samtliga värden tror jag knappast är anledningen; i så fall borde jag också ha problem med olika perl-baserade program...

/Micke

FoHs bild

Jo, det har du säkert rätt i. Det var nog kanske inte så mycket att det saknades värden som att den bara informerade om vad som fanns och inte fanns inställt. Det kan ju varit något gammal inställning som låg kvar på min dator som försvunnit efter någon ominstallation.