Hallo Gunnar.
Soll nicht eine neue Sprache, sondern ein neuer Text hinzugefügt werden, gilt alles andersrum (bis auf die Intuitivität). Wie würdet Ihr das implementieren?
Ich persönlich würde den gettext-Ansatz bevorzugen. Hierbei werden Meldungen überall einfach direkt notiert, und ein gettext-Funktionsaufruf (üblicherweise „_()“) drumherum gepackt.
Diese Funktion nimmt den String entgegen und nutzt ihn als ID um in Übersetzungen (hier: Objekten) das passende Pendant oder, falls nicht vorhanden, den Originalstring zurückzugeben.
Also in etwa so:
var de = {
"A translation " : "Eine Übersetzung ",
"ain't not " : "ist nicht ",
"difficult." : "schwierig."
};
function _(msg) {
var locale = getlocale(); // Müsstest du selbst implementieren, entspräche, „de“, „en“, …
return (window[locale][msg] ? window[locale][msg] : msg); // Übersetzung oder Originalstring
}
alert(_("A translation ") +
_("ain't not ") +
_("difficult."));
Die Übersetzungen selbst könnten natürlich ebenso an ein beliebiges anderes Objekt neben window gekoppelt werden.
Einen schönen Freitag noch.
Gruß, Mathias
--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules