diff --git a/src/sku/Sku.js b/src/sku/Sku.js index 63f5df318..f645a125e 100644 --- a/src/sku/Sku.js +++ b/src/sku/Sku.js @@ -13,7 +13,9 @@ import { createNamespace, isDef } from '../utils'; import { isAllSelected, isSkuChoosable, getSkuComb, getSelectedSkuValues } from './utils/skuHelper'; import { LIMIT_TYPE, UNSELECTED_SKU_VALUE_ID } from './constants'; -const [createComponent] = createNamespace('sku'); +const namespace = createNamespace('sku'); +const createComponent = namespace[0]; +const t = namespace[2]; const { QUOTA_LIMIT } = LIMIT_TYPE; export default createComponent({ @@ -216,7 +218,7 @@ export default createComponent({ const { stockFormatter } = this.customStepperConfig; if (stockFormatter) return stockFormatter(this.stock); - return `剩余 ${this.stock}件`; + return t('stock', this.stock); }, quotaText() { @@ -229,7 +231,7 @@ export default createComponent({ if (quotaText) { text = quotaText; } else if (this.quota > 0) { - text = `每人限购${this.quota}件`; + text = t('quotaLimit', this.quota); } return text; @@ -237,7 +239,7 @@ export default createComponent({ selectedText() { if (this.selectedSkuComb) { - return `已选 ${this.selectedSkuValues.map(item => item.name).join(';')}`; + return `${t('selected')} ${this.selectedSkuValues.map(item => item.name).join(';')}`; } const unselected = this.skuTree @@ -245,7 +247,7 @@ export default createComponent({ .map(item => item.k) .join(';'); - return `选择 ${unselected}`; + return `${t('select')} ${unselected}`; } }, @@ -316,7 +318,7 @@ export default createComponent({ validateSku() { if (this.selectedNum === 0) { - return '商品已经无法购买啦'; + return t('unavailable'); } if (this.isSkuCombSelected) { @@ -329,7 +331,7 @@ export default createComponent({ if (err) return err; } - return '请先选择商品规格'; + return t('selectSku'); }, onClose() { @@ -385,14 +387,14 @@ export default createComponent({ } if (action === 'minus') { - Toast('至少选择一件'); + Toast(t('minusTip')); } else if (action === 'plus') { if (limitType === QUOTA_LIMIT) { - let msg = `限购${quota}件`; - if (quotaUsed > 0) msg += `,${`你已购买${quotaUsed}件`}`; + let msg = t('quotaLimit', quota); + if (quotaUsed > 0) msg += `,${t('quotaCount', quotaUsed)}`; Toast(msg); } else { - Toast('库存不足'); + Toast(t('soldout')); } } }, @@ -464,7 +466,7 @@ export default createComponent({ )} {slots('sku-header-origin-price') || ( originPrice && ( - 原价 ¥{originPrice} + {t('originPrice')} ¥{originPrice} ) )} {!this.hideStock && ( diff --git a/src/sku/lang.ts b/src/sku/lang.ts index 764cf81a4..b9bb19e15 100644 --- a/src/sku/lang.ts +++ b/src/sku/lang.ts @@ -4,6 +4,18 @@ export default { 'zh-CN': { + vanSku: { + select: '选择', + selected: '已选', + selectSku: '请先选择商品规格', + soldout: '库存不足', + originPrice: '原价', + minusTip: '至少选择一件', + unavailable: '商品已经无法购买啦', + stock: (stock: number) => `剩余 ${stock}件`, + quotaLimit: (quota: number) => `每人限购${quota}件`, + quotaCount: (count: number) => `你已购买${count}件` + }, vanSkuActions: { buy: '立即购买', addCart: '加入购物车'