Start · Sprachen · PHP · Referenz · locale_get_script

locale_get_script

Funktion

Liefert das Schrift-Subtag (Script-Subtag) eines Locale-Bezeichners gemäß IETF BCP 47.

seit PHP 5.3.0 Kategorie: string

Signatur

locale_get_script(string $locale): string

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

Typ
string
Beschreibung
Gibt das Schrift-Subtag des Locale als String zurück (z. B. '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;
Schrift-Subtag: Cyrl Schrift-Subtag: Hans Schrift-Subtag: ""

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;
}
sr-Cyrl-RS: Kyrillische Inhalte werden geladen. sr-Latn-RS: Lateinische Inhalte werden geladen. zh-Hans-CN: Vereinfacht-chinesische Inhalte werden geladen. zh-Hant-TW: Traditionell-chinesische Inhalte werden geladen. en-US: Standard-Inhalte werden geladen.

// 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.