Es gibt ein zweites Argument in der __()
Funktion. Es sollte auf die Domain eingestellt sein, die Sie für Ihr Plugin oder Theme verwenden. In den folgenden Beispielen verwende ich 'text_domain'
. Ihre Domain-Zeichenfolge sollte eindeutig sein. Es sollte keiner anderen Domain-Zeichenfolge entsprechen. Wenn Sie kein Textdomänenargument verwenden, wird standardmäßig 'default'
der WordPress-Domänenname verwendet. Siehe den Link für weitere Details.
Verwenden Sie immer die Zeichenfolge ( 'text_domain'
). Verwenden Sie niemals eine Variable, Funktion oder Konstante mit der Zeichenfolge darin. Die meisten (alle?) Übersetzungsprogramme werden es ohne die Zeichenfolge dort nicht sehen.
Dein Code:
echo __( 'Hello ' . $first . ' you own me money.' );
Fügen Sie keine Variablen in die Zeichenfolge ein.
Ein besserer Weg:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Oder nur:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Der %s
Platzhalter teilt dem menschlichen Übersetzer mit, dass dort ein String eingeht. Verwenden Sie %d
für Zahlen. Es gibt auch andere Platzhalter .
(Dieser Satz ist grammatikalisch falsches Englisch. Verwenden Sie entweder 'Hello %s, you owe me money.'
oder 'Hello %s, you own my money.'
je nach der beabsichtigten Bedeutung.)
Dein Code:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Übersetzen Sie kein HTML. Das ist in jeder Sprache gleich.
Ein besserer Weg:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Oder teilen Sie es in mehrere Zeilen auf:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Wenn nicht klar ist, was oben und unten ist, können Sie das verwenden _x()
, um den Kontext dieser Begriffe zu erläutern.
Weitere Übersetzungsfälle finden Sie hier: Internationalisierung: Sie machen es wahrscheinlich falsch