Signatur
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
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
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)');
}
// 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.