it-swarm.com.de

Wie finde ich eine Sprachrichtung?

Die Funktion is_rtl() überprüft die Richtung der Blogsprache, wenn es sich um LTR oder RTL handelt.

public function is_rtl() {
    return 'rtl' == $this->text_direction;
}

Aber ich konnte nicht finden, wo oder wer die text_direction-Daten eingibt. Wenn ich die Blogsprache auf Arabisch ändere, wird text_direction zu RTL. Woher erhält es die Sprachrichtungsinformationen?

Die Sprachlistendaten werden von der trasnaltions api https://api.wordpress.org/translations/core/1.0/ abgerufen, aber das schließt nicht ein die Sprachrichtung!

Gibt es dafür eine andere API? Wie kann ich die Richtung einer Sprache ermitteln, die nicht als Blogsprache festgelegt ist?

2
Fahad Alduraibi

Die Eigenschaft text_direction von die Klasse WP_Locale ist standardmäßig 'ltr' gemäß die Deklaration und kann dann in der Klasse geändert werden init() Initialisierungsfunktion in wp-includes/locale.php (in der Nähe von Zeile # 207 in WP 4.5 ) mit dem folgende Logik:

// Set text direction.
if ( isset( $GLOBALS['text_direction'] ) )
    $this->text_direction = $GLOBALS['text_direction'];
/* translators: 'rtl' or 'ltr'. This sets the text direction for WordPress. */
elseif ( 'rtl' == _x( 'ltr', 'text direction' ) )
  $this->text_direction = 'rtl';

if ( 'rtl' === $this->text_direction && strpos( $GLOBALS['wp_version'], '-src' ) ) {
  $this->text_direction = 'ltr';
  add_action( 'all_admin_notices', array( $this, 'rtl_src_admin_notice' ) );
}

Unter Verwendung der obigen Initialisierungslogik ändert WordPress die Textrichtung in den Wert von $text_direction global, falls vorhanden. Andernfalls wird die Funktion _x() angewendet, um den lokalisierten Wert der Zeichenfolge 'ltr' mit dem Kontext 'text direction' abzurufen.

In den meisten Fällen wird die Textrichtung durch die Übersetzungsdateien für die ausgewählte Sprache festgelegt. Hier können Sie die Übersetzung der Textrichtung für Arabisch in der webbasierten Oberfläche für die Kernübersetzung sehen.

Nach der Festlegung der zu verwendenden Sprache verwendet WordPress die Funktion load_default_textdomain() , um über den globalen Code $l10n auf die Sprachdaten des konfigurierten Gebietsschemas zuzugreifen, auf die sich die Lokalisierungsfunktionen für die Übersetzungen stützen.

Um die Sprachrichtung für andere Sprachen als die Standardsprachen zu bestimmen, benötigt WordPress eine mehrsprachige Installation . Viele der im verknüpften Codex-Eintrag beschriebenen Methoden schalten das aktive Gebietsschema sofort um, sodass die Textrichtung der aktiven Sprache immer über _x( 'ltr', 'text-direction' ); verfügbar ist.

Wenn Sie die Richtung inaktiver Sprachen ermitteln möchten, können Sie alternativ die Übersetzungsdatei für jede Sprache installieren, deren Textrichtung Sie ermitteln möchten, und dann Instanzen der Mo erstellen. class und rufen import_from_file() auf, um die Sprachdaten getrennt zu halten. Anschließend gibt ein Aufruf von $mo->translate( 'ltr', 'text_direction' ); die Textrichtung der Sprache zurück, sofern festgelegt.

Je nachdem, warum Sie die Textrichtung von nicht geladenen Sprachen erfassen müssen, ist es wahrscheinlich effizienter und weniger ressourcenintensiv, vorher eine statische Liste der Sprachrichtungen zu erstellen.

1
bosco