Hi,
ich überlge gerade wie man ein Mehrsprachigkeit in JavaScript am besten umsetzt. Meine App ist eine Single-View App und läd seine Codes (js/html/css) je nach bedarf nach. Ich sehe da jetzt generell erstmal zwei Möglichkeiten
1) Ich mache für jede Sprache einen eigenen HTML Ordner mit eigenem HTML file das nachgeladen wird.
2) ich benutze immer das gleiche HTML, fülle dieses aber mit magic Tokens und erstelle dann für jedes Land einen Ordner mit den mapping files für Token -> Text und lade zuerst das HTML nach, dann das ensprechende mapping file und ersetze die Tokens bevor ich das HTML anzeige.
Beide Methoden haben Vor- und Nachteile:
1) Hier habe ich die Möglichkeit für jedes Land nicht nur eigene Texte sondern auch eigenes Design zu machen. Das kann durchaus interessant sein, wenn man sich z.B. ausserhalb der arabischen Schriftzeichen bewegt. Der Nachteil ist, dass wenn sich dieses View ändert ich für jedes Land das HTML anpassen muss, was wiederum sehr nervig sein kann. Allerdings kann es auch gewollt sein, dass das eine Land eine andere Maske hat als das andere oder sogar eine andere Funktionalität auf diesem View. Weiterer Nachteil: Für das Übersetzen der Views braucht man jemanden der sich zumindest in Grundzügen mit HTML auskennt.
2) Hier kann man den die mapping files recht einfach an ein Übersetzungs-Büro schicken und die Texte können von jedem übersetzt werden. Nachteil: Man muss das HTML immer so designen das man genug Platz auch für die längste Sprache hat. Weiterhin ist es natürlich deutlich weniger performant. Vorteil wiederum, dass man, wenn man den Text nicht im mapping file findet, man immer auf die base language (Also englisch) zurückfallen kann.
Das sind jetzt nur meine ersten Überlegungen. Vielleicht gibt es ja noch eine ganz andere Möglichkeit oder vielleicht habe ich ja auch noch ein paar wichtige Punkte vergessen.
Ich möchte den Code ausdrücklich selber schreiben. Also bitte keine Vorschläge "Benutze doch Framework XY". Ich finde das spannend sich mit so etwas zu beschäftigen und selber zu erstellen.
Was ist eure Meinung, wie geht man es am besten an?
Gruß
Claus
ich überlge gerade wie man ein Mehrsprachigkeit in JavaScript am besten umsetzt. Meine App ist eine Single-View App und läd seine Codes (js/html/css) je nach bedarf nach. Ich sehe da jetzt generell erstmal zwei Möglichkeiten
1) Ich mache für jede Sprache einen eigenen HTML Ordner mit eigenem HTML file das nachgeladen wird.
2) ich benutze immer das gleiche HTML, fülle dieses aber mit magic Tokens und erstelle dann für jedes Land einen Ordner mit den mapping files für Token -> Text und lade zuerst das HTML nach, dann das ensprechende mapping file und ersetze die Tokens bevor ich das HTML anzeige.
Beide Methoden haben Vor- und Nachteile:
1) Hier habe ich die Möglichkeit für jedes Land nicht nur eigene Texte sondern auch eigenes Design zu machen. Das kann durchaus interessant sein, wenn man sich z.B. ausserhalb der arabischen Schriftzeichen bewegt. Der Nachteil ist, dass wenn sich dieses View ändert ich für jedes Land das HTML anpassen muss, was wiederum sehr nervig sein kann. Allerdings kann es auch gewollt sein, dass das eine Land eine andere Maske hat als das andere oder sogar eine andere Funktionalität auf diesem View. Weiterer Nachteil: Für das Übersetzen der Views braucht man jemanden der sich zumindest in Grundzügen mit HTML auskennt.
2) Hier kann man den die mapping files recht einfach an ein Übersetzungs-Büro schicken und die Texte können von jedem übersetzt werden. Nachteil: Man muss das HTML immer so designen das man genug Platz auch für die längste Sprache hat. Weiterhin ist es natürlich deutlich weniger performant. Vorteil wiederum, dass man, wenn man den Text nicht im mapping file findet, man immer auf die base language (Also englisch) zurückfallen kann.
Das sind jetzt nur meine ersten Überlegungen. Vielleicht gibt es ja noch eine ganz andere Möglichkeit oder vielleicht habe ich ja auch noch ein paar wichtige Punkte vergessen.
Ich möchte den Code ausdrücklich selber schreiben. Also bitte keine Vorschläge "Benutze doch Framework XY". Ich finde das spannend sich mit so etwas zu beschäftigen und selber zu erstellen.
Was ist eure Meinung, wie geht man es am besten an?
Gruß
Claus
Kommentar