From 3083c19232f5dd1ddb39fbe434f7f2740d1bfa36 Mon Sep 17 00:00:00 2001 From: bastarder Date: Wed, 16 Sep 2020 14:46:41 +0800 Subject: [PATCH] fix(locale): i18n support params --- packages/locale/index.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/locale/index.ts b/packages/locale/index.ts index f8d822a830..b17b055797 100644 --- a/packages/locale/index.ts +++ b/packages/locale/index.ts @@ -2,14 +2,22 @@ import defaultLang from './lang/en' let lang = defaultLang -export const t = (path:string): string => { +function template(str: string, option) { + if(!str || !option) return str + + return str.replace(/\{(\w+)\}/g, (match, key) => { + return option[key] + }) +} + +export const t = (path:string, option): string => { let value const array = path.split('.') let current = lang for (let i = 0, j = array.length; i < j; i++) { const property = array[i] value = current[property] - if (i === j - 1) return value + if (i === j - 1) return template(value, option) if (!value) return '' current = value }