2016-08-16 45 views
3

我已经检查了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

你想要做的事情看起来像这样。

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": "es" 
} 

甚至使用环境变量。

{ 
    "lang": "$LANG" 
} 

蒸气没有任何自动的方法来引用当前的定位值。您应该为此提交功能请求并概述它的工作原理! :D

相关问题