Ich habe verschiedene Möglichkeiten gesehen, einen Text mit einem Hyperlink übersetzbar zu machen. Es ist mir jedoch nicht gelungen, eine einzige bewährte Methode zu finden.
Hier sind einige der Lösungen, die ich gefunden habe:
// METHOD 1
sprintf( __( 'Please read %1$sthis%2$s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 2
echo '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">';
_e( 'Please read this.', 'tacoverdo-example-domain' );
echo '</a>';
// METHOD 3
sprintf( __( 'Please read <a href="%s">this</a>.', 'tacoverdo-example-domain' ), esc_url( 'https://goo.gl' ) );
// METHOD 4
sprintf( __( 'Please read %sthis%s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 5
_e( 'Please read <a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">this</a>', 'tacoverdo-example-domain' );
Mein erster Gedanke wäre, dass Methode 1 am besten wäre. Ihre Übersetzer müssen sich nicht mit HTML auskennen. Aber es lässt auch nicht zu, dass diejenigen, die es tun, sich damit anlegen. Es ist auch ziemlich DRY (Don't Repeat Yourself), da Sie den gesamten HTML-Teil nicht immer wieder übersetzen müssen.
Beim Posten dieser Frage auf Twitter wurde jedoch geantwortet, dass Methode 3 am besten geeignet ist, wie Sie hier sehen können .
Also, wie soll ich einen Text mit Hyperlink in WordPress übersetzbar machen?
quelle
_x
von__
%s
für<strong>
oder steht<a href target="#">
? Beeinflusst es ihre Übersetzung?In diesen Tagen arbeite ich mit vielen mehrsprachigen Websites und ich muss sagen:
__()
aber immeresc_html__()
/esc_attr__()
. Das bedeutet, dass der zu übersetzende String keinerlei HTML enthalten darf.*_x()
Variante der Übersetzungsfunktionen zu verwenden.%1$sthis%2$s
versteht ein nicht technischer Übersetzer nicht , dass dies
kurz vor demthis
für die richtige Darstellung notwendig ist, und kann auch denken , dass der Entwickler geben wolltethis
einen Tippfehler , sondern hatte und schriebsthis
.Aus all diesen Gründen ist es schwierig, Text, der Links enthält, "richtig" zu übersetzen. Die einzige praktikable Lösung, die alle oben genannten Punkte berücksichtigt, ist:
Was sicher und einfach ist, von nicht-technischen Leuten übersetzt zu werden, aber auch ausführlich und von einer PITA implementiert zu werden, besonders wenn dies für mehrere Links durchgeführt werden muss ...
Für einen Code, der in freier Wildbahn veröffentlicht wird und bei dem Tausende (echte oder potenzielle) Benutzer viele Sprachen sprechen, ist dies jedoch der Weg, den ich einschlagen würde.
Dies ist eigentlich der Weg, den ich selbst für Code für den internen Gebrauch nehme, aber das bin ich.
Hinweis :
Es mag zu viel erscheinen, um das Wort "Google" separat übersetzbar zu machen, und das trifft wahrscheinlich auf diesen speziellen Fall zu. Aber manchmal wird sogar angenommen, dass Markennamen falsch sind. Um nur ein Beispiel zu nennen, in Italien haben wir die Marke "Algida", die mit ~ 30 verschiedenen Namen auf der ganzen Welt bekannt ist .
In diesem Fall kann das Hardcodieren der URL und / oder des Markennamens zu Problemen führen.
Wenn Sie den Kontext für die Übersetzung angeben, können die Übersetzer leichter entscheiden, ob sie den Markennamen übersetzen müssen oder nicht.
quelle
Sie müssen das Markup in der übersetzbaren Zeichenfolge behalten, da die Übersetzer wissen müssen, dass es einen Link gibt. In einigen Sprachen kann der resultierende Linktext mehrere Wörter umfassen, es kann sogar ein Komma (oder ein Äquivalent) innerhalb oder eines anderen Markups geben, das korrekt verschachtelt werden muss.
Es ist auch wichtig, einen sprechenden Linktext zu erstellen, nicht dies oder hier .
2 oder 3 sind die einzigen übersetzbaren Optionen, aber Sie sollten die URL auch übersetzbar machen.
quelle