本地化语言 🌏
React Suite 组件中的语言默认为英语。 如果需要设置其他语言,可以使用 <CustomProvider>
进行配置。
使用
import { CustomProvider } from 'rsuite';
import zhCN from 'rsuite/locales/zh_CN';
return (
<CustomProvider locale={zhCN}>
<App />
</CustomProvider>
);
目前支持的语言环境
IETF BCP 47 语言标签 | 语言 | 导入名称 |
---|---|---|
ar-EG | 阿拉伯语(埃及) | arEG |
ca-ES | 加泰罗尼亚语 | caES |
cs-CZ | 捷克语 | csCZ |
da-DK | 丹麦语 | daDK |
de-DE | 德语 | deDE |
en-GB | 英语 | enGB |
en-US | 美式英语 | enUS |
es-AR | 西班牙语 (阿根廷) | esAR |
es-ES | 西班牙语 (西班牙) | esES |
fa-IR | 波斯语 (伊朗) | faIR |
fi-FI | 芬兰语 | fiFI |
fr-FR | 法语 | frFR |
hu-HU | 匈牙利语 | huHU |
it-IT | 意大利语 | itIT |
ja-JP | 日语 | jaJP |
kk-KZ | 哈萨克语 | kkKZ |
ko-KR | 韩语/朝鲜语 | koKR |
ne-NP | 尼泊尔语 | neNP |
nl-NL | 荷兰语 | nlNL |
pl-PL | 波兰语(波兰) | plPL |
pt-BR | 葡萄牙语 (巴西) | ptBR |
ru-RU | 俄罗斯语 | ruRU |
sv-SE | 瑞典语 | svSE |
th-TH | 泰语 | thTH |
tr-TR | 土耳其语 | trTR |
uk-UA | 乌克兰语 | ukUA |
zh-CN | 简体中文 | zhCN |
zh-TW | 繁体中文 (中国台湾) | zhTW |
自定义本地语言包
React Suite 能够非常方便的定义语言环境。 您可以自己创建一个 locale 配置。
import zhCN from 'date-fns/locale/zh-CN';
const DateTimeFormats = {
sunday: '日',
monday: '一',
tuesday: '二',
wednesday: '三',
thursday: '四',
friday: '五',
saturday: '六',
ok: '确定',
today: '今天',
yesterday: '昨天',
now: '此刻',
hours: '时',
minutes: '分',
seconds: '秒',
formattedMonthPattern: 'yyyy年MM月',
formattedDayPattern: 'yyyy年MM月dd日',
shortDateFormat: 'yyyy-MM-dd',
shortTimeFormat: 'aa hh:mm',
dateLocale: zhCN as any
};
const Combobox = {
noResultsText: '无匹配选项',
placeholder: '选择',
searchPlaceholder: '搜索',
checkAll: '全部'
};
const CreatableComboBox = {
...Combobox,
newItem: '新选项',
createOption: '新建选项 "{0}"'
};
const locale = {
code: 'zh-CN',
common: {
loading: '加载中...',
emptyMessage: '数据为空',
remove: '移除',
clear: '清除'
},
Plaintext: {
unfilled: '未填写',
notSelected: '未选择',
notUploaded: '未上传'
},
Pagination: {
more: '更多',
prev: '上一页',
next: '下一页',
first: '第一页',
last: '最后一页',
limit: '{0} 条/页',
total: '共 {0} 条数据',
skip: '跳至{0}页'
},
DateTimeFormats,
Calendar: DateTimeFormats,
DatePicker: DateTimeFormats,
DateRangePicker: {
...DateTimeFormats,
last7Days: '最近 7 天'
},
Combobox,
InputPicker: CreatableComboBox,
TagPicker: CreatableComboBox,
Uploader: {
inited: '初始状态',
progress: '上传中',
error: '上传出错',
complete: '上传完成',
emptyFile: '无文件',
upload: '上传',
removeFile: '删除文件'
},
CloseButton: {
closeLabel: '关闭'
},
Breadcrumb: {
expandText: '显示路径'
},
Toggle: {
on: '开启',
off: '关闭'
}
};
return (
<CustomProvider locale={locale}>
<App />
</CustomProvider>
);
组件本地化
如果您只想调整当组件本地化的文本,可以直接通过组件的 locale
属性进行自定义。 以下以 Table 组件为例:
const locale = {
emptyMessage: '数据为空',
loading: '数据加载中, 请稍候'
};
return <Table locale={locale} />;
Breadcrumb
type BreadcrumbLocaleType = {
expandText?: string;
};
DateTimeFormats
type DateTimeFormats = {
sunday?: string;
monday?: string;
tuesday?: string;
wednesday?: string;
thursday?: string;
friday?: string;
saturday?: string;
ok?: string;
today?: string;
yesterday?: string;
hours?: string;
minutes?: string;
seconds?: string;
formattedMonthPattern?: string;
formattedDayPattern?: string;
shortDateFormat?: string;
shortTimeFormat?: string;
// Only for DateRangePicker
last7Days?: string;
// Only for TimePicker
now?: string;
};
Pagination
type PaginationLocale = {
more?: string;
prev?: string;
next?: string;
first?: string;
last?: string;
limit?: string;
total?: string;
skip?: string;
};
Pickers
SelectPicker、CheckPicker、TreePicker、CheckTreePicker、Cascader、MultiCascader
type PickerLocaleType = {
noResultsText?: string;
placeholder?: string;
searchPlaceholder?: string;
loading?: string;
emptyMessage?: string;
// for CheckTreePicker, MultiCascader
checkAll?: string;
// for InputPicker
newItem?: string;
createOption?: string;
};
Uploader
type UploaderLocaleType = {
inited?: string;
progress?: string;
error?: string;
complete?: string;
emptyFile?: string;
upload?: string;
};
Table
type TableLocaleType = {
emptyMessage?: string;
loading?: string;
};
Toggle
type ToggleLocaleType = {
on?: string;
off?: string;
};
与 react-intl 同时使用
import { IntlProvider } from 'react-intl';
import { CustomProvider } from 'rsuite';
import zhCN from 'rsuite/locales/zh_CN';
return (
<IntlProvider locale="zh">
<CustomProvider locale={zhCN}>
<App />
</CustomProvider>
</IntlProvider>
);
更多配置参考: react-intl