javascript - 如何使用 Mustache.js 进行高级 i18n 操作?

标签 javascript twitter internationalization templating mustache

Twitter 似乎正在使用 forkMustache.js为其模板提供 i18n?

有人可以举一个简短的例子来说明这是如何完成的,也许还概述了众包这些翻译所必需的语义?

当然有这个简单的例子:

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!"

但我想对如何构造 _(text) 函数和翻译表以提供条件、单数、复数等有更多的了解。解决更高级用例的示例将非常感激。

最佳答案

我知道我并没有真正回答你的问题,但除非你计划在这个项目上花费大量时间,否则我会认真考虑将其作为数据问题。

{
    title : {
        key: 'título',
        value: 'bienvenida'
    }
}

还有:

{
    title : {
        key: 'لقب',
        value: 'ترحيب'
    }
}

然后使模板通用:

<h1>{{title.key}}: {{title.value}}</h1>

还有:

<h1>{{title.value}} {{title.key}}</h1>

您需要维护的只是模板和数据之间的 1:1 映射。

Mustache.render(data[language], template[language]);

保持简单:)

关于javascript - 如何使用 Mustache.js 进行高级 i18n 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051370/

相关文章:

javascript - 为什么 form.submit() 不起作用?

python - 保持运行/重新启动 python 脚本 (TwitterAPI)

google-maps - Twitter - 用于全局推文监控的流 API?

javascript - Oauth 使用 Javascript 调用 Twitter API

java - 特殊字符和重音字符

php - Symfony2 翻译验证消息问题

python - Django i18n 查找支持的语言

javascript - Bluebird promisify 不包装节点样式函数

javascript - 创建一个简单的密码登录,无需硬编码密码 [PHP、Javascript、MySQL]

javascript - highcharts 2 变量 JSON(日期、值)未正确显示