Yesod 本地化
Localization in Yesod
我使用来自 yesod 的应用程序本地化(模块 Text.Shakespeare.I18N)。
下面是代码示例
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")
这个决定是错误的!
如何同时使用多个本地化?
预先感谢您的帮助!
我认为 yesod book 有一个应该可以准确解决您的问题的示例、两种语言(希伯来语、英语)和应该显示的消息。
documentation 也很清楚mkMessages
函数
mkMessage
:: String
base name to use for translation type
-> FilePath
subdirectory which contains the translation files
-> Lang
default translation language
-> Q [Dec]
generate translations from translation files
This function will:
look in the supplied subdirectory for files ending in .msg generate a
type based on the constructors found create a RenderMessage
instance
所以您正在尝试使用多种默认语言 - 这是不可能的。请阅读我提供给 yesod 书的 link - 我希望这能解决您所有的问题。
我使用来自 yesod 的应用程序本地化(模块 Text.Shakespeare.I18N)。 下面是代码示例
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")
这个决定是错误的! 如何同时使用多个本地化?
预先感谢您的帮助!
我认为 yesod book 有一个应该可以准确解决您的问题的示例、两种语言(希伯来语、英语)和应该显示的消息。
documentation 也很清楚mkMessages
函数
mkMessage
:: String
base name to use for translation type
-> FilePath
subdirectory which contains the translation files
-> Lang
default translation language
-> Q [Dec]
generate translations from translation filesThis function will:
look in the supplied subdirectory for files ending in .msg generate a type based on the constructors found create a
RenderMessage
instance
所以您正在尝试使用多种默认语言 - 这是不可能的。请阅读我提供给 yesod 书的 link - 我希望这能解决您所有的问题。