Wie man eine Website in mehrere Sprachen übersetzen lässt

Websites entwickeln sich Tag für Tag weiter, da die Kommunikation der Welt immer enger wird. Jedes Mal müssen wir unsere Entwicklungen nicht nur auf dem lokalen Markt einsetzen, sondern auch auf globale Märkte expandieren. Eine der ersten Möglichkeiten, dies zu erreichen, besteht darin, dass unsere Website (oder Anwendungen) mehrere Sprachen unterstützt. Heute lernst du So wenden Sie mehrere Sprachen auf Ihre Website oder Anwendung an.

So funktioniert unser Web-Übersetzer

1. Wir werden auf unserer Website eine Schaltfläche haben, die uns die Möglichkeit gibt, unsere Website in die verschiedenen von uns konfigurierten Sprachen zu ändern.

2. Die Übersetzung erfolgt mit Javascript, wobei die übersetzten Texte durch Ajax extrahiert werden, die in Textdateien gespeichert werden, die wir zuvor mit den Tags unserer Website konfiguriert haben.

3. Wir werden einen externen Service haben, der uns mitteilt, aus welchem ​​Land sie uns besuchen und so die ideale Sprache für den Besucher visualisieren. Wir werden dies über die IP des Besuchers handhaben.

Vorteile unseres Übersetzers

1. Es ist nicht erforderlich, die Site zu aktualisieren, um die Übersetzung anzuwenden, da viele Sites dies so handhaben.

2. Wir haben nur eine Version unserer Front, es sind nicht zwei oder mehr HTML erforderlich, um die Texte in verschiedenen Sprachen zu bearbeiten.

3. Wenn wir später weitere Sprachen hinzufügen möchten, können wir dies sehr einfach konfigurieren.

4. Super einfach zu bewerben für Websites, die wir bereits erstellt haben und mehrsprachig platzieren möchten.

NotizUm dieses Tutorial anschaulich zu verstehen, sind Vorkenntnisse in HTML, CSS, Javascript (insbesondere jQuery), Ajax-Kenntnissen und ein bisschen PHP ratsam.

1. Beginn der Entwicklung


Wir beginnen mit der Erstellung eines Verzeichnisses namens translate, innerhalb dieses Verzeichnisses erstellen wir die Dateien index.html, ein css-Verzeichnis und namens js. Und in diese beiden Verzeichnisse legen Sie eine Datei namens main.css Ja main.js beziehungsweise.
 Meine mehrsprachige Website Englisch wird geladen…

Hallo Welt

