为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
FFIVE 2021-06-15 17:40:36
我正在用 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 一样),因此您需要原始字符串才能获得翻译。这些字符串存储在配置对象,它们本身就是存储在messagesi18n.go,按语言分类。

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

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

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


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信