Mathias Brodala: mehrsprachige Texte in Scripten

Beitrag lesen

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