Có vẻ như Twitter đang sử dụng một số fork của Mustache.js để cung cấp i18n cho các mẫu của nó?Làm cách nào để nâng cấp i18n bằng Mustache.js?
Ai đó có thể đưa ra một ví dụ ngắn gọn về cách thực hiện điều này và có lẽ cũng phác thảo ngữ nghĩa nào là cần thiết để crowdsource các bản dịch này?
Có tất nhiên ví dụ đơn giản này:
var template = "{{_i}}{{name}} is using mustache.js!{{/i}}"
var view = {
name: "Matt"
};
var translationTable = {
// Welsh, according to Google Translate
"{{name}} is using mustache.js!": "Mae {{name}} yn defnyddio mustache.js!"
};
function _(text) {
return translationTable[text] || text;
}
alert(Mustache.to_html(template, view));
// alerts "Mae Matt yn defnyddio mustache.js!"
Nhưng tôi muốn một số cái nhìn sâu sắc hơn về cách cấu trúc _ chức năng (văn bản) và translationTable để cung cấp điều kiện, số ít, số nhiều, vv Ví dụ về giải quyết các trường hợp sử dụng nâng cao hơn sẽ được nhiều người đánh giá cao.
Tôi đã ấn tượng rằng twitter sử dụng [hogan.js] (http://twitter.github.com/hogan.js/) cho ria mép khuôn mẫu. Nếu đó là trường hợp, sau đó câu trả lời của martin dưới đây có vẻ giống như một gợi ý tốt. –