Wie funktioniert printf (__ ())? Arbeit?

12

Heute arbeite ich mich durch ein Thema, um WordPress und Templating besser zu verstehen. 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 das __()oder warum gibt es einen String-Insert? Wofür ist das Anyword?

Kann mir jemand diese Zeile genau erklären?

Denny Mueller
quelle

Antworten:

8

Es wird zum Übersetzen von Text verwendet .

Das zweite Argument ist eine Art Namespace (hier als Domain bezeichnet), um die Übersetzung abzurufen (z. B. aus einer dedizierten Datei oder etwas anderem).

Also Anywordhier sollte der Typ hinter der Vorlage sein, oder die Firma oder was auch immer das eine Domain / ein Namespace sein kann.

bearbeiten:

Das Dokument von WordPress gibt weitere Erklärungen zur Internationalisierung eines Plugins :


Fügen Sie dies dem 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, geben Sie einfach __('String name','your-unique-name');die Übersetzung zurück oder geben Sie _e('String name','your-unique-name');die Übersetzung wieder. Die Übersetzungen werden dann in den Ordner / Languages ​​Ihres Plugins verschoben.


Für Ihr Plugin / Theme your-unique-namescheint das zu sein Anyword.

j0k
quelle
Das Thema enthält einige Sprachdateien. Woher weiß die Argumentation, sie nur für das 'Anyword' zu verwenden?
Ich habe meine Antwort mit einem besseren Teil aus dem WP-Dokument aktualisiert.