Magyar hónap és napnevek

Magyar hónap és napnevek

Paksi Attila írta időpontban
Válaszok szám: 3
Sziasztok!

A mai napon volt alkalmam elszórakozni azzal, hogy átállítstam a fórumban/naptárban (és még sok más helyen) lévő hónap és nap neveket magyarra.
Az alap megoldás az lenne, hogy a szerver "locale" funkcióját használva átállítom a szerver nyelvét magyarra (hu vagy hu_HU). De nekem erre nem volt lehetőségem (illetve egyszer már próbáltam, de nem működött), így más utat kerestem. A moodle.org fórumán találtam rá a megoldásra.
A moodlelib.php fájlba kell beleírni (lib könyvtáron belül van).

A dátumot alapból így rakja össze (valahol az 1000-1100. sornál található a fájlban):

/// If we are running under Windows convert from windows encoding to UTF-8
/// (because it's impossible to specify UTF-8 to fetch locale info in Win32)

if ($CFG->ostype == 'WINDOWS') {
if ($localewincharset = get_string('localewincharset')) {
$textlib = textlib_get_instance();
$datestring = $textlib->convert($datestring, $localewincharset, 'utf-8');
}
}
return $datestring;
}

A return parancs elé kell beírni azt a php kódot, amivel a $datestring változóban lévő angol hónap és napneveket lecseréli magyarra. Mivel a php fájl nem utf-8as kódolású (és nem is szabad átállítani!!), így az ékezeteket a megfelelő html kódokkal kell helyettesíteni. A végeredmény így néz ki:

/// If we are running under Windows convert from windows encoding to UTF-8
/// (because it's impossible to specify UTF-8 to fetch locale info in Win32)

if ($CFG->ostype == 'WINDOWS') {
if ($localewincharset = get_string('localewincharset')) {
$textlib = textlib_get_instance();
$datestring = $textlib->convert($datestring, $localewincharset, 'utf-8');
}
}

//Section for translating month names to Hungarian
if (current_language()=='hu_utf8') {
$datestring = str_replace('January','január',$datestring);
$datestring = str_replace('February','február',$datestring);
$datestring = str_replace('March','március',$datestring);
$datestring = str_replace('April','április',$datestring);
$datestring = str_replace('May','május',$datestring);
$datestring = str_replace('June','június',$datestring);
$datestring = str_replace('July','július',$datestring);
$datestring = str_replace('August','augusztus',$datestring);
$datestring = str_replace('September','szeptember',$datestring);
$datestring = str_replace('October','október',$datestring);
$datestring = str_replace('November','november',$datestring);
$datestring = str_replace('December','december',$datestring);
$datestring = str_replace('Monday','hétfõ',$datestring);
$datestring = str_replace('Tuesday','kedd',$datestring);
$datestring = str_replace('Wednesday','szerda',$datestring);
$datestring = str_replace('Thursday','csütörtök',$datestring);
$datestring = str_replace('Friday','péntek',$datestring);
$datestring = str_replace('Saturday','szombat',$datestring);
$datestring = str_replace('Sunday','vasárnap',$datestring);
}

//End of section for translating month names to Hungarian

return $datestring;
}

Nálam működik 1.9-es verzión, de amint a fórumon olvastam több verzióval is kipróbálták és megfelelő volt!
Lenne egy kérdésem is!
Nem lehetne ennek egy nyelvi fájlt készíteni? Olvastam, hogy azért veszi a szerverről az adatokat, mert az nagyságrendekkel gyorsabb, mintha a php-ben
kellene átállítani (ez tényleg igaz? nagyságrendekkel?).
Várom a hozzászólásokat!

(Szerkesztette Vágvölgyi Csaba - 2008. március 28., péntek, 11:36)

Válasz erre: Paksi Attila

Tárgy: Magyar hónap és napnevek

Vágvölgyi Csaba írta időpontban
Attila!

Ez zseniális. Ez különösen azoknak jó, akik nem saját szerveren üzemeltetik a Moodle-t.
Már teszteltem is a http://moodle.disabilityknowledge.org-on és működik. :)
Egy apró megjegyzés: ha jól tudom a magyarban a napok és hónapok neveit nem írjuk nagybetűvel.

A kérdésedre sajnos nem tudok választ, de ezek után nem tartom kizártnak, hogy áthidalható legyen a probléma másképpen.

Még egyszer köszönöm, megint tanultam valamit, üdv.: Csaba
Válasz erre: Vágvölgyi Csaba

Tárgy: Magyar hónap és napnevek

Paksi Attila írta időpontban
Örülök, hogy használható információval szolgáltam :-)
"Kis vs. Nagy Betű..." Teljesen igazad van. Szimplán átírtam az angolt magyarra (angol pedig nagybetűs), innen a figyelmetlenség.
Csaba légyszíves javítsd ki itt a hozzászólásomat - legyen teljesen helyes! Köszönöm