Делаю сайт с возможностью перевода на несколько языков. Переводы делаю таким образом
$(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, было бы прекрасно
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Отменил действие по умолчанию на комбанацию ctrl + z и нужно что-бы по этой комбинации делался перевод строки в поле для вводаЯ это делаю добавлением...