Start · Sprachen · PHP · Referenz · locale_get_display_script

locale_get_display_script

Funktion

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

seit PHP 5.3.0 Kategorie: string

Signatur

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

Beschreibung

locale_get_display_script() ermittelt den für Menschen lesbaren Namen der Schrift (Script-Subtag), die in einem Locale-Bezeichner kodiert ist. Beispielsweise liefert der Locale-Bezeichner sr_Cyrl_RS für die Schrift den Wert Cyrillisch, wenn de als Anzeigesprache gewählt wurde.

Der optionale Parameter $displayLocale steuert, in welcher Sprache der zurückgegebene Name formuliert wird. Wird er weggelassen oder auf null gesetzt, wird das Standard-Locale der Laufzeitumgebung (intl.default_locale) verwendet.

Die Funktion ist die prozedurale Entsprechung der Methode Locale::getDisplayScript() aus der Intl-Erweiterung und setzt daher eine aktivierte ICU-Bibliothek voraus. Sie ist besonders nützlich, wenn Locale-Informationen benutzerfreundlich in mehrsprachigen Oberflächen dargestellt werden sollen.

Enthält der Locale-Bezeichner keinen Script-Subtag, wird ein leerer String zurückgegeben. Bei einem ungültigen Locale-Bezeichner gibt die Funktion false zurück.

Parameter

Name Typ Default Beschreibung
$locale Pflicht string Der Locale-Bezeichner (z. B. sr_Cyrl_RS), dessen Schrift-Subtag lokalisiert dargestellt werden soll.
$displayLocale string|null null Das Locale, in dessen Sprache der Schriftname ausgegeben werden soll (z. B. de für Deutsch). Bei null wird intl.default_locale verwendet.

Rückgabewert

Typ
string|false
Beschreibung
Den lokalisierten Namen der Schrift als string, einen leeren String wenn kein Script-Subtag vorhanden ist, oder false bei einem ungültigen Locale-Bezeichner.

Beispiele

Schriftname eines serbischen Locale auf Deutsch anzeigen

<?php
// Serbisch (Kyrillisch, Serbien) – Schrift auf Deutsch ausgeben
$locale = 'sr_Cyrl_RS';
$scriptName = locale_get_display_script($locale, 'de');
echo $scriptName; // Cyrillisch
Cyrillisch

Schriftnamen verschiedener Locales in einer Tabelle ausgeben

<?php
$locales = [
    'zh_Hans_CN',  // Chinesisch vereinfacht
    'zh_Hant_TW',  // Chinesisch traditionell
    'sr_Cyrl_RS',  // Serbisch kyrillisch
    'uz_Latn_UZ',  // Usbekisch lateinisch
    'de_DE',       // kein Script-Subtag
];

foreach ($locales as $loc) {
    $script = locale_get_display_script($loc, 'de');
    printf("%-15s => %s\n", $loc, $script !== false ? (strlen($script) > 0 ? $script : '(kein Script-Subtag)') : '(ungültig)');
}
zh_Hans_CN => Vereinfachtes Chinesisch zh_Hant_TW => Traditionelles Chinesisch sr_Cyrl_RS => Cyrillisch uz_Latn_UZ => Lateinisch de_DE => (kein Script-Subtag)

// Wichtig · Fallstricke

Abhängigkeit von ICU: Das genaue Ergebnis (Schreibweise, Terminologie) hängt von der installierten ICU-Version ab und kann sich zwischen PHP-Versionen unterscheiden.

Wenn kein $displayLocale angegeben wird und intl.default_locale nicht gesetzt ist, fällt die Funktion auf den ICU-Standard (en) zurück. Es empfiehlt sich, das Anzeigelocale stets explizit anzugeben.

Die Funktion ist identisch mit dem Aufruf Locale::getDisplayScript($locale, $displayLocale) aus der objektorientierten API.