From 1cc3d4e112e7e0fa44855fd529eb26635a970fb0 Mon Sep 17 00:00:00 2001 From: xin zhao Date: Sun, 5 Nov 2017 10:00:15 +0800 Subject: [PATCH] =?UTF-8?q?fix=E9=93=BE=E6=8E=A5=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在网址与中文之间加了空格,修复MD解析后的错误。 --- zh/10.1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh/10.1.md b/zh/10.1.md index d045913c..08a1836c 100644 --- a/zh/10.1.md +++ b/zh/10.1.md @@ -11,7 +11,7 @@ GO语言默认采用"UTF-8"编码集,所以我们实现i18n时不考虑第三 有了上面对locale的定义,那么我们就需要根据用户的信息(访问信息、个人信息、访问域名等)来设置与之相关的locale,我们可以通过如下几种方式来设置用户的locale。 ### 通过域名设置Locale -设置Locale的办法之一是在应用运行的时候采用域名分级的方式,例如,我们采用www.asta.com当做我们的英文站(默认站),而把域名www.asta.cn当做中文站。这样通过在应用里面设置域名和相应的locale的对应关系,就可以设置好地区。这样处理有几点好处: +设置Locale的办法之一是在应用运行的时候采用域名分级的方式,例如,我们采用 www.asta.com 当做我们的英文站(默认站),而把域名 www.asta.cn 当做中文站。这样通过在应用里面设置域名和相应的locale的对应关系,就可以设置好地区。这样处理有几点好处: - 通过URL就可以很明显的识别 - 用户可以通过域名很直观的知道将访问那种语言的站点 @@ -45,11 +45,11 @@ if prefix[0] == "en" { 通过域名设置Locale有如上所示的优点,但是我们一般开发Web应用的时候不会采用这种方式,因为首先域名成本比较高,开发一个Locale就需要一个域名,而且往往统一名称的域名不一定能申请的到,其次我们不愿意为每个站点去本地化一个配置,而更多的是采用url后面带参数的方式,请看下面的介绍。 ### 从域名参数设置Locale -目前最常用的设置Locale的方式是在URL里面带上参数,例如www.asta.com/hello?locale=zh或者www.asta.com/zh/hello。这样我们就可以设置地区:`i18n.SetLocale(params["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"]`参数来缓解一下。 -也许我们希望URL地址看上去更加的RESTful一点,例如:www.asta.com/en/books(英文站点)和www.asta.com/zh/books(中文站点),这种方式的URL更加有利于SEO,而且对于用户也比较友好,能够通过URL直观的知道访问的站点。那么这样的URL地址可以通过router来获取locale(参考REST小节里面介绍的router插件实现): +也许我们希望URL地址看上去更加的RESTful一点,例如:www.asta.com/en/books (英文站点)和 www.asta.com/zh/books (中文站点),这种方式的URL更加有利于SEO,而且对于用户也比较友好,能够通过URL直观的知道访问的站点。那么这样的URL地址可以通过router来获取locale(参考REST小节里面介绍的router插件实现): ```Go mux.Get("/:locale/books", listbook)