Skip to content

国际化

目前支持的语言有(按照翻译先后顺序排列)

目前支持的方法有

  • Constellation():获取星座,如 白羊座
  • Season():获取季节,如 夏季
  • DiffForHumans():获取对人类友好的可读格式时间差,如 一小时前
  • ToMonthString():输出完整月份字符串,如 一月
  • ToShortMonthString():输出缩写月份字符串,如 1月
  • ToWeekString():输出完整星期字符串,如 星期一
  • ToShortWeekString():输出缩写星期字符串,如 周一

设置区域

go
lang := carbon.NewLanguage()
lang.SetLocale("zh-CN")

carbon.SetTestNow(carbon.Parse("2020-08-05 13:14:15"))
now := carbon.Now().SetLanguage(lang)

now.Copy().AddHours(1).DiffForHumans() // 1 小时后
now.Copy().AddHours(1).ToMonthString() // 八月
now.Copy().AddHours(1).ToShortMonthString() // 8月
now.Copy().AddHours(1).ToWeekString() // 星期二
now.Copy().AddHours(1).ToShortWeekString() // 周二
now.Copy().AddHours(1).Constellation() // 狮子座
now.Copy().AddHours(1).Season() // 夏季

重写部分翻译资源

其余仍然按照指定的 locale 文件内容翻译

go
lang := carbon.NewLanguage()

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

carbon.SetTestNow(carbon.Parse("2020-08-05 13:14:15"))
now := carbon.Now().SetLanguage(lang)

now.Copy().AddYears(1).DiffForHumans() // 1 year from now
now.Copy().AddHours(1).DiffForHumans() // 1h from now
now.ToMonthString() // August
now.ToShortMonthString() // Aug
now.ToWeekString() // Tuesday
now.ToShortWeekString() // Tue
now.Constellation() // Leo
now.Season() // Summer

重写全部翻译资源

无需指定 locale

go
lang := carbon.NewLanguage()
resources := map[string]string {
  "months": "january|february|march|april|may|june|july|august|september|october|november|december",
  "short_months": "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec",
  "weeks": "sunday|monday|tuesday|wednesday|thursday|friday|saturday",
  "short_weeks": "sun|mon|tue|wed|thu|fri|sat",
  "seasons": "spring|summer|autumn|winter",
  "constellations": "aries|taurus|gemini|cancer|leo|virgo|libra|scorpio|sagittarius|capricornus|aquarius|pisce",
  "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.SetTestNow(carbon.Parse("2020-08-05 13:14:15"))
now := carbon.Now().SetLanguage(lang)

now.Copy().AddYears(1).DiffForHumans() // in 1 yr
now.Copy().AddHours(1).DiffForHumans() // in 1h
now.ToMonthString() // august
now.ToShortMonthString() // aug
now.ToWeekString() // tuesday
now.ToShortWeekString() // tue
now.Constellation() // leo
now.Season() // summer

基于 MIT 许可发布,未经许可禁止任何形式的转载