go-carbon 1.3.2 版本釋出,新增自定義 i18n 方法和日文翻譯檔案

普羅米修斯發表於2021-02-19

carbon 是一個輕量級、語義化、對開發者友好的Golang時間處理庫,支援鏈式呼叫、農曆和gorm、xorm等主流orm

如果您覺得不錯,請給個star吧

github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

更新日誌
  • 按照功能拆分檔案,最佳化程式碼組織結構
  • 新增SetDir()、SetResources()、SetLanguage()方法用於自定義i18n
  • 新增StartOfSecond()、EndOfSecond()方法
  • 新增日語翻譯檔案lang/jp.json
  • 修復goland中部分檔案typo警告
  • 精簡最佳化程式碼
設定區域
// 方式一(推薦)
c := carbon.Now().AddHours(1).SetLocale("jp") 
if c.Error != nil {
     // 錯誤處理 fmt.Println(c.Error)
 }
c.DiffForHumans() // 1 時間後

// 方式二
lang := NewLanguage()
if err := lang.SetLocale("jp");err != nil {
     // 錯誤處理 fmt.Println(err)
 }
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 時間後
設定目錄
lang := NewLanguage()
if err := lang.SetDir("lang");err != nil {
     // 錯誤處理 fmt.Println(err)
 }
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 小時後
部分自定義翻譯(其餘仍然按照指定的locale翻譯)
lang := NewLanguage()

if err := lang.SetLocale("en");err != nil {
     // 錯誤處理 fmt.Println(err)
 }

resources := map[string]string{
 "hour":"%dh",}
lang.SetResources(resources)

carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // 1 year from now
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1h from now
完全自定義翻譯
lang := NewLanguage()
resources := map[string]string{
"year":"1 yr|%d yrs",
"month":"1 mo|%d mos",
"week":"%dw",
"day":"%dd",
"hour":"%dh",
"minute":"%dm",
"second":"%ds",
"now": "just now",
"ago":"%s ago",
"from_now":"in %s",
"before":"%s before",
"after":"%s after",
}
lang.SetResources(resources)

carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // in 1 yr
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // in 1h
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章