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

App Engine的I18n Go策略

App Engine的I18n Go策略

Go
素胚勾勒不出你 2021-05-13 14:02:09
我想不一定特定于GAE,但我对人们使用什么来翻译或本地化他们的Web应用程序感到好奇。恐怕我自己的方法是天真无望的,实际上只是通过根据用户个人资料中记录的语言环境值从数据存储区为每个程序包加载一个实体来解决这个问题。至少这允许提供一些字符串的翻译:package foo...type Messages struct {    Locale string    ErrorDatastore string    LoginSuccessful string    ...}使用与区域设置相对应的字符串ID进行存储,然后加载到Gorilla上下文或类似环境中:const Messages ContextKey = iota...k := datastore.NewKey(c, "Messages", "en_US", 0, nil)m := new(Messages)if err := datastore.Get(c, k, m); err != nil {    ...} else {    context.Set(r, Messages, m)}这显然受到了难以置信的限制,但是至少可以通过context.Get(r,foo.Messages)从调用代码中使用字符串。谁能指出我更有用的实现方式,或提出更好的方法?
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

go-i18n是具有一些不错功能的替代软件包:


查看完整回答
反对 回复 2021-05-24
  • 3 回答
  • 0 关注
  • 251 浏览
慕课专栏
更多

添加回答

举报

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