Go 在Revel中输出所有语言字符串?
我正在Go中开发一个API服务器,该服务器(目前)处理客户端的所有翻译。当API客户机获取特定数据时,它还要求提供给定部分可用的翻译 理想情况下,我希望具有以下文件夹结构: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的问题是,是否有可能获取给定模块和给定区域设置的所有语言字符串?例如,为我们拉所有的主弦 编辑: 我希望输出(我可以
/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的建议,每个区域设置在同一个文件中都有不同的部分。目前,我并不认为会有很多不同之处,比如“邮政编码”和“邮政编码”。所以我不能保证每个地区都需要一个单独的文件。如果答案是肯定的。