Gunnar Bittersmann: mehrsprachige Texte in Scripten

Beitrag lesen

Hello out there!

Vielen Dank an dich und Mathias!

~~~javascript

var translations = {

"Die Allgemeine Erklärung der Menschenrechte" : {
          de : "Die Allgemeine Erklärung der Menschenrechte",
          en : "Universal Declaration of Human Rights"
      },
      "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen." : {
          de : "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen.",
          en : "All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood."
      }
  };

  
In Anbetracht [meiner letzten Überlegung](https://forum.selfhtml.org/?t=158383&m=1029847) wäre es wohl vorteilhafter, die Datenstruktur sähe so aus:  
  
  ~~~javascript
var translations = {  
      de : {  
          "Die Allgemeine Erklärung der Menschenrechte" : "Die Allgemeine Erklärung der Menschenrechte",  
          "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen." : "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen."  
      },  
      en : {  
          "Die Allgemeine Erklärung der Menschenrechte" : "Universal Declaration of Human Rights",  
          "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen." : "All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood."  
      }  
  };

Und die ominöse Unterstrich-Funktion:
  ~~~javascript var locale = "en";
  var _ = function (text) { return translations[locale][text] || text; };

  
  
Q: Macht es Sinn, auch die Originalsprache in diesem Objekt nochmals abzulegen? Es wäre ja auch möglich:  
  `var _ = function (text) { return (locale != "de" && translations[locale][text] || text; };`{:.language-javascript}  
  
A: Ja, macht Sinn, denn dann müssen spätere Änderungen in der Formulierung nur an dieser Stelle vorgenommen werden, nicht im Programmcode.  
  
See ya up the road,  
Gunnar

-- 
„Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)