go-carbon 1.3.2 版本发布,新增自定义 i18n 系列方法和日文翻译文件

够过瘾 · · 691 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

691 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传