日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go web本地化资源

發布時間:2025/6/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go web本地化资源 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本地化文本消息

本信息是編寫Web應用中最常用到的,也是本地化資源中最多的信息,想要以適合本地語言的方式來顯示文本信息,可行的一種方案是:建立需要的語言相應的map來維護一個key-value的關系,在輸出之前按需從適合的map中去獲取相應的文本,如下是一個簡單的示例:

package mainimport "fmt"var locales map[string]map[string]stringfunc main() {locales = make(map[string]map[string]string, 2)en := make(map[string]string, 10)en["pea"] = "pea"en["bean"] = "bean"locales["en"] = encn := make(map[string]string, 10)cn["pea"] = "豌豆"cn["bean"] = "毛豆"locales["zh-CN"] = cnlang := "zh-CN"fmt.Println(msg(lang, "pea"))fmt.Println(msg(lang, "bean")) }func msg(locale, key string) string {if v, ok := locales[locale]; ok {if v2, ok := v[key]; ok {return v2}}return "" }

上面示例演示了不同locale的文本翻譯,實現了中文和英文對于同一個key顯示不同語言的實現,上面實現了中文的文本消息,如果想切換到英文版本,只需要把lang設置為en即可。

有些時候僅是key-value替換是不能滿足需要的,例如"I am 30 years old",中文表達是"我今年30歲了",而此處的30是一個變量,該怎么辦呢?這個時候,我們可以結合fmt.Printf函數來實現,請看下面的代碼:

en["how old"] ="I am %d years old" cn["how old"] ="我今年%d歲了"fmt.Printf(msg(lang, "how old"), 30)

上面的示例代碼僅用以演示內部的實現方案,而實際數據是存儲在JSON里面的,所以我們可以通過json.Unmarshal來為相應的map填充數據。

本地化日期和時間

