Mehrsprachige Unterstützung

9

Ich entwickle eine HTML5-Anwendung, die jQuery verwendet. Ich möchte es mehrsprachig machen: Benutzersprache erkennen und alle Literale in die Sprache des Benutzers ändern.

Ich denke, ein Ansatz besteht darin, für jede unterstützte Sprache eine HTML-Datei zu verwenden, aber das ist Platzverschwendung.

Ein anderer Ansatz könnte sein, jQuery zu verwenden, um alle Literale in die Sprache des Benutzers zu ändern. Aber ich bin mir nicht sicher, wie ich das machen soll.

Was denkst du? Gibt es einen besseren Ansatz?

UPDATE:

Ich habe vergessen zu sagen, dass ich auch einige Literale in JavaScript habe.

    
VansFannel 02.09.2011, 06:42
quelle

4 Antworten

2

Willst du eine serverseitige Anfrage an die Sprache des Benutzers stellen und dann den entsprechenden Text automatisch laden? Vielleicht ist hier sogar ein CMS angebracht.

Für den gesamten JavaScript-Code würde ich String-Literale als Variable verwenden. Sie können also eine andere Sprachdatei für die Benutzersprache laden.

Datei englisch.js:

%Vor%

Datei german.js:

%Vor%

Und in deinem Javascript:

%Vor%

Oder fehlt mir hier der Punkt? ;)

    
Sebastian Wramba 02.09.2011, 06:53
quelle
1

In der HTML5 Demo von mir, den "HTML5 Word Clouds",

Ссылка

(der Quellcode kann unter Ссылка ) gefunden werden

Ich habe separaten HTML-Code für verschiedene Sprachen geschrieben und einen einzelnen Satz von Javascript-Dateien hinzugefügt. Für literale Strings, die im Skript enthalten sind, sammle ich sie in einem Objekt (mit dem Namen T ) und setze sie in <script> block jeder HTML-Datei.

Dies gibt mir die Flexibilität, Seiten für jede Sprache anzupassen; Wie Sie sehen können, habe ich CNN als Beispiel in der englischen Version aufgelistet, aber listet andere Quellen in der chinesischen Version auf.

    
timdream 02.09.2011 08:19
quelle
1

Wenn Sie es unbedingt auf der Client-Seite tun müssen, wie wäre es mit einer JSON- oder XML-Datei, um Ihre Übersetzungen zu speichern? Dies vermeidet das Problem, Kopien derselben Seite zu erstellen. Zum Beispiel in deinem JSON. du hättest "welcome_eng": "welcome" und "welcome_fr": "bienvenue", etc. Dann lädst du den entsprechenden unter Verwendung von Javascript, wie in, die Variablen wie folgt ein: blablabla = ["Willkommen _" + Sprache]

Oder, wenn Sie noch weniger arbeiten möchten, wird das div Ihres Willkommens-Textes die ID "welcome" haben, dann erhält Ihr Javascript die ID und fügt den passenden Inhalt hinzu.

    
chenglou 23.09.2011 16:07
quelle
0

Es hängt hauptsächlich davon ab, wie dynamisch oder statisch Ihre Seiten sind: Wenn sie viel Text enthalten, ist es einfacher, die Seite für jede Sprache zu duplizieren. In diesem Fall ist es sehr wichtig, HTML sorgfältig von CSS und Skripten zu isolieren. Alle CSS und Skripte sollten auf separaten Seiten gespeichert werden, um zu vermeiden, dass alle Übersetzungen aktualisiert werden müssen, wenn Sie einen Stil oder ein Skript aktualisieren.

OTOH, wenn es hauptsächlich dynamisch ist, dann ist es sinnvoll, Text-Snippets beim Erstellen der Seite durch ihre Übersetzung zu ersetzen. Aber ich würde nicht den Text ersetzen Client-Seite (jQuery). Es ist ein serverseitiger Job.

Edit: Wenn Sie JavaScript-Literale haben, sollten Sie diese natürlich in der HTML-Datei oder in einer separaten .js-Datei neben dem HTML-Code aufbewahren. Aber es bleibt dem Server überlassen, den Inhalt in der richtigen Sprache zu übermitteln.

    
Serge Wautier 02.09.2011 06:54
quelle