Signatur
Beschreibung
locale_add_likely_subtags() nimmt einen unvollständigen Locale-Bezeichner (z. B. de oder zh) und gibt eine möglichst vollständige Form zurück, die Sprache, Schrift und Region enthält (z. B. de_Latn_DE oder zh_Hans_CN). Der Algorithmus basiert auf den Likely Subtags der Unicode Common Locale Data Repository (CLDR) und folgt dem Unicode-Standard TR 35.
Diese Funktion ist besonders nützlich, wenn aus einem minimalen Locale-Tag auf Schrift (Script) und Region (Region) geschlossen werden soll – etwa um Inhalte korrekt darzustellen, Schriften auszuwählen oder regionale Formatierungsregeln anzuwenden. Sie ist die prozedurale Variante der Methode Locale::addLikelySubtags().
Sie gibt den ergänzten Locale-String zurück oder false, falls der Algorithmus keinen passenden Eintrag findet (z. B. bei einem ungültigen oder unbekannten Locale).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $locale Pflicht | string | Der Locale-Bezeichner, dem wahrscheinliche Subtags hinzugefügt werden sollen, z. B. 'de', 'zh' oder 'sr_Cyrl'. Kann eine minimale BCP-47-Angabe sein. |
Rückgabewert
'de_Latn_DE') oder false, wenn der Locale-Bezeichner unbekannt oder ungültig ist.Beispiele
Einfache Sprache zu vollständigem Locale ergänzen
<?php
// Nur Sprachcode angegeben – Schrift und Region werden ergänzt
$result = locale_add_likely_subtags('de');
echo $result; // de_Latn_DE
$result2 = locale_add_likely_subtags('zh');
echo $result2; // zh_Hans_CN
$result3 = locale_add_likely_subtags('sr');
echo $result3; // sr_Cyrl_RS
Schrift bereits vorhanden – nur Region ergänzen
<?php
// Schrift ist bekannt, Region wird ergänzt
$result = locale_add_likely_subtags('sr_Latn');
echo $result; // sr_Latn_RS
// OOP-Variante mit Locale-Klasse
$result2 = Locale::addLikelySubtags('uz_Cyrl');
echo $result2; // uz_Cyrl_UZ
Fehlerbehandlung bei unbekanntem Locale
<?php
$result = locale_add_likely_subtags('xx_XX_UNKNOWN');
if ($result === false) {
echo 'Locale nicht erkannt oder ungültig.';
} else {
echo $result;
}
// Wichtig · Fallstricke
Abhängigkeit von ICU: Die Ergebnisse hängen von der installierten ICU-Version ab. Neuere ICU-Versionen enthalten aktuellere CLDR-Daten und liefern daher möglicherweise andere oder genauere Subtags als ältere Versionen. Stellen Sie sicher, dass die ICU-Bibliothek auf dem Server aktuell ist.
Gegenstück: Die umgekehrte Operation – Entfernen von wahrscheinlichen Subtags – ist mit locale_minimize_subtags() möglich.