(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Introduction
Une "Locale" est un identifiant utilisé pour représenter les comportements
régionaux d'une API. Les locales PHP sont organisées et identifiées de la
même manière que les CLDR de ICU (et que de nombreux autres éditeurs
de système Unix, tels que Mac, Java, etc.). Les locales sont identifiées par
les libellés de langage de la RFC 4646 (qui utilise des tirets et pas
des soulignés) en plus de la notation traditionnelle avec des soulignés.
Sauf contre-indication, les fonctions de cette classe sont capables d'utiliser
les deux notations.
Exemple d'identifiants :
- en-US (Anglais, USA)
- zh-Hant-TW (Chinois, traditionnel, Taiwan)
- fr-CA, fr-FR (Français pour le Canada et la France, respectivement)
La classe Locale et les méthodes associées, sont
utilisées pour interagir avec les identifiants locaux : pour vérifier qu'un
identifiant est bien formé, valide, etc. Les extensions utilisées par CDR
dans UAX #35 et hérité par ICU sont valides, et utilisés à chaque fois qu'elles
peuvent l'être dans ICU.
Les locales ne peuvent pas être instanciées. Ce sont toutes des fonctions statiques.
La chaîne null
ou vide permet d'obtenir la locale racine. La racine est l'équivalent
de "en_US_POSIX"
en CLDR. Les libellé de langage (et donc, les
identifiants) sont insensibles à la casse. Il existe une fonction de canonalisation
qui permet d'obtenir la spécification exacte.
Synopsis de la classe
class
Locale
{
/* Constantes */
public
const
int
ACTUAL_LOCALE;
public
const
int
VALID_LOCALE;
public
const
null
DEFAULT_LOCALE = null;
public
const
string
LANG_TAG;
public
const
string
EXTLANG_TAG;
public
const
string
SCRIPT_TAG;
public
const
string
REGION_TAG;
public
const
string
VARIANT_TAG;
public
const
string
GRANDFATHERED_LANG_TAG;
public
const
string
PRIVATE_TAG;
/* Méthodes */
public static acceptFromHttp(string
$header
): string|false
public static canonicalize(string
$locale
): ?string
public static composeLocale(array
$subtags
): string|false
public static filterMatches(string
$languageTag
, string
$locale
, bool
$canonicalize
=
false
): ?bool
public static getAllVariants(string
$locale
): ?array
public static
getDefault(): string
public static getDisplayLanguage(string
$locale
, ?string
$displayLocale
=
null
): string|false
public static getDisplayName(string
$locale
, ?string
$displayLocale
=
null
): string|false
public static getDisplayRegion(string
$locale
, ?string
$displayLocale
=
null
): string|false
public static getDisplayScript(string
$locale
, ?string
$displayLocale
=
null
): string|false
public static getDisplayVariant(string
$locale
, ?string
$displayLocale
=
null
): string|false
public static getKeywords(string
$locale
): array|false|null
public static getPrimaryLanguage(string
$locale
): ?string
public static getRegion(string
$locale
): ?string
public static getScript(string
$locale
): ?string
public static lookup(
array
$languageTag
,
string
$locale
,
bool
$canonicalize
=
false
,
?string
$defaultLocale
=
null
): ?string
public static parseLocale(string
$locale
): ?array
public static setDefault(string
$locale
): bool
}
Constantes pré-définies
Ces constantes définissent le comportement de Locale
-
Locale::DEFAULT_LOCALE
-
Utilisée comme paramètre de locale avec les méthodes des différences
classes affectées, telles que NumberFormatter.
Cette constante fait qu'on utilise les valeurs par défaut.
Ces constantes décrivent le choix de la locale pour la méthode
getLocale de différentes classes.
-
Locale::ACTUAL_LOCALE
-
La locale utilisée par les données entrante.
-
Locale::VALID_LOCALE
-
C'est la locale la plus spécifique supportée par ICU.
Ces constantes définissent comment les Locales sont analysées ou composées.
Elles doivent être utilisées comme clés dans un tableau d'arguments passé à
locale_compose() et sont retournées par
locale_parse() comme clés d'un
array associatif.
-
Locale::LANG_TAG
-
Sous-libellé de langue
-
Locale::EXTLANG_TAG
-
Sous-libellé de langue étendu
-
Locale::SCRIPT_TAG
-
Sous-libellé de script
-
Locale::REGION_TAG
-
Sous-libelleé de région
-
Locale::VARIANT_TAG
-
Sous-libellé de variante
-
Locale::GRANDFATHERED_LANG_TAG
-
Sous-libellé d'ascendant de langage
-
Locale::PRIVATE_TAG
-
Sous-libellé privé
Voir aussi
-
» RFC 4646 : libellés pour identifier les langues
-
» RFC 4647 : Matching of Language Tags
-
» Unicode CLDR Project:Common Locale Data Repository
-
» IANA Language Subtags Registry
-
» ICU User Guide : Locale
-
» ICU Locale api
Sommaire
- Locale::acceptFromHttp — Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"
- Locale::canonicalize — Canonise la chaîne représentant la locale
- Locale::composeLocale — Retourne un identifiant de locale correct
- Locale::filterMatches — Vérifie si le tag de langue correspond à une locale
- Locale::getAllVariants — Liste toutes les variantes d'une locale
- Locale::getDefault — Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'
- Locale::getDisplayLanguage — Retourne un nom approprié pour l'affichage d'un nom de langue
- Locale::getDisplayName — Retourne un nom d'affichage correct pour une locale
- Locale::getDisplayRegion — Retourne un nom pour la région de la locale
- Locale::getDisplayScript — Retourne le nom du script de la locale
- Locale::getDisplayVariant — Retourne un nom pour la variante de la locale
- Locale::getKeywords — Lit les mots-clé de la locale
- Locale::getPrimaryLanguage — Lit la langue principale de la locale
- Locale::getRegion — Retourne un code pour la région de la locale
- Locale::getScript — Retourne un code pour le script de la locale
- Locale::lookup — Recherche dans la liste la meilleure langue
- Locale::parseLocale — Retourne les sous-éléments de la locale
- Locale::setDefault — Configure la locale par défaut