diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3814279..56cebb2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -166,7 +166,7 @@ importers:
version: 0.0.4
'@uni-ku/bundle-optimizer':
specifier: ^1.3.3
- version: 1.3.3(postcss@8.4.49)(rollup@4.41.1)(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))(vue@3.5.15(typescript@5.7.2))
+ version: 1.3.3(@vueuse/core@12.8.2(typescript@5.7.2))(postcss@8.4.49)(rollup@4.41.1)(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))(vue@3.5.15(typescript@5.7.2))
'@unocss/eslint-plugin':
specifier: ^66.2.3
version: 66.2.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.7.2)
@@ -2221,6 +2221,9 @@ packages:
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+ '@types/web-bluetooth@0.0.21':
+ resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
+
'@types/wechat-miniprogram@3.4.8':
resolution: {integrity: sha512-lOqddA707X3SZxVhlZNBZPzYzj7lG/ED2fF30k+aE2oT6R4wfw0Wiup2k2hGrmzYUFyJXfGs01sDCuJMhQMAdg==}
@@ -9275,6 +9278,9 @@ snapshots:
'@types/unist@3.0.3': {}
+ '@types/web-bluetooth@0.0.21':
+ optional: true
+
'@types/wechat-miniprogram@3.4.8': {}
'@types/yargs-parser@21.0.3': {}
diff --git a/src/locale/index.ts b/src/locale/index.ts
index 2b90bd6..3f50571 100644
--- a/src/locale/index.ts
+++ b/src/locale/index.ts
@@ -22,7 +22,7 @@ console.log(i18n.global.locale)
* @param { string } key 多语言的key,eg: "app.name"
* @returns {string} 返回原始的多语言模板,eg: "{heavy}KG"
*/
-export const getTemplateByKey = (key: string) => {
+export function getTemplateByKey(key: string) {
if (!key) {
console.error(`[i18n] Function getTemplateByKey(), key param is required`)
return ''
@@ -40,7 +40,8 @@ export const getTemplateByKey = (key: string) => {
return keyList.reduce((pre, cur) => {
return pre[cur]
}, message)
- } catch (error) {
+ }
+ catch (error) {
console.error(`[i18n] Function getTemplateByKey(), key param ${key} is not existed.`)
return ''
}
@@ -50,11 +51,11 @@ export const getTemplateByKey = (key: string) => {
* formatI18n('我是{name},身高{detail.height},体重{detail.weight}',{name:'张三',detail:{height:178,weight:'75kg'}})
* 暂不支持数组
* @param template 多语言模板字符串,eg: `我是{name}`
- * @param {Object|undefined} data 需要传递的数据对象,里面的key与多语言字符串对应,eg: `{name:'菲鸽'}`
+ * @param {object | undefined} data 需要传递的数据对象,里面的key与多语言字符串对应,eg: `{name:'菲鸽'}`
* @returns
*/
function formatI18n(template: string, data?: any) {
- return template.replace(/\{([^}]+)\}/g, function (match, key: string) {
+ return template.replace(/\{([^}]+)\}/g, (match, key: string) => {
// console.log( match, key) // => { detail.height } detail.height
const arr = key.trim().split('.')
let result = data
@@ -71,7 +72,7 @@ function formatI18n(template: string, data?: any) {
* => formatI18n('我是{name},身高{detail.height},体重{detail.weight}',{name:'张三',detail:{height:178,weight:'75kg'}})
* 没有key的,可以不传 data;暂不支持数组
* @param template 多语言模板字符串,eg: `我是{name}`
- * @param {Object|undefined} data 需要传递的数据对象,里面的key与多语言字符串对应,eg: `{name:'菲鸽'}`
+ * @param {object | undefined} data 需要传递的数据对象,里面的key与多语言字符串对应,eg: `{name:'菲鸽'}`
* @returns
*/
export function t(key, data?) {
diff --git a/src/pages/about/i18n.vue b/src/pages/about/i18n.vue
index 63724ca..623613a 100644
--- a/src/pages/about/i18n.vue
+++ b/src/pages/about/i18n.vue
@@ -6,45 +6,6 @@
}
-
-
-
- 经过我的测试发现,小程序里面会有2处BUG:
-
- 1. 页面标题多语言不生效
- 已解决
-
-
- 2. 多语言传递的参数不生效,如下 heavy
- 已解决
- 把 $t 改为自定义的 t 即可
-
-
- 多语言测试
- {{ $t('app.name') }}
- 使用$t: {{ $t('weight', { heavy: 100 }) }}
- {{ $t('weight', { heavy: 100 }) }}
- 使用t: {{ t('weight', { heavy: 100 }) }}
- {{ t('weight', { heavy: 100 }) }}
- {{ t('introduction', user) }}
-
- 切换语言
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 经过我的测试发现,小程序里面会有2处BUG:
+
+
+ 1. 页面标题多语言不生效
+
+
+ 已解决
+
+
+
+
+ 2. 多语言传递的参数不生效,如下 heavy
+
+
+ 已解决
+
+
+ 把 $t 改为自定义的 t 即可
+
+
+
+
+ 多语言测试
+
+
+ {{ $t('app.name') }}
+
+
+ 使用$t: {{ $t('weight', { heavy: 100 }) }}
+
+
+ {{ $t('weight', { heavy: 100 }) }}
+
+
+ 使用t: {{ t('weight', { heavy: 100 }) }}
+
+
+ {{ t('weight', { heavy: 100 }) }}
+
+
+ {{ t('introduction', user) }}
+
+
+
+ 切换语言
+
+
+
+
+
+
+
+
+
+
+
+