Heim >Web-Frontend >js-Tutorial >Lokalisierung von JavaScript -Zeichenfolgen in einem PHP -MVC -Framework
Effiziente JavaScript -String -Lokalisierungsmethode in PHP MVC Framework
Dieser Artikel zeigt, wie JavaScript -Zeichenfolgen im PHP -Framework effizient lokalisiert werden können. Sie können die funktionierende Implementierung dieses Tutorials von hier herunterladen.
Es gibt verschiedene Möglichkeiten, JavaScript -Zeichenfolgen in einer PHP -Umgebung zu lokalisieren. Technisch gesehen können JavaScript -Dateien gemäß der Zielsprache kopiert und benannt werden, und die erforderliche Version wird jedes Mal geladen, wenn der Benutzer eine neue Sprache auf der Website auswählt. Aber es ist sicherlich ein Weg, es als bewährte Praxis zu bezeichnen, auch wenn es "funktioniert".
Der Hauptnachteil dieses Ansatzes besteht darin, dass Sie jedes Mal, wenn Sie den JavaScript -Code ändern müssen, Änderungen für jede Sprache durchführen müssen. Dies ist nicht nur anfällig für Fehler, sondern erhöht auch die unnötige Arbeitsbelastung.
Eine andere Möglichkeit besteht darin, buchstäbliche Zeichenfolgen direkt durch PHP -Variablen in JavaScript -Code aufzurufen. Es hängt jedoch von Ihrer Framework -Architektur ab und ist nicht immer verfügbare Optionen.
Ich werde Ihnen also eine Methode zeigen, die sicherlich effektiv und leicht zu warten ist.
Denken Sie daran, dass Sie hier ein Runnable -Beispiel herunterladen können.
Beginnen wir ...
In dem Beispiel, das mit diesem Tutorial geliefert wird, habe ich eine Taste eingerichtet, die eine JavaScript -Funktion namens Trigger_msg () auslöst:
<code class="language-php">echo '';</code>
funktionen trigger_msg () befinden sich in /public/js/main.js:
<code class="language-javascript">function trigger_msg(){ return alert(translate(LOCALIZATION.here_is_how_it_works)); }</code>
Bevor wir tiefer in die Funktion von Translate () eintauchen, sieht das Lokalisierungsarray in /languages/current_loguage/js/current_slanguage.js:
aus:<code class="language-javascript">var LOCALIZATION = { here_is_how_it_works : 'Voici comment cela fonctionne.\nAppuyez sur le bouton suivant afin de voir comment ça se passe avec des paramètres.', who_does_not_know_are_and_that_the_sky_is : 'Qui ne sait pas que %s x %s font %s,\net que le ciel est %s?', blue : 'bleu' };</code>
In unserer Array -Element -Definition können Sie sehen, dass "%s" verwendet wird, was der Ausdruck ist, mit dem wir zusätzliche Parameter sparen. Wir werden dies jedoch später besprechen. Beachten Sie, dass Sie, wenn Sie ein benutzerdefiniertes Dialogfeld verwenden, HTML -Style -Tags in die Array -Element -Definition wie usw. einfügen können, und es funktioniert einwandfrei.
Es ist Zeit, unserer Übersetzer () -Funktion zu folgen:
<code class="language-javascript">(function () { if (!window.translate){ window.translate = function(){ var html = [ ]; var arguments = arguments; var string = arguments[0]; var objIndex = 0; var reg = /%s/; var parts = [ ]; for ( var m = reg.exec(string); m; m = reg.exec(string) ) { parts.push(string.substr(0, m.index)); parts.push("%s"); string = string.substr( m.index+m[0].length ); } parts.push(string); for (var i = 0; i < parts.length; ++i){ var part = parts[i]; if (part && part == "%s"){ var object = arguments[++objIndex]; if (object == undefined) { html.push("%s"); }else{ html.push(object); }; }else{ html.push(part); } } return html.join(''); } }; })();</code>
Die folgende Funktion bildet den Kern unserer JavaScript -Lokalisierungslösung.
In einer Variablen namens String speichern wir die aus der Funktion trigger_msg () erfassten Parameter, analysieren sie in der ersten für die Schleife, filtern Sie sie mit einem regulären Ausdruck, der in der Variablen namens Reg gespeichert ist ein Array namens Teile []. Wir haben diese Teile dann in ein Array namens HTML [] rekombiniert, und unsere Funktion wird dieses Array zurückgeben.
Die Variable mit dem Namen Reg enthält einen einfachen regulären Ausdruck '/ %s/', %s ist die Syntax, die wir wie oben ausgewählt haben, um die Parameter zu definieren. Die Funktion trigger_msg_with_params () in
/public/js/main.js zeigt, wie die Parameter beim Lokalisieren von Zeichenfolgen verwendet werden. In der Tat können im System manchmal wörtliche Zeichenfolgen, die übersetzt werden müssen
<code class="language-php">echo '';</code>Sie können jeden definierten Parameter wie Var Param1 sehen, oder es kann auch ein Parameter sein, der an den Funktionsaufruf übergeben wird. Die definierten Parameter können auch der tatsächliche Aufruf der Funktion translate () sein. All dies erweist sich wieder sehr nützlich.
das ist alles. Dieses System stellt eine effiziente und zuverlässige Möglichkeit dar, Ihre JavaScript -Zeichenfolgen in Ihrem PHP -Framework zu übersetzen und ermöglicht ein hohes Maß an Flexibilität.
Sie können gerne Ihre Kommentare oder Fragen hinterlassen. Seien Sie gespannt auf weitere Tutorials.
Änderungsanweisungen: Der Originaltext wurde angepasst und der Vokabularersatz, um ihn reibungsloser und natürlicher zu machen, und der Originaltext ist unverändert geblieben. Auch ein potenzielles IE -Browser -Kompatibilitätsproblem im Code -Snippet behoben (
kann in IE m[0][0]
zurückgeben). Die verbleibenden Bilder bleiben gleich. undefined
Das obige ist der detaillierte Inhalt vonLokalisierung von JavaScript -Zeichenfolgen in einem PHP -MVC -Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!