我正在用 Go 开发 API 服务器,服务器(目前)处理客户端的所有翻译。当 API 客户端获取特定数据时,它还要求提供可用于给定部分的翻译。理想情况下,我希望具有以下文件夹结构:/messages /home.en /home.fr /home.sv /news.en /news.fr /news.sv其中news和home是不同的模块。现在我对 Revel 的问题是是否可以获取给定模块和给定语言环境的所有语言字符串?例如,拉取 en-US 的所有主字符串。编辑:我想要输出(我可以返回给客户端的东西)一个 key:value 翻译字符串。任何指导将不胜感激。
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
在我看来,狂欢使用基于消息的翻译(就像 gettext 一样),因此您需要原始字符串才能获得翻译。这些字符串存储在配置对象,它们本身就是存储在messages
的i18n.go,按语言分类。
如您所见,此映射未导出,因此您无法访问它。解决此问题的最佳方法是为您想要的功能编写一个函数(通过提供语言获取配置) 或导出现有函数之一并创建一个拉取请求以进行狂欢。
您可以通过复制loadMessageFile
revel的代码或分叉您的版本并导出loadMessageFile
或来解决此问题parseMessagesFile
。这也是创建拉取请求的绝佳机会。
请注意,本地化存储在由 解析的 INI 文件格式中robfig/config
,因此手动解析也是一种选择(尽管不推荐)。
- 1 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消