setlocale

(PHP 3, PHP 4, PHP 5)

setlocale -- Modifie les informations de localisation

Description

string setlocale ( int category, string locale [, string ...] )

string setlocale ( int category, array locale )

setlocale() retourne la nouvelle configuration locale, ou FALSE si la localisation n'est pas implémentée sur votre plate-forme, si la variable de localisation n'existe pas, ou si la catégorie spécifiée n'est pas valide. Un nom de catégorie invalide générera un message d'alerte. La liste des noms de locales / catégories peut être trouvée en consultant la RFC 1766 ainsi que l'ISO 639. Les différentes plates-formes possèdent des conventions de nommages différentes.

category est une constante (ou une chaîne) qui spécifie la catégorie de fonction affectées par la configuration de localisation :

Note : Depuis PHP 4.2.0, passer category en tant que chaîne est déconseillé, utilisez les constantes mentionnées plus haut à la place. Les passer en tant que chaînes (entre guillemets) provoquera l'affichage d'un message d'avertissement.

Si locale est NULL ou la chaîne vide "", les noms de locales seront pris dans l'environnement, à partir des variables de même noms que les catégories ci-dessus, ou depuis "LANG".

Si locale est NULL ou vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Si locale est un tableau ou bien est suivi par des paramètres additionnels, alors chaque élément du tableau ou chaque paramètre tente d'être défini comme nouvelle locale jusqu'à ce qu'un réussisse. Cela est pratique si la locale est connue sous différent nom sur des systèmes différents ou bien pour prévoir une autre valeur en cas de non disponibilité de la locale choisie.

Note : La possibilité de passer plusieurs locales est disponible depuis PHP 4.3.0.

Note : La valeur retournée par setlocale() dépend du système sur lequel PHP est installé. setlocale() retourne exactement ce que la fonction système setlocale() retourne.

Avertissement

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().

Astuce : Les utilisateurs de Windows trouverons des informations utiles à propos du paramètre locale sur le site web MSDN de Microsoft. Les valeurs de locales supportées peuvent être trouvées ici et les chaînes de pays/région ici. Les systèmes Windows supportent les codes à trois lettres pour les pays/régions spécifiés par ISO 3166-Alpha-3, qui peut être trouvé sur le site web Unicode .

Exemple 1. Exemple avec setlocale()

<?php
/* Configure le script en hollandais */
setlocale (LC_ALL, 'nl_NL');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
    
/* Essai de différentes valeurs possible pour l'allemand depuis &php; 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo
"L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Exemple 2. Exemple avec setlocale() pour Windows

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL, 'nld_nld');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* Essai de différentes valeurs possible pour l'allemand depuis &php; 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo
"L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:56