Signatur
Beschreibung
Die Funktion locale_get_all_variants() analysiert einen Locale-Bezeichner (z. B. de_DE_POSIX_EURO) nach dem IETF BCP 47-Standard und extrahiert alle darin enthaltenen Varianten-Subtags als numerisch indiziertes Array.
Varianten-Subtags beschreiben spezifische Besonderheiten einer Sprache oder Region, die weder durch die Sprache (language), die Region (region) noch das Skript (script) ausgedrückt werden können – zum Beispiel orthografische Konventionen oder spezifische Dialekte. Ein Locale kann mehrere Varianten enthalten.
Diese Funktion ist der prozedurale Stil der Methode Locale::getAllVariants() aus der intl-Erweiterung. Sie eignet sich besonders dann, wenn Locale-Strings programmatisch analysiert oder weiterverarbeitet werden müssen, etwa um Texte oder Inhalte an spezifische regionale Varianten anzupassen.
Enthält der Locale-Bezeichner keine Varianten, wird ein leeres Array zurückgegeben. Bei einem ungültigen oder leeren $locale-String wird ebenfalls ein leeres Array zurückgegeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $locale Pflicht | string | Der Locale-Bezeichner, dessen Varianten-Subtags extrahiert werden sollen, z. B. 'de_DE_POSIX' oder 'sl_IT_nedis_rozaj'. |
Rückgabewert
Beispiele
Varianten eines einfachen Locale-Bezeichners auslesen
<?php
// Locale mit einer einzelnen Variante
$locale = 'de_DE_POSIX';
$variants = locale_get_all_variants($locale);
print_r($variants);
Locale mit mehreren Varianten
<?php
// Slowenisch in Italien mit zwei Varianten (nedis und rozaj)
$locale = 'sl_IT_nedis_rozaj';
$variants = locale_get_all_variants($locale);
print_r($variants);
Locale ohne Variante liefert leeres Array
<?php
$locale = 'de_DE';
$variants = locale_get_all_variants($locale);
var_dump(empty($variants)); // true, da keine Variante vorhanden
OOP-Stil mit Locale::getAllVariants()
<?php
// Äquivalent zur prozeduralen Variante
$locale = 'sl_IT_nedis';
$variants = Locale::getAllVariants($locale);
foreach ($variants as $variant) {
echo 'Variante: ' . $variant . PHP_EOL;
}
// Wichtig · Fallstricke
Die Funktion ist Teil der intl-Erweiterung (PHP Internationalization Functions). Sie muss in der PHP-Installation aktiviert sein (üblicherweise via extension=intl in der php.ini).
Varianten-Subtags sind gemäß BCP 47 mindestens 5 und höchstens 8 Zeichen lang (oder genau 4 Zeichen, wenn sie mit einer Ziffer beginnen). Subtags, die diesen Kriterien nicht entsprechen, werden nicht als Varianten erkannt.
Die Funktion unterscheidet nicht zwischen Groß- und Kleinschreibung bei der Erkennung, gibt die Varianten aber in der im Locale-String vorhandenen Schreibweise zurück.