在Revel中输出所有语言字符串?

Pet*_*ter 5 go revel

我正在Go中开发一个API服务器,服务器(目前)处理客户端的所有翻译.当API客户端获取特定数据时,它还会询问给定部分可用的转换.

理想情况下,我想拥有以下文件夹结构:

/messages
  /home.en
  /home.fr
  /home.sv
  /news.en
  /news.fr
  /news.sv
Run Code Online (Sandbox Code Playgroud)

newshome是不同的模块.

现在我对Revel的问题是,是否可以获取给定模块和给定语言环境的所有语言字符串?例如,为en-US拉出所有主页字符串.

编辑:

我想输出(我可以返回给客户端)一个键:翻译的值字符串.

任何指导将不胜感激.

nem*_*emo 3

在我看来,revel 使用基于消息的翻译(就像 gettext 一样),因此您需要原始字符串来获取翻译。这些字符串存储在 Config 对象中,这些对象本身存储在i18n.gomessages中,按语言排序。

如您所见,此映射未导出,因此您无法访问它。解决此问题的最佳方法是根据需要编写一个函数(通过提供一种语言获取配置) 导出现有函数之一并为 revel 创建拉取请求。

您可以通过复制 revel 的代码loadMessageFile或分叉您的 revel 版本并导出loadMessageFile或来解决此问题parseMessagesFile。这也是创建拉取请求的绝佳机会。

请注意,本地化存储在由 解析的 INI 文件格式中robfig/config,因此手动解析也是一种选择(尽管不推荐)。