JSFiddle - React, Tailwind, and code Playground

by Twisty

HTML

<div>
  <a href="" id="en" class="translate">English</a>
  <a href="" id="ger" class="translate">German</a>
  <p class="display languange">
    Lorem ipsum dolor sit amet <br> consectetur, adipisicing elit. <br> Ut hic amet eius soluta exercitationem <br> sunt et ad in, aspernatur at. <br> Facere voluptatem quasi, enim <br>
  </p>
</div>

CSS

p {
  height: 150px;
  width: 380px;
  background-color: grey;
  text-align: center
}

JavaScript

$(function() {
  var arrLang = {
    "en": {
      "text": "See Budapest,\r\nthe Queen of the Danube\r\nfrom brand new perspective\r\nas you have never seen before!"
    },
    "ger": {
      "text": "Nézd meg Budapestet,"
    }
  };

  function nlToBr(string) {
    return string.replaceAll("\r\n", "<br />");
  }

  function loadText(arr, target, language, append) {
    if (append == undefined) {
      append = false;
    }
    if (language == undefined) {
      language = "en"
    }
    var myText = nlToBr(arr[language].text);
    if (target == undefined) {
      return myText;
    }
    if (append) {
      $(target).append(myText);
    } else {
      $(target).html(myText);
    }
    return true;
  }

  function getLanguage() {
    var l = localStorage.getItem("lang");
    if (!l) {
      l = "en";
    }
    return l;
  }

  function saveLanguage(l) {
    if (l != undefined) {
      localStorage.setItem("lang", l);
    }
  }

  $(".display").each(function(index, element) {
    loadText(arrLang, element, getLanguage());
  });

  $(".translate").click(function(event) {
    event.preventDefault();
    saveLanguage($(this).attr("id"));

    $(".display").each(function(index, element) {
      loadText(arrLang, element, getLanguage());
      $(element).data("languange", getLanguage());
    });
  });
});