Start · Sprachen · PHP · Referenz · locale_is_right_to_left

locale_is_right_to_left

Funktion

Prüft, ob ein angegebenes Locale eine Rechts-nach-links-Schrift (RTL) verwendet, z. B. Arabisch oder Hebräisch.

seit PHP 8.0.0 Kategorie: string

Signatur

locale_is_right_to_left(string $locale): bool

Beschreibung

locale_is_right_to_left() ist eine prozedurale Variante der Methode Locale::isRightToLeft() aus der Intl-Erweiterung. Die Funktion analysiert den übergebenen Locale-Bezeichner und gibt true zurück, wenn die zugehörige Sprache typischerweise von rechts nach links geschrieben wird (Right-to-Left, RTL).

Typische RTL-Sprachen sind Arabisch (ar), Hebräisch (he), Persisch (fa), Urdu (ur) oder Jiddisch (yi). Die Funktion ist besonders nützlich in mehrsprachigen Webanwendungen, um die Textausrichtung (dir="rtl") und das Layout dynamisch anzupassen.

Die Funktion berücksichtigt den Sprachanteil des Locale-Bezeichners. Eine gültige BCP-47-Locale-Zeichenkette wie ar_SA oder he_IL wird korrekt ausgewertet. Für unbekannte oder ungültige Locale-Bezeichner wird in der Regel false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$locale Pflicht string Ein BCP-47-konformer Locale-Bezeichner, z. B. ar_SA, he_IL oder en_US.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das Locale eine Rechts-nach-links-Schrift verwendet, andernfalls false. Für ungültige oder unbekannte Locales wird false zurückgegeben.

Beispiele

Einfache RTL-Erkennung für Arabisch und Englisch

<?php
$locales = ['ar_SA', 'he_IL', 'fa_IR', 'en_US', 'de_DE', 'zh_CN'];

foreach ($locales as $locale) {
    $isRtl = locale_is_right_to_left($locale);
    echo $locale . ': ' . ($isRtl ? 'RTL' : 'LTR') . PHP_EOL;
}
ar_SA: RTL he_IL: RTL fa_IR: RTL en_US: LTR de_DE: LTR zh_CN: LTR

Dynamisches HTML-dir-Attribut in einer mehrsprachigen Webanwendung

<?php
function getHtmlDirection(string $locale): string {
    return locale_is_right_to_left($locale) ? 'rtl' : 'ltr';
}

$userLocale = 'ar_EG'; // Vom Benutzer oder Session ermittelt
$dir = getHtmlDirection($userLocale);

echo '<html lang="' . htmlspecialchars($userLocale) . '" dir="' . $dir . '">' . PHP_EOL;
echo '  <body>' . PHP_EOL;
echo '    <p>Willkommen / مرحباً</p>' . PHP_EOL;
echo '  </body>' . PHP_EOL;
echo '</html>';
<html lang="ar_EG" dir="rtl"> <body> <p>Willkommen / مرحباً</p> </body> </html>

// Wichtig · Fallstricke

Verfügbarkeit: Diese Funktion erfordert die PHP-Erweiterung intl, die standardmäßig nicht in allen PHP-Installationen aktiv ist. Stelle sicher, dass extension=intl in der php.ini aktiviert ist.

Äquivalenz: locale_is_right_to_left($locale) ist funktional identisch mit Locale::isRightToLeft($locale).

Locale-Validierung: Die Funktion führt keine strenge Validierung des Locale-Bezeichners durch. Ungültige Zeichenketten führen nicht zu einem Fehler, sondern geben stillschweigend false zurück. Es empfiehlt sich, Locales vorab mit Locale::canonicalize() zu normalisieren.