diff --git a/src/locale/README.zh-CN.md b/src/locale/README.zh-CN.md
index 265bc6462..cdd9ba2a2 100644
--- a/src/locale/README.zh-CN.md
+++ b/src/locale/README.zh-CN.md
@@ -46,3 +46,7 @@ Locale.add(messages);
| 土耳其语 | tr-TR |
在 [这里](https://github.com/youzan/vant/tree/dev/src/locale/lang) 查看所有的 i18n 配置文件。
+
+### Sku 组件
+
+语言包中默认不包含 Sku 业务组件的语言配置,因此如果有 Sku 组件的国际化需求,请自行配置国际化文案。
diff --git a/src/sku/components/SkuActions.tsx b/src/sku/components/SkuActions.tsx
index 93dc93730..a437d477d 100644
--- a/src/sku/components/SkuActions.tsx
+++ b/src/sku/components/SkuActions.tsx
@@ -13,7 +13,7 @@ export type SkuActionsProps = {
showAddCartBtn?: boolean;
};
-const [createComponent, bem] = createNamespace('sku-actions');
+const [createComponent, bem, t] = createNamespace('sku-actions');
function SkuActions(
h: CreateElement,
@@ -31,14 +31,14 @@ function SkuActions(
)}
diff --git a/src/sku/components/SkuImgUploader.js b/src/sku/components/SkuImgUploader.js
index c73d3081a..d44aef55f 100644
--- a/src/sku/components/SkuImgUploader.js
+++ b/src/sku/components/SkuImgUploader.js
@@ -3,7 +3,7 @@ import Icon from '../../icon';
import Loading from '../../loading';
import Uploader from '../../uploader';
-const [createComponent, bem] = createNamespace('sku-img-uploader');
+const [createComponent, bem, t] = createNamespace('sku-img-uploader');
export default createComponent({
props: {
@@ -41,7 +41,7 @@ export default createComponent({
},
onOversize() {
- this.$toast(`最大可上传图片为${this.maxSize}MB,请尝试压缩图片尺寸`);
+ this.$toast(t('oversize', this.maxSize));
},
renderUploader(content, disabled = false) {
@@ -67,7 +67,7 @@ export default createComponent({
? (
[
,
-
上传失败
重新上传
+
]
) : (
diff --git a/src/sku/components/SkuMessages.js b/src/sku/components/SkuMessages.js
index 8fa6640ad..cdb8a5c0c 100644
--- a/src/sku/components/SkuMessages.js
+++ b/src/sku/components/SkuMessages.js
@@ -6,18 +6,7 @@ import { isEmail } from '../../utils/validate/email';
import { isNumber } from '../../utils/validate/number';
import SkuImgUploader from './SkuImgUploader';
-const [createComponent, bem] = createNamespace('sku-messages');
-
-const PLACEHOLDER = {
- id_no: '输入身份证号码',
- text: '输入文本',
- tel: '输入数字',
- email: '输入邮箱',
- date: '点击选择日期',
- time: '点击选择时间',
- textarea: '点击填写段落文本',
- mobile: '输入手机号码'
-};
+const [createComponent, bem, t] = createNamespace('sku-messages');
export default createComponent({
props: {
@@ -88,7 +77,7 @@ export default createComponent({
getPlaceholder(message) {
const type = +message.multiple === 1 ? 'textarea' : message.type;
const map = this.messageConfig.placeholderMap || {};
- return message.placeholder || map[type] || PLACEHOLDER[type];
+ return message.placeholder || map[type] || t(`placeholder.${type}`);
},
validateMessages() {
@@ -101,23 +90,21 @@ export default createComponent({
if (value === '') {
// 必填字段的校验
if (String(message.required) === '1') {
- const textType = message.type === 'image'
- ? '请上传'
- : '请填写';
+ const textType = t(message.type === 'image' ? 'upload' : 'fill');
return textType + message.name;
}
} else {
if (message.type === 'tel' && !isNumber(value)) {
- return '请填写正确的数字格式留言';
+ return t('invalid.tel');
}
if (message.type === 'mobile' && !/^\d{6,20}$/.test(value)) {
- return '手机号长度为6-20位数字';
+ return t('invalid.mobile');
}
if (message.type === 'email' && !isEmail(value)) {
- return '请填写正确的邮箱';
+ return t('invalid.email');
}
if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {
- return '请填写正确的身份证号码';
+ return t('invalid.id_no');
}
}
}
@@ -131,7 +118,7 @@ export default createComponent({
- {this.stepperTitle || '购买数量'}
+ {this.stepperTitle || t('num')}
`最大可上传图片为${maxSize}MB,请尝试压缩图片尺寸`,
+ fail: '上传失败 重新上传'
+ },
+ vanSkuStepper: {
+ num: '购买数量'
+ },
+ vanSkuMessages: {
+ fill: '请填写',
+ upload: '请上传',
+ imageLabel: '仅限一张',
+ invalid: {
+ tel: '请填写正确的数字格式留言',
+ mobile: '手机号长度为6-20位数字',
+ email: '请填写正确的邮箱',
+ id_no: '请填写正确的身份证号码'
+ },
+ placeholder: {
+ id_no: '输入身份证号码',
+ text: '输入文本',
+ tel: '输入数字',
+ email: '输入邮箱',
+ date: '点击选择日期',
+ time: '点击选择时间',
+ textarea: '点击填写段落文本',
+ mobile: '输入手机号码'
+ }
+ }
+ }
+};
|