【问题标题】:Can I use localization directly in a mustache template?我可以直接在 mustache 模板中使用本地化吗?
【发布时间】:2016-08-16 20:02:59
【问题描述】:

我查看了 Vapor 的文档(Swift 的 Web 框架:http://docs.vapor.codes/),了解在小胡子模板中使用本地化的任何提示或技巧,但我找不到任何东西。

Vapor 的示例项目包含一个关于如何使用本地化的示例,但是我必须将所有本地化文本传递给我的 mustache 模板,这对我来说听起来有点矫枉过正。这是一个例子:

let drop = Droplet()
drop.get("localization", String.self) { request, lang in
    return try JSON([
        "title": drop.localization[lang, "welcome", "title"],
        "body": drop.localization[lang, "welcome", "body"]
    ])
}
drop.serve()

有没有人可以为我指明正确的方向?

【问题讨论】:

    标签: swift swift3 vapor


    【解决方案1】:

    你正在尝试做的事情看起来像这样。

    let drop = Droplet()
    
    drop.get("welcome") { request in
        let lang = drop.config["app", "lang"].string ?? "en"
    
        return try drop.view("welcome.mustache", context: [
            "title": drop.localization[lang, "welcome", "title"],
            "body": drop.localization[lang, "welcome", "body"]
        ])
    }
    
    drop.serve()
    

    这在app.json 中配置了lang,如下所示:

    {
        "lang": "es"
    }
    

    甚至使用环境变量。

    {
        "lang": "$LANG"
    }
    

    到目前为止,Vapor 没有任何自动方式通过上下文引用本地化值。您应该为此提交功能请求并概述它的工作原理! :D

    【讨论】:

      猜你喜欢
      • 2011-12-17
      • 2021-11-23
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多