我可以直接在胡子模板中使用本地化吗?

时间:2016-08-16 20:03:00

标签: swift swift3 vapor

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

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

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()

是否有人可以指出我正确的方向?

1 个答案:

答案 0 :(得分: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