Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Pentru a afisa luna sau numele zilei din saptamana in alta limba decat engleza, limba implicita pentru PHP folosim functiile setlocale() si strftime().

< ?php
// Format text, pentru simplitate
header('Content-type: text/plain');
 
// Data in limba engleza
echo strftime('%A, %d %B %Y') . "\n";
 
// Posibilitatile de localizare
$locales = array('ro.utf-8', 'ro_RO.UTF-8', 'ro_RO.utf-8', 'ro', 'ro_RO', 'ro_RO.ISO8859-2');
setlocale(LC_TIME, $locales);
 
// Data localizata
echo strftime('%A, %d %B %Y') . "\n";
?>

Cu setlocale() mentionam categoria care dorim sa o localizam (ex. LC_TIME pentru data si ora) si fisierul de localizare care va contine traducerile pentru limba utilizata. Cum numele fisierului de localizare poate diferi in functie de sistemul de operare folosit, distributie sau charset folosit, setlocale() va primi ca parametru un array cu posibilitati de localizare din care va alege prima varianta disponibila in sistem.

Daca avem acces SSH pe serverul de hosting putem identifica fisierele de localizare instalate folosind comanda „locale -a„:

[root@lamp ~]# locale -a
C
POSIX
de_DE.UTF-8
en_GB.UTF-8
en_US.US-ASCII
en_US.UTF-8
fr_FR.UTF-8
hu_HU.UTF-8
is_IS.UTF-8
it_IT.UTF-8
ja_JP.UTF-8
ko_KR.UTF-8
ro_RO.ISO8859-2
ro_RO.UTF-8
[root@lamp ~]#

Cu strftime() functia se va aplica localizarea si vor face formatarile necesare, dupa caz, inainte de a afisa data in forma ceruta.

PHP

4 Responses so far.

  1. George Jipa says:

    Il stiam deja si il folosesc de mult trick-ul asta! E mult mai OK decat sa stai sa traduci singur data in romana.. cum fac multi de altfel 🙂

  2. Sergiu says:

    Acum il stiu si eu, dar din pacate nu il stiam si acu’ aproape un an cand m-am apucat de tradus 😀

  3. iphonix says:

    dupa cum ziceam, deja e deep programing aici, bravo tie, te apreciez 🙂

  4. Andrei says:

    -readability urat de tot
    -scopul instructiunilor nu e deloc evident
    -e posibil sa iti afecteze alte functii, pentru ca strici defaulturile.

    Daca nu cumva setezi asta global, ca si configuratie, e o idee absolut groaznica. 2,3 arrayuri rezolva problema la fel de elegant, pastrand readability si neafectand alte parti din program. 2/10 would not use.