Übersetzen von strings in JS
Ich habe ein Projekt, ich will in mehrere Sprachen übersetzen, die für den PHP-Teil verwende ich Zend Frameworks Zend_Translate mit GetText. Jetzt möchte ich die übersetzung der JS Teil zu.
Bin ich mit der jQuery JS Framework und würde gerne hören, Ihre Gedanken auf, übersetzung für JS-Dateien
InformationsquelleAutor Thomaschaaf | 2009-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich erfolgreich eingesetzt GetText für die übersetzung des JavaScript-Dateien in drei Projekte.
Natürlich GetText nativ nicht unterstützt JavaScript und JavaScript auch keine Unterstützung für GetText. Meine Lösung ist die folgende.
gettext("your text here")
.xgettext
auf die generierten C-Dateien und alle anderen Dateien in meinem Projekt der Herstellung von POT-und PO-Dateien.Nach dem übersetzen von PO-Dateien, die ich auf die übersetzungen zurück zu JavaScript...
Beispielsweise eine locale-Datei für Estnisch (z.B.
et_EE.js
) könnte wie folgt Aussehen:Abhängig von der gewählten Ländereinstellung, die Sie entweder
et_EE.js
oderen_US.js
oder ...en_US.js
wird wahrscheinlich enthalten nur die folgenden:Etwas kniffliger für
ngettext()
sollten, aber Sie bekommen die Allgemeine Idee.Das tolle ist, dass ich die gettext-tools bereits zur Verfügung. Vor allem, wenn ich die zu übersetzenden Texte in PHP-und JavaScript - ich kann das gleiche Werkzeug für die übersetzung der beiden von Ihnen und auch sicherstellen, dass die gleiche Zeichenfolge übersetzt die gleiche Weise in JavaScript und PHP.
HINWEIS: Wenn Sie nicht den Umgang mit einer JavaScript-intensive web-app, die Sie denken sollten, zweimal, bevor Sie die Seite mit Inhalten erstellt, die mittels JavaScript in den ersten Platz.
Diese Methode würde nicht funktionieren mit plural oder Kontexten ohne erhebliche gettext re-Implementierung Aufwand.
Konnte Sie sein spezifischer? Da habe ich schon umgesetzt wird dieses system mit Unterstützung für Pluralformen aswell. Ich habe nicht zusammenhängen, aber sehe ich nicht wirklich ein problem mit der Unterstützung diejenigen, die als gut.
InformationsquelleAutor Rene Saarsoo
http://24ways.org/2007/javascript-internationalisation
InformationsquelleAutor gabriel
Könnte dies auch für Sie von Interesse sein: eine gettext-plugin für jQuery.
InformationsquelleAutor Rene Saarsoo
Gut, Sie könnten erweitern Zeichenfolgen, um Ihnen ein übersetzt-Funktion, die sucht der Empfänger in einem Gebietsschema.
Verwenden Sie es wie folgt:
alert("Ihre Lieblings-Sprache ist Englisch!".übersetzt());
Und Sie würde gegeben werden einen alert mit "tu idiom prefiero es-Espanol", oder etwas
niko
InformationsquelleAutor nes1983
http://plugins.jquery.com/project/jquery-localize fanden diese zu, die von und für letmegooglethatforyou.com fand auch dieses http://plugins.jquery.com/project/l10n whichone ist besser?
InformationsquelleAutor Thomaschaaf
Ich habe ein PHP web-Seite, die gibt es auch in mehreren Sprachen. Ich habe geschrieben, meine eigene Sprache Klasse in PHP, und wenn es kam, um die Lokalisierung der JavaScript-Dateien, die ich soeben konfigurierten server ausführen .js-Dateien als PHP zu, und ich habe mein PHP-Klasse, die JavaScript-strings zu übersetzen.
Etwas wie dieses:
Ich, dass es nur eine Datei, initialisiert die "$l" am Anfang jeder JavaScript-Datei. Ich habe keine Probleme mit dieser.
Abgesehen von der Konfiguration des Servers zu behandeln js-Dateien als PHP-Dateien sehe ich keine Probleme. Und selbst das ist kein Problem, wenn Sie eigene server. Bitte teilen Sie warum das ist hässlich 🙂 vielleicht bin ich etwas fehlt.
Es ist hässlich, weil die syntax hässlich ist. Kann es nicht gut Aussehen, wenn dein JS-code ist übersät mit <?php echo $l->Get("..."); ?> in jedem string, den Sie übersetzen möchten. Die Zeichenfolge, die Sie tatsächlich zu übersetzen verloren geht innerhalb der PHP benötigt, für die übersetzung.
Dies ist mögliche Lösung, aber mehr lesbar ist, verwenden Sie die statische Methode wie <?= T::_('MeinString') ?> , so dass keine globalen Variablen gerade bei so kurzen Namen wie $l ist.
Es ist niemals lesbar, wenn Sie mischen von PHP in JS übersetzen von Zeichenfolgen. Ich mag die erste Antwort auf diese Frage.. als Entwickler sollten Sie neigen dazu, Ihr Leben leichter machen durch die Schaffung von sauberen und kompakten code, nicht "hack-Dinge, um zu arbeiten".
InformationsquelleAutor Jan Hančič
InformationsquelleAutor user4775894