5

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

理想情况下,我希望具有以下文件夹结构:

/messages
  /home.en
  /home.fr
  /home.sv
  /news.en
  /news.fr
  /news.sv

Wherenewshome是不同的模块。

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

编辑:

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

任何指导将不胜感激。

4

1 回答 1

3

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

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

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

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

于 2013-09-10T11:56:01.987 回答