Tôi muốn sử dụng tùy chọn quốc tế hóa tại trang web jQuery Mobile và jQuery của tôi. Tôi đã cố gắng tạo một ví dụ với tài liệu trên http://i18next.com nhưng có vẻ như tôi đã thất bại. Có ai có kinh nghiệm với i18next không?Cách sử dụng i18next? Các vấn đề với bản dịch
Ở đây ví dụ của tôi:
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>
file dịch: /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();
});
Bản dịch cho menu tôi nhận được "menu.name" thay vì dự kiến "Name:". Đối với dòng tiêu đề tôi không nhận được bản dịch nào nhưng tôi dự kiến là "Dữ liệu:" hoặc "Dữ liệu:".
Nếu tôi thử gọi trực tiếp sau đây, tôi không nhận được bản dịch: i18n.t ("menu.surname", {defaultValue: "Name:"});
Có ai biết vấn đề là gì không? Hay không ai có một ví dụ làm việc phù hợp với những gì tôi cố gắng làm?
Nếu điều này giải quyết được vấn đề của bạn, bạn có thể đánh dấu câu trả lời này là đã trả lời. Vì vậy, câu hỏi được đóng lại. – jamuhl
Một câu hỏi nữa: Nếu tôi có văn bản dịch có nguyên âm đột biến (umlaut) thì tôi chỉ nhận được " ". Nếu tôi sử dụng ký hiệu HTML (ví dụ: "ä"), tôi thấy ký pháp HTML chứ không phải nguyên âm bị biến đổi. Tôi đang làm gì sai? Cảm ơn vì sự giúp đỡ. – Thomas
khẳng định mã hóa trên trang và trong json là utf8. – jamuhl