2016-08-16 44 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

相關問題