Start · Sprachen · PHP · Referenz · locale_get_display_variant

locale_get_display_variant

Funktion

Gibt den lokalisierten Anzeigenamen für die Variante (Variant) eines Locale-Bezeichners zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

locale_get_display_variant(string $locale, string|null $displayLocale = null): string|false

Beschreibung

locale_get_display_variant() ist die prozedurale Variante von Locale::getDisplayVariant() aus der Intl-Extension. Sie extrahiert den Variantenanteil eines Locale-Bezeichners (z. B. POSIX, NEDIS) und gibt ihn in einer angegebenen Anzeigesprache zurück.

Varianten beschreiben regionale oder technische Besonderheiten innerhalb einer Sprache/Region, die über Sprache und Region hinausgehen. Sie treten vergleichsweise selten auf, sind jedoch relevant, wenn eine Anwendung präzise Locale-Metadaten darstellen muss, z. B. in Spracheinstellungs-UIs oder internationalisierten Konfigurationsoberflächen.

Der Parameter $displayLocale bestimmt, in welcher Sprache der Name der Variante ausgegeben wird. Wird er weggelassen oder auf null gesetzt, wird das Standard-Locale der Umgebung verwendet (ermittelt über Locale::getDefault()).

Falls der übergebene Locale-Bezeichner keine Variante enthält oder der Bezeichner ungültig ist, gibt die Funktion einen leeren String oder false zurück.

Parameter

Name Typ Default Beschreibung
$locale Pflicht string Der Locale-Bezeichner im BCP-47-Format (z. B. sl_IT_NEDIS), dessen Variantenanteil abgefragt werden soll.
$displayLocale string|null null Das Locale, in dessen Sprache der Anzeigename der Variante ausgegeben werden soll. Wird null übergeben oder der Parameter weggelassen, wird das Standard-Locale genutzt.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den lokalisierten Namen der Locale-Variante als string zurück, oder einen leeren String, wenn der Locale-Bezeichner keine Variante enthält. Bei einem Fehler (z. B. ungültiger Locale-Bezeichner) wird false zurückgegeben.

Beispiele

Anzeigename einer Variante auf Englisch ausgeben

<?php
// Locale 'sl_IT_NEDIS' enthält die Variante 'NEDIS'
$locale = 'sl_IT_NEDIS';

$variant = locale_get_display_variant($locale, 'en');
echo $variant; // Ausgabe hängt von den ICU-Daten ab
Nadiza dialect

Anzeigename der Variante in der Standardsprache (Deutsch)

<?php
// Standard-Locale auf Deutsch setzen
Locale::setDefault('de_DE');

$locale = 'sl_IT_NEDIS';
$variantDE = locale_get_display_variant($locale);
echo $variantDE;

// Locale ohne Variante — leerer String erwartet
$localeOhneVariante = 'de_DE';
$leer = locale_get_display_variant($localeOhneVariante, 'de');
var_dump($leer);
Nadiza-Dialekt string(0) ""

Objektorientierte Verwendung via Locale-Klasse

<?php
// Äquivalente OOP-Variante
$locale = 'ca_ES_VALENCIA';
$name = Locale::getDisplayVariant($locale, 'de');
echo $name;
Valencianisch

// Wichtig · Fallstricke

Abhängigkeit von ICU-Daten: Die zurückgegebenen Anzeigenamen hängen von der installierten ICU-Bibliotheksversion ab. Unterschiedliche Serverumgebungen können abweichende oder keine Übersetzungen liefern.

Leerer Rückgabewert: Wenn der Locale-Bezeichner keine Variante enthält (z. B. de_DE), wird ein leerer String zurückgegeben – kein false. Unterscheide daher mit === false für Fehler und === '' für fehlende Varianten.

Intl-Extension erforderlich: Die Funktion steht nur zur Verfügung, wenn PHP mit der intl-Extension kompiliert wurde (php_intl). Prüfe die Verfügbarkeit mit extension_loaded('intl').