2016-05-13 75 views
-2

我使用来自yesod(模块Text.Shakespeare.I18N)的应用程序的本地化。 下面是示例代码Yesod中的本地化

data STest = STest 
mkMessage "STest" "messages" ("ru") 
trMsg msg = renderMessage STest ["ru"] msg 

但是,如果我想在同一时间使用多个本地化,我尝试

mkMessage "STest" "messages" ("ru") 
mkMessage "STest" "messages" ("en") 

mkMessage "STest" "messages" ("ru", "en") 

这一决定是一个错误! 如何在同一时间使用多个本地化?

非常感谢您的帮助!

回答

3

我认为yesod book有一个应该完全解决您的问题的例子,应该显示两种语言(希伯来语,英语)和消息。

另外,documentation大约是这个mkMessages功能

mkMessage

:: String基本名称很清楚使用翻译类型
-> FilePath子目录包含翻译文件
-> Lang默认翻译语言
-> Q [Dec]从translat生成翻译离子文件

此功能将:

看在在。味精结尾的文件所提供的子目录基于构造函数一个 类型发现创建一个RenderMessage实例

所以,你想有多种默认语言 - 这是不可能的。请阅读我提供给yesod书籍的链接 - 我希望这可以解决您的所有问题。