Frage

Meine aktuelle Implementierung, die Array-basierte speichern Schlüssel und Werte in einem Wörterbuch, Beispiel:

$arr = array(
    'message' => 'Paste a <a href="http://flickr.com/">flickr</a> URL below.',
);

Ich stelle fest, dass es wahrscheinlich eine schlechte Idee html innerhalb eines Strings wie diese zu speichern, aber wenn ich gettext dann in meinem .mo / .po-Dateien mit bin, wie soll ich eine ähnliche Zeichenfolge behandeln zu speichern? Soll ich nur Worte, wie ‚Einfügen a‘ und ‚URL unten‘ und ‚flickr‘ getrennt?

War es hilfreich?

Lösung

Sie sollten speichern so etwas wie

"Paste a %1 URL below"

und alle ersetzen 'vars' mit etwas Einfachen wie str_replace ( '% 1', $ Link, $ message);

$ Link kann auch übersetzbar sein

"<a href="http://flickr.com/">%1</a>"

obwohl das könnte zu viel des Guten (nicht übersetzen flickr zwischen den Sprachen?)

Logik dahinter ist, dass verschiedene Sprachen haben unterschiedliche grammatische Strukturen und die Reihenfolge der Worte werden nicht immer gleich sein.

Update:

als @ Alex und @chelmertz Erwähnung in den Kommentaren, versuchen Sie die sprintf-Funktion, die für diese sehr Sache gebaut wird.

Andere Tipps

ich für diese gehen würde:

$arr = array(
    'message' => _('Paste a %s URL below.'),
);

alle Übersetzungen als Stringliterale innerhalb getText Funktion ruft ermöglicht Standard-Tools zu verwenden, zu aktualisieren * .po Kataloge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top