# 10.3 国际化站点 前面小节介绍了如何处理本地化资源,即Locale一个相应的配置文件,那么如果处理多个的本地化资源呢?而对于一些我们经常用到的例如:简单的文本翻译、时间日期、数字等如果处理呢?本小节将一一解决这些问题。 ## 管理多个本地包 在我们开发一个应用的时候,首先我们应该知道这个Web应用要支持多少个语言,例如首先这个Web应用需要支持中文和英文,也许以后会支持其他语言,但是结构已经有了,所以扩展非常容易。那么我们设计如下:Locale文件夹在config/locales下,假设你要支持中文和英语,那么你需要在这个文件夹下放置en.json和zh.json。大概的内容如下所示: # zh.json { "zh": { "submit": "提交", "create": "创建" } } #en.json { "en": { "submit": "Submit", "create": "Create" } } 然后调用go-i18n包里面注册一下这个目录,这样Go会加载config/locales目录下的locale文件: Tr:=i18n.NewLocale() Tr.LoadPath("config/locales") 使用很简单,你可以通过下面的方式进行测试: fmt.Println(Tr.Translate("submit")) //输出Submit Tr.SetLocale("zn") fmt.Println(Tr.Translate("submit")) //输出“递交” ## 自动加载本地包 上面我们介绍了多个自定义语言包的自动加载,那么在我们加载的同时,其实go-i18n库会自动帮你加载一些定义的格式信息,例如时间格式、货币格式。请看下面的处理过程 ## template mapfunc 1. 文本信息 2. 时间日期 3. 数字 ## 总结 ## links * [目录]() * 上一节: [本地化资源](<10.2.md>) * 下一节: [小结](<10.4.md>) ## LastModified * $Id$