Ich möchte eine Internationalisierung Option auf meiner Website jQuery Mobile und jQuery verwenden. Ich habe versucht, ein Beispiel mit der Dokumentation auf http://i18next.com zu generieren, aber es scheint, dass ich gescheitert bin. Hat jemand Erfahrungen mit i18next?Wie benutze ich i18next? Probleme mit Übersetzungen
Hier mein Beispiel:
index.html:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
<script src="js/i18next-1.5.6.min.js" type="text/javascript"></script>
<script src="js/translation.js" type="text/javascript"></script>
</head>
<body>
<div data-role="page" id="page">
<div data-role="content">
<div id="headline1" data-i18n="headline"></div>
<table width="100%" border="0" id="menu1" class="menu">
<tr id="surname">
<td width="50%" data-i18n="menu.surname"></td>
<td width="50%"> </td>
</tr>
<tr id="firstName">
<td width="50%" data-i18n="menu.firstName"></td>
<td width="50%"> </td>
</tr>
</table>
</div>
</div>
</body>
</html>
Übersetzungsdateien: /locales/de/translation.json
{
"menu": {
"surname": "Name:",
"firstName": "Vorname:"
},
"headline": "Daten:",
"headline_1": "Daten Allgemein:",
"headline_2": "Daten Speziell:"
}
/locales/en/translation.json
/locales/dev/translation.json
{
"menu": {
"surname": "Name:",
"firstName": "First Name:"
},
"headline": "Data:",
"headline_1": "Daten Common:",
"headline_2": "Daten Specific:"
}
/js/translation.js
$(document).ready(function(){
language_complete = navigator.language.split("-");
language = (language_complete[0]);
console.log("Sprache (root): %s", language);
i18n.init({ lng: language });
i18n.init({ debug: true });
$(".menu").i18n();
$("headline").i18n();
});
Die Übersetzung für das Menü I erhalten statt der erwarteten "menu.name" "Name:". Für die Überschrift bekomme ich keine Übersetzung, aber ich erwartete "Data:" oder "Daten:".
Wenn ich den folgenden direkten Anruf versuche, bekomme ich keine Übersetzung: i18n.t ("menu.surname", {defaultValue: "Name:"});
Weiß jemand, was das Problem ist? Oder hat jemand ein funktionierendes Beispiel, das zu dem passt, was ich versuche?
Wenn dies Ihr Problem gelöst hat, können Sie dies als beantwortet markieren. Die Frage wird also geschlossen. – jamuhl
Noch eine Frage: Wenn ich einen Übersetzungstext mit einem mutierten Vokal (Umlaut) habe, bekomme ich nur ein " ". Wenn ich die HTML-Notation verwende (z. B. "ä"), sehe ich die HTML-Notation und nicht den mutierten Vokal. Was mache ich falsch? Danke für die Hilfe. – Thomas
Assert-Codierung auf Seite und in JSON ist UTF8. – jamuhl