fixed markdown format

This commit is contained in:
yetist
2012-10-28 21:00:50 +08:00
parent c3abc9b6c7
commit 81a61b9ced
59 changed files with 280 additions and 280 deletions

12
10.1.md
View File

@@ -1,5 +1,5 @@
# 10.1 设置默认地区
##什么是Locale
## 什么是Locale
Locale是一组描述世界上某一特定区域文本格式和语言习惯的设置的集合。locale名通常由三个部分组成第一部分是一个强制性的表示语言的缩写例如"en"表示英文或"zh"表示中文。第二部分,跟在一个下划线之后,是一个可选的国家说明符,用于区分讲同一种语言的不同国家,例如"en_US"表示美国英语,而"en_UK"表示英国英语。最后一部分,跟在一个句点之后,是可选的字符集说明符,例如"zh_CN.gb2312"表示中国使用gb2312字符集。
GO语言默认采用"UTF-8"编码集所以我们实现i18n时不考虑第三部分接下来我们都采用locale描述的前面两部分来作为i18n标准的locale名。
@@ -7,10 +7,10 @@ GO语言默认采用"UTF-8"编码集所以我们实现i18n时不考虑第三
>在Linux和Solaris系统中可以通过`locale -a`命令列举所有支持的地区名读者可以看到这些地区名的命名规范。对于BSD等系统没有locale命令但是地区信息存储在/usr/share/locale中。
##设置Locale
## 设置Locale
有了上面对locale的定义那么我们就需要根据用户的信息(访问信息、个人信息、访问域名等)来设置与之相关的locale我们可以通过如下几种方式来设置用户的locale。
###通过域名设置Locale
### 通过域名设置Locale
设置Locale的办法这一就是在应用运行的时候采用域名分级的方式例如我们采用www.asta.com当做我们的英文站(默认站)而把域名www.asta.cn当做中文站。这样通过在应用里面设置域名和相应的locale的对应关系就可以设置好地区。这样处理有几点好处
- 通过URL就可以很明显的识别
@@ -42,7 +42,7 @@ GO语言默认采用"UTF-8"编码集所以我们实现i18n时不考虑第三
通过域名设置Locale有如上所示的优点但是我们一般开发Web应用的时候不会采用这种方式因为首先域名成本比较高开发一个Locale就需要一个域名而且往往统一名称的域名不一定能申请的到其次我们不愿意为每个站点去本地化一个配置而更多的是采用url后面带参数的方式请看下面的介绍。
###从域名参数设置Locale
### 从域名参数设置Locale
目前最常用的设置Locale的方式是在URL里面带上参数例如www.asta.com/hello?locale=zh或者www.asta.com/zh/hello。这样我们就可以设置地区`i18n.SetLocale(params["locale"])`
这种设置方式几乎拥有前面讲的通过域名设置Locale的所有优点它采用RESTful的方式以使得我们不需要增加额外的方法来处理。但是这种方式需要在每一个的link里面增加相应的参数locale这也许有点复杂而且有时候甚至相当的繁琐。不过我们可以写一个通用的函数url让所有的link地址都通过这个函数来生成然后在这个函数里面增加`locale=params["locale"]`参数来缓解一下。
@@ -51,7 +51,7 @@ GO语言默认采用"UTF-8"编码集所以我们实现i18n时不考虑第三
mux.Get("/:locale/books", listbook)
###从客户端设置地区
### 从客户端设置地区
在一些特殊的情况下我们需要根据客户端的信息而不是通过URL来设置Locale这些信息可能来自于客户端设置的喜好语言(浏览器中设置)用户的IP地址用户在注册的时候填写的所在地信息等。这种方式比较适合Web为基础的应用。
- Accept-Language
@@ -75,7 +75,7 @@ GO语言默认采用"UTF-8"编码集所以我们实现i18n时不考虑第三
当然你也可以让用户根据你提供的下拉菜单或者别的什么方式的设置相应的locale然后我们将用户输入的信息保存到与它帐号相关的profile中当用户再次登陆的时候把这个设置复写到locale设置中这样就可以保证该用户每次访问都是基于自己先前设置的locale来获得页面。
##总结
## 总结
通过上面的介绍可知设置Locale可以有很多种方式我们应该根据需求的不同来选择不同的设置Locale的方法以让用户能以它最熟悉的方式获得我们提供的服务提高应用的用户友好性。
## links