Я только начинаю i18next, и я бы хотел создать файл перевода для каждого модуля в моем проекте. Похоже, что использование пространств имен было бы правильным путем. Проект может создавать макет страницы с использованием нескольких видов, поэтому мне нужно иметь возможность переводить строки из нескольких пространств имен одновременно.Как вы используете несколько пространств имен в i18next?
Я создал простой пример, который имеет два пространства имён, но я могу получить только i18next для перевода строк для одного пространства имен. Если я использую defaultNs: namespaces[0]
, то цифры будут переведены, с defaultNs: namespaces[1]
пересчитываются цвета, а с defaultNs: namespaces
ничего не переведено. Но я не могу понять, как заставить оба пространства имен переводить.
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="i18next.js"></script>
<script>
$(document).ready(function(){
var language = "en";
var namespaces = [ "numbers", "colors" ];
var config = {
lng: language,
fallbackLng: "en",
resGetPath: "namespaces/__ns__/__ns__-__lng__.json",
ns: {
namespaces: namespaces,
defaultNs: namespaces[0]
},
debug: true
};
i18n.init(config, function onInitComplete() {
$(".xl8").i18n();
});
});
</script>
</head>
<body>
<h1>hello, i18n!</h1>
<ol>
<li class="xl8" data-i18n="numbers.one">1</li>
<li class="xl8" data-i18n="numbers.two">2</li>
<li class="xl8" data-i18n="numbers.three">3</li>
</ol>
<ul>
<li class="xl8" data-i18n="colors.red">r</li>
<li class="xl8" data-i18n="colors.green">g</li>
<li class="xl8" data-i18n="colors.blue">b</li>
</ul>
</body>
</html>