Я изучаю, что возможно с помощью библиотеки локализации i18next.Перевести пользовательские атрибуты с помощью i18next (placeholder, value)
Сейчас у меня есть следующий код (full Fiddle is here):
HTML
<div data-i18n="title"></div>
<input placeholder="Hello" value="name">
<div class="holder"></div>
<button class="lang" data-lang="en">Eng</button>
<button class="lang" data-lang="ch">Chi</button>
JS
$(document).ready(function() {
i18n.init({
"lng": 'en',
"resStore": resources,
"fallbackLng" : 'en'
}, function (t) {
$(document).i18n();
});
$('.lang').click(function() {
var lang = $(this).attr('data-lang');
i18n.init({
lng: lang
}, function (t) {
$(document).i18n();
});
});
});
Он переводит все text
элементы, но проблема заключается в том, что Я не могу перевести custom attributes
. Например, текст внутри div переводится, но я не могу понять, как я могу перевести пользовательские атрибуты, такие как placeholder
и value
.
Другая проблема заключается в моем способе перевода. Всякий раз, когда нажимается кнопка Chi
, Eng
, я инициализирую перевод (но я не уверен, что это правильный путь). Edit Я думаю, что я нашел, как решить эту проблему (мне нужно использовать setLng): i18n.setLng(lang, function(t) { ... })
Предположим, что у нас есть что-то вроде этого: '
@AjayKulkarni в вашем примере здесь страна не является атрибутом. –
Да, я пробовал этот код: '' и '$ ('# country'). Text ($. T ('app .country ')); '. Это сработало –