因為時區的關系,同一時刻,在不同的地區,表示是不一樣的,而且因為Locale的關系,時間格式也不盡相同,例如中文環境下可能顯示:2012年10月24日 星期三 23時11分13秒 CST,而在英文環境下可能顯示:Wed Oct 24 23:11:13 CST 2012。這里面我們需要解決兩點:

  • 時區問題
  • 格式問題
  • $GOROOT/lib/time包中的timeinfo.zip含有locale對應的時區的定義,為了獲得對應于當前locale的時間,我們應首先使用time.LoadLocation(name string)獲取相應于地區的locale,比如Asia/Shanghai或America/Chicago對應的時區信息,然后再利用此信息與調用time.Now獲得的Time對象協作來獲得最終的時間。詳細的請看下面的例子(該例子采用上面例子的一些變量):

    en["time_zone"]="America/Chicago" cn["time_zone"]="Asia/Shanghai"loc,_:=time.LoadLocation(msg(lang,"time_zone")) t:=time.Now() t = t.In(loc) fmt.Println(t.Format(time.RFC3339))

    我們可以通過類似處理文本格式的方式來解決時間格式的問題,舉例如下:

    en["date_format"]="%Y-%m-%d %H:%M:%S" cn["date_format"]="%Y年%m月%d日 %H時%M分%S秒"fmt.Println(date(msg(lang,"date_format"),t))func date(fomate string,t time.Time) string{year, month, day = t.Date()hour, min, sec = t.Clock()//解析相應的%Y %m %d %H %M %S然后返回信息//%Y 替換成2012//%m 替換成10//%d 替換成24 }

    本地化貨幣值

    各個地區的貨幣表示也不一樣,處理方式也與日期差不多,細節請看下面代碼:

    en["money"] ="USD %d" cn["money"] ="¥%d元"fmt.Println(date(msg(lang,"date_format"),100))func money_format(fomate string,money int64) string{return fmt.Sprintf(fomate,money) }

    本地化視圖和資源

    我們可能會根據Locale的不同來展示視圖,這些視圖包含不同的圖片、css、js等各種靜態資源。那么應如何來處理這些信息呢?首先我們應按locale來組織文件信息,請看下面的文件目錄安排:

    views |--en //英文模板|--images //存儲圖片信息|--js //存儲JS文件|--css //存儲css文件index.tpl //用戶首頁login.tpl //登陸首頁 |--zh-CN //中文模板|--images|--js|--cssindex.tpllogin.tpl

    有了這個目錄結構后我們就可以在渲染的地方這樣來實現代碼:

    s1, _ := template.ParseFiles("views"+lang+"index.tpl") VV.Lang=lang s1.Execute(os.Stdout, VV)

    而對于里面的index.tpl里面的資源設置如下:

    // js文件 <script type="text/javascript" src="views/{{.VV.Lang}}/js/jquery/jquery-1.8.0.min.js"></script> // css文件 <link href="views/{{.VV.Lang}}/css/bootstrap-responsive.min.css" rel="stylesheet"> // 圖片文件 <img src="views/{{.VV.Lang}}/images/btn.png">

    采用這種方式來本地化視圖以及資源時,我們就可以很容易的進行擴展了。

    總結

    以上是生活随笔為你收集整理的go web本地化资源的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产日产精品一区二区三区 | 日韩精品人妻一区二区中文字幕 | 337p粉嫩大胆色噜噜噜 | 夜夜嗨av | 制服丝袜在线看 | 在线观看的av网站 | 日产精品久久久久久久 | 性高潮久久久久久 | 色婷婷综合五月 | 国产色悠悠 | 制中文字幕音影 | 免费国产一级 | 亚洲国产精品视频在线观看 | 国产在线视频在线观看 | 日韩精品资源 | 四季av国产一区二区三区 | 美女色呦呦 | 一区精品在线 | youjizz.com在线观看 | 97免费看 | 国产精品秘 | 亚洲福利一区二区 | 国产免费久久精品国产传媒 | 精品久久久久一区二区国产 | 国产一级理论 | 国产又粗又猛又爽又黄91精品 | 国产成年妇视频 | www.看毛片| 向着小小的花蕾绽放 | 亚洲黄色av网站 | 男人你懂的网站 | 天天躁夜夜躁 | 体内精视频xxxxx | 长篇高h肉爽文丝袜 | 中文字幕免费高清在线观看 | 日韩在线资源 | 黑森林av导航 | 成人在线观看免费视频 | 天堂一区二区三区四区 | 91亚洲精品在线 | 天堂久久久久久 | av无码久久久久久不卡网站 | 在线免费看mv的网站入口 | 99久久久国产精品无码免费 | 美女被c出白浆 | 一区二区欧美精品 | 99久久久无码国产精品性波多 | 免费在线播放 | ts人妖在线观看 | 日本视频一区二区三区 | 亚洲免费观看在线 | 久久黄色片 | 97色伦97色伦国产欧美空 | 国产精品亚洲无码 | 一级黄色欧美 | 日本四虎影院 | 精品视频一二三 | 黄色午夜影院 | 欧美一级做a爰片免费视频 成人激情在线观看 | 国产一区视频在线观看免费 | 亚洲欧美日韩高清 | 欧美黑人疯狂性受xxxxx野外 | 致命弯道8在线观看免费高清完整 | 一区二区三区国产av | 亚洲av成人精品午夜一区二区 | 成人精品av | 黄色在线免费 | 我的好妈妈在线观看 | 久久久久久久女国产乱让韩 | 欧美精品色哟哟 | 日本一区二区在线播放 | 国产特黄级aaaaa片免 | 成人手机在线视频 | 瑟瑟网站免费 | 午夜在线 | 亚洲精品成人在线视频 | 一级黄色片在线观看 | 久草久草久草 | 成年人视频在线 | 色婷婷av一区二区三区gif | 超碰激情在线 | 6080福利| 91国内 | 毛片随便看 | 精品人妻无码一区二区三 | 色激情五月 | 91高清在线免费观看 | 欧美人妻精品一区二区 | 国产精品久久久久不卡 | 久久久伊人网 | 亚洲精品一区二区三区区别 | 九一精品国产 | 91蜜桃视频在线观看 | 人妻在线一区二区 | www亚洲国产| 涩涩视频软件 | www在线视频 | 九九热在线视频免费观看 | 91久久国产精品 |