Multilanguage. Записать HTML тэг в объект

359
05 ноября 2017, 20:01

Делаю сайт с возможностью перевода на несколько языков. Переводы делаю таким образом

$(function() { 
  $('.translate').click(function() { 
    var lang = $(this).attr('id'); 
 
    $('.lang').each(function(index, element) { 
      $(this).text(arrLang[lang][$(this).attr('key')]); 
    }); 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script> 
  var arrLang = { 
  'ru': { 
    'title': 'Some text ru', 
    'subtitle': 'Some text ru ru' 
   
  }, 
  'ua': { 
    'title': 'some text ua', 
    'subtitle': 'some text ua' 
  } 
   
  }; 
</script> 
<h1 key="title" class="lang">Some text</h1> 
<h2 key="subtitle" class="lang">Some text double</h2> 
 
 
<button class="translate" id="ru">RU</button> 
<button class="translate" id="ua">UA</button>

Но есть проблема: она заключается в том, что если есть вложенность например такая - <li> bla bla <span>some text</span> continue</li>, то непонятно как переводить части перед спаном и после него. Либо же весь текст до спана и после спана оборачивать в какой-то тег и давать ему ключ.

Собственно вопрос: возможно ли как-то в объект записывать тег вида: Some text <span>400</span> и чтоб он в переведенном виде отображался корректно? Для этого нужно его как-то обрабатывать, но вот как... или может есть другое решение мультиязычности?

Заранее благодарен.

UPD. В MVC есть такая штука как @Html.Raw, тогда можно в файлы ресурсов записывать вложенные теги и вообще HTML. Вот если бы был какой-то аналог этого трюка в jQuery, было бы прекрасно

READ ALSO
Найти элемент по XPath и кликнуть

Найти элемент по XPath и кликнуть

Нужно найти на странице элемент по XPath и кликнуть по нему

262
Имитация комбинации &ldquo;Shift + Enter&rdquo; js

Имитация комбинации “Shift + Enter” js

Отменил действие по умолчанию на комбанацию ctrl + z и нужно что-бы по этой комбинации делался перевод строки в поле для вводаЯ это делаю добавлением...

348