猿问

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

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


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


/messages

  /home.en

  /home.fr

  /home.sv

  /news.en

  /news.fr

  /news.sv

其中news和home是不同的模块。


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


编辑:


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


任何指导将不胜感激。


FFIVE
浏览 205回答 1
1回答

慕村225694

在我看来,狂欢使用基于消息的翻译(就像 gettext 一样),因此您需要原始字符串才能获得翻译。这些字符串存储在配置对象,它们本身就是存储在messages的i18n.go,按语言分类。如您所见,此映射未导出,因此您无法访问它。解决此问题的最佳方法是为您想要的功能编写一个函数(通过提供语言获取配置) 或导出现有函数之一并创建一个拉取请求以进行狂欢。您可以通过复制loadMessageFilerevel的代码或分叉您的版本并导出loadMessageFile或来解决此问题parseMessagesFile。这也是创建拉取请求的绝佳机会。请注意,本地化存储在由 解析的 INI 文件格式中robfig/config,因此手动解析也是一种选择(尽管不推荐)。
随时随地看视频慕课网APP

相关分类

Go
我要回答