我按照以下链接中的指示在Yesod脚手架应用程序中执行i18n:https://github.com/yesodweb/yesod/wiki/i18n-messages-in-the-scaffolding,https://www.yesodweb.com/book/internationalization和http://haddock.stackage.org/nightly-2016-04-19/shakespeare-2.0.8.1/Text-Shakespeare-I18N.html
它看起来像en.msg
文件,如:
Hello: Hello World!
MultilineText:
line 1.
line 2.
etc...
SingleLine: A single line message.
由于 MultilineText 定义,因此不支持。这是真的还是有方法/语法来做到这一点?
答案 0 :(得分:2)
从消息来源判断,不,这是不可能的:
loadLangFile :: FilePath -> IO [Def]
loadLangFile file = do
bs <- S.readFile file
let s = unpack $ decodeUtf8 bs
defs <- fmap catMaybes $ mapM (parseDef . T.unpack . T.strip . T.pack) $ lines s
return defs
parseDef
函数对lines
调用的结果进行操作,该函数按换行符分割文件内容。