Her kommer forklaringen:
For at lave danske datoer på Apache med PHP skal man bruge to funktioner. Den ene er
setlocal()
og den anden er
strftime()
.
setlocal()
skal have to variabler med; en for hvilken kategori man vil ændre sprog i og en for sprog. Kategorien kan man som regel bare sætte til
LC-ALL
- så tager man alt med. Lidt mere vanskeligt er det med sproget; her er der forskellige muligheder afhængigt af hvilken server man har...
setlocal()
kan se ud som følger (og der er sikkert flere muligheder...):
setlocal(LC_ALL,'da');setlocal(LC_ALL,'da_DK');setlocal(LC_ALL,'da-DK');setlocal(LC_ALL,'dnk_DNK');setlocal(LC_ALL,'danish');setlocal(LC_ALL,'da_DK.ISO8859-1');setlocal(LC_ALL,'da:DK.ISO_8859-1');
Jeg har selv benyttet de to sidste på to forskellige freeBSD-servere, så jeg kan ikke lige se noget system i det.
strftime()
kan sættes op på mange måder afhængig af hvordan ens dato eller tid skal se ud. Det kunne f.eks. være
"echo strftime("%e. %B %Y");"
for at skrive
"27. Maj 2005" - find flere koder på
http://dk2.php.net/manual/en/function.strftime.php
Konkrete tiltag hvis du vil have danske månedsnavne:
Indsæt
setlocal(LC_ALL,'den-danske-kode-der-passer-din-server');
på en tom linje lige under
"<?php"
i filen
calendar/lib.php
.
Jeg har ikke tjekket om det slår igennem på alle datoer og kalendere i hele moodle men det fungerer i hvert fald på kursuskalenderen på forsiden og kurserne. Konsekvensen af at sætte
setlocal()
ind er at der er danske navne på månederne uanset det valgte sprog...
Det er testet på 1.5 ALPHA