From 6009c62a7a08eee0c8b98bd49ce77fefbefccbb6 Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Sat, 21 Jun 2025 17:37:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor(i18n):=20=E4=BC=98=E5=8C=96i18n?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E5=92=8C?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将箭头函数改为函数声明,统一代码风格 调整vue模板中的class顺序和格式 更新pnpm-lock.yaml中的依赖版本 添加@types/web-bluetooth类型定义 --- pnpm-lock.yaml | 8 ++- src/locale/index.ts | 11 ++-- src/pages/about/i18n.vue | 108 ++++++++++++++++++++++++--------------- src/utils/i18n.ts | 2 +- 4 files changed, 82 insertions(+), 47 deletions(-) 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 @@ } - - + +