{"version":3,"file":"index.mjs","sources":["../../../../packages/locale/index.js"],"sourcesContent":["import defaultLang from './lang/zh-CN'\nimport { getCurrentInstance, ref } from 'vue'\nimport Format from './format'\n\nconst format = Format()\nlet lang = defaultLang\n// 响应式语言标记，用于触发组件更新\nexport const langKey = ref(0)\n// 语言变更监听器\nconst listeners = new Set()\n\nlet i18nHandler = function () {\n\t// Vue 3 兼容：尝试获取当前实例的 $t 方法\n\tlet vuei18n = null\n\n\ttry {\n\t\tconst instance = getCurrentInstance()\n\t\tif (instance) {\n\t\t\t// 优先从全局属性获取\n\t\t\tvuei18n = instance.appContext?.app?.config?.globalProperties?.$t\n\t\t\t// 其次从代理对象获取\n\t\t\t// if (!vuei18n && instance.proxy?.$t) {\n\t\t\t//   vuei18n = instance.proxy?.$t;\n\t\t\t// }\n\t\t}\n\t} catch (e) {\n\t\t// 在非组件上下文中调用时，getCurrentInstance 可能会失败\n\t\t// 这种情况下继续使用内置的翻译逻辑\n\t}\n\n\tif (typeof vuei18n === 'function') {\n\t\treturn vuei18n.apply(this, arguments)\n\t}\n\n\t// 如果没有找到 vue-i18n，返回 null 让后续逻辑处理\n\treturn null\n}\n\nexport const t = function (path, ...options) {\n\tlet value = i18nHandler.apply(this, arguments)\n\t// 当 vue-i18n 返回的值等于 key 本身时（表示未找到翻译），回退到内置语言包\n\tif (value !== null && value !== undefined && value !== path) return value\n\n\tconst array = path.split('.')\n\tlet current = lang\n\n\tfor (let i = 0, j = array.length; i < j; i++) {\n\t\tconst property = array[i]\n\t\tvalue = current[property]\n\t\tif (i === j - 1) return format(value, options)\n\t\tif (!value) return ''\n\t\tcurrent = value\n\t}\n\treturn ''\n}\n\nexport const use = function (l) {\n\tlang = l || lang\n\t// 更新响应式标记，触发组件重新渲染\n\tlangKey.value++\n\t// 通知所有监听器\n\tlisteners.forEach(fn => fn(lang))\n}\n\n// 添加语言变更监听器\nexport const onLangChange = function (fn) {\n\tlisteners.add(fn)\n\treturn () => listeners.delete(fn)\n}\n\nexport const i18n = function (fn) {\n\ti18nHandler = fn || i18nHandler\n}\n\nexport default { use, t, i18n, langKey: langKey.value, onLangChange }\n"],"names":["defaultLang"],"mappings":";;;;AAIA,MAAM,SAAS,MAAO,EAAA,CAAA;AACtB,IAAI,IAAO,GAAAA,gBAAA,CAAA;AAEE,MAAA,OAAA,GAAU,IAAI,CAAC,EAAA;AAE5B,MAAM,SAAA,uBAAgB,GAAI,EAAA,CAAA;AAE1B,IAAI,cAAc,WAAY;AAX9B,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAaC,EAAA,IAAI,OAAU,GAAA,IAAA,CAAA;AAEd,EAAI,IAAA;AACH,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAA,IAAI,QAAU,EAAA;AAEb,MAAU,OAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,QAAA,CAAS,eAAT,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAArB,mBAA0B,MAA1B,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkC,qBAAlC,IAAoD,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAA,CAAA;AAAA,KAK/D;AAAA,WACQ,CAAP,EAAA;AAAA,GAGF;AAEA,EAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AAClC,IAAO,OAAA,OAAA,CAAQ,KAAM,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;AAAA,GACrC;AAGA,EAAO,OAAA,IAAA,CAAA;AACR,CAAA,CAAA;AAEa,MAAA,CAAA,GAAI,SAAU,IAAA,EAAA,GAAS,OAAS,EAAA;AAC5C,EAAA,IAAI,KAAQ,GAAA,WAAA,CAAY,KAAM,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;AAE7C,EAAA,IAAI,KAAU,KAAA,IAAA,IAAQ,KAAU,KAAA,KAAA,CAAA,IAAa,KAAU,KAAA,IAAA;AAAM,IAAO,OAAA,KAAA,CAAA;AAEpE,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC5B,EAAA,IAAI,OAAU,GAAA,IAAA,CAAA;AAEd,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,CAAA,GAAI,GAAG,CAAK,EAAA,EAAA;AAC7C,IAAM,MAAA,QAAA,GAAW,MAAM,CAAC,CAAA,CAAA;AACxB,IAAA,KAAA,GAAQ,QAAQ,QAAQ,CAAA,CAAA;AACxB,IAAA,IAAI,MAAM,CAAI,GAAA,CAAA;AAAG,MAAO,OAAA,MAAA,CAAO,OAAO,OAAO,CAAA,CAAA;AAC7C,IAAA,IAAI,CAAC,KAAA;AAAO,MAAO,OAAA,EAAA,CAAA;AACnB,IAAU,OAAA,GAAA,KAAA,CAAA;AAAA,GACX;AACA,EAAO,OAAA,EAAA,CAAA;AACR,EAAA;AAEa,MAAA,GAAA,GAAM,SAAU,CAAG,EAAA;AAC/B,EAAA,IAAA,GAAO,CAAK,IAAA,IAAA,CAAA;AAEZ,EAAQ,OAAA,CAAA,KAAA,EAAA,CAAA;AAER,EAAA,SAAA,CAAU,OAAQ,CAAA,CAAA,EAAA,KAAM,EAAG,CAAA,IAAI,CAAC,CAAA,CAAA;AACjC,EAAA;AAGa,MAAA,YAAA,GAAe,SAAU,EAAI,EAAA;AACzC,EAAA,SAAA,CAAU,IAAI,EAAE,CAAA,CAAA;AAChB,EAAO,OAAA,MAAM,SAAU,CAAA,MAAA,CAAO,EAAE,CAAA,CAAA;AACjC,EAAA;AAEa,MAAA,IAAA,GAAO,SAAU,EAAI,EAAA;AACjC,EAAA,WAAA,GAAc,EAAM,IAAA,WAAA,CAAA;AACrB,EAAA;AAEA,YAAe,EAAE,GAAK,EAAA,CAAA,EAAG,MAAM,OAAS,EAAA,OAAA,CAAQ,OAAO,YAAa,EAAA;;;;"}