2013-10-13 15 views
9

Problem behoben (siehe unten)PHP setLocale nicht einmal mit locales arbeiten bestehenden

Ich habe die Schauplätze auf meinem Server generiert, ich habe bestätigt, dass sie existieren (meine locale -a unten angegeben), aber wenn ich Verwenden Sie:

setlocale(LC_TIME,'fr_FR'); 
    or setlocale(LC_TIME,'fr_FR.utf8'); 

es funktioniert überhaupt nicht.

Probe:

<?php 
    setlocale(LC_TIME,'fr_FR.utf8'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr_FR'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr-FR'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'fr'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 

    setlocale(LC_TIME,'french'); 
    echo 'locale - '.setlocale(LC_TIME,'0'); 
    echo ' : month - '.strftime('%B'); 
    echo '<br />'; 
    ?> 

Ergebnisse:

locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 
    locale - C : month - October 

locale -a (zeigt die FR-Positionen):

fr_BE.utf8 
    fr_CA.utf8 
    fr_CH.utf8 
    fr_FR.utf8 
    fr_LU.utf8 

Danke für die Hilfe!

Antwort

9

okay, nachdem ich dies gepostet habe, versuchte ich noch eine Sache. Also für diejenigen, die gleiche Problem auftritt, müssen Sie diese zuerst setzen, bevor die neue locale Einstellung:

setlocale(LC_TIME, ""); 
+12

Das hilft mir nicht :( – user706420

+2

Überprüfen Sie, ob Sie die Locales installiert und auf Ihrem Server verfügbar sind. Sie müssen vorhanden sein, um sie zu verwenden. 'Locale -a' – kambythet

+0

Das hat irgendwie für mich funktioniert, aber ich ' (PS: Accept your own anser ':)') – user2019515

3

Sie haben vor neu zu starten PHP neu installierten locales verwenden.

1

Wenn Sie das System Standard-Locale in Apache2 verwenden möchten, müssen Sie nur hinzufügen (oder uncomment) die folgende Zeile in der Datei/etc/apache2/envvars Datei:

. /etc/default/locale 

Denken apache2 neu starten, nachdem Diese Operation und löschen Sie Ihren potenziellen Cache, um Locale zu überprüfen, ist PHP gut gegeben.