webentwicklung-frage-antwort-db.com.de

Wie funktioniert printf (__ ()); Arbeit?

Heute arbeite ich mich durch ein Thema, um ein besseres Verständnis von WordPress und Vorlagen zu bekommen. Ich habe folgendes entdeckt:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Ich weiß, es zeigt "Designed by Blub" (Wo Blub verlinkt ist). Aber was bedeutet die __() oder warum gibt es eine Zeichenfolge einfügen? Wofür ist das Anyword?

Kann mir jemand diese Zeile genau erklären?

10
Denny Mueller

Es wird für Text übersetzen verwendet.

Das zweite Argument ist eine Art Namespace (hier Domäne genannt), um die Übersetzung abzurufen (z. B. aus einer dedizierten Datei oder etwas anderem).

Anyword sollte hier also der Typ sein, der hinter der Vorlage steht, oder die Firma oder was auch immer, das kann eine Domain/ein Namespace sein.

Bearbeiten:

Das Dokument von WordPress erklärt genauer, wie man ein Plugin internationalisiert :


Fügen Sie dies zum Plugin-Code hinzu, um sicherzustellen, dass die Sprachdatei (en) geladen sind:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Um einen String abzurufen, verwenden Sie einfach __('String name','your-unique-name');, um die Übersetzung zurückzugeben, oder _e('String name','your-unique-name');, um die Übersetzung zu wiederholen. Die Übersetzungen werden dann in den Ordner/languages ​​Ihres Plugins verschoben.


Für dein Plugin/Theme scheint der your-unique-name eine Anyword zu sein.

7
j0k