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

Go 在Revel中输出所有语言字符串?,go,revel,Go,Revel,我正在Go中开发一个API服务器,该服务器(目前)处理客户端的所有翻译。当API客户机获取特定数据时,它还要求提供给定部分可用的翻译 理想情况下,我希望具有以下文件夹结构: /messages /home.en /home.fr /home.sv /news.en /news.fr /news.sv 其中,news和home是不同的模块 现在我对Revel的问题是,是否有可能获取给定模块和给定区域设置的所有语言字符串?例如,为我们拉所有的主弦 编辑: 我希望输出(我可以

我正在Go中开发一个API服务器,该服务器(目前)处理客户端的所有翻译。当API客户机获取特定数据时,它还要求提供给定部分可用的翻译

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

/messages
  /home.en
  /home.fr
  /home.sv
  /news.en
  /news.fr
  /news.sv
其中,
news
home
是不同的模块

现在我对Revel的问题是,是否有可能获取给定模块和给定区域设置的所有语言字符串?例如,为我们拉所有的主弦

编辑:

我希望输出(我可以返回给客户机的东西)是一个key:value翻译字符串


任何指导都将不胜感激。

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

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

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

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

您是否将所有en-US、en-UK、en-AU等存储在
home.en
news.en
文件夹中?或者它们将被分成诸如
home.en-US
home.en-UK
之类的文件夹?只是想确定是否可以从
fmt.Sprintf(“/messages/%s.%s”,模块,区域设置)”中打开所有文件。
。根据Revel的建议,每个区域设置在同一个文件中都有不同的部分。目前,我并不认为会有很多不同之处,比如“邮政编码”和“邮政编码”。所以我不能保证每个地区都需要一个单独的文件。如果答案是肯定的。