2013-10-13 11 views
9

Problema risolto (vedi sotto)PHP non setLocale lavorare anche con locali esistenti

mi hanno generato i locali sul mio server, mi hanno confermato che esistono (il mio locale -a riportate di seguito), ma quando ho utilizzare:

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

non funziona affatto.

campione:

<?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 />'; 
    ?> 

Risultati:

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

locale -a (che mostra le localizzazioni FR):

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

Grazie per l'aiuto!

risposta

9

ok, dopo aver postato questo, ho provato un'altra cosa. Così, per coloro che subiscono lo stesso problema, è necessario impostare questo primo prima di impostare il nuovo locale:

setlocale(LC_TIME, ""); 
+12

Questo non mi aiuta :( – user706420

+2

Controlla di avere le versioni locali installate e disponibili sul tuo server. Devono esistere per usarle. 'Locale -a' – kambythet

+0

Che in qualche modo ha funzionato per me, ma io ' (PS: accetta il tuo anser ':)') – user2019515

3

È necessario riavviare php prima di utilizzare le nuove localizzazioni installate.

1

Se si desidera utilizzare le impostazioni internazionali di default del sistema in Apache2, è solo bisogno di aggiungere (o rimuovere il commento) la seguente riga nel file/etc/apache2/envvars del file:

. /etc/default/locale 

Pensate per riavviare apache2 dopo questa operazione e cancella la tua potenziale cache per verificare che le impostazioni locali siano ben fornite di PHP.

Problemi correlati