翻译
目录
介绍
ezBookkeeping 支持多语言和本地化设置,前端和后端分别有自己的多语言文件。前端多语言文件在 /src/locales/
,后端多语言文件在 /pkg/locales/
。所有语言文件需要以语言标签(单一语言子标签 或 语言子标签加书写体子标签,例如 en
、fr
、zh-Hans
、zh-Hant
)命名。
有关语言标签的更多信息,请参考 RFC5646。所有可用语言标签可从这里 IANA registry language-subtag-registry 找到。
为前端增加新语言
- 复制
/src/locales/en.json
并创建一个以语言标签命名的新文件 - 在
/src/locales/index.js
中的allLanguages
对象中添加键值对,其中键名应当为语言标签,值对象里的name
字段应当为英文的语言名称,displayName
字段应当为该语言下的语言名称,content
字段应当为新的语言对象。另外,为了兼容一些不支持language-script
格式语言标签的第三方服务,需要在alternativeLanguageTag
字段中设置language-region
格式的语言标签(例如zh-CN
) - 翻译每个文字条目
为后端增加新语言
- 复制
/pkg/locales/en.go
并创建一个以语言标签命名的新文件 - 在
/pkg/locales/all_locales.go
中的AllLanguages
map 中添加键值对,其中键名应当为语言标签,值对象里的Content
字段应当为新的语言对象 - 翻译每个文字条目
国际化
ezBookkeeping 允许用户更改多项区域设置,如日期、时间、数字和货币格式。当用户没有修改时,这些区域设置将使用语言文件中配置的默认值。这些默认值都在语言文件的 default
对象中。
这里是所有需要配置默认值的设置和说明:
项目 | 所有可用选项 | 描述 |
---|---|---|
currency | /src/consts/currency.js 中的 allCurrencies | 默认货币 |
firstDayOfWeek | /src/consts/datetime.js 中的 allWeekDays | 默认每周第一天 |
longDateFormat | /src/consts/datetime.js 中的 allLongDateFormat | 默认长日期格式 |
shortDateFormat | /src/consts/datetime.js 中的 allShortDateFormat | 默认短日期格式 |
longTimeFormat | /src/consts/datetime.js 中的 allLongTimeFormat | 默认长时间格式 |
shortTimeFormat | /src/consts/datetime.js 中的 allShortTimeFormat | 默认短时间格式 |
decimalSeparator | /src/consts/numeral.js 中的 allDecimalSeparator | 默认小数点 |
digitGroupingSymbol | /src/consts/numeral.js 中的 allDigitGroupingSymbol | 默认数字分组符号 |
digitGrouping | /src/consts/numeral.js 中的 allDigitGroupingType | 默认数字分组类型 |
currencyDisplayType | /src/consts/currency.js 中的 allCurrencyDisplayType | 默认货币显示类型 |
另外,各语言文件的 format
对象中有各个语言下日期和时间格式的可选项,这些格式可参考 Moment.js 的文档 设置,具体这些格式的使用场景如下
项目 | 使用场景 |
---|---|
longDate | 多个场景 |
shortDate | 多个场景 |
longYear | 首页总览数据中使用 |
shortYear | 交易和统计分析页面的时间筛选中使用 |
longYearMonth | 交易列表显示月份时使用 |
shortYearMonth | 交易和统计分析页面的时间筛选中使用 |
longMonthDay | 首页总览数据中使用 |
shortMonthDay | 交易和统计分析页面的时间筛选中使用,显示在 shortDate 旁边,格式应该类似于 shortDate |
longTime | 多个场景 |
shortTime | 多个场景 |