Signatur
Beschreibung
locale_get_script() extrahiert das Schrift-Subtag aus einem Locale-Bezeichner nach IETF BCP 47. Das Schrift-Subtag beschreibt das Schriftsystem (z. B. Latn für Lateinisch, Cyrl für Kyrillisch, Hans für vereinfachtes Chinesisch), das für die Darstellung der Sprache verwendet wird.
Die Funktion ist der prozedurale Stil der Methode Locale::getScript() aus der Intl-Erweiterung. Sie wird eingesetzt, wenn Anwendungen unterschiedliche Schriftsysteme einer Sprache unterscheiden müssen – etwa bei Serbisch, das sowohl in Lateinschrift (sr-Latn) als auch in Kyrillisch (sr-Cyrl) geschrieben werden kann.
Ist im übergebenen Locale-Bezeichner kein Schrift-Subtag vorhanden, gibt die Funktion einen leeren String zurück. Die Locale-Bezeichner folgen der Syntax Sprache[-Schrift][-Region][-Varianten].
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $locale Pflicht | string | Der Locale-Bezeichner nach IETF BCP 47, z. B. 'sr-Cyrl-RS' oder 'zh-Hans-CN', aus dem das Schrift-Subtag extrahiert werden soll. |
Rückgabewert
'Cyrl', 'Latn', 'Hans'). Ist kein Schrift-Subtag vorhanden, wird ein leerer String zurückgegeben.Beispiele
Schrift-Subtag aus einem Locale-Bezeichner ermitteln
<?php
// Serbisch in kyrillischer Schrift (Region Serbien)
$locale = 'sr-Cyrl-RS';
$script = locale_get_script($locale);
echo 'Schrift-Subtag: ' . $script . PHP_EOL;
// Vereinfachtes Chinesisch
$locale2 = 'zh-Hans-CN';
echo 'Schrift-Subtag: ' . locale_get_script($locale2) . PHP_EOL;
// Locale ohne Schrift-Subtag
$locale3 = 'de-DE';
echo 'Schrift-Subtag: "' . locale_get_script($locale3) . '"' . PHP_EOL;
Schriftabhängige Inhaltsauswahl
<?php
// Unterschiedliche Darstellung je nach Schriftsystem
function getContentByScript(string $locale): string {
$script = locale_get_script($locale);
return match ($script) {
'Cyrl' => 'Kyrillische Inhalte werden geladen.',
'Latn' => 'Lateinische Inhalte werden geladen.',
'Hans' => 'Vereinfacht-chinesische Inhalte werden geladen.',
'Hant' => 'Traditionell-chinesische Inhalte werden geladen.',
default => 'Standard-Inhalte werden geladen.',
};
}
$locales = ['sr-Cyrl-RS', 'sr-Latn-RS', 'zh-Hans-CN', 'zh-Hant-TW', 'en-US'];
foreach ($locales as $loc) {
echo $loc . ': ' . getContentByScript($loc) . PHP_EOL;
}
// Wichtig · Fallstricke
Die Funktion setzt die Intl-Erweiterung voraus, die standardmäßig in PHP enthalten, aber nicht immer aktiviert ist. Prüfen Sie die Verfügbarkeit mit extension_loaded('intl').
Schrift-Subtags bestehen aus genau vier Buchstaben und folgen dem ISO-15924-Standard. Die Groß-/Kleinschreibung wird beim Parsen toleriert, die Ausgabe ist jedoch normalisiert (erster Buchstabe groß, Rest klein).
Wird null oder ein leerer String übergeben, gibt die Funktion ebenfalls einen leeren String zurück – ohne eine Warnung auszulösen.