[color = # a9a9a9] Code aus index.html[/color]
 .loading-lang {Deckkraft: 0; } .loading-lang.show {Opazität: 1; } 
[color = # 808080] main.css-Code[/color]

Vorerst bleibt die Datei main.js leer. Wir können von unserem bevorzugten lokalen Webserver aus testen. Es ist notwendig, einen Webserver zu verwenden, da wir später mit Ajax-Anfragen beginnen werden.

2. Übersetzungsdateien erstellen


Wir werden auf unserer Website die Dateien erstellen, in denen wir die Texte unserer Website platzieren. Wir beginnen damit, zwei Dateien für unsere Website zu erstellen, die zwei Sprachen sein werden. Englisch und Spanisch. Wir erstellen ein Verzeichnis namens lang, in dieses Verzeichnis legen wir zwei Textdateien namens es.txt und en.txt (spanische bzw. englische Textdatei) ab.

Dateiinhalt
es.txttitulo-web => Meine mehrsprachige Seite
Willkommen => Willkommen auf meiner Seite
hallo => hallo welt
de.txttitulo-web => Meine mehrsprachige Seite
Willkommen => Willkommen auf meiner Seite
Hallo => Hallo Welt

Ich werde ein wenig über diese Dateien erklären, wie sie strukturiert sind. Jede Phrase, die wir auf unserer Website verwenden, muss mit einer eindeutigen ID identifiziert werden, mit der jede Phrase dort übersetzt werden kann, wo sie speziell platziert werden muss. Zum Beispiel verwenden wir für den Titel der Site die ID title-web gefolgt von den Zeichen => und dann der entsprechenden Phrase. Jeder Satz muss in einer anderen Zeile stehen.

Zusammenfassend müssen wir die folgenden Regeln befolgen

1. Eindeutige ID.

2. Verwenden Sie nach der ID immer die Zeichen =>

3. Trennen Sie den übersetzten Satz des Gesichts durch eine andere Zeile. (Getrennt durch einen Zeilenumbruch oder \ n).

4. Dass die Dateien im txt-Format sind.

3. Ajax erstellen


NotizWenn Sie nicht viel über jQuery wissen, lade ich Sie ein, ihre Website zu besuchen.
 $ (document) .ready (function () {var selector = '#translate'; $ (selector) .on ('click', function (e) {e.preventDefault (); startLang ($ (this));} ); var startLang = Funktion (el) {var el = $ (el); var text = el.attr ('Daten-Text'); var Datei = el.attr ('Daten-Datei'); Datei = Datei. split (','); text = text.split (','); var index = el.attr ('data-index'); if (index> = file.length) {index = 0;} changeName (el , text [index]); changeIndex (el, index); loadLang (file [index]); $ ('html'). attr ('lang', file [index]);}; var changeName = function (el, name) {$ (el) .html (name);}; var changeIndex = function (el, index) {$ (el) .attr ('data-index', ++ index);}; var loadLang = function ( lang) {var processLang = function (data) {var arr = data.split ('\ n'); for (var i in arr) {if (lineValid (arr [i])) {var obj = arr [i] .split ('=>'); AssignText (obj [0], obj [1]);}}}; var AssignText = function (key, value) {$ ('[data-lang = "' + key + ' " ] '). each (function () {var attr = $ (this) .attr (' data-destine '); if (typeof attr! ==' undefined ') {$ (this) .attr (attr, Wert); } else {$ (dies) .html (Wert); }}); }; var lineValid = function (line) {return (line.trim (). length> 0); }; $ ('. loading-lang') addClass ('show'); $ .ajax ({url: 'lang /' + lang + '. txt', error: function () {alert ('No translation loading');}, success: function (data) {$ ('. loading-lang ') .removeClass (' zeigen '); processLang (Daten);}}); }; }); 
[color = # a9a9a9] main.js-Code[/color]

Wir müssen auch unseren HTML-Code ändern:

 Meine mehrsprachige Website Englisch wird geladen… 

Hallo Welt

[color = # a9a9a9] Aktualisierter HTML-Code [/color]

Damit können wir testen, ob unsere Seite bereits übersetzt wird.

Lassen Sie uns ein wenig erklären, was wir in unserer Javascript-Datei gemacht und was wir in unserem HTML-Code aktualisiert haben.

Der Prozess, der in der Javascript-Datei ausgeführt wird, ist mit Hilfe des Tags, das als Übersetzungsschaltfläche funktioniert. Wir platzieren ein Ereignis, damit es eine Ajax-Anfrage stellt, um die Datei der Sprache zu extrahieren, die wir verwenden werden Moment.

Wir haben drei Attribute in unserer Übersetzungsschaltfläche namens Datendatei, Datenindex, Datentext.

Schaltflächenattribute
data-file = "ist, inEs ist verantwortlich für die verschiedenen Sprachen, die wir auf unserer Website haben. Für unser Tutorial ist es und weiter. Wenn Sie sich gut erinnern, heißen unsere Übersetzungsdateien es.txt und en.txt.
Datenindex = "1Es hat die Position der nächsten zu habenden Datei. 0 ist Sein und 1 in, dies bedeutet, dass der nächste zu bringende in ist. Wir können diese Organisation in unserem Datendateiattribut sehen, stellen Sie sich einfach vor, dass die Datendatei einem Vektor ähnelt.
data-text = "Englisch, EspañolEs ist dafür zuständig zu visualisieren, in welcher Sprache unsere Anwendung gerade angezeigt wird.

Die Änderung, die wir an unserem HTML-Code vorgenommen haben, bestand darin, das data-lang-Attribut mit der eindeutigen ID zu den zu übersetzenden Tags hinzuzufügen. Sie sollten bereits wissen, dass diese eindeutige ID in den Dateien en.txt und es.txt konfiguriert ist.

Zum Beispiel

Hallo Welt

: die eindeutige ID ist hallo und wir finden sie in unseren txt-Dateien. en.txt: hallo => hallo world, und en.txt: hallo => hallo World.

Lassen Sie uns unseren Übersetzer auf die Probe stellen und sehen, ob das, was wir entwickelt haben, wirklich alles abdeckt, was wir brauchen und wie komplex es ist, eine neue Sprache hinzuzufügen.

Lassen Sie uns eine neue Sprache hinzufügen. In dieser Phase unserer Entwicklung müssen wir erkennen, dass wir nur zwei Dinge tun müssen:

1. Erstellen Sie unsere neue Sprachdatei.

2. Fügen Sie die neue Sprache in den Datendatei- und Datentextattributen hinzu.

Wir erstellen die französische Sprache für unsere Website. Wir erstellen unsere Sprachdatei namens fr.txt im Verzeichnis lang.

Fr.txt-Inhalttitulo-web => Mon Website mehrsprachig
Willkommen => Bienvenue sur mon Seite
hallo => salut monde

Wir aktualisieren unsere Sprachenschaltfläche, daher lautet das Label in index.html:

 Englisch 
Testen wir unsere Seite mit der neuen Sprache:

Perfekt! damit wir ohne weitere Komplikationen alle benötigten Sprachen zu unseren Websites hinzufügen können. Machen wir einen zweiten Test. Man fragt sich, ob eine übersetzte Phrase auf einem Etikett wiederverwendet und auf einem anderen platziert werden kann, um nicht dieselbe Übersetzung wiederholen zu müssen, auch wenn sie an verschiedenen Stellen gedruckt wird? Die Antwort ist JA, machen wir das Beispiel.

Lassen Sie uns den Titel des Webs mit der eindeutigen ID title-web verwenden, den wir derzeit in unserem Label verwenden, und wir werden ihn in der Fußzeile unserer Website platzieren. Es ist wie folgt:

 Meine mehrsprachige Seite © 
[color = # a9a9a9] Zum Code index.html hinzufügen [/color]

Wir aktualisieren unsere Seiten und sehen, dass wir bereits alle drei Sprachen verfügbar haben.

Wir haben den größten Teil unseres Codes bereits fertig, wir müssen nur etwas sehr Wichtiges hinzufügen, um es immer auf unserer Website zu haben. Wissen aus welchem ​​Land sie uns besuchen und wissen somit, welche Sprache sie dem Besucher zeigen sollen.

4. Länderdetektor


Es gibt viele Dienste im Internet, die uns diese Informationen zur Verfügung stellen. Für unser Tutorial verwenden wir ipinfodb, das uns hilft zu erkennen, aus welchem ​​Land sie uns besuchen. Alles was Sie tun müssen, ist sich auf dieser Seite zu registrieren und sie wird uns einen API KEY zur Verfügung stellen, den wir zusammen mit der IP des Besuchers verwenden.

Zuerst registrieren wir uns auf der Website, nach dieser Registrierung senden Sie uns eine Nachricht an die bei der Registrierung angegebene E-Mail-Adresse, in der Sie uns bitten, das Konto zu aktivieren. Bei der Aktivierung erhalten wir den API KEY, der 10 Minuten nach der Aktivierung unseres Kontos in Betrieb bleibt.

Wir testen unseren Schlüssel über den folgenden Link http: //api.ipinfodb… .I_API_KEY & ip = IP, ersetzen Sie, wo MI_API_KEY angegeben ist, durch die, die Sie erhalten haben, und die IP, die Sie suchen möchten. In meinem Fall habe ich es mit meiner eigenen IP versucht und das war das Ergebnis.

Wenn wir im Bild sehen, sind die letzten beiden Daten CO; Kolumbien. Wir können CO verwenden, um das Land zu identifizieren. Da dies für jedes Land ein eindeutiger Code ist (ISO 3166-2). Sobald uns klar ist, was wir tun werden, verwenden wir einen Server-Sprachdienst, für das Tutorial werde ich PHP verwenden.

 
[color = # a9a9a9] Country.php-Code [/color]

In dem Beispiel habe ich gesagt, dass wenn der Code CO (Kolumbien) oder ES (Spanien) ist, 0 zurückgegeben wird, was der Index der spanischen Sprache ist, wenn der Code FR (Frankreich) ist, wird 2 zurückgegeben, was der Index für die französische Sprache ist , und wenn nicht, gibt keiner von beiden 1 zurück, was die englische Sprache angibt. Im Tutorial belasse ich standardmäßig die englische Sprache für jedes Land, das wir nicht in den Sprachen angegeben haben. Jetzt fügen wir im Javascript den folgenden Code hinzu.

 $ .ajax ({url: 'country.php', success: function (data) {$ (selector) .attr ('data-index', data); startLang ($ (selector));}}); 
[color = # a9a9a9] Zum Code hinzufügen main.js [/color]

Wir führen Tests durch, um zu sehen, welche Ergebnisse wir erhalten:

Wenn Sie lokale Tests durchführen (wie ich in diesem Fall), $ _SERVER ['REMOTE_ADDR'], wird die IP unseres lokalen Netzwerks zurückgegeben und nicht die öffentliche. Aus diesem Grund wird die Standardsprache Englisch zurückgegeben. Um dies eindeutig zu überprüfen, können wir unser Tutorial auf ein Hosting hochladen und das war's!

Damit haben wir unser Tutorial beendet, ich hoffe es hat euch gut gefallen und könnt es auf euren Webseiten anwenden, ich hinterlasse den Code unten in einer ZIP-Datei:

Code herunterladen translate.zip 3.2K 1459 Downloads

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave