我想不一定特定于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 回答
- 0 關注
- 292 瀏覽
添加回答
舉報
0/150
提交
取消