webpack-gc-i18n-plugin 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/node_modules/tslib/tslib.es6.js","../../autoI18nPluginCore/src/translators/translator/IntervalQueue.ts","../../autoI18nPluginCore/src/translators/translator/Translator.ts","../../autoI18nPluginCore/src/translators/google.ts","../../autoI18nPluginCore/src/translators/youdao.ts","../../autoI18nPluginCore/src/translators/baidu.ts","../../autoI18nPluginCore/src/translators/scan.ts","../../autoI18nPluginCore/src/translators/cn-tw.ts","../../autoI18nPluginCore/src/utils/option.ts","../../autoI18nPluginCore/src/enums/language.ts","../../autoI18nPluginCore/src/constants/translate.ts","../../autoI18nPluginCore/src/utils/allLanguage.ts","../../autoI18nPluginCore/src/utils/json.ts","../../autoI18nPluginCore/src/utils/chunk.ts","../../autoI18nPluginCore/src/utils/split.ts","../../autoI18nPluginCore/src/utils/upload.ts","../../autoI18nPluginCore/src/utils/file.ts","../../autoI18nPluginCore/src/utils/translate.ts","../../autoI18nPluginCore/src/utils/base.ts","../../autoI18nPluginCore/src/translators/volcengine.ts","../../autoI18nPluginCore/src/enums/translate.ts","../../autoI18nPluginCore/src/enums/option.ts","../../autoI18nPluginCore/src/option.ts","../../autoI18nPluginCore/src/extends/vue2.ts","../../autoI18nPluginCore/src/filter/visitor/TemplateLiteral.ts","../../autoI18nPluginCore/src/filter/visitor/CallExpression.ts","../../autoI18nPluginCore/src/filter/visitor/StringLiteral.ts","../../autoI18nPluginCore/src/filter/visitor/JSXText.ts","../../autoI18nPluginCore/src/filter/index.ts","../../autoI18nPluginCore/src/manifest/index.ts","../../autoI18nPluginCore/src/runtime/index.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/**\n * 间隔执行队列\n */\nexport class IntervalQueue<T extends any[], U extends any> {\n private delay: number\n private timeout: number | undefined\n private fn: (...args: T) => U\n\n /**\n * @param fn 执行函数\n * @param delay 执行间隔\n * @param timeout 超时时间\n */\n constructor(fn: (...args: T) => U, delay: number, timeout?: number) {\n this.fn = fn\n this.delay = delay\n this.timeout = timeout\n }\n\n private queue: {\n args: T\n resolve: (value: Awaited<U>) => void\n reject: (reason?: any) => void\n }[] = []\n\n private async wait(delay = this.delay) {\n await new Promise(resolve => setTimeout(resolve, delay))\n }\n\n private isRunning = false\n\n private async run() {\n if (this.isRunning) return\n let item: (typeof this.queue)[number] | undefined\n while ((item = this.queue.shift())) {\n const { args, resolve, reject } = item\n this.isRunning = true\n try {\n const result = await this.fn(...args)\n resolve(result)\n } catch (e) {\n reject(e)\n }\n await this.wait()\n }\n this.isRunning = false\n }\n\n /**\n * 执行一次fn\n * @param args fn的入参\n * @returns 返回fn的返回值的Promise\n */\n execute(...args: T) {\n return new Promise<Awaited<U>>((resolve, reject) => {\n this.queue.push({ args, resolve, reject })\n this.run()\n if (this.timeout) {\n setTimeout(() => {\n reject(new Error('IntervalQueue timeout'))\n }, this.timeout)\n }\n })\n }\n}\n","import { IntervalQueue } from './IntervalQueue'\n\nexport interface TranslatorOption {\n /** Translator版本,用于做后续的功能迭代 */\n version?: number\n /**\n * 实际的请求方法\n * @param text 被翻译的文本\n * @param fromKey 源语言\n * @param toKey 目标语言\n * @param separator 分隔符\n * @returns 翻译后的文本\n */\n fetchMethod: (\n text: string,\n fromKey: string,\n toKey: string,\n separator: string\n ) => Promise<string>\n name: string\n /** 单次最大翻译文本长度 */\n maxChunkSize?: number\n /** 执行间隔(默认不开启) */\n interval?: number\n /**\n * 错误处理函数,主要是打印提示\n * @param err 抛出的异常\n * @param defaultErrorHandler 默认的错误处理函数\n * @returns 如果在这里抛出异常会中断翻译\n */\n onError?: (err: unknown, defaultErrorHandler: (error: unknown) => void) => void\n}\n\nexport class Translator {\n public option: Required<TranslatorOption>\n\n constructor(option: TranslatorOption) {\n this.option = this.getResultOption(option)\n }\n\n private defaultErrorHandler = (error: unknown) => {\n const name = this.option.name\n console.error(`翻译api${name ? `【${name}】` : ''}请求异常:${this.getErrorMessage(error)}`)\n }\n\n private getResultOption(option: TranslatorOption) {\n const resultOption: Required<TranslatorOption> = {\n version: 1,\n maxChunkSize: 4500, // 目前默认是4500\n interval: 0,\n onError: this.defaultErrorHandler,\n ...option\n }\n if (resultOption.interval) {\n const getIntervalFn = <T extends unknown[], U extends unknown>(\n fn: (...args: T) => U,\n delay: number\n ) => {\n const queue = new IntervalQueue(fn.bind(null), delay)\n return (...args: T) => {\n return queue.execute(...args)\n }\n }\n resultOption.fetchMethod = getIntervalFn(\n resultOption.fetchMethod,\n resultOption.interval\n )\n }\n return resultOption\n }\n\n protected getErrorMessage(error: unknown) {\n if (error instanceof Error) {\n return error.message\n } else {\n return String(error)\n }\n }\n\n async translate(text: string, fromKey: string, toKey: string, separator: string) {\n let result = ''\n try {\n result = await this.option.fetchMethod(text, fromKey, toKey, separator)\n } catch (error) {\n this.option.onError(error, this.defaultErrorHandler)\n }\n return result\n }\n}\n","/*\n * @Date: 2025-03-11 17:53:11\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-14 14:21:06\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/google.ts\n */\nimport { translate } from '@vitalets/google-translate-api'\nimport { Translator } from './translator'\nimport tunnel from 'tunnel'\n\nexport interface GoogleTranslatorOption {\n proxyOption?: tunnel.ProxyOptions\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 谷歌翻译器\n * \n * 基于@vitalets/google-translate-api,需要翻墙,不稳定,但是免费\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: translator: new GoogleTranslator({\n proxyOption: {\n // 如果你本地的代理在127.0.0.0:8899\n host: '127.0.0.1',\n port: 8899,\n headers: {\n 'User-Agent': 'Node'\n }\n }\n })\n})\n * ```\n */\nexport class GoogleTranslator extends Translator {\n constructor(option: GoogleTranslatorOption) {\n super({\n name: 'Google翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let data = await translate(text, {\n from: fromKey,\n to: toKey,\n ...(option.proxyOption\n ? {\n fetchOptions: {\n agent: tunnel.httpsOverHttp({\n proxy: option.proxyOption\n })\n }\n }\n : {}),\n ...(option.insertOption || {})\n })\n return data['text'] || ''\n },\n onError: (error, cb) => {\n cb(error)\n if (error instanceof Object && 'code' in error && error.code === 'ETIMEDOUT') {\n console.error('❗ 请求超时,请确保你的网络可以访问google ❗')\n }\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","import axios, { AxiosProxyConfig } from 'axios'\nimport { Translator } from './translator'\nimport CryptoJS from 'crypto-js'\n\nexport interface YoudaoTranslatorOption {\n appId: string\n appKey: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 有道翻译器\n * \n * api文档:https://ai.youdao.com/DOCSIRMA/html/trans/api/wbfy/index.html\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new YoudaoTranslator({\n appId: '你申请的appId',\n appKey: '你申请的appKey'\n })\n})\n * ```\n */\nexport class YoudaoTranslator extends Translator {\n /** 有道的语言类型映射不标准,需要手动控制 */\n private readonly YOUDAO_TRANSLATE_KEY_CONVERT_MAP: Record<string, string> = {\n 'zh-cn': 'zh-CHS',\n 'zh-tw': 'zh-CHT'\n }\n\n private truncate(q: string) {\n // 检查输入字符串的长度\n if (q.length <= 20) {\n // 如果长度小于等于20,直接返回原字符串\n return q\n } else {\n // 如果长度大于20,截取前10个字符和后10个字符,并在中间插入长度信息\n const len = q.length\n return q.substring(0, 10) + len + q.substring(len - 10)\n }\n }\n\n private getTranslateKey(key: string) {\n return this.YOUDAO_TRANSLATE_KEY_CONVERT_MAP[key] || key\n }\n\n constructor(option: YoudaoTranslatorOption) {\n super({\n name: '有道翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let salt = new Date().getTime()\n let curTime = Math.round(new Date().getTime() / 1000)\n let str = option.appId + this.truncate(text) + salt + curTime + option.appKey\n let sign = CryptoJS.SHA256(str).toString(CryptoJS.enc.Hex)\n\n const data = {\n q: text,\n appKey: option.appId,\n salt,\n from: this.getTranslateKey(fromKey),\n to: this.getTranslateKey(toKey),\n sign,\n signType: 'v3',\n curtime: curTime,\n ...(option.insertOption || {})\n }\n const response = await axios.post('https://openapi.youdao.com/api', data, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n },\n proxy: option.proxy\n })\n // 请求成功,返回响应数据\n return response.data.translation?.[0] || ''\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请前往有道翻译官方申请翻译key,默认会有50的额度,并请检查额度是否充足。'\n )\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Date: 2025-03-16 23:39:13\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-17 01:11:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/baidu.ts\n */\nimport axios, { AxiosProxyConfig } from 'axios'\nimport { Translator } from './translator'\nimport CryptoJS from 'crypto-js'\n\nexport interface BaiduTranslatorOption {\n appId: string\n appKey: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 百度翻译器\n * \n * api文档:https://api.fanyi.baidu.com/product/113\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new BaiduTranslator({\n appId: '你申请的appId',\n appKey: '你申请的appKey'\n })\n})\n * ```\n */\nexport class BaiduTranslator extends Translator {\n /** 百度的语言类型映射不标准,需要手动控制 */\n protected readonly BAIDU_TRANSLATE_KEY_CONVERT_MAP: Record<string, string> = {\n 'zh-cn': 'zh',\n ja: 'jp',\n ko: 'kor'\n }\n\n protected getTranslateKey(key: string) {\n return this.BAIDU_TRANSLATE_KEY_CONVERT_MAP[key] || key\n }\n\n constructor(option: BaiduTranslatorOption) {\n super({\n name: '百度翻译',\n fetchMethod: async (text, fromKey, toKey, separator) => {\n let salt = new Date().getTime()\n\n const data = {\n q: text,\n appid: option.appId,\n from: this.getTranslateKey(fromKey),\n to: this.getTranslateKey(toKey),\n salt,\n sign: CryptoJS.MD5(option.appId + text + salt + option.appKey).toString(),\n ...(option.insertOption || {})\n }\n const response = await axios.post(\n 'https://fanyi-api.baidu.com/api/trans/vip/translate',\n data,\n {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n },\n proxy: option.proxy\n }\n )\n\n const translatedTexts = response.data?.trans_result\n .map((item: any) => item.dst)\n .filter((_item: string, index: number) => index % 2 === 0)\n .join(separator)\n\n // 请求成功,返回响应数据\n return translatedTexts || ''\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请前往百度翻译官方申请翻译key,每个月都有免费额度,并请检查额度是否充足。'\n )\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Date: 2025-03-31 19:05:57\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-31 19:52:10\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/scan.ts\n */\nimport { Translator, TranslatorOption } from './translator'\n\n/**\n * 空翻译器,不翻译文本,用于配合某些特殊的操作\n */\nexport class EmptyTranslator extends Translator {\n constructor(option: Partial<TranslatorOption> = {}) {\n const resultOption: TranslatorOption = {\n name: '空翻译器',\n fetchMethod: async (text, _from, _to, separator) => {\n // 相当于把翻译结果统一设置为空串\n const value = text.split(separator).fill('')\n return value.join(separator)\n },\n ...option\n }\n super(resultOption)\n }\n // TODO: 后续可以作为基类,提供更多的配置选项\n}\n\n/** @deprecated 别名导出,兼容旧版本 */\nexport const ScanTranslator = EmptyTranslator\n","import { Translator } from './translator'\nimport * as OpenCC from 'opencc-js'\nconst cn2tw = OpenCC.Converter({ from: 'cn', to: 'tw' })\n\nexport class CNToTWTranslator extends Translator {\n constructor() {\n super({\n name: '中翻繁翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let translatedTexts = text\n if (fromKey === 'zh-cn' && toKey === 'zh-tw') {\n translatedTexts = cn2tw(text)\n }\n\n // 请求成功,返回响应数据\n return translatedTexts\n },\n onError: (error, cb) => {\n cb(error)\n console.error('翻译失败')\n }\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-02-29 14:44:18\n * @LastEditTime: 2024-03-01 11:42:34\n * @FilePath: /i18n_translation_vite/autoI18nPluginCore/src/utils/option.ts\n */\nimport { FunctionFactoryOptions } from '../types'\n\nexport class FunctionFactoryOption {\n static originLang: string = ''\n}\n\nexport const functionFactory = (\n fn: (path: string, options: FunctionFactoryOptions) => void,\n options: FunctionFactoryOptions\n) => {\n return (path: any) => {\n fn(path, options)\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-03-11 18:59:10\n * @LastEditTime: 2025-03-16 18:15:25\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/enums/language.ts\n */\n// 待补充...\nexport enum LanguageEnum {}\n\nexport enum OriginLangKeyEnum {\n ZH = 'zh-cn',\n EN = 'en',\n JA = 'ja',\n KO = 'ko',\n RU = 'ru'\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-04-06 15:47:14\n * @LastEditTime: 2025-03-16 18:18:28\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/constants/translate.ts\n */\nimport { OriginLangKeyEnum } from 'src/enums/language'\n\nexport const REGEX_MAP = {\n [OriginLangKeyEnum.ZH]: /[\\u4e00-\\u9fff]/,\n [OriginLangKeyEnum.EN]: /[a-zA-Z]/,\n [OriginLangKeyEnum.JA]: /[\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF]/, // 日语假名和汉字\n [OriginLangKeyEnum.KO]: /[\\uAC00-\\uD7A3]/, // 韩语字母\n [OriginLangKeyEnum.RU]: /[йцукенгшщзхъфывапролджэячсмитьбюё .-]{1,}/ // 俄语字母\n}\n","export default [\n {\n code: 'zh-CN',\n name: '简体中文'\n },\n {\n code: 'zh-TW',\n name: '繁体中文'\n },\n {\n code: 'zh-UG',\n name: '维吾尔语'\n },\n {\n code: 'en-US',\n name: '英文'\n },\n {\n code: 'tr-TR',\n name: '土耳其语'\n },\n {\n code: 'es-ES',\n name: '西班牙语'\n },\n {\n code: 'ja-JP',\n name: '日语'\n },\n {\n code: 'ru-RU',\n name: '俄语'\n },\n {\n code: 'fr-FR',\n name: '法语'\n },\n {\n code: 'de-DE',\n name: '德语'\n },\n {\n code: 'pt-BR',\n name: '巴西葡萄牙语'\n },\n {\n code: 'pt-PT',\n name: '葡萄牙语'\n },\n {\n code: 'ko-KR',\n name: '韩语'\n },\n {\n code: 'vi-VN',\n name: '越南语'\n },\n {\n code: 'sv-SE',\n name: '瑞典语'\n },\n {\n code: 'id-ID',\n name: '印尼语'\n },\n {\n code: 'uk-UA',\n name: '乌克兰语'\n },\n {\n code: 'it-IT',\n name: '意大利语'\n },\n {\n code: 'th-TH',\n name: '泰语'\n },\n {\n code: 'hi-IN',\n name: '印地语'\n },\n {\n code: 'fa-IR',\n name: '波斯语'\n },\n {\n code: 'ro-RO',\n name: '罗马尼亚语'\n },\n {\n code: 'el-GR',\n name: '希腊语'\n },\n {\n code: 'nl-NL',\n name: '荷兰语'\n },\n {\n code: 'cs-CZ',\n name: '捷克语'\n },\n {\n code: 'mn-MN',\n name: '蒙古语'\n },\n {\n code: 'mn-TR',\n name: '传统蒙古语'\n },\n {\n code: 'fi-FI',\n name: '芬兰语'\n },\n {\n code: 'ar-SA',\n name: '阿拉伯语'\n },\n {\n code: 'ar-EG',\n name: '阿拉伯语-埃及'\n },\n {\n code: 'da-DK',\n name: '丹麦语'\n },\n {\n code: 'pl-PL',\n name: '波兰语'\n },\n {\n code: 'nb-NO',\n name: '挪威语'\n },\n {\n code: 'si-LK',\n name: '僧伽罗语'\n }\n]\n","/**\n * JSON 格式化配置类型\n */\ntype IndentType = 'tab' | 'space'\n\ninterface IndentConfig {\n tab: { char: string; size: number }\n space: { char: string; size: number }\n}\n\ninterface JSONFormatConfig {\n type: IndentType\n size?: number\n}\n\n// 默认的缩进配置\nconst indentConfig: IndentConfig = {\n tab: { char: '\\t', size: 1 },\n space: { char: ' ', size: 4 }\n}\n\n// 默认格式化配置\nconst configDefault: JSONFormatConfig = {\n type: 'tab'\n}\n\n// 临时存储替换字符串的数组\nlet placeholderStorage: string[] = []\n\n// 临时存储处理函数\nconst pushPlaceholder = (match: string): string => `\\\\${placeholderStorage.push(match)}\\\\`\nconst popPlaceholder = (_match: string, index: string): string => placeholderStorage[+index - 1]\n\n// 生成缩进字符\nconst generateIndentation = (count: number, indentType: string): string => {\n return new Array(count + 1).join(indentType)\n}\n\n/**\n * 格式化 JSON 字符串\n * @param json JSON 字符串\n * @param indentType 缩进类型\n * @returns 格式化的 JSON 字符串\n */\nfunction formatJSON(json: string, indentType: string): string {\n placeholderStorage = []\n let output = ''\n let indentLevel = 0\n\n // 提取反斜杠和字符串\n json = json\n .replace(/\\\\./g, pushPlaceholder) // 处理反斜杠\n .replace(/(\".*?\"|'.*?')/g, pushPlaceholder) // 处理字符串\n .replace(/\\s+/g, '') // 去除多余空格\n\n // 根据 JSON 内容添加换行和缩进\n for (let i = 0; i < json.length; i++) {\n const char = json.charAt(i)\n\n switch (char) {\n case '{':\n case '[':\n output += char + '\\n' + generateIndentation(++indentLevel, indentType)\n break\n case '}':\n case ']':\n output += '\\n' + generateIndentation(--indentLevel, indentType) + char\n break\n case ',':\n output += ',\\n' + generateIndentation(indentLevel, indentType)\n break\n case ':':\n output += ': '\n break\n default:\n output += char\n break\n }\n }\n\n // 去除数字数组的空格,并还原反斜杠和字符串\n output = output\n .replace(/\\[[\\d,\\s]+?\\]/g, match => match.replace(/\\s/g, ''))\n .replace(/\\\\(\\d+)\\\\/g, popPlaceholder) // 还原填充数据\n .replace(/\\\\(\\d+)\\\\/g, popPlaceholder) // 再次还原填充数据\n\n return output\n}\n\n/**\n * 格式化 JSON 的主函数\n * @param json 需要格式化的 JSON 对象或字符串\n * @param config 配置选项\n * @returns 格式化后的 JSON 字符串\n */\nexport function jsonFormatter(\n json: object | string,\n config: JSONFormatConfig = configDefault\n): string {\n // 确保输入是 JSON 字符串\n const jsonString = typeof json === 'string' ? json : JSON.stringify(json)\n\n // 获取缩进配置\n const indent = indentConfig[config.type]\n if (!indent) {\n throw new Error(`Unrecognized indent type: \"${config.type}\"`)\n }\n\n // 生成缩进字符\n const indentType = generateIndentation(config.size || indent.size, indent.char)\n\n // 格式化 JSON 字符串\n return formatJSON(jsonString, indentType)\n}\n","/*\n * @Date: 2025-02-17 17:11:26\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-02-17 18:00:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/chunk.ts\n */\nimport { SEPARATOR } from './translate'\n\n/**\n * 智能文本分块处理器\n * @param values 待分块的原始文本数组\n * @param maxChunkSize 最大分块长度\n * @returns 包含分块文本和重组方法的对象\n *\n * 功能特性:\n * 1. 自动合并小文本为最大可能块\n * 2. 处理超长文本并给出警告\n * 3. 保证块长度不超过限制\n * 4. 保留原始顺序和分隔符语义\n */\nexport function createTextSplitter(values: string[], maxChunkSize: number) {\n // 分隔符定义(用于合并/拆分时保持语义)\n const SEP_LENGTH = SEPARATOR.length\n\n // 结果存储和缓冲区\n const result: string[] = [] // 最终分块结果\n let buffer: string[] = [] // 当前累积块缓冲区\n let currentSize = 0 // 当前缓冲区字符数(含分隔符)\n\n /**\n * 提交缓冲区内容到结果集\n * - 将缓冲区内容用分隔符连接\n * - 重置缓冲区和计数器\n */\n const commitBuffer = () => {\n if (buffer.length > 0) {\n // 计算实际连接长度用于验证\n const actualLength = buffer.join(SEPARATOR).length\n if (actualLength > maxChunkSize) {\n console.warn(`缓冲区提交异常:生成块长度 ${actualLength} 超过限制`)\n }\n\n result.push(buffer.join(SEPARATOR))\n buffer = []\n currentSize = 0\n }\n }\n\n // 主处理循环:遍历所有原始文本项\n for (const value of values) {\n // 计算需要新增的空间:文本长度 + 分隔符(非首项)\n const neededSpace = value.length + (buffer.length > 0 ? SEP_LENGTH : 0)\n\n // ─── 超长文本处理策略 ───\n if (value.length > maxChunkSize) {\n // 优先提交现有缓冲区内容\n if (buffer.length > 0) commitBuffer()\n\n /**\n * 超长文本处理逻辑:\n * - 长度超过1.5倍限制时发出强警告\n * - 强制单独成块(即使超过限制)\n * - 后续需要特殊处理这些异常块\n */\n if (value.length > maxChunkSize * 1.5) {\n console.warn(\n `超长文本告警:检测到长度 ${value.length} 字符的文本项,可能影响翻译质量`\n )\n }\n // 结果直接新增一个超长文本\n result.push(value)\n continue\n }\n\n // ─── 正常分块逻辑 ───\n // 空间不足时提交当前缓冲区\n if (currentSize + neededSpace > maxChunkSize) {\n commitBuffer()\n }\n\n // 更新缓冲区状态(累加长度需包含分隔符)\n currentSize += neededSpace\n buffer.push(value)\n }\n\n // 提交最终未完成的缓冲区内容\n commitBuffer()\n\n // 返回分块结果\n return result\n}\n","/*\n * @Date: 2025-03-26 20:28:21\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-31 10:29:49\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/split.ts\n */\n// 插件核心文件\n// 字符串切割与转换函数\n// import generate from '@babel/generator'\nimport { getOriginRegex } from './base'\nimport * as types from '@babel/types'\nimport { baseUtils } from '.'\n\n// todo 这个切割函数可以优化,性能可能很差\n/**\n * 根据正则表达式分割字符串,并将符合正则的连续字符拼接起来。\n * @param str - 要分割的字符串。\n * @param separatorRegex - 用于分割字符串的正则表达式。\n * @returns 分割并拼接后的字符串数组。\n */\n/**\n * 这个函数的主要功能是根据给定的正则表达式分割字符串,并对分割结果进行特殊处理。\n * 处理过程分为三个主要步骤:\n *\n * 1. 首先根据分隔符正则和标点符号正则进行初步分割\n * 2. 然后将连续的标点符号和符合分隔符正则的部分重新连接\n * 3. 最后将不符合分隔符正则的相邻部分合并\n *\n * @param str - 需要分割的源字符串\n * @param separatorRegex - 用于分割的正则表达式\n * @returns 处理后的字符串数组\n */\nexport function splitByRegex(str: string, separatorRegex: RegExp): string[] {\n // 定义标点符号的正则表达式\n const punctuationRegex = /[,。?!《》()(),..:!?\"\"'';'\"、0-9\\n\\r\\t\\v\\f]/\n // 创建一个新的正则表达式,用于分割字符串\n const splitRegex = new RegExp(\n `(${separatorRegex.source}|${punctuationRegex.source})`,\n separatorRegex.flags\n )\n\n // 使用正则表达式分割字符串,并过滤掉空字符串\n const splitArr = str.split(splitRegex).filter(Boolean)\n const result: string[] = []\n let currentMatch = ''\n\n // 定义连接标点符号的正则表达式\n const connectPunctuationRegex = /[,。?!《》()(),..:!?;'\"、0-9]/\n // 创建一个新的正则表达式,用于检测是否需要连接\n const connectRegex = new RegExp(\n `(${separatorRegex.source}|${connectPunctuationRegex.source})`,\n separatorRegex.flags\n )\n\n // 遍历分割后的数组\n for (const item of splitArr) {\n if (connectRegex.test(item)) {\n // 如果当前项符合连接条件,则将其添加到当前匹配字符串中\n currentMatch += item\n } else {\n // 如果当前匹配字符串不为空,则将其添加到结果数组中\n if (currentMatch) {\n result.push(currentMatch)\n currentMatch = ''\n }\n // 将当前项添加到结果数组中\n result.push(item)\n }\n }\n\n // 如果最后一个匹配字符串不为空,则将其添加到结果数组中\n if (currentMatch) {\n result.push(currentMatch)\n }\n\n // 再遍历一次,把不符合separatorRegex 这个正则的拼起来\n const finalResult: string[] = []\n let tempStr = ''\n\n for (let i = 0; i < result.length; i++) {\n const item = result[i]\n if (separatorRegex.test(item)) {\n if (tempStr) {\n finalResult.push(tempStr)\n tempStr = ''\n }\n finalResult.push(item)\n } else {\n tempStr += item\n if (i === result.length - 1 || separatorRegex.test(result[i + 1])) {\n finalResult.push(tempStr)\n tempStr = ''\n }\n }\n }\n\n if (tempStr) {\n finalResult.push(tempStr)\n }\n return mergeInlineTextSeparatedOriginChunks(finalResult, separatorRegex)\n}\n\nfunction mergeInlineTextSeparatedOriginChunks(strArray: string[], separatorRegex: RegExp) {\n const result: string[] = []\n\n for (let i = 0; i < strArray.length; i++) {\n let current = strArray[i]\n\n if (!separatorRegex.test(current) && i + 1 < strArray.length && separatorRegex.test(strArray[i + 1])) {\n const { beforeInlineText, inlineText } = splitTrailingInlineText(current)\n if (inlineText && /[^\\s\\u00a0]/.test(inlineText)) {\n if (beforeInlineText) {\n result.push(beforeInlineText)\n }\n current = `${normalizeInlineTextPrefix(inlineText)}${strArray[i + 1]}`\n i += 1\n }\n }\n\n if (\n !separatorRegex.test(current) &&\n isInlineTextSeparator(current) &&\n /[^\\s\\u00a0]/.test(current) &&\n i + 1 < strArray.length &&\n separatorRegex.test(strArray[i + 1])\n ) {\n current = `${normalizeInlineTextPrefix(current)}${strArray[i + 1]}`\n i += 1\n }\n\n if (separatorRegex.test(current)) {\n while (\n i + 2 < strArray.length &&\n isInlineTextSeparator(strArray[i + 1]) &&\n separatorRegex.test(strArray[i + 2])\n ) {\n current += `${normalizeInlineTextSeparator(strArray[i + 1])}${strArray[i + 2]}`\n i += 2\n }\n if (i + 1 < strArray.length) {\n const { inlineText, rest } = splitLeadingInlineText(strArray[i + 1])\n if (inlineText) {\n current += normalizeInlineTextSeparator(inlineText)\n strArray[i + 1] = rest\n }\n }\n }\n\n if (current) {\n result.push(current)\n }\n }\n\n return result\n}\n\nfunction isInlineTextSeparator(value: string) {\n return value !== '' && !/[<>]/.test(value)\n}\n\nfunction normalizeInlineTextSeparator(value: string) {\n return /^[\\s\\u00a0]+$/.test(value) ? ' ' : value.replace(/[\\s\\u00a0]+/g, ' ')\n}\n\nfunction normalizeInlineTextPrefix(value: string) {\n return value.replace(/[\\s\\u00a0]+/g, ' ').trimStart()\n}\n\nfunction splitLeadingInlineText(value: string) {\n const tagIndex = value.search(/[<>]/)\n if (tagIndex === -1) {\n return { inlineText: value, rest: '' }\n }\n return {\n inlineText: value.slice(0, tagIndex),\n rest: value.slice(tagIndex)\n }\n}\n\nfunction splitTrailingInlineText(value: string) {\n const tagEndIndex = value.lastIndexOf('>')\n if (tagEndIndex === -1) {\n return {\n beforeInlineText: '',\n inlineText: value\n }\n }\n return {\n beforeInlineText: value.slice(0, tagEndIndex + 1),\n inlineText: value.slice(tagEndIndex + 1)\n }\n}\n\n/**\n * 检查字符串是否需要切割。\n * @param str - 要检查的字符串。\n * @returns 如果字符串需要切割,则返回 true,否则返回 false。\n */\nexport function checkNeedSplit(str: string) {\n // 检查字符串中是否包含需要切割的特殊字符\n return (\n str.includes('\\\\') ||\n /<\\/?[A-Za-z][^>]*>/.test(str)\n )\n}\n\n/**\n * @description: 将字符串数组转换为babel的模板字符串节点\n * @param {string[]} strArray - 字符串数组\n * @return {types.CallExpression} - babel的深度扫描的表达式\n */\nexport function convertToTemplateLiteral(strArray: string[], option?: any): types.CallExpression {\n const quasis: types.TemplateElement[] = [types.templateElement({ raw: '', cooked: '' }, false)]\n const expressions: types.Expression[] = []\n\n strArray.forEach(str => {\n if (getOriginRegex().test(str)) {\n expressions.push(\n baseUtils.createI18nTranslator({\n value: str,\n isExpression: true,\n insertOption: option\n })\n )\n quasis.push(types.templateElement({ raw: '', cooked: '' }, false))\n } else {\n const quasi = quasis[quasis.length - 1]\n quasi.value.raw += str\n quasi.value.cooked = `${quasi.value.cooked || ''}${str}`\n }\n })\n\n quasis[quasis.length - 1].tail = true\n\n const templateLiteral = types.templateLiteral(quasis, expressions)\n const deepScanCall = types.callExpression(types.identifier('$deepScan'), [templateLiteral])\n // 打印转换结果\n // console.log('deepScanCall', (generate as any).default(deepScanCall).code)\n return deepScanCall\n}\n","// 上传到远程服务器\n// import { getAppCode, saveConfig, convertToUploadJson } from './config.js'\nimport { option } from '../option'\nimport axios from 'axios'\nimport _ from 'lodash'\nexport async function upload(json: object) {\n const { appCode, targetLangList } = option\n let data: any = []\n _.map(json, (value: object, key: string) => {\n _.map(targetLangList, (item: string) => {\n const parts = item.split('-')\n const lang = parts[0] + '-' + parts[1].toUpperCase()\n data.push({\n page: 'common',\n key,\n lang,\n value: _.get(value, item, key)\n })\n })\n })\n const res = await axios.post(\n 'http://192.168.0.104:8108/i18n-web/kv_translate/batch',\n { appCode, data },\n {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: '728635D658AE11F18F33000C29A621CA'\n }\n }\n )\n if (res.status === 200 && res.data.result === 0) {\n console.info('上传翻译服务成功✔')\n } else {\n console.error('上传翻译服务失败❌')\n console.log(`请求数据为:`, JSON.stringify(data))\n console.log(`返回报错信息为:`, res.data)\n }\n}\n","import allLanguage from './allLanguage'\nimport { jsonFormatter } from './json'\nimport { option } from '../option'\nimport { uploadUtils } from '.'\nimport path from 'path'\nimport _ from 'lodash'\nimport fs from 'fs'\n\n/**\n * @description: 新建国际化配置文件夹\n * @return {*}\n */\nexport function initLangFile() {\n if (!fs.existsSync(option.globalPath)) {\n fs.mkdirSync(option.globalPath) // 创建lang文件夹\n }\n initLangTranslateJSONFile()\n initTranslateBasicFnFile()\n}\n/**\n * Normalize a language key for runtime storage aliases.\n * Examples: zh-cn -> zhcn, en -> en.\n */\nexport function normalizeRuntimeLangKey(langKey: string) {\n return String(langKey || '')\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '')\n}\n\nfunction resolveLanguageMeta(langKey: string) {\n const [lang, region] = langKey.split('-')\n const normalizedCode = region ? `${lang}-${region.toUpperCase()}` : langKey\n const matched = _.find(allLanguage, { code: normalizedCode }) as\n | { code: string; name: string }\n | undefined\n\n return {\n code: matched?.code || normalizedCode,\n name: matched?.name || langKey\n }\n}\n\nfunction getRuntimeLangKeys() {\n return Array.from(new Set([option.originLang, ...option.targetLangList].filter(Boolean)))\n}\n\n/**\n * Create the self-contained browser runtime written to lang/index.js.\n *\n * The runtime intentionally avoids importing an external gc_i18n package so generated\n * examples/apps can translate transformed calls immediately after importing ./lang.\n */\nexport function createRuntimeIndexCode() {\n const namespace = option.namespace || 'lang'\n const commonTranslateKey = option.commonTranslateKey || ''\n const originRuntimeKey = normalizeRuntimeLangKey(option.originLang)\n const languages = option.targetLangList.map(resolveLanguageMeta)\n const langEntries = getRuntimeLangKeys()\n .map(langKey => {\n const runtimeKey = normalizeRuntimeLangKey(langKey)\n return ` '${runtimeKey}': getJSONKey('${langKey}', langJSON)`\n })\n .join(',\\n')\n\n return `import langJSON from './index.json'\n\nexport const languages = ${JSON.stringify(languages, null, 4)}\n\nconst DEFAULT_NAMESPACE = '${namespace}'\nconst COMMON_TRANSLATE_KEY = '${commonTranslateKey}'\nconst ORIGIN_LANG = '${originRuntimeKey}'\nconst root = typeof globalThis !== 'undefined' ? globalThis : window\n\nfunction normalizeLangKey(lang) {\n return String(lang || '').toLowerCase().replace(/[^a-z0-9]/g, '')\n}\n\nfunction getJSONKey(key, insertJSONObj = langJSON) {\n const langObj = {}\n Object.keys(insertJSONObj || {}).forEach(value => {\n langObj[value] = insertJSONObj[value] && insertJSONObj[value][key]\n })\n return langObj\n}\n\nfunction createTranslate(defaultNamespace) {\n const translate = function (key, val, nameSpace = defaultNamespace) {\n const langPackage = translate[nameSpace] || {}\n return langPackage[key] || val\n }\n translate.locale = function (locale, nameSpace = defaultNamespace) {\n translate[nameSpace] = locale || {}\n }\n return translate\n}\n\nroot.$t = root.$t || createTranslate(DEFAULT_NAMESPACE)\nroot.$$t = root.$$t || function (val) {\n return val\n}\nroot.$deepScan = root.$deepScan || function (val) {\n return val\n}\nroot._getJSONKey = root._getJSONKey || getJSONKey\n\nconst runtimeLangMap = {\n${langEntries}\n}\nconst existingLangMap = root.langMap || {}\nconst langMap = { ...runtimeLangMap, ...existingLangMap }\nroot.langMap = langMap\n\nfunction readStorageLang(key) {\n if (!key || !root.localStorage || typeof root.localStorage.getItem !== 'function') {\n return ''\n }\n return root.localStorage.getItem(key) || ''\n}\n\nfunction applyLanguage(lang, nameSpace = DEFAULT_NAMESPACE) {\n const runtimeKey = normalizeLangKey(lang) || ORIGIN_LANG\n const locale = langMap[runtimeKey] || langMap[ORIGIN_LANG] || {}\n root.$t.locale(locale, nameSpace)\n return locale\n}\n\nconst storedCommonLang = readStorageLang(COMMON_TRANSLATE_KEY)\nconst storedLang = readStorageLang('lang')\napplyLanguage(storedCommonLang || storedLang || ORIGIN_LANG)\n\nroot.$changeLang = function (lang, nameSpace = DEFAULT_NAMESPACE) {\n return applyLanguage(lang, nameSpace)\n}\n\nexport default {\n install() {\n applyLanguage(readStorageLang(COMMON_TRANSLATE_KEY) || readStorageLang('lang') || ORIGIN_LANG)\n }\n}\n`\n}\n\n/**\n * @description: 初始化翻译基础函数文件\n * @returns {void}\n */\nexport async function initTranslateBasicFnFile() {\n const indexPath = path.join(option.globalPath, 'index.js')\n\n // 项目已有 lang/index.js 时保留项目自定义运行时,不再由插件覆盖。\n if (fs.existsSync(indexPath)) return\n\n const translateBasicFnText = createRuntimeIndexCode()\n fs.writeFileSync(indexPath, translateBasicFnText)\n}\n/**\n * @description: 生成国际化JSON文件\n * @return {*}\n */\nexport function initLangTranslateJSONFile() {\n const indexPath = path.join(option.globalPath, 'index.json')\n if (!fs.existsSync(indexPath)) {\n // 不存在就创建\n fs.writeFileSync(indexPath, JSON.stringify({})) // 创建\n }\n}\n\n/**\n * @description: 读取国际化JSON文件\n * @return {*}\n */\nexport function getLangTranslateJSONFile() {\n const filePath = path.join(option.globalPath, 'index.json')\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n return content\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n console.log('❌读取JSON配置文件异常,文件不存在')\n } else {\n console.log('❌读取JSON配置文件异常,无法读取文件')\n }\n return JSON.stringify({})\n }\n}\n\n/**\n * @description: 基于langKey获取JSON配置文件中对应语言对象\n * @param {string} key\n * @return {*}\n */\nexport function getLangObjByJSONFileWithLangKey(\n key: string,\n insertJSONObj: object | undefined = undefined\n) {\n // 获取翻译配置对象,优先使用传入的配置,否则从本地文件读取\n const JSONObj = insertJSONObj || JSON.parse(getLangTranslateJSONFile())\n\n // 初始化语言映射对象,用于存储不同语言的hash: value映射\n const langObj: Record<string, any> = {}\n\n // 遍历hash,提取hash对应语言key的值,并写入到langObj\n Object.keys(JSONObj).forEach(langCode => {\n langObj[langCode] = JSONObj[langCode][key]\n })\n\n // 返回当前语言的hash: value映射对象\n // 例如: 'zh-cn' > {'hash1': '你好', 'hash2': '世界'}\n // 'en' > {'hash1': 'hello', 'hash2': 'world'}\n return langObj\n}\n\n/**\n * @description: 设置国际化JSON文件\n * @return {*}\n */\nexport function setLangTranslateJSONFile(obj: object) {\n const filePath = path.join(option.globalPath, 'index.json')\n const jsonObj = jsonFormatter(obj)\n if (fs.existsSync(filePath)) {\n fs.writeFileSync(filePath, jsonObj)\n } else {\n console.log('❌JSON配置文件写入异常,文件不存在')\n }\n}\n\n/**\n * @description: 构建时把lang配置文件设置到打包后到主文件中\n * @return {*}\n */\nexport function uploadFile() {\n const JSONObj = JSON.parse(getLangTranslateJSONFile())\n uploadUtils.upload(JSONObj)\n // if (!option.buildToDist) return\n // let langObjMap: any = {}\n // option.langKey.forEach(item => {\n // langObjMap[item] = getLangObjByJSONFileWithLangKey(item)\n // })\n // if (fs.existsSync(option.distPath)) {\n // fs.readdir(option.distPath, (err, files) => {\n // if (err) {\n // console.error('❌构建文件夹为空,翻译配置无法写入')\n // return\n // }\n\n // files.forEach(file => {\n // if (file.startsWith(option.distKey) && file.endsWith('.js')) {\n // const filePath = path.join(option.distPath, file)\n // fs.readFile(filePath, 'utf-8', (err, data) => {\n // if (err) {\n // console.log(filePath)\n // console.error('❌构建主文件不存在,翻译配置无法写入')\n // return\n // }\n // let buildLangConfigString = ''\n // Object.keys(langObjMap).forEach(item => {\n // buildLangConfigString =\n // buildLangConfigString +\n // `globalThis['${option.namespace}']['${item}']=${JSON.stringify(langObjMap[item])};`\n // })\n // try {\n // // 翻译配置写入主文件\n // fs.writeFileSync(\n // filePath,\n // `globalThis['${option.namespace}']={};${buildLangConfigString}` +\n // data\n // )\n // console.info('恭喜:翻译配置写入构建主文件成功🌟🌟🌟')\n // } catch (err) {\n // console.error('翻译配置写入构建主文件失败:', err)\n // }\n // })\n // }\n // })\n // })\n // }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-30 18:23:03\n * @LastEditTime: 2025-03-16 19:12:54\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/translate.ts\n */\n\nimport { option } from 'src/option'\nimport { REGEX_MAP } from 'src/constants'\nimport * as fileUtils from './file'\nimport { chunkUtils } from '.'\nimport fs from 'fs'\nimport path from 'path'\n\nexport const SEPARATOR = '\\n┇┇┇\\n'\nexport const SPLIT_SEPARATOR_REGEX = /\\n┇ *┇ *┇\\n/\n\ntype langObj = { [key: string]: string }\n\nexport let langObj: langObj = {}\n\nfunction normalizeValueForDedupe(value: string) {\n return String(value || '').trim()\n}\n\nfunction findKeyByValue(valueMap: Record<string, string>, value: string) {\n const exactKey = Object.entries(valueMap).find(([, oldValue]) => oldValue === value)?.[0]\n if (exactKey) return exactKey\n\n const normalizedValue = normalizeValueForDedupe(value)\n return Object.entries(valueMap).find(\n ([, oldValue]) => normalizeValueForDedupe(oldValue) === normalizedValue\n )?.[0]\n}\n\nfunction getExistingOriginLangObj() {\n try {\n const filePath = path.join(option.globalPath, 'index.json')\n if (!fs.existsSync(filePath)) return {}\n return fileUtils.getLangObjByJSONFileWithLangKey(option.originLang)\n } catch (error) {\n return {}\n }\n}\n\nexport function getLangKeyByValue(value: string) {\n return findKeyByValue(langObj, value) || findKeyByValue(getExistingOriginLangObj(), value)\n}\n\nexport function resolveLangKey(key: string, value: string) {\n return getLangKeyByValue(value) || key\n}\n\nfunction isTemplateValue(value: string) {\n return /\\$\\{[^}]+}/.test(value)\n}\n\nfunction hasOriginSymbols(value: string) {\n const originRegex = REGEX_MAP[option.originLang as keyof typeof REGEX_MAP]\n return originRegex ? originRegex.test(value) : false\n}\n\nfunction getTemplateSemanticSplitSegments(value: string) {\n const segments = value.split(/\\$\\{[^}]+}/g)\n const result = new Set<string>()\n\n for (let index = 0; index < segments.length - 1; index++) {\n const beforeValue = segments[index]\n const afterValue = segments[index + 1]\n\n if (!hasOriginSymbols(beforeValue) || !hasOriginSymbols(afterValue)) continue\n ;[beforeValue, afterValue].forEach(segment => {\n if (segment.trim().length > 1) {\n result.add(segment)\n }\n })\n }\n\n return [...result]\n}\n\nfunction isTemplateStaticSegment(value: string) {\n return Object.values(langObj).some(\n oldValue =>\n isTemplateValue(oldValue) &&\n getTemplateSemanticSplitSegments(oldValue).includes(value)\n )\n}\n\nfunction removeTemplateStaticSegments(value: string) {\n const segments = new Set(getTemplateSemanticSplitSegments(value))\n Object.keys(langObj).forEach(key => {\n if (segments.has(langObj[key])) {\n delete langObj[key]\n }\n })\n}\n\n/**\n * @description: 设置翻译对象属性\n * @param {string} key\n * @param {string} value\n * @return {*}\n */\nexport function setLangObj(key: string, value: string) {\n if (isTemplateValue(value)) {\n removeTemplateStaticSegments(value)\n } else if (isTemplateStaticSegment(value)) {\n return\n }\n\n const existingKey = getLangKeyByValue(value)\n if (existingKey && existingKey !== key) {\n return\n }\n if (!langObj[key]) {\n langObj[key] = value\n }\n}\n\nfunction dedupeLangObjMapByOriginValue(originLangObjMap: Record<string, any>) {\n const originMap = originLangObjMap[option.originLang]\n const valueKeyMap = new Map<string, string>()\n\n Object.keys(originMap).forEach(key => {\n const value = originMap[key]\n const normalizedValue = normalizeValueForDedupe(value)\n const existingKey = valueKeyMap.get(normalizedValue)\n\n if (!existingKey) {\n valueKeyMap.set(normalizedValue, key)\n return\n }\n\n option.langKey.forEach(lang => {\n delete originLangObjMap[lang][key]\n })\n })\n}\n\n/**\n * @description: 读取翻译对象\n * @return {*}\n */\nexport function getLangObj() {\n return langObj\n}\n\n/**\n * @description: 初始化翻译对象\n * @param {langObj} obj\n * @return {*}\n */\nexport function initLangObj(obj: langObj) {\n if (!Object.keys(langObj).length) {\n langObj = obj\n }\n}\n\n// todo 类型修复\n/**\n * 自动生成多语言配置文件的核心方法\n *\n * 主要流程:\n * 1. 加载现有翻译文件\n * 2. 对比找出新增需要翻译的内容\n * 3. 分块并行翻译所有目标语言\n * 4. 合并翻译结果并生成最终配置文件\n *\n * 异常处理:\n * - 翻译结果不完整时中断流程\n * - 文件读写失败时明确报错\n */\nexport async function autoTranslate() {\n const enabled = typeof option.enabled === 'function' ? option.enabled() : option.enabled\n\n if (!enabled) return\n\n // 初始化现有翻译文件缓存\n const originLangObjMap: Record<string, any> = {}\n\n // 加载所有语言的现有翻译内容\n // 获取当前待翻译内容(深拷贝避免污染原始数据)\n const currentLangObj = JSON.parse(JSON.stringify(getLangObj()))\n option.langKey.forEach(lang => {\n const keyMap = fileUtils.getLangObjByJSONFileWithLangKey(lang)\n originLangObjMap[lang] = keyMap\n })\n\n // 筛选需要翻译的新增内容\n const transLangObj: Record<string, string> = {}\n Object.keys(currentLangObj).forEach(key => {\n if (!originLangObjMap[option.originLang][key]) {\n transLangObj[key] = currentLangObj[key]\n }\n })\n\n // 无新内容提前退出\n if (Object.keys(transLangObj).length === 0) {\n return\n }\n\n // 初始化翻译结果存储结构\n const newLangObjMap: Record<string, (string | number)[]> = {}\n\n // 遍历所有目标语言进行处理\n for (let langIndex = 0; langIndex < option.langKey.length; langIndex++) {\n const currentLang = option.langKey[langIndex]\n\n // 原始语言直接存储原文,读取扫出来的元素翻译内容\n if (langIndex === 0) {\n newLangObjMap[option.originLang] = Object.values(transLangObj)\n continue\n }\n\n console.info('开始自动翻译...')\n\n // ─── 分块翻译流程开始 ───\n const translatedValues = await translateChunks(transLangObj, option.langKey[langIndex])\n // ─── 分块翻译流程结束 ───=\n\n // ─── 翻译结果校验 ───\n if (translatedValues.length !== Object.keys(transLangObj).length) {\n console.error(\n '❌ 使用付费翻译时,请检查翻译API额度是否充足,或是否已申请对应翻译API使用权限'\n )\n console.error(`❌ 翻译结果不完整\n 预期数量: ${Object.keys(transLangObj).length}\n 实际数量: ${translatedValues.length}\n 样例数据: ${JSON.stringify(translatedValues.slice(0, 3))}`)\n return\n }\n\n // 存储当前语言翻译结果\n newLangObjMap[currentLang] = translatedValues\n console.info(`✅ ${currentLang} 翻译完成`)\n }\n\n // ─── 合并翻译结果到配置 ───\n Object.keys(transLangObj).forEach((key: any, index) => {\n option.langKey.forEach(item => {\n originLangObjMap[item][key] = newLangObjMap[item][index]\n })\n })\n dedupeLangObjMapByOriginValue(originLangObjMap)\n\n // ─── 生成最终配置文件结构 ───\n console.log('📄 构建配置文件数据结构...')\n const configLangObj: Record<string, Record<string, string>> = {}\n Object.keys(originLangObjMap[option.originLang]).forEach(key => {\n configLangObj[key] = {}\n option.langKey.forEach(lang => {\n configLangObj[key][lang] = originLangObjMap[lang][key]\n })\n })\n\n // ─── 写入文件系统 ───\n try {\n fileUtils.setLangTranslateJSONFile(configLangObj)\n console.info('🎉 多语言配置文件已成功更新')\n } catch (error) {\n console.error('❌ 配置文件写入失败,原因:', error)\n // todo 可添加重试逻辑或回滚机制\n }\n}\n\n/**\n * @description: 新增语言类型配置补全\n * @param {any} obj\n * @return {*}\n */\nexport function languageConfigCompletion(obj: any) {\n if (!Object.keys(obj)) return\n const enabled = typeof option.enabled === 'function' ? option.enabled() : option.enabled\n if (!enabled) return\n let needCompletionList: any[] = []\n const JSONobj = JSON.parse(fileUtils.getLangTranslateJSONFile())\n option.targetLangList.forEach(item => {\n // 获取目标语言 hash:value 对象 和 语言的复合对象,如果当前语言不存在,是langObj的value卡都为空\n let langObj = fileUtils.getLangObjByJSONFileWithLangKey(item, JSONobj)\n needCompletionList.push({\n key: item,\n curLangObj: langObj\n })\n })\n needCompletionList.forEach(async item => {\n await completionTranslateAndWriteConfigFile(obj, item.curLangObj, item.key)\n })\n}\n\n/**\n * @description: 补全新增语言翻译写入函数\n * @param langObj\n * @param curLangObj\n * @param translateKey\n * @return\n */\nexport async function completionTranslateAndWriteConfigFile(\n langObj: Record<string, string>,\n curLangObj: Record<string, string>,\n translateKey: string\n) {\n // 构建需要翻译的语言映射对象\n // langObj: 源语言的键值对映射,格式为 { hash: sourceText }\n // curLangObj: 目标语言的键值对映射,格式为 { hash: targetText },未翻译的值为空\n\n // 创建待翻译内容对象,仅包含未翻译的条目,key是hash,value是源语言的对应hash的文本\n const transLangObj: Record<string, string> = {}\n Object.keys(langObj).forEach(key => {\n // 如果目标语言中对应的翻译为空,则将 源语言的对应hash的文本 加入待翻译内容对象 中\n if (curLangObj[key] === undefined) {\n transLangObj[key] = langObj[key]\n }\n })\n\n if (!Object.values(transLangObj).length) return\n\n // ─── 分块翻译流程开始 ───\n\n console.info('进入新增语言补全翻译...')\n\n // 调用抽离的函数\n const resultValues = await translateChunks(transLangObj, translateKey)\n // ─── 分块翻译流程结束 ───\n\n if (resultValues.length !== Object.values(langObj).length) {\n console.error('翻译异常,翻译结果缺失❌')\n return\n }\n let newLangObjMap = resultValues\n console.info('翻译成功⭐️⭐️⭐️')\n\n Object.keys(transLangObj).forEach((key, index) => {\n curLangObj[key] = newLangObjMap[index]\n })\n\n console.log('开始写入JSON配置文件...')\n const configLangObj: any = JSON.parse(fileUtils.getLangTranslateJSONFile())\n\n Object.keys(transLangObj).forEach(key => {\n configLangObj[key][translateKey] = curLangObj[key]\n })\n try {\n fileUtils.setLangTranslateJSONFile(configLangObj)\n console.info('JSON配置文件写入成功⭐️⭐️⭐️')\n } catch (error) {\n console.error('❌JSON配置文件写入失败' + error)\n }\n console.info('新增语言翻译补全成功⭐️⭐️⭐️')\n}\n\n// 分块翻译流程函数\nasync function translateChunks(transLangObj: Record<string, string>, translateKey: string) {\n const { translator } = option\n const placeholders: string[] = []\n const protectedValues = Object.values(transLangObj).map(value =>\n protectInterpolationPlaceholders(value, placeholders)\n )\n // 获取分块后的文本列表\n const translationChunks = chunkUtils.createTextSplitter(\n protectedValues,\n translator.option.maxChunkSize\n )\n // 并行执行分块翻译\n const translatePromises: Promise<string>[] = []\n for (let i = 0; i < translationChunks.length; i++) {\n translatePromises.push(\n translator.translate(translationChunks[i], option.originLang, translateKey, SEPARATOR)\n )\n }\n\n // 等待所有分块完成并合并结果\n const chunkResults = await Promise.all(translatePromises)\n return chunkResults\n .map(item => {\n item = restoreInterpolationPlaceholders(item, placeholders)\n // 提取分割逻辑到单独的函数中,提高代码复用性\n const splitTranslation = (text: string, separatorRegex: RegExp) => {\n return text.split(separatorRegex).map(v => v.trim())\n }\n\n // 分割符可能会被翻译,所以这里做了兼容处理\n if (SPLIT_SEPARATOR_REGEX.test(item)) {\n return splitTranslation(item, SPLIT_SEPARATOR_REGEX)\n } else {\n const lines = item.split('\\n')\n const separator = lines.find(line => line.length === 3)\n let value: string[] = []\n if (separator) {\n value = splitTranslation(item, new RegExp(`\\\\n${separator}\\\\n`))\n }\n const realList = value.filter(Boolean)\n if (realList.length > 1) {\n return realList\n }\n return splitTranslation(item, SPLIT_SEPARATOR_REGEX)\n }\n })\n .flat()\n}\n\nfunction protectInterpolationPlaceholders(value: string, placeholders: string[]) {\n return value.replace(/\\$\\{[^}]*\\}/g, match => {\n const index = placeholders.push(match) - 1\n return `__GC_I18N_PH_${index}__`\n })\n}\n\nfunction restoreInterpolationPlaceholders(value: string, placeholders: string[]) {\n return value.replace(/__GC_I18N_PH_(\\d+)__/g, (match, index) => {\n return placeholders[Number(index)] || match\n })\n}\n/**\n * @description: 清理多余的翻译配置JSON文件\n * @return {void} 无返回值\n */\nexport function cleanupUnusedTranslations() {\n if (!option.isClear) return\n console.log('🧹 进入清理流程')\n // 获取当前的语言对象,如果不存在则使用空对象\n const langObj = getLangObj() || {}\n\n // 创建一个Set用于存储当前语言对象的所有key,便于快速查找\n let langSet = new Set(Object.keys(langObj))\n\n // 获取基础对象:优先使用传入的insertObj,否则从翻译文件中读取\n const baseObj = JSON.parse(fileUtils.getLangTranslateJSONFile())\n\n // 获取基础对象的所有key\n const baseObjKeys = Object.keys(baseObj)\n // 遍历所有key,删除在当前语言对象中不存在的配置\n baseObjKeys.forEach(key => {\n if (!langSet.has(key)) {\n baseObj[key] && delete baseObj[key]\n }\n })\n fileUtils.setLangTranslateJSONFile(baseObj)\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-11 10:01:43\n * @LastEditTime: 2025-03-28 19:07:17\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/base.ts\n */\nimport { FunctionFactoryOption } from './option'\nimport { OriginLangKeyEnum } from 'src/enums'\nimport { resolveLangKey } from './translate'\nimport { REGEX_MAP } from 'src/constants'\n// import generate from '@babel/generator'\nimport { Node } from '@babel/types'\nimport { option } from '../option'\nimport types from '@babel/types'\n\nexport function getOriginRegex() {\n const originLang = FunctionFactoryOption.originLang as OriginLangKeyEnum\n return REGEX_MAP[originLang]\n}\n\n/**\n * @description: 是否包含来源语言字符\n * @param {string} code\n * @return {*}\n */\nexport function hasOriginSymbols(code: string) {\n return getOriginRegex().test(code)\n}\n\n/**\n * @description: 过滤注释\n * @param {string} code\n * @return {*}\n */\nexport const removeComments = function (code: string) {\n // 使用正则表达式匹配并删除单行注释\n code = code.replace(/\\/\\/.*?\\n/g, '')\n // 使用正则表达式匹配并删除多行注释\n code = code.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // 使用正则表达式匹配并删除HTML注释\n code = code.replace(/<!--[\\s\\S]*?-->/g, '')\n return code\n}\n\n/**\n * @description: 用于判断提供的值是否符合正则表达式数组中的任一规则,符合则跳过\n * @param {*} value\n * @param {*} regexArray\n * @return {*}\n */\nexport function checkAgainstRegexArray(value: string, regexArray: string[] | RegExp[]) {\n for (let i = 0; i < regexArray.length; i++) {\n const regex = typeof regexArray[i] === 'string' ? new RegExp(regexArray[i]) : regexArray[i]\n if ((regex as RegExp).test(value)) {\n return true // 如果符合任何一个规则,返回 true\n }\n }\n return false // 如果所有规则都不符合,返回 false\n}\n\n/**\n * @description: 用于解析抽象语法树中的调用表达式,并提取出调用的名称,如a.b.c() 取 c。\n * @param {any} node\n * @return {*}\n */\nexport function extractFunctionName(node: Node): string {\n let callName = ''\n function callObjName(callObj: any, name: string): string {\n name += '.' + (callObj.property as any).name\n if (types.isMemberExpression(callObj.object)) {\n // isMemberExpression: 是否是成员表达式\n return callObjName(callObj.object, name)\n }\n name = (callObj.object as any).name + name\n return name\n }\n if (types.isCallExpression(node)) {\n // isCallExpression: 是否是调用表达式\n if (types.isMemberExpression((node as any).callee)) {\n callName = callObjName((node as any).callee, '')\n } else {\n callName = ((node as any).callee as any).name || ''\n }\n }\n return callName\n}\n\n/**\n * @description 判断调用表达式是否是 console.*(...)\n * 只匹配真实点成员调用,例如 console.log(...) / console.debug(...)。\n */\nexport function isConsoleMemberCall(node: Node) {\n if (!types.isCallExpression(node) || !types.isMemberExpression(node.callee)) {\n return false\n }\n\n const { object, property, computed } = node.callee\n return (\n !computed &&\n types.isIdentifier(object) &&\n object.name === 'console' &&\n types.isIdentifier(property)\n )\n}\n\n/**\n * @description 判断当前节点是否位于 console.*(...) 的参数子树中。\n */\nexport function isInsideConsoleCallArgument(path: any) {\n let currentPath = path\n while (currentPath?.parentPath) {\n const parentPath = currentPath.parentPath\n const parentNode = parentPath.node\n\n if (isConsoleMemberCall(parentNode)) {\n return parentNode.arguments.some((arg: any) => arg === currentPath.node)\n }\n\n currentPath = parentPath\n }\n\n return false\n}\n\n/**\n * @description: 提取文件的中文部分\n * @param {string} fileContent\n * @return {*}\n */\nexport const extractCnStrings = (fileContent: string) => {\n const regex = /[^\\x00-\\xff]+/g\n return extractStrings(fileContent, regex)\n}\n\n/**\n * @description: 提取文件指定部分内容\n * @param {string} fileContent\n * @param {any} regex\n * @return {*}\n */\nexport function extractStrings(fileContent: string, regex: any) {\n const matches = fileContent.match(regex)\n return matches ? matches.filter((item, index) => matches.indexOf(item) === index) : []\n}\n\n/**\n * @description: 生成i8n翻译函数\n * @param {string} value\n * @param {boolean} isExpression\n * @param {string} key\n * @return {*}\n */\nexport function createI18nTranslator(createOption: {\n value: string\n isExpression?: boolean\n key?: string\n insertOption?: any\n}): any {\n const { value, isExpression = false, key, insertOption } = createOption\n\n // 从全局配置对象 option 中获取命名空间\n const nameSpace = option.namespace\n const { trimmedValue, valStr } = normalizeTranslateValue(value)\n // 若 key 存在则使用 key,否则调用 generateId 函数根据 valStr 生成唯一的键\n const generatedKey = key || resolveLangKey(generateId(valStr), trimmedValue)\n // 提取公共配置对象,避免重复代码\n const config = {\n option: option,\n hash: generatedKey,\n value: trimmedValue,\n uncodeValue: valStr,\n namespace: nameSpace\n }\n\n insertOption?.collector?.record?.({\n key: option.useValueAsKey ? trimmedValue : generatedKey,\n value: trimmedValue,\n namespace: nameSpace,\n resourcePath: insertOption?.resourcePath,\n root: insertOption?.root\n })\n if (option.translateExtends) {\n const { handleCodeCall, handleCodeString } = option.translateExtends\n return isExpression\n ? handleCodeCall(config, insertOption)\n : handleCodeString(config, insertOption)\n }\n\n if (isExpression) {\n const valueExp = types.stringLiteral(trimmedValue)\n valueExp.extra = {\n raw: `'${valStr}'`, // 防止转码为unicode\n rawValue: trimmedValue\n }\n return option.useValueAsKey\n ? types.callExpression(types.identifier(option.translateKey), [valueExp])\n : types.callExpression(types.identifier(option.translateKey), [\n types.stringLiteral(generatedKey),\n valueExp\n ])\n } else {\n return `${option.translateKey}('${generatedKey}','${valStr}')`\n }\n\n return `${option.translateKey}('${generatedKey}','${valStr}','${nameSpace}')`\n}\n\nexport function normalizeTranslateValue(value: string) {\n const trimmedValue = option.isClearSpace ? value : value.trim()\n const valStr = trimmedValue.replace(/'/g, '\"').replace(/(\\n)/g, '\\\\n')\n return {\n trimmedValue,\n valStr\n }\n}\n\n/**\n * @description: 生成唯一id\n * @param {string} key\n * @return {*}\n */\nexport function generateId(key: string) {\n let hash = 0\n for (let i = 0; i < key.length; i++) {\n const charCode = key.charCodeAt(i)\n hash = (hash << 5) - hash + charCode\n hash = hash & hash\n }\n const id = Math.abs(hash).toString(36) + key.length.toString(36)\n return id\n}\n\n/**\n * @description: unicode转普通字符串\n * @param {string} str\n * @return {*}\n */\nexport const unicodeToString = (str: string) => {\n return str.replace(/\\\\u[\\dA-Fa-f]{4}/g, (match: any) => {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16))\n })\n}\n\n/**\n * @description: 有道翻译 标识截取\n * @param {string} q\n * @return {*}\n */\nexport function truncate(q: string) {\n // 检查输入字符串的长度\n if (q.length <= 20) {\n // 如果长度小于等于20,直接返回原字符串\n return q\n } else {\n // 如果长度大于20,截取前10个字符和后10个字符,并在中间插入长度信息\n const len = q.length\n return q.substring(0, 10) + len + q.substring(len - 10)\n }\n}\n\n// 导出一个深拷贝函数,用于克隆对象\nexport function cloneDeep<T>(value: T, cache: WeakMap<object, any> = new WeakMap()): T {\n // 处理基本类型和 null\n if (typeof value !== 'object' || value === null) {\n return value\n }\n\n // 处理循环引用\n if (cache.has(value)) {\n return cache.get(value)\n }\n\n // 处理特殊对象类型\n if (value instanceof Date) {\n return new Date(value) as T\n }\n\n if (value instanceof RegExp) {\n return new RegExp(value.source, value.flags) as T\n }\n\n // 初始化克隆容器\n const clone: any = Array.isArray(value) ? [] : {}\n\n // 缓存对象防止循环引用\n cache.set(value, clone)\n\n // 处理 Symbol 和普通键的枚举\n const keys = [\n ...Object.keys(value),\n ...Object.getOwnPropertySymbols(value).filter(sym => value.propertyIsEnumerable(sym))\n ]\n\n // 递归克隆属性\n for (const key of keys) {\n clone[key] = cloneDeep((value as any)[key], cache)\n }\n\n return clone as T\n}\n","// 代码灵感来自https://github.com/dadidi9900/auto-plugins-json-translate/blob/main/src/services/translationService.ts\nimport axios, { AxiosProxyConfig } from 'axios'\nimport { generateId } from 'src/utils/base'\nimport { Translator } from './translator'\n\nexport interface VolcengineTranslatorOption {\n apiKey: string\n /** 使用的ai模型,可选值请参阅火山引擎控制台的模型列表,如`doubao-1-5-pro-32k-250115`,并请确保使用前已在控制台开通了对应模型 */\n model: string\n /** 对本项目的简短描述,在有描述的情况下大模型的翻译结果可能会更加准确 */\n desc?: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 火山引擎翻译器,内置豆包、deepseek等模型\n * \n * 火山引擎大模型介绍:https://www.volcengine.com/docs/82379/1099455\n * \n * api文档:https://www.volcengine.com/docs/82379/1298454\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new VolcengineTranslator({\n apiKey: '你申请的apiKey',\n model: '你要调用的模型,如:`doubao-1-5-pro-32k-250115`,请确保使用前已在控制台开通了对应模型'\n })\n})\n * ```\n */\nexport class VolcengineTranslator extends Translator {\n constructor(option: VolcengineTranslatorOption) {\n super({\n name: '火山引擎ai翻译',\n fetchMethod: async (text, fromKey, toKey, separator) => {\n let salt = new Date().getTime()\n const textArr = text.split(separator)\n const sourceMap = Object.fromEntries(textArr.map(text => [generateId(text), text]))\n const data = {\n model: option.model,\n messages: [\n {\n role: 'system',\n content: `\n ###\n 假如你是一个无情的翻译接口,你将根据一个文本组成的JSON对象,来解决将数组每个成员从源语言A翻译成目标语言B并返回翻译后的JSON对象的任务。需要注意的是,待翻译的文本均来自一个${option.desc ? option.desc + '的' : ''}web平台,遇到歧义时需要做好处理。根据以下规则一步步执行:\n 1. 明确源语言A和目标语言B。\n 2. 对JSON对象中数组的每个成员进行从源语言A到目标语言B的翻译。\n 3. 将翻译后的内容以JSON对象格式返回,确保返回的内容可以被JSON.parse解析。\n\n 参考例子:\n 示例1:\n 输入:zh-cn -> en { \"awfgx\": \"你好\", \"qwfga\": \"世界\" }\n 输出:{ \"awfgx\": \"Hello\", \"qwfga\": \"World\" }\n\n 示例2:\n 输入:de -> fr { \"gweaq\": \"Hallo\", \"wtrts\": \"Welt\" }\n 输出:{ \"gweaq\": \"Bonjour\", \"wtrts\": \"Monde\" }\n\n 请回答问题:\n 输入:源语言A -> 目标语言B { \"wghhj\": \"XXX\" }\n 输出:\n\n 要求:\n 1 以JSON对象格式输出\n 2 JSON对象中每个成员为翻译后的内容\n ###\n `\n },\n {\n role: 'user',\n content: `${fromKey} -> ${toKey} ${JSON.stringify(sourceMap)}`\n }\n ],\n ...(option.insertOption || {})\n }\n const response = await axios.post(\n `https://ark.cn-beijing.volces.com/api/v3/chat/completions?t=${salt}`,\n data,\n {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${option.apiKey}`\n },\n proxy: option.proxy\n }\n )\n\n let resultTextArr = Array.from(textArr).fill('')\n const content = response.data.choices[0].message.content\n try {\n let resultMap: unknown\n try {\n resultMap = JSON.parse(content)\n } catch (error) {\n throw new Error('大模型返回文本解析失败')\n }\n if (typeof resultMap !== 'object' || !resultMap) {\n throw new Error('大模型返回文本解析后类型不正确')\n }\n const isMiss = Object.keys(resultMap).some(key => !(key in sourceMap))\n if (isMiss) {\n throw new Error('大模型返回文本内容不完整')\n }\n resultTextArr = textArr.map(\n text => (resultMap as Record<string, string>)[generateId(text)]\n ) // 用textArr遍历,保证顺序\n } catch (error) {\n const message = error instanceof Error ? error.message : '未知错误'\n console.warn('⚠', message)\n console.warn('⚠ 返回的文本内容:', content)\n console.warn('⚠ 原文本内容:', JSON.stringify(sourceMap))\n }\n\n return resultTextArr.join(separator)\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请确保在火山引擎控制台开通了对应模型,且有足够的token余额。控制台地址:https://console.volcengine.com/ark/'\n )\n },\n maxChunkSize: 1000, // 太长可能会导致返回文本不完整\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-04-03 18:12:45\n * @LastEditTime: 2024-04-03 18:33:53\n * @FilePath: /i18n_translation_vite/autoI18nPluginCore/src/enums/translate.ts\n */\nexport enum TranslateApiEnum {\n google = 'Google',\n youdao = 'Youdao'\n}\n","/*\n * @Date: 2025-03-16 14:12:30\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-16 14:13:42\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/enums/option.ts\n */\n/**\n * 翻译类型枚举\n */\nexport enum TranslateTypeEnum {\n FULL_AUTO = 'full-auto',\n SEMI_AUTO = 'semi-auto'\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-26 17:34:47\n * @LastEditTime: 2025-03-31 19:58:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/option.ts\n */\n\nimport { GoogleTranslator, Translator, TranslatorOption } from './translators'\nimport { OriginLangKeyEnum, TranslateTypeEnum } from './enums'\nimport { BaseExtendsType } from './extends'\nimport { cloneDeep } from './utils/base'\n\nconst EXCLUDED_CALL = [\n '$deepScan',\n 'console.info',\n 'console.warn',\n 'console.error',\n '$i8n',\n 'console.log',\n '$t',\n 'require',\n '$$i8n',\n '$$t',\n '_createCommentVNode'\n]\n/**\n * 默认插件配置选项\n */\nconst DEFAULT_OPTION = {\n appCode: '',\n\n /** 是否启用插件,默认启用 */\n enabled: true as boolean | (() => boolean),\n /** 翻译调用函数,默认为 $t */\n translateKey: '$t',\n\n /** 标记不翻译调用函数列表,避免某些调用被错误翻译 */\n excludedCall: [] as string[],\n\n /** 标记不用翻译的字符串模式数组,默认是匹配文件扩展名 */\n excludedPattern: [/\\.\\w+$/],\n\n /** 排查不需要翻译的目录下的文件路径(黑名单), 默认不处理node_modules */\n excludedPath: ['node_modules'] as string[],\n\n /** 指定需要翻译文件的目录路径正则(白名单) */\n includePath: [/src\\//, /src\\\\/],\n\n /** 配置文件生成位置,默认为 './lang' */\n globalPath: './lang',\n\n /** 打包后生成文件的位置,例如 './dist/assets' */\n distPath: '',\n\n /** 打包后生成文件的主文件名称,默认是 'index' */\n distKey: 'index',\n\n /** 来源语言,默认是中文 */\n originLang: OriginLangKeyEnum.ZH as OriginLangKeyEnum | string,\n\n /** 翻译目标语言列表,默认包含英文 */\n targetLangList: ['en'],\n\n /** 语言key,用于请求谷歌api和生成配置文件下对应语言的内容文件 */\n langKey: [] as string[],\n\n /** 命名空间,防止全局命名冲突 */\n namespace: 'lang',\n\n /** 单位代码 */\n orgCode: 'GREENCLOUD',\n\n /** 是否启用源码的值作为key */\n useValueAsKey: false,\n\n /** 是否在构建结束之后将最新的翻译重新打包到主包中,默认不打包 */\n buildToDist: false,\n\n /** 是否启用上传翻译文件到服务器,默认开启 */\n uploadEnabled: true,\n\n /** 翻译器,决定自动翻译使用的api与调用方式,默认使用 Google 翻译器并使用7890(clash)端口代理 */\n translator: new GoogleTranslator({\n proxyOption: {\n port: 7890,\n host: '127.0.0.1',\n headers: {\n 'User-Agent': 'Node'\n }\n }\n }) as Translator,\n\n /** 翻译器配置选项,优先级低于translator */\n translatorOption: undefined as TranslatorOption | undefined,\n\n /**\n * 翻译类型,支持全自动和半自动两种模式\n * 全自动:所有翻译任务自动完成\n * 半自动:需要人工标识,类似于 $t('key') 的方式\n * 默认值为全自动\n */\n translateType: TranslateTypeEnum.FULL_AUTO as TranslateTypeEnum | string,\n\n /**\n * 是否重写配置文件,默认为true\n */\n rewriteConfig: true,\n\n /**\n * 通用翻译key,默认使用namespace,如果commonTranslateKey不为空,则使用commonTranslateKey\n */\n commonTranslateKey: '',\n\n /**\n * 实验性属性,表示是否进行深层扫描字符串,默认为 false\n * 当设置为 true 时,会对代码中的字符串进行更深入的扫描\n */\n deepScan: false,\n\n /**\n * 自定义文件拓展名数组\n */\n insertFileExtensions: [] as string[],\n\n /**\n * 自定义拓展类,插件默认翻译函数挂载在window上,如果希望自定义翻译函数挂载在其他对象上,可以使用该属性\n * 注意:该属性需要继承BaseExtends类,并且需要实现handleInitFile和handleCodeCall和handleCodeString方法\n */\n translateExtends: null as BaseExtendsType | null,\n\n isClear: false, // 是否清除已经不在上下文中的内容(清除项目中不再使用到的源语言键值对)\n\n /**\n * 是否保留空格\n */\n isClearSpace: true\n}\n\n/**\n * 类型定义:插件配置选项类型\n */\ntype OptionType = typeof DEFAULT_OPTION\n\n/**\n * 全局插件配置实例,复制自默认配置\n */\nexport let option: OptionType = { ...DEFAULT_OPTION }\n\n/**\n * 类型定义:用户传入的配置选项\n */\nexport interface OptionInfo extends Partial<OptionType> {}\n\n/**\n * 通过深度克隆提供的选项信息生成一个用户选项对象,\n * 确保原始配置不被修改。它还根据用户的配置初始化翻译器。\n * @param optionInfo - 包含用户选项和翻译器细节的选项信息。\n * @returns 一个新的、可能已初始化翻译器的用户选项对象。\n */\nfunction generateUserOption(optionInfo: OptionInfo) {\n // 深拷贝用户传入的配置,防止修改原配置对象\n const userOption = cloneDeep(optionInfo)\n userOption.translator = optionInfo?.translator\n\n // 如果用户配置了translatorOption则初始化translator,如果都没有则不设置translator\n userOption.translator ||= userOption.translatorOption\n ? new Translator(userOption.translatorOption)\n : undefined\n if (!userOption.translator) delete userOption.translator\n return userOption\n}\n\n/**\n * 初始化插件配置选项\n * @param optionInfo 用户提供的配置选项\n */\nexport function initOption(optionInfo: OptionInfo) {\n // 合并默认配置和用户配置\n option = { ...DEFAULT_OPTION, ...generateUserOption(optionInfo) }\n\n // 初始化语言key数组,包含来源语言和目标语言\n option.langKey = [option.originLang, ...option.targetLangList]\n // 初始化排除调用函数列表,包含默认排除和调用函数主动排除\n option.excludedCall = [\n ...option.excludedCall,\n ...EXCLUDED_CALL,\n ...[option.translateKey, '$' + option.translateKey]\n ]\n\n return option\n}\n\n/**\n * 校验插件配置选项是否完整有效\n * @returns {boolean} 校验结果,完整返回 true,否则返回 false\n */\nexport function checkOption() {\n // 校验翻译调用函数是否配置\n if (!option.translateKey) {\n console.error('❌请配置翻译调用函数')\n return false\n }\n\n // 校验命名空间是否配置\n if (!option.namespace) {\n console.error('❌请配置命名空间')\n return false\n }\n\n // 校验是否配置了打包后生成文件的主文件名称(如果需要打包到主包中)\n if (option.buildToDist && !option.distKey) {\n console.log('❌请配置打包后生成文件的主文件名称')\n return false\n }\n\n // 校验是否配置了打包后生成文件的位置(如果需要打包到主包中)\n if (option.buildToDist && !option.distPath) {\n console.log('❌请配置打包后生成文件的位置')\n return false\n }\n\n // 校验来源语言是否配置\n if (!option.originLang) {\n console.error('❌请配置来源语言')\n return false\n }\n\n // 校验目标翻译语言数组是否配置\n if (!option.targetLangList || !option.targetLangList.length) {\n console.error('❌请配置目标翻译语言数组')\n return false\n }\n\n // 如果所有校验通过,返回 true\n return true\n}\n","import types from '@babel/types'\nimport { OptionInfo } from 'src'\nimport babel from '@babel/core'\nexport class Vue2Extends {\n public handleInitFile: any\n public handleCodeCall: any\n public handleCodeString: any\n constructor() {\n this.handleInitFile = async (source: string, path: string) => {\n let code = source\n\n // 检查是否已经引入了 Vue\n let importVue = false\n let hasVue = false\n let importDefaultChar = 'Vue'\n\n const result = await babel.transformAsync(code, {\n configFile: false,\n plugins: [\n {\n visitor: {\n ImportDeclaration(path: any) {\n const { node } = path\n if (node.source.value === 'vue') {\n importVue = true\n const specifiers = node.specifiers\n specifiers.forEach((specifier: any) => {\n if (types.isImportDefaultSpecifier(specifier)) {\n hasVue = true\n importDefaultChar = specifier.local.name\n }\n })\n if (!hasVue) {\n hasVue = true\n specifiers.unshift(\n types.importDefaultSpecifier(types.identifier('Vue'))\n )\n }\n }\n }\n }\n }\n ]\n })\n if (importVue && result) code = result.code as string\n if (!importVue)\n code = `import Vue from 'vue'\n ${code}`\n\n return {\n path,\n importDefaultChar,\n source: code\n }\n }\n this.handleCodeCall = (\n config: {\n option: OptionInfo\n hash: string\n value: string\n uncodeValue: string\n namespace: string\n },\n _initFileResult: ReturnType<this['handleInitFile']>\n ) => {\n const { option, hash, value, uncodeValue, namespace } = config\n const valueExp = types.stringLiteral(value)\n valueExp.extra = {\n raw: `'${uncodeValue}'`, // 防止转码为unicode\n rawValue: value\n }\n return types.callExpression(\n types.memberExpression(\n types.memberExpression(\n types.identifier(_initFileResult.importDefaultChar),\n types.identifier('prototype')\n ),\n types.identifier(option.translateKey as string)\n ),\n [types.stringLiteral(hash), valueExp, types.stringLiteral(namespace)]\n )\n }\n this.handleCodeString = (\n config: {\n option: OptionInfo\n hash: string\n value: string\n uncodeValue: string\n namespace: string\n },\n _initFileResult: ReturnType<this['handleInitFile']>\n ): string => {\n const { option, hash, uncodeValue, namespace } = config\n return `${_initFileResult.importDefaultChar}.prototype.${option.translateKey}('${hash}','${uncodeValue}','${namespace}')`\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-11-01 16:35:38\n * @LastEditTime: 2025-03-31 02:29:02\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/TemplateElement.ts\n */\nimport { baseUtils, translateUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport { option } from 'src/option'\nimport types from '@babel/types'\nimport * as generate from '@babel/generator'\n\n// 定义一个包含亚洲语言代码的数组\nconst asianLangs = ['zh-cn', 'ja', 'ko']\n\nexport default function (insertOption: any) {\n return function (path: any) {\n // 如果是半自动翻译,不做处理\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n let { node, parent }: { node: types.TemplateLiteral; parent: types.Node } = path\n\n if (!node.quasis.length) return\n\n if (types.isTaggedTemplateExpression(parent)) {\n return\n }\n\n if (baseUtils.isInsideConsoleCallArgument(path)) {\n return\n }\n\n // 获取真实调用函数\n const extractFnName = baseUtils.extractFunctionName(parent)\n\n // 调用语句判断当前调用语句是否包含需要过滤的调用语句\n if (\n types.isCallExpression(parent) &&\n extractFnName &&\n (option.excludedCall.includes(extractFnName) ||\n (extractFnName?.split('.')?.pop() &&\n option.excludedCall.includes(extractFnName?.split('.')?.pop() || '')))\n )\n return\n\n if (node.expressions.length && handleTemplateLiteralWithExpressions(node, path)) {\n return\n }\n\n node.quasis.forEach(item => handleTemplateElement(item, insertOption))\n }\n}\n\nfunction handleTemplateLiteralWithExpressions(node: types.TemplateLiteral, path: any) {\n let hasOptimizedExpression = false\n const expressionLabels = node.expressions.map((expression, index) => {\n const optimizedExpression = optimizeConditionalExpression(expression)\n if (optimizedExpression) {\n hasOptimizedExpression = true\n node.expressions[index] = optimizedExpression.expression\n return optimizedExpression.label\n }\n return getExpressionPlaceholder(expression)\n })\n if (expressionLabels.some(placeholder => placeholder === null)) {\n return false\n }\n\n const fullValue = node.quasis.reduce((result, quasi, index) => {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return (\n result +\n value +\n (index < node.expressions.length\n ? formatExpressionPlaceholder(expressionLabels[index])\n : '')\n )\n }, '')\n\n if (\n !fullValue ||\n !baseUtils.hasOriginSymbols(fullValue) ||\n !option.excludedPattern.length ||\n baseUtils.checkAgainstRegexArray(fullValue, [...option.excludedPattern])\n ) {\n if (hasOptimizedExpression) {\n path.skip()\n return true\n }\n return false\n }\n\n if (!hasExpressionInsideOriginContent(node)) {\n return false\n }\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(fullValue)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n const translateNode = createTranslateNode(path, id, valStr, expressionLabels, node.expressions)\n\n path.replaceWith(translateNode)\n translateUtils.setLangObj(id, trimmedValue)\n return true\n}\n\nfunction hasExpressionInsideOriginContent(node: types.TemplateLiteral) {\n return node.expressions.some((_, index) => {\n const beforeValue = node.quasis\n .slice(0, index + 1)\n .map(getTemplateElementValue)\n .join('')\n const afterValue = node.quasis\n .slice(index + 1)\n .map(getTemplateElementValue)\n .join('')\n\n return baseUtils.hasOriginSymbols(beforeValue) && baseUtils.hasOriginSymbols(afterValue)\n })\n}\n\nfunction getTemplateElementValue(quasi: types.TemplateElement) {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return value\n}\n\nfunction getExpressionPlaceholder(expression: types.Node) {\n if (types.isStringLiteral(expression) || types.isNumericLiteral(expression)) {\n return String(expression.value)\n }\n if (types.isTSAsExpression(expression) || types.isTSTypeAssertion(expression)) {\n return getExpressionPlaceholder(expression.expression)\n }\n if (types.isTSNonNullExpression(expression)) {\n return getExpressionPlaceholder(expression.expression)\n }\n const generateCode = (generate as any).default?.default || (generate as any).default || generate\n return normalizeExpressionPlaceholder(generateCode(expression, { comments: false }).code)\n}\n\nfunction normalizeExpressionPlaceholder(placeholder: string | null) {\n if (placeholder === null) return null\n return placeholder\n .replace(/(^|[^\\w$])(?:_vm|\\$data)\\s*\\./g, '$1')\n .replace(/(^|[^\\w$])(?:_vm|\\$data)\\s*\\[/g, '$1[')\n}\n\nfunction optimizeConditionalExpression(expression: types.Expression) {\n if (!types.isConditionalExpression(expression)) return null\n\n const consequent = translateConditionalStringBranch(expression.consequent)\n const alternate = translateConditionalStringBranch(expression.alternate)\n\n if (!consequent.changed && !alternate.changed) return null\n\n return {\n label: getConditionalExpressionLabel(expression),\n expression: types.conditionalExpression(\n types.cloneNode(expression.test),\n consequent.expression,\n alternate.expression\n )\n }\n}\n\nfunction translateConditionalStringBranch(expression: types.Expression) {\n if (types.isStringLiteral(expression) && baseUtils.hasOriginSymbols(expression.value)) {\n return {\n changed: true,\n expression: createTrackedTranslateCall(expression.value)\n }\n }\n\n if (types.isTemplateLiteral(expression)) {\n const translateCall = createTemplateLiteralTranslateCall(expression)\n if (translateCall) {\n return {\n changed: true,\n expression: translateCall\n }\n }\n }\n\n if (types.isConditionalExpression(expression)) {\n const optimizedExpression = optimizeConditionalExpression(expression)\n if (optimizedExpression) {\n return {\n changed: true,\n expression: optimizedExpression.expression\n }\n }\n }\n\n return {\n changed: false,\n expression: types.cloneNode(expression)\n }\n}\n\nfunction createTrackedTranslateCall(value: string) {\n const translateCall = baseUtils.createI18nTranslator({\n value,\n isExpression: true\n })\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(value)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n if (id && trimmedValue) {\n translateUtils.setLangObj(id, trimmedValue)\n }\n return translateCall\n}\n\nfunction createTemplateLiteralTranslateCall(node: types.TemplateLiteral) {\n const expressions = node.expressions.map((expression) => {\n const optimizedExpression = optimizeConditionalExpression(expression)\n return optimizedExpression ? optimizedExpression.expression : expression\n })\n const expressionLabels = expressions.map(expression => getExpressionPlaceholder(expression))\n if (expressionLabels.some(placeholder => placeholder === null)) {\n return null\n }\n\n const fullValue = node.quasis.reduce((result, quasi, index) => {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return (\n result +\n value +\n (index < expressions.length ? formatExpressionPlaceholder(expressionLabels[index]) : '')\n )\n }, '')\n\n if (\n !fullValue ||\n !baseUtils.hasOriginSymbols(fullValue) ||\n !option.excludedPattern.length ||\n baseUtils.checkAgainstRegexArray(fullValue, [...option.excludedPattern])\n ) {\n return null\n }\n\n if (!hasExpressionInsideOriginContent(node)) {\n return createTemplateLiteralWithTranslatedQuasis(node, expressions)\n }\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(fullValue)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n if (id && trimmedValue) {\n translateUtils.setLangObj(id, trimmedValue)\n }\n return createTranslateCall(id, valStr, expressionLabels, expressions)\n}\n\nfunction createTemplateLiteralWithTranslatedQuasis(\n node: types.TemplateLiteral,\n expressions: types.Expression[]\n) {\n const quasis: types.TemplateElement[] = []\n const nextExpressions: types.Expression[] = []\n let pendingText = ''\n let hasTranslatedQuasi = false\n\n node.quasis.forEach((quasi, index) => {\n const value = getTemplateElementValue(quasi)\n\n if (\n value &&\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, false))\n nextExpressions.push(createTrackedTranslateCall(value))\n pendingText = ''\n hasTranslatedQuasi = true\n } else {\n pendingText += value\n }\n\n if (index < expressions.length) {\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, false))\n nextExpressions.push(types.cloneNode(expressions[index]))\n pendingText = ''\n }\n })\n\n if (!hasTranslatedQuasi) return null\n\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, true))\n return types.templateLiteral(quasis, nextExpressions)\n}\n\nfunction getConditionalExpressionLabel(expression: types.ConditionalExpression) {\n const test = expression.test\n if (types.isBinaryExpression(test) || types.isLogicalExpression(test)) {\n return getExpressionPlaceholder(test.left)\n }\n return getExpressionPlaceholder(test)\n}\n\nfunction formatExpressionPlaceholder(placeholder: string | null) {\n if (placeholder === null) return ''\n return placeholder.trim() ? `\\${${placeholder}}` : placeholder\n}\n\nfunction createTranslateNode(\n path: any,\n id: string,\n valStr: string,\n placeholders: string[] = [],\n expressions: types.Expression[] = []\n) {\n const translateCall = createTranslateCall(id, valStr, placeholders, expressions)\n\n if (!isVueTemplateRender(path)) {\n return translateCall\n }\n\n return types.sequenceExpression([createVueTemplateLanguageDependency(), translateCall])\n}\n\nfunction createTranslateCall(\n id: string,\n valStr: string,\n placeholders: string[] = [],\n expressions: types.Expression[] = []\n) {\n const args: types.Expression[] = [types.stringLiteral(id), types.stringLiteral(valStr)]\n\n if (placeholders.length) {\n const placeholderEntries = placeholders\n .map((placeholder, index) => ({ placeholder, expression: expressions[index] }))\n .filter(({ placeholder }) => placeholder && placeholder.trim())\n\n args.push(\n types.objectExpression(\n placeholderEntries.map(({ placeholder, expression }) =>\n types.objectProperty(\n types.stringLiteral(placeholder),\n types.cloneNode(expression)\n )\n )\n )\n )\n }\n\n return types.callExpression(types.identifier(option.translateKey), args)\n}\n\nfunction isVueTemplateRender(path: any) {\n return Boolean(path.scope?.getBinding('_vm'))\n}\n\nfunction createVueTemplateLanguageDependency() {\n const vm = types.identifier('_vm')\n const store = types.memberExpression(types.cloneNode(vm), types.identifier('$store'))\n const storeState = types.memberExpression(types.cloneNode(store), types.identifier('state'))\n const siteState = types.memberExpression(types.cloneNode(storeState), types.identifier('site'))\n const storeLanguage = types.logicalExpression(\n '&&',\n types.logicalExpression(\n '&&',\n types.logicalExpression('&&', types.cloneNode(store), types.cloneNode(storeState)),\n types.cloneNode(siteState)\n ),\n types.memberExpression(types.cloneNode(siteState), types.identifier('language'))\n )\n\n const i18n = types.memberExpression(types.cloneNode(vm), types.identifier('$i18n'))\n const i18nLocale = types.logicalExpression(\n '&&',\n types.cloneNode(i18n),\n types.memberExpression(types.cloneNode(i18n), types.identifier('locale'))\n )\n\n return types.logicalExpression('||', storeLanguage, i18nLocale)\n}\n\n// 处理模板元素\nfunction handleTemplateElement(node: types.TemplateElement, insertOption: any) {\n let value = node.value.raw || node.value.cooked // 获取模板字符串的值\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value || '')\n } catch (error) {\n console.log('转换异常')\n }\n }\n // 是否存在来源语言字符,是否在默认字符串中,是否包含过滤字段\n if (\n value &&\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n // 生成字符类型翻译节点\n let newNode = baseUtils.createI18nTranslator({\n insertOption,\n value\n })\n\n // 替换为字符类型翻译节点\n node.value.raw = node.value.cooked = `\\${${newNode}}`\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(value)\n let id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n\n if (id && value) {\n translateUtils.setLangObj(id, value)\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:18:51\n * @LastEditTime: 2025-03-16 15:17:30\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/CallExpression.ts\n */\nimport { baseUtils, translateUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { option } from 'src/option'\n\n// 收集翻译对象\nexport default function (insertOption: any) {\n return function (path: any) {\n let { node } = path\n // 提取公共部分,减少重复访问 node.callee 属性\n const callee = node.callee\n if (\n callee.name === option.translateKey ||\n (callee.property && callee.property.name === option.translateKey) // 拓展 半自动模式下的 如 a.b.c() 调用\n ) {\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n // 获取当前翻译函数的参数\n let arg = node.arguments || []\n // 如果参数数量不为 1,则直接返回\n if (arg.length === 1) {\n const value = arg[0]?.value || ''\n // 生成真实调用函数\n const replaceNode = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n path.replaceWith(replaceNode)\n translateSetLang(replaceNode, insertOption)\n }\n } else if (option.translateType === TranslateTypeEnum.FULL_AUTO) {\n // 全自动模式下还是只收集 单独 $t 调用\n if (\n callee.name === option.translateKey ||\n (callee.property && callee.property.name === option.translateKey)\n )\n translateSetLang(node, insertOption)\n }\n }\n }\n}\n\n/**\n * @description: 处理翻译并设置语言对象属性\n * @param node - 调用表达式节点\n * @return\n */\nfunction translateSetLang(node: types.CallExpression, insertOption?: any) {\n // 获取调用表达式的参数\n let arg = node.arguments || []\n // 提取参数作为值\n // 检查参数是否为字符串字面量\n const idArg = arg[0]\n const valueArg = arg[1]\n const id = types.isStringLiteral(idArg) ? idArg.value : ''\n const value = types.isStringLiteral(valueArg) ? valueArg.value : ''\n // 检查 ID 和值是否存在,并且第二个参数是字符串字面量\n if (id && value && types.isStringLiteral(idArg) && types.isStringLiteral(valueArg)) {\n const resolvedId = translateUtils.resolveLangKey(id, value)\n if (resolvedId !== id) {\n idArg.value = resolvedId\n idArg.extra = {\n raw: `'${resolvedId}'`,\n rawValue: resolvedId\n }\n }\n // 调用翻译工具的 setLangObj 方法设置语言对象属性\n translateUtils.setLangObj(resolvedId, value)\n insertOption?.collector?.record?.({\n key: option.useValueAsKey ? value : resolvedId,\n value,\n namespace: option.namespace,\n resourcePath: insertOption?.resourcePath,\n root: insertOption?.root\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:18:51\n * @LastEditTime: 2025-03-31 02:28:53\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/StringLiteral.ts\n */\nimport { baseUtils, splitUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { option } from 'src/option'\n\nexport default function (insertOption: any) {\n return function (path: any) {\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n let { node, parent } = path\n let value = node.value\n\n // 定义一个包含亚洲语言代码的数组\n const asianLangs = ['zh-cn', 'ja', 'ko']\n if (\n asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)\n ) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n if (\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n if (baseUtils.isInsideConsoleCallArgument(path)) return\n\n // 获取真实调用函数\n const extractFnName = baseUtils.extractFunctionName(parent)\n\n // 防止导入语句,只处理那些当前节点不是键值对的键的字符串字面量,调用语句判断当前调用语句是否包含需要过滤的调用语句\n if (\n isTranslateCall(parent) ||\n types.isImportDeclaration(parent) ||\n parent.key === node ||\n (types.isCallExpression(parent) &&\n extractFnName &&\n (option.excludedCall.includes(extractFnName) ||\n (extractFnName?.split('.')?.pop() &&\n option.excludedCall.includes(extractFnName?.split('.')?.pop() || ''))))\n )\n return\n const vueVNodeCallPath = getVueCompiledVNodeCallPath(path)\n let replaceNode\n if (option.deepScan && splitUtils.checkNeedSplit(value)) {\n replaceNode = splitUtils.convertToTemplateLiteral(\n splitUtils.splitByRegex(value, baseUtils.getOriginRegex()),\n insertOption\n )\n } else if (types.isJSXAttribute(parent)) {\n let expression = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n replaceNode = types.jSXExpressionContainer(expression)\n } else {\n replaceNode = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n }\n path.replaceWith(replaceNode)\n markVueCompiledVNodeDynamic(vueVNodeCallPath)\n }\n }\n}\n\nfunction getVueCompiledVNodeCallPath(path: any) {\n const callPath = path.parentPath\n if (!callPath || !types.isCallExpression(callPath.node)) return\n if (!isVueVNodeCreateCall(callPath.node)) return\n\n if (path.listKey !== 'arguments' || path.key !== 2) return\n\n return callPath\n}\n\nfunction markVueCompiledVNodeDynamic(callPath: any) {\n if (!callPath || !types.isCallExpression(callPath.node)) return\n const patchFlag = callPath.node.arguments[3]\n if (isCachedPatchFlag(patchFlag)) {\n const textPatchFlag = types.numericLiteral(1)\n textPatchFlag.leadingComments = null\n textPatchFlag.innerComments = null\n textPatchFlag.trailingComments = null\n callPath.node.arguments[3] = textPatchFlag\n }\n\n const logicalPath = callPath.findParent((parentPath: any) => {\n const node = parentPath.node\n if (!types.isLogicalExpression(node) || node.operator !== '||') return false\n const right = node.right\n return (\n types.isAssignmentExpression(right) &&\n right.operator === '=' &&\n right.right === callPath.node &&\n isVueRenderCacheMember(node.left) &&\n isVueRenderCacheMember(right.left)\n )\n })\n\n if (logicalPath) {\n logicalPath.replaceWith(callPath.node)\n }\n}\n\nfunction isCachedPatchFlag(node: types.Node | null | undefined) {\n return (\n (types.isNumericLiteral(node) && node.value === -1) ||\n (\n types.isUnaryExpression(node) &&\n node.operator === '-' &&\n types.isNumericLiteral(node.argument) &&\n node.argument.value === 1\n )\n )\n}\n\nfunction isVueVNodeCreateCall(node: types.CallExpression) {\n const callee = node.callee\n return (\n types.isIdentifier(callee) &&\n [\n '_createElementVNode',\n '_createVNode',\n 'createElementVNode',\n 'createVNode'\n ].includes(callee.name)\n )\n}\n\nfunction isVueRenderCacheMember(node: types.Node) {\n return (\n types.isMemberExpression(node) &&\n types.isIdentifier(node.object) &&\n node.object.name === '_cache'\n )\n}\n\nfunction isTranslateCall(node: any) {\n if (!types.isCallExpression(node)) return false\n const callee = node.callee\n\n if (types.isIdentifier(callee)) {\n return callee.name === option.translateKey\n }\n\n if (types.isMemberExpression(callee)) {\n return (\n types.isIdentifier(callee.property) &&\n callee.property.name === option.translateKey\n )\n }\n\n return false\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-11-01 16:35:38\n * @LastEditTime: 2025-03-16 18:24:44\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/JSXText.ts\n */\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { baseUtils } from 'src/utils'\nimport { option } from 'src/option'\n\nexport default function (insertOption: any) {\n return function (path: any) {\n console.log('jsx text')\n\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n\n let { node } = path\n let value = node.value\n // 定义一个包含亚洲语言代码的数组\n const asianLangs = ['zh-cn', 'ja', 'ko']\n if (\n asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)\n ) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n if (\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n // 生成翻译节点\n let expression = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n // 生成的翻译节点包装在 types.JSXExpressionContainer 中\n let newNode = types.jSXExpressionContainer(expression)\n // 使用 path.replaceWith 方法将原来的节点替换为新的翻译节点\n path.replaceWith(newNode)\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:00:37\n * @LastEditTime: 2023-11-02 10:36:02\n * @FilePath: /i18n_translation_vite/src/plugins/filter/index.ts\n */\n\nimport TemplateLiteral from './visitor/TemplateLiteral'\nimport CallExpressionFn from './visitor/CallExpression'\nimport StringLiteralFn from './visitor/StringLiteral'\nimport JSXTextFn from './visitor/JSXText'\n\nexport default function (insertOption?: any) {\n // 分别调用各个访问器函数并传入插入选项\n const stringLiteralVisitor = StringLiteralFn(insertOption)\n const jsxTextVisitor = JSXTextFn(insertOption)\n const templateLiteralVisitor = TemplateLiteral(insertOption)\n const callExpressionVisitor = CallExpressionFn(insertOption)\n\n // 返回一个函数,该函数返回包含访问器的对象\n return function () {\n return {\n // 定义 Babel 访问器对象\n visitor: {\n StringLiteral: stringLiteralVisitor,\n JSXText: jsxTextVisitor,\n TemplateLiteral: templateLiteralVisitor,\n CallExpression: callExpressionVisitor\n }\n }\n }\n}\n","import path from 'path'\n\nexport const RUNTIME_MANIFEST_VERSION = 1\nexport const RUNTIME_MANIFEST_GLOBAL = '__GC_I18N_RUNTIME_MANIFEST__'\nexport const VITE_RUNTIME_MANIFEST_ID = 'virtual:gc-i18n-runtime-manifest'\nexport const RESOLVED_VITE_RUNTIME_MANIFEST_ID = `\\0${VITE_RUNTIME_MANIFEST_ID}`\n\nexport interface RuntimeManifestRecord {\n key: string\n value: string\n namespace: string\n resourcePath?: string\n}\n\nexport interface RuntimeManifestResource {\n path: string\n keys: string[]\n}\n\nexport interface RuntimeManifest {\n version: typeof RUNTIME_MANIFEST_VERSION\n namespace: string\n translateKey: string\n originLang: string\n targetLangList: string[]\n resources: RuntimeManifestResource[]\n byFile: Record<string, string[]>\n allKeys: string[]\n records: RuntimeManifestRecord[]\n}\n\nexport interface ManifestRecordInput {\n key: string\n value: string\n namespace?: string\n resourcePath?: string\n root?: string\n}\n\nexport interface RuntimeManifestOptionLike {\n namespace?: string\n translateKey?: string\n originLang?: string\n targetLangList?: string[]\n}\n\nexport interface I18nManifestCollector {\n record(input: ManifestRecordInput): void\n toJSON(option?: RuntimeManifestOptionLike): RuntimeManifest\n clear(): void\n}\n\nfunction normalizeResourcePath(resourcePath: string | undefined, root: string | undefined) {\n if (!resourcePath) return undefined\n if (!root) return resourcePath\n\n const relativePath = path.relative(root, resourcePath)\n return relativePath && !relativePath.startsWith('..') ? relativePath : resourcePath\n}\n\nexport function createI18nManifestCollector(root = process.cwd()): I18nManifestCollector {\n const records = new Map<string, RuntimeManifestRecord>()\n\n return {\n record(input: ManifestRecordInput) {\n if (!input.key || !input.value) return\n\n const resourcePath = normalizeResourcePath(input.resourcePath, input.root || root)\n const namespace = input.namespace || 'lang'\n const dedupeKey = [namespace, resourcePath || '', input.key].join('\\u0000')\n\n records.set(dedupeKey, {\n key: input.key,\n value: input.value,\n namespace,\n ...(resourcePath ? { resourcePath } : {})\n })\n },\n toJSON(option: RuntimeManifestOptionLike = {}) {\n const recordList = Array.from(records.values()).sort((left, right) => {\n const leftPath = left.resourcePath || ''\n const rightPath = right.resourcePath || ''\n return leftPath.localeCompare(rightPath) || left.key.localeCompare(right.key)\n })\n const resourceMap = new Map<string, Set<string>>()\n const allKeys = new Set<string>()\n\n recordList.forEach(record => {\n const resourcePath = record.resourcePath || '<unknown>'\n const keys = resourceMap.get(resourcePath) || new Set<string>()\n keys.add(record.key)\n allKeys.add(record.key)\n resourceMap.set(resourcePath, keys)\n })\n\n const byFile = Object.fromEntries(\n Array.from(resourceMap.entries()).map(([resourcePath, keys]) => [\n resourcePath,\n Array.from(keys).sort()\n ])\n )\n\n return {\n version: RUNTIME_MANIFEST_VERSION,\n namespace: option.namespace || 'lang',\n translateKey: option.translateKey || '$t',\n originLang: option.originLang || 'zh-cn',\n targetLangList: option.targetLangList || [],\n resources: Object.entries(byFile).map(([resourcePath, keys]) => ({\n path: resourcePath,\n keys\n })),\n byFile,\n allKeys: Array.from(allKeys).sort(),\n records: recordList\n }\n },\n clear() {\n records.clear()\n }\n }\n}\n\nexport function serializeRuntimeManifest(manifest: RuntimeManifest) {\n return `const manifest = ${JSON.stringify(manifest, null, 2)};\\nexport { manifest };\\nexport default manifest;\\n`\n}\n","export type I18nLocaleMessages = Record<string, string>\nexport type I18nMessages = Record<string, I18nLocaleMessages | undefined>\n\nexport interface I18nRuntimeDeltaItem {\n key: string\n value: string\n locale: string\n namespace: string\n}\n\nexport interface I18nRuntimeOptions {\n namespace?: string\n initialLocale?: string\n fallbackLocale?: string\n commonMessages?: I18nMessages\n localMessages?: I18nMessages\n remoteMessages?: I18nMessages\n target?: any\n hotkey?: false | string\n onConfigRequest?: (payload: I18nRuntimeConfigPayload) => void\n}\n\nexport interface I18nRuntimeConfigPayload {\n locale: string\n namespace: string\n delta: I18nRuntimeDeltaItem[]\n messages: I18nMessages\n}\n\nexport interface I18nRuntime {\n readonly namespace: string\n getLocale(): string\n setRemoteMessages(messages?: I18nMessages): void\n mergeMessages(messages?: I18nMessages, layer?: 'common' | 'local' | 'remote'): void\n t(\n key: string,\n value?: string | Record<string, unknown>,\n params?: Record<string, unknown>,\n namespace?: string\n ): string\n changeLocale(locale: string): string\n clearI18n(): void\n isRTL(locale?: string): boolean\n getDelta(): I18nRuntimeDeltaItem[]\n getMergedMessages(): I18nMessages\n requestConfig(): I18nRuntimeConfigPayload\n install(target?: any): I18nRuntime\n}\n\nconst RTL_LANGUAGES = new Set(['ar', 'fa', 'he', 'iw', 'ps', 'ur'])\nconst DEFAULT_NAMESPACE = 'lang'\nconst DEFAULT_HOTKEY = 'Alt+KeyI'\n\nfunction normalizeLocale(locale: string | undefined, fallback = '') {\n return String(locale || fallback)\n .toLowerCase()\n .replace(/_/g, '-')\n}\n\nfunction normalizeStorageKey(locale: string | undefined, fallback = '') {\n return normalizeLocale(locale, fallback).replace(/[^a-z0-9]/g, '')\n}\n\nfunction cloneMessages(messages?: I18nMessages): I18nMessages {\n return Object.keys(messages || {}).reduce<I18nMessages>((result, locale) => {\n result[normalizeStorageKey(locale)] = { ...(messages?.[locale] || {}) }\n return result\n }, {})\n}\n\nfunction mergeMessageLayers(...layers: Array<I18nMessages | undefined>): I18nMessages {\n return layers.reduce<I18nMessages>((result, layer) => {\n Object.keys(layer || {}).forEach(locale => {\n const runtimeLocale = normalizeStorageKey(locale)\n result[runtimeLocale] = {\n ...(result[runtimeLocale] || {}),\n ...(layer?.[locale] || {})\n }\n })\n return result\n }, {})\n}\n\nfunction getMessagesForLocale(messages: I18nMessages, runtimeLocale: string) {\n const baseLocale = runtimeLocale.slice(0, 2)\n return {\n ...(messages[runtimeLocale] || {}),\n ...(baseLocale === runtimeLocale ? {} : messages[baseLocale] || {})\n }\n}\n\nfunction interpolate(template: string, params?: Record<string, unknown>) {\n if (!params) return template\n return template.replace(/\\{\\{?\\s*([\\w.]+)\\s*\\}?\\}/g, (match, path) => {\n const value = String(path)\n .split('.')\n .reduce<unknown>((current, key) => {\n if (current && typeof current === 'object' && key in current) {\n return (current as Record<string, unknown>)[key]\n }\n return undefined\n }, params)\n return value === undefined || value === null ? match : String(value)\n })\n}\n\nfunction parseHotkey(event: any, hotkey: string) {\n const parts = hotkey.split('+')\n const code = parts.pop()\n const modifiers = new Set(parts.map(part => part.toLowerCase()))\n return (\n (!modifiers.has('alt') || !!event.altKey) &&\n (!modifiers.has('ctrl') || !!event.ctrlKey) &&\n (!modifiers.has('meta') || !!event.metaKey) &&\n (!modifiers.has('shift') || !!event.shiftKey) &&\n (!code || event.code === code || event.key === code)\n )\n}\n\nexport function createI18nRuntime(options: I18nRuntimeOptions = {}): I18nRuntime {\n const namespace = options.namespace || DEFAULT_NAMESPACE\n const fallbackLocale = normalizeStorageKey(\n options.fallbackLocale || options.initialLocale || 'zh-cn'\n )\n let locale = normalizeStorageKey(options.initialLocale, fallbackLocale)\n let commonMessages = cloneMessages(options.commonMessages)\n let localMessages = cloneMessages(options.localMessages)\n let remoteMessages = cloneMessages(options.remoteMessages)\n const delta = new Map<string, I18nRuntimeDeltaItem>()\n\n const runtime: I18nRuntime = {\n namespace,\n getLocale() {\n return locale\n },\n setRemoteMessages(messages?: I18nMessages) {\n remoteMessages = cloneMessages(messages)\n },\n mergeMessages(messages?: I18nMessages, layer = 'local') {\n if (layer === 'common')\n commonMessages = mergeMessageLayers(commonMessages, cloneMessages(messages))\n if (layer === 'local')\n localMessages = mergeMessageLayers(localMessages, cloneMessages(messages))\n if (layer === 'remote')\n remoteMessages = mergeMessageLayers(remoteMessages, cloneMessages(messages))\n },\n t(key, value = '', params, callNamespace = namespace) {\n const interpolationParams = typeof value === 'object' ? value : params\n const fallbackValue = typeof value === 'string' ? value : key\n const messages = runtime.getMergedMessages()\n const localeMessages = {\n ...getMessagesForLocale(messages, fallbackLocale),\n ...getMessagesForLocale(messages, locale)\n }\n const translated = localeMessages[key]\n if (translated === undefined) {\n const deltaKey = `${callNamespace}:${locale}:${key}`\n if (!delta.has(deltaKey)) {\n delta.set(deltaKey, {\n key,\n value: fallbackValue,\n locale,\n namespace: callNamespace\n })\n }\n }\n return interpolate(translated || fallbackValue || key, interpolationParams)\n },\n changeLocale(nextLocale) {\n locale = normalizeStorageKey(nextLocale, fallbackLocale)\n return locale\n },\n clearI18n() {\n remoteMessages = {}\n delta.clear()\n },\n isRTL(targetLocale = locale) {\n const lang = normalizeLocale(targetLocale).split('-')[0]\n return RTL_LANGUAGES.has(lang)\n },\n getDelta() {\n return Array.from(delta.values())\n },\n getMergedMessages() {\n return mergeMessageLayers(commonMessages, localMessages, remoteMessages)\n },\n requestConfig() {\n const payload = {\n locale,\n namespace,\n delta: runtime.getDelta(),\n messages: runtime.getMergedMessages()\n }\n options.onConfigRequest?.(payload)\n return payload\n },\n install(\n target = options.target || (typeof globalThis !== 'undefined' ? globalThis : undefined)\n ) {\n if (!target) return runtime\n target.$t = runtime.t\n target.$changeLocale = runtime.changeLocale\n target.$clearI18n = runtime.clearI18n\n target.$isRTL = runtime.isRTL\n target.__GC_I18N_RUNTIME__ = runtime\n return runtime\n }\n }\n\n return runtime\n}\n\nexport function installI18nRuntime(\n app?: any,\n options: I18nRuntimeOptions & { router?: any; messages?: I18nMessages } = {}\n) {\n const runtime = createI18nRuntime({\n ...options,\n localMessages: mergeMessageLayers(options.localMessages, options.messages)\n })\n runtime.install(options.target)\n\n if (app && typeof app.config === 'object') {\n app.config.globalProperties = app.config.globalProperties || {}\n app.config.globalProperties.$t = runtime.t\n app.config.globalProperties.$changeLocale = runtime.changeLocale\n app.config.globalProperties.$clearI18n = runtime.clearI18n\n app.config.globalProperties.$isRTL = runtime.isRTL\n }\n\n const target =\n options.target || (typeof globalThis !== 'undefined' ? (globalThis as any) : undefined)\n const hotkey = options.hotkey === false ? false : options.hotkey || DEFAULT_HOTKEY\n if (target && hotkey && typeof target.addEventListener === 'function') {\n target.addEventListener('keydown', (event: any) => {\n if (!parseHotkey(event, hotkey)) return\n const payload = runtime.requestConfig()\n if (\n typeof target.dispatchEvent === 'function' &&\n typeof target.CustomEvent === 'function'\n ) {\n target.dispatchEvent(\n new target.CustomEvent('gc-i18n-config-request', { detail: payload })\n )\n }\n })\n }\n\n return runtime\n}\n\nexport const runtimeUtils = {\n normalizeLocale,\n normalizeStorageKey,\n mergeMessageLayers\n}\n","// plugin.ts\n// 从 webpack 导入核心接口\n// 导入 gc-i18n-plugin-core 提供的工具和类型\nimport {\n fileUtils,\n translateUtils,\n FunctionFactoryOption,\n OptionInfo,\n option,\n initOption,\n checkOption,\n CNToTWTranslator,\n createI18nManifestCollector,\n serializeRuntimeManifest\n} from 'gc-i18n-plugin-core'\nimport webpack from 'webpack'\n// 导入 path 模块,用于处理文件和目录路径\nimport path from 'path'\n\n// 重新导出 gc-i18n-plugin-core 内容\nexport * from 'gc-i18n-plugin-core'\n\n/**\n * 允许处理的文件扩展名列表。\n * 如果只处理 `.js` 文件,可能会有遗漏。\n * 因此需要结合用户的配置,只处理特定目录内的指定文件类型。\n */\nconst allowedExtensions = ['.vue', '.tsx', '.jsx', '.js', '.ts']\nconst runtimeManifestAssetName = 'gc-i18n-runtime-manifest.mjs'\n\n/**\n * Webpack 插件实现,用于自动化处理国际化翻译功能\n */\nexport default class webpackPluginsAutoI18n {\n private readonly collector = createI18nManifestCollector()\n /**\n * 初始化插件并合并用户配置\n * @param optionInfo 用户提供的配置\n */\n constructor(optionInfo: OptionInfo) {\n // 初始化插件配置\n initOption({\n deepScan: true,\n globalPath: './lang',\n namespace: 'lang',\n translateKey: '$t',\n distPath: './dist/assets',\n distKey: 'index',\n targetLangList: ['zh-cn', 'zh-tw'],\n originLang: 'zh-cn',\n translator: new CNToTWTranslator(),\n ...optionInfo\n })\n\n // 检查配置有效性,如果无效则不执行后续逻辑\n if (!checkOption()) return\n\n // 初始化语言文件\n fileUtils.initLangFile()\n\n // 获取来源语言内容对象\n const originLangObj = fileUtils.getLangObjByJSONFileWithLangKey(option.originLang)\n\n // 补全语言配置,确保来源语言文件的内容完整性\n translateUtils.languageConfigCompletion(originLangObj)\n\n // 初始化翻译对象(用于翻译操作)\n translateUtils.initLangObj(originLangObj)\n }\n\n /**\n * Webpack 插件核心方法,用于集成到编译流程中\n * @param compiler Webpack 编译器实例\n */\n apply(compiler: webpack.Compiler) {\n // 配置初始语言选项,将来源语言设置为配置的 originLang\n FunctionFactoryOption.originLang = option.originLang\n\n /**\n * 检查是否已经添加过这个自定义 Loader,避免重复添加\n * @param rule Webpack 模块规则\n * @returns 如果已经添加过自定义 Loader 则返回 true,否则返回 false\n */\n const hasCustomLoader = (rule: any) =>\n rule.use &&\n Array.isArray(rule.use) &&\n rule.use.some(\n ({ loader }: { loader: string }) =>\n loader && loader.includes('customLoader/index.cjs')\n )\n\n /**\n * 在编译前阶段动态添加自定义 Loader\n */\n compiler.hooks.environment.tap('webpackPluginsAutoI18n', () => {\n // 检查 compiler 配置中是否有 module.rules 且没有添加过自定义 Loader\n if (\n compiler.options.module?.rules &&\n !compiler.options.module.rules.some(hasCustomLoader)\n ) {\n // 向 module.rules 中添加自定义 Loader\n compiler.options.module?.rules.push({\n // 生成高级正则表达式,用于匹配目标文件\n test: generateAdvancedRegex([\n ...allowedExtensions,\n ...(option.insertFileExtensions || [])\n ]),\n // 设置 Loader 执行顺序为后置\n enforce: 'post',\n use: [\n {\n // 指定自定义 Loader 的路径\n loader: path.resolve(__dirname, './customLoader/index.cjs'),\n options: {\n root: compiler.context,\n collector: this.collector\n }\n }\n ]\n })\n }\n })\n\n compiler.hooks.thisCompilation.tap('webpackPluginsAutoI18n', compilation => {\n compilation.hooks.processAssets.tap(\n {\n name: 'webpackPluginsAutoI18n',\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS\n },\n () => {\n const source = serializeRuntimeManifest(\n this.collector.toJSON({\n namespace: option.namespace,\n translateKey: option.translateKey,\n originLang: option.originLang,\n targetLangList: option.targetLangList\n })\n )\n\n compilation.emitAsset(\n runtimeManifestAssetName,\n new compiler.webpack.sources.RawSource(source)\n )\n }\n )\n })\n\n /**\n * 在构建阶段执行翻译任务\n */\n compiler.hooks.emit.tapPromise('webpackPluginsAutoI18n', async _compilation => {\n // 输出构建阶段开始批量翻译的信息\n console.info('构建阶段批量翻译')\n // 清理多余的翻译配置JSON文件\n translateUtils.cleanupUnusedTranslations()\n // 执行自动翻译任务\n await translateUtils.autoTranslate()\n // 输出翻译完成的信息\n console.info('翻译完成✔')\n })\n\n /**\n * 在构建完成后上传翻译文件(仅在生产模式下)\n */\n compiler.hooks.afterEmit.tapPromise('webpackPluginsAutoI18n', async _compilation => {\n // 检查是否为生产模式(build),开发模式(dev/serve)不上传\n const isProduction = compiler.options.mode === 'production'\n if (isProduction) {\n // 检查是否启用了上传功能\n if (option.uploadEnabled) {\n console.info('构建阶段:开始上传翻译文件')\n await fileUtils.uploadFile()\n } else {\n console.info('构建阶段:上传翻译文件功能已禁用(uploadEnabled: false)')\n }\n }\n })\n }\n}\n\n/**\n * 动态生成一个正则表达式,用于匹配目标文件。\n *\n * 验证以下条件:\n * - 文件名需以特定的扩展名结尾(如 `.vue`, `.ts` 等)\n * - 必须满足 `option.includePath` 中的至少一个短语或正则表达式;\n * - 不能满足 `option.excludedPath` 中的任何短语或正则表达式。\n *\n * @param extensions 文件扩展名数组 (如: ['.vue', '.tsx', '.jsx', '.js', '.ts'])\n * @returns 匹配文件的动态生成正则表达式\n */\nfunction generateAdvancedRegex(extensions: string[]): RegExp {\n // 生成扩展名的正则表达式部分\n const extensionsRegex = `(${extensions.map(ext => ext.replace('.', '\\\\.')).join('|')})$`\n\n /**\n * 将短语(字符串或正则)转化为正则表达式\n * @param phrase 包含字符串或正则的短语\n * @returns 短语对应的正则表达式\n */\n function phraseToRegex(phrase: string | RegExp): string {\n if (phrase instanceof RegExp) {\n // 如果是正则表达式,直接返回其源字符串\n return phrase.source\n }\n // 如果是字符串,对特殊字符进行转义\n return phrase.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n }\n\n // 获取用户配置的包含路径\n const includePhrases = option.includePath\n\n // 获取用户配置的排除路径\n const excludePhrases = option.excludedPath\n\n // 生成包含路径的正则表达式部分\n const includeRegex = includePhrases.length\n ? `(?=.*(${includePhrases.map(phraseToRegex).join('|')}))`\n : ''\n\n // 生成排除路径的正则表达式部分\n const excludeRegex = excludePhrases.length\n ? `^(?!.*(${excludePhrases.map(phraseToRegex).join('|')}))`\n : ''\n\n // 组合最终的正则表达式\n const finalRegex = `${excludeRegex}${includeRegex}.*${extensionsRegex}`\n // 返回忽略大小写的正则表达式对象\n return new RegExp(finalRegex, 'i')\n}\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","l","ar","Array","slice","concat","SuppressedError","error","suppressed","message","Error","name","IntervalQueue","constructor","fn","delay","timeout","queue","wait","undefined","setTimeout","isRunning","run","item","shift","args","execute","_len","_key","Translator","option","getResultOption","defaultErrorHandler","console","getErrorMessage","resultOption","version","maxChunkSize","interval","onError","getIntervalFn","bind","fetchMethod","String","translate","text","fromKey","toKey","separator","GoogleTranslator","data","proxyOption","fetchOptions","agent","tunnel","httpsOverHttp","proxy","insertOption","cb","code","YoudaoTranslator","YOUDAO_TRANSLATE_KEY_CONVERT_MAP","truncate","q","len","substring","getTranslateKey","key","salt","Date","getTime","curTime","Math","round","str","appId","appKey","sign","CryptoJS","SHA256","toString","enc","Hex","signType","curtime","response","axios","post","headers","translation","BaiduTranslator","BAIDU_TRANSLATE_KEY_CONVERT_MAP","ja","ko","appid","MD5","translatedTexts","trans_result","map","dst","filter","_item","index","join","EmptyTranslator","_from","_to","split","fill","ScanTranslator","cn2tw","OpenCC","Converter","CNToTWTranslator","FunctionFactoryOption","originLang","LanguageEnum","OriginLangKeyEnum","REGEX_MAP","ZH","EN","JA","KO","RU","indentConfig","tab","char","size","space","configDefault","type","placeholderStorage","pushPlaceholder","match","popPlaceholder","_match","generateIndentation","count","indentType","formatJSON","json","output","indentLevel","replace","charAt","jsonFormatter","config","jsonString","JSON","stringify","indent","createTextSplitter","values","SEP_LENGTH","SEPARATOR","buffer","currentSize","commitBuffer","actualLength","warn","neededSpace","splitByRegex","separatorRegex","punctuationRegex","splitRegex","RegExp","source","flags","splitArr","Boolean","currentMatch","connectPunctuationRegex","connectRegex","test","finalResult","tempStr","mergeInlineTextSeparatedOriginChunks","strArray","current","beforeInlineText","inlineText","splitTrailingInlineText","normalizeInlineTextPrefix","isInlineTextSeparator","normalizeInlineTextSeparator","rest","splitLeadingInlineText","trimStart","tagIndex","search","tagEndIndex","lastIndexOf","checkNeedSplit","includes","convertToTemplateLiteral","quasis","types","templateElement","raw","cooked","expressions","forEach","getOriginRegex","baseUtils","isExpression","quasi","tail","templateLiteral","deepScanCall","callExpression","identifier","upload","appCode","targetLangList","parts","lang","toUpperCase","page","get","res","Authorization","status","info","log","initLangFile","fs","existsSync","globalPath","mkdirSync","initLangTranslateJSONFile","initTranslateBasicFnFile","normalizeRuntimeLangKey","langKey","toLowerCase","resolveLanguageMeta","region","normalizedCode","matched","find","allLanguage","getRuntimeLangKeys","Set","createRuntimeIndexCode","namespace","commonTranslateKey","originRuntimeKey","languages","langEntries","runtimeKey","indexPath","path","translateBasicFnText","writeFileSync","getLangTranslateJSONFile","filePath","content","readFileSync","getLangObjByJSONFileWithLangKey","insertJSONObj","JSONObj","parse","langObj","keys","langCode","setLangTranslateJSONFile","obj","jsonObj","uploadFile","uploadUtils","SPLIT_SEPARATOR_REGEX","normalizeValueForDedupe","trim","findKeyByValue","valueMap","exactKey","entries","_ref","oldValue","normalizedValue","_ref2","getExistingOriginLangObj","fileUtils","getLangKeyByValue","resolveLangKey","isTemplateValue","hasOriginSymbols","originRegex","getTemplateSemanticSplitSegments","segments","beforeValue","afterValue","segment","add","isTemplateStaticSegment","some","removeTemplateStaticSegments","has","setLangObj","existingKey","dedupeLangObjMapByOriginValue","originLangObjMap","originMap","valueKeyMap","Map","set","getLangObj","initLangObj","autoTranslate","enabled","currentLangObj","keyMap","transLangObj","newLangObjMap","langIndex","currentLang","translatedValues","translateChunks","configLangObj","languageConfigCompletion","needCompletionList","JSONobj","curLangObj","completionTranslateAndWriteConfigFile","translateKey","resultValues","translator","placeholders","protectedValues","protectInterpolationPlaceholders","translationChunks","chunkUtils","translatePromises","chunkResults","all","restoreInterpolationPlaceholders","splitTranslation","lines","line","realList","flat","Number","cleanupUnusedTranslations","isClear","langSet","baseObj","baseObjKeys","removeComments","checkAgainstRegexArray","regexArray","regex","extractFunctionName","node","callName","callObjName","callObj","property","isMemberExpression","object","isCallExpression","callee","isConsoleMemberCall","computed","isIdentifier","isInsideConsoleCallArgument","currentPath","parentPath","parentNode","arg","extractCnStrings","fileContent","extractStrings","matches","indexOf","createI18nTranslator","createOption","nameSpace","trimmedValue","valStr","normalizeTranslateValue","generatedKey","generateId","hash","uncodeValue","collector","record","useValueAsKey","resourcePath","root","translateExtends","handleCodeCall","handleCodeString","valueExp","stringLiteral","extra","rawValue","isClearSpace","charCode","charCodeAt","id","abs","unicodeToString","fromCharCode","parseInt","cloneDeep","cache","WeakMap","clone","isArray","getOwnPropertySymbols","sym","propertyIsEnumerable","VolcengineTranslator","textArr","sourceMap","fromEntries","model","messages","role","desc","apiKey","resultTextArr","choices","resultMap","isMiss","TranslateApiEnum","TranslateTypeEnum","EXCLUDED_CALL","DEFAULT_OPTION","excludedCall","excludedPattern","excludedPath","includePath","distPath","distKey","orgCode","buildToDist","uploadEnabled","port","host","translatorOption","translateType","FULL_AUTO","rewriteConfig","deepScan","insertFileExtensions","generateUserOption","optionInfo","userOption","initOption","checkOption","Vue2Extends","handleInitFile","importVue","hasVue","importDefaultChar","babel","transformAsync","configFile","plugins","visitor","ImportDeclaration","specifiers","specifier","isImportDefaultSpecifier","local","unshift","importDefaultSpecifier","_initFileResult","memberExpression","asianLangs","SEMI_AUTO","parent","isTaggedTemplateExpression","extractFnName","handleTemplateLiteralWithExpressions","handleTemplateElement","hasOptimizedExpression","expressionLabels","expression","optimizedExpression","optimizeConditionalExpression","getExpressionPlaceholder","placeholder","fullValue","reduce","formatExpressionPlaceholder","skip","hasExpressionInsideOriginContent","translateUtils","translateNode","createTranslateNode","replaceWith","getTemplateElementValue","isStringLiteral","isNumericLiteral","isTSAsExpression","isTSTypeAssertion","isTSNonNullExpression","generateCode","generate","default","normalizeExpressionPlaceholder","comments","isConditionalExpression","consequent","translateConditionalStringBranch","alternate","changed","getConditionalExpressionLabel","conditionalExpression","cloneNode","createTrackedTranslateCall","isTemplateLiteral","translateCall","createTemplateLiteralTranslateCall","createTemplateLiteralWithTranslatedQuasis","createTranslateCall","nextExpressions","pendingText","hasTranslatedQuasi","isBinaryExpression","isLogicalExpression","left","isVueTemplateRender","sequenceExpression","createVueTemplateLanguageDependency","placeholderEntries","objectExpression","objectProperty","scope","getBinding","vm","store","storeState","siteState","storeLanguage","logicalExpression","i18n","i18nLocale","newNode","replaceNode","translateSetLang","idArg","valueArg","resolvedId","isTranslateCall","isImportDeclaration","vueVNodeCallPath","getVueCompiledVNodeCallPath","splitUtils","isJSXAttribute","jSXExpressionContainer","markVueCompiledVNodeDynamic","callPath","isVueVNodeCreateCall","listKey","patchFlag","isCachedPatchFlag","textPatchFlag","numericLiteral","leadingComments","innerComments","trailingComments","logicalPath","findParent","operator","right","isAssignmentExpression","isVueRenderCacheMember","isUnaryExpression","argument","stringLiteralVisitor","StringLiteralFn","jsxTextVisitor","JSXTextFn","templateLiteralVisitor","TemplateLiteral","callExpressionVisitor","CallExpressionFn","StringLiteral","JSXText","CallExpression","RUNTIME_MANIFEST_VERSION","RUNTIME_MANIFEST_GLOBAL","VITE_RUNTIME_MANIFEST_ID","RESOLVED_VITE_RUNTIME_MANIFEST_ID","normalizeResourcePath","relativePath","relative","startsWith","createI18nManifestCollector","process","cwd","records","input","dedupeKey","toJSON","recordList","sort","leftPath","rightPath","localeCompare","resourceMap","allKeys","byFile","resources","clear","serializeRuntimeManifest","manifest","RTL_LANGUAGES","DEFAULT_NAMESPACE","DEFAULT_HOTKEY","normalizeLocale","locale","fallback","normalizeStorageKey","cloneMessages","mergeMessageLayers","layers","layer","runtimeLocale","getMessagesForLocale","baseLocale","interpolate","template","params","parseHotkey","event","hotkey","modifiers","part","altKey","ctrlKey","metaKey","shiftKey","createI18nRuntime","options","fallbackLocale","initialLocale","commonMessages","localMessages","remoteMessages","delta","runtime","getLocale","setRemoteMessages","mergeMessages","callNamespace","interpolationParams","fallbackValue","getMergedMessages","localeMessages","translated","deltaKey","changeLocale","nextLocale","clearI18n","isRTL","targetLocale","getDelta","requestConfig","payload","onConfigRequest","install","target","globalThis","$t","$changeLocale","$clearI18n","$isRTL","__GC_I18N_RUNTIME__","installI18nRuntime","app","globalProperties","addEventListener","dispatchEvent","CustomEvent","detail","runtimeUtils","allowedExtensions","runtimeManifestAssetName","webpackPluginsAutoI18n","originLangObj","compiler","_this","hasCustomLoader","rule","use","_a","loader","hooks","environment","tap","module","rules","_b","generateAdvancedRegex","enforce","__dirname","context","thisCompilation","compilation","processAssets","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_ADDITIONS","emitAsset","sources","RawSource","emit","tapPromise","_compilation","afterEmit","isProduction","mode","extensions","extensionsRegex","ext","phraseToRegex","phrase","includePhrases","excludePhrases","includeRegex","excludeRegex","finalRegex"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.20.0_tslib@2.8.1_typescript@5.9.2/node_modules/tslib/tslib.es6.js","../../autoI18nPluginCore/src/translators/translator/IntervalQueue.ts","../../autoI18nPluginCore/src/translators/translator/Translator.ts","../../autoI18nPluginCore/src/translators/google.ts","../../autoI18nPluginCore/src/translators/youdao.ts","../../autoI18nPluginCore/src/translators/baidu.ts","../../autoI18nPluginCore/src/translators/scan.ts","../../autoI18nPluginCore/src/translators/cn-tw.ts","../../autoI18nPluginCore/src/utils/option.ts","../../autoI18nPluginCore/src/enums/language.ts","../../autoI18nPluginCore/src/constants/translate.ts","../../autoI18nPluginCore/src/utils/allLanguage.ts","../../autoI18nPluginCore/src/utils/json.ts","../../autoI18nPluginCore/src/utils/chunk.ts","../../autoI18nPluginCore/src/utils/split.ts","../../autoI18nPluginCore/src/utils/upload.ts","../../autoI18nPluginCore/src/utils/file.ts","../../autoI18nPluginCore/src/utils/translate.ts","../../autoI18nPluginCore/src/utils/base.ts","../../autoI18nPluginCore/src/translators/volcengine.ts","../../autoI18nPluginCore/src/enums/translate.ts","../../autoI18nPluginCore/src/enums/option.ts","../../autoI18nPluginCore/src/option.ts","../../autoI18nPluginCore/src/extends/vue2.ts","../../autoI18nPluginCore/src/filter/visitor/TemplateLiteral.ts","../../autoI18nPluginCore/src/filter/visitor/CallExpression.ts","../../autoI18nPluginCore/src/filter/visitor/StringLiteral.ts","../../autoI18nPluginCore/src/filter/visitor/JSXText.ts","../../autoI18nPluginCore/src/filter/index.ts","../../autoI18nPluginCore/src/manifest/index.ts","../../autoI18nPluginCore/src/runtime/index.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * 间隔执行队列\n */\nexport class IntervalQueue<T extends any[], U extends any> {\n private delay: number\n private timeout: number | undefined\n private fn: (...args: T) => U\n\n /**\n * @param fn 执行函数\n * @param delay 执行间隔\n * @param timeout 超时时间\n */\n constructor(fn: (...args: T) => U, delay: number, timeout?: number) {\n this.fn = fn\n this.delay = delay\n this.timeout = timeout\n }\n\n private queue: {\n args: T\n resolve: (value: Awaited<U>) => void\n reject: (reason?: any) => void\n }[] = []\n\n private async wait(delay = this.delay) {\n await new Promise(resolve => setTimeout(resolve, delay))\n }\n\n private isRunning = false\n\n private async run() {\n if (this.isRunning) return\n let item: (typeof this.queue)[number] | undefined\n while ((item = this.queue.shift())) {\n const { args, resolve, reject } = item\n this.isRunning = true\n try {\n const result = await this.fn(...args)\n resolve(result)\n } catch (e) {\n reject(e)\n }\n await this.wait()\n }\n this.isRunning = false\n }\n\n /**\n * 执行一次fn\n * @param args fn的入参\n * @returns 返回fn的返回值的Promise\n */\n execute(...args: T) {\n return new Promise<Awaited<U>>((resolve, reject) => {\n this.queue.push({ args, resolve, reject })\n this.run()\n if (this.timeout) {\n setTimeout(() => {\n reject(new Error('IntervalQueue timeout'))\n }, this.timeout)\n }\n })\n }\n}\n","import { IntervalQueue } from './IntervalQueue'\n\nexport interface TranslatorOption {\n /** Translator版本,用于做后续的功能迭代 */\n version?: number\n /**\n * 实际的请求方法\n * @param text 被翻译的文本\n * @param fromKey 源语言\n * @param toKey 目标语言\n * @param separator 分隔符\n * @returns 翻译后的文本\n */\n fetchMethod: (\n text: string,\n fromKey: string,\n toKey: string,\n separator: string\n ) => Promise<string>\n name: string\n /** 单次最大翻译文本长度 */\n maxChunkSize?: number\n /** 执行间隔(默认不开启) */\n interval?: number\n /**\n * 错误处理函数,主要是打印提示\n * @param err 抛出的异常\n * @param defaultErrorHandler 默认的错误处理函数\n * @returns 如果在这里抛出异常会中断翻译\n */\n onError?: (err: unknown, defaultErrorHandler: (error: unknown) => void) => void\n}\n\nexport class Translator {\n public option: Required<TranslatorOption>\n\n constructor(option: TranslatorOption) {\n this.option = this.getResultOption(option)\n }\n\n private defaultErrorHandler = (error: unknown) => {\n const name = this.option.name\n console.error(`翻译api${name ? `【${name}】` : ''}请求异常:${this.getErrorMessage(error)}`)\n }\n\n private getResultOption(option: TranslatorOption) {\n const resultOption: Required<TranslatorOption> = {\n version: 1,\n maxChunkSize: 4500, // 目前默认是4500\n interval: 0,\n onError: this.defaultErrorHandler,\n ...option\n }\n if (resultOption.interval) {\n const getIntervalFn = <T extends unknown[], U extends unknown>(\n fn: (...args: T) => U,\n delay: number\n ) => {\n const queue = new IntervalQueue(fn.bind(null), delay)\n return (...args: T) => {\n return queue.execute(...args)\n }\n }\n resultOption.fetchMethod = getIntervalFn(\n resultOption.fetchMethod,\n resultOption.interval\n )\n }\n return resultOption\n }\n\n protected getErrorMessage(error: unknown) {\n if (error instanceof Error) {\n return error.message\n } else {\n return String(error)\n }\n }\n\n async translate(text: string, fromKey: string, toKey: string, separator: string) {\n let result = ''\n try {\n result = await this.option.fetchMethod(text, fromKey, toKey, separator)\n } catch (error) {\n this.option.onError(error, this.defaultErrorHandler)\n }\n return result\n }\n}\n","/*\n * @Date: 2025-03-11 17:53:11\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-14 14:21:06\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/google.ts\n */\nimport { translate } from '@vitalets/google-translate-api'\nimport { Translator } from './translator'\nimport tunnel from 'tunnel'\n\nexport interface GoogleTranslatorOption {\n proxyOption?: tunnel.ProxyOptions\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 谷歌翻译器\n * \n * 基于@vitalets/google-translate-api,需要翻墙,不稳定,但是免费\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: translator: new GoogleTranslator({\n proxyOption: {\n // 如果你本地的代理在127.0.0.0:8899\n host: '127.0.0.1',\n port: 8899,\n headers: {\n 'User-Agent': 'Node'\n }\n }\n })\n})\n * ```\n */\nexport class GoogleTranslator extends Translator {\n constructor(option: GoogleTranslatorOption) {\n super({\n name: 'Google翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let data = await translate(text, {\n from: fromKey,\n to: toKey,\n ...(option.proxyOption\n ? {\n fetchOptions: {\n agent: tunnel.httpsOverHttp({\n proxy: option.proxyOption\n })\n }\n }\n : {}),\n ...(option.insertOption || {})\n })\n return data['text'] || ''\n },\n onError: (error, cb) => {\n cb(error)\n if (error instanceof Object && 'code' in error && error.code === 'ETIMEDOUT') {\n console.error('❗ 请求超时,请确保你的网络可以访问google ❗')\n }\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","import axios, { AxiosProxyConfig } from 'axios'\nimport { Translator } from './translator'\nimport CryptoJS from 'crypto-js'\n\nexport interface YoudaoTranslatorOption {\n appId: string\n appKey: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 有道翻译器\n * \n * api文档:https://ai.youdao.com/DOCSIRMA/html/trans/api/wbfy/index.html\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new YoudaoTranslator({\n appId: '你申请的appId',\n appKey: '你申请的appKey'\n })\n})\n * ```\n */\nexport class YoudaoTranslator extends Translator {\n /** 有道的语言类型映射不标准,需要手动控制 */\n private readonly YOUDAO_TRANSLATE_KEY_CONVERT_MAP: Record<string, string> = {\n 'zh-cn': 'zh-CHS',\n 'zh-tw': 'zh-CHT'\n }\n\n private truncate(q: string) {\n // 检查输入字符串的长度\n if (q.length <= 20) {\n // 如果长度小于等于20,直接返回原字符串\n return q\n } else {\n // 如果长度大于20,截取前10个字符和后10个字符,并在中间插入长度信息\n const len = q.length\n return q.substring(0, 10) + len + q.substring(len - 10)\n }\n }\n\n private getTranslateKey(key: string) {\n return this.YOUDAO_TRANSLATE_KEY_CONVERT_MAP[key] || key\n }\n\n constructor(option: YoudaoTranslatorOption) {\n super({\n name: '有道翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let salt = new Date().getTime()\n let curTime = Math.round(new Date().getTime() / 1000)\n let str = option.appId + this.truncate(text) + salt + curTime + option.appKey\n let sign = CryptoJS.SHA256(str).toString(CryptoJS.enc.Hex)\n\n const data = {\n q: text,\n appKey: option.appId,\n salt,\n from: this.getTranslateKey(fromKey),\n to: this.getTranslateKey(toKey),\n sign,\n signType: 'v3',\n curtime: curTime,\n ...(option.insertOption || {})\n }\n const response = await axios.post('https://openapi.youdao.com/api', data, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n },\n proxy: option.proxy\n })\n // 请求成功,返回响应数据\n return response.data.translation?.[0] || ''\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请前往有道翻译官方申请翻译key,默认会有50的额度,并请检查额度是否充足。'\n )\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Date: 2025-03-16 23:39:13\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-17 01:11:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/baidu.ts\n */\nimport axios, { AxiosProxyConfig } from 'axios'\nimport { Translator } from './translator'\nimport CryptoJS from 'crypto-js'\n\nexport interface BaiduTranslatorOption {\n appId: string\n appKey: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 百度翻译器\n * \n * api文档:https://api.fanyi.baidu.com/product/113\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new BaiduTranslator({\n appId: '你申请的appId',\n appKey: '你申请的appKey'\n })\n})\n * ```\n */\nexport class BaiduTranslator extends Translator {\n /** 百度的语言类型映射不标准,需要手动控制 */\n protected readonly BAIDU_TRANSLATE_KEY_CONVERT_MAP: Record<string, string> = {\n 'zh-cn': 'zh',\n ja: 'jp',\n ko: 'kor'\n }\n\n protected getTranslateKey(key: string) {\n return this.BAIDU_TRANSLATE_KEY_CONVERT_MAP[key] || key\n }\n\n constructor(option: BaiduTranslatorOption) {\n super({\n name: '百度翻译',\n fetchMethod: async (text, fromKey, toKey, separator) => {\n let salt = new Date().getTime()\n\n const data = {\n q: text,\n appid: option.appId,\n from: this.getTranslateKey(fromKey),\n to: this.getTranslateKey(toKey),\n salt,\n sign: CryptoJS.MD5(option.appId + text + salt + option.appKey).toString(),\n ...(option.insertOption || {})\n }\n const response = await axios.post(\n 'https://fanyi-api.baidu.com/api/trans/vip/translate',\n data,\n {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n },\n proxy: option.proxy\n }\n )\n\n const translatedTexts = response.data?.trans_result\n .map((item: any) => item.dst)\n .filter((_item: string, index: number) => index % 2 === 0)\n .join(separator)\n\n // 请求成功,返回响应数据\n return translatedTexts || ''\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请前往百度翻译官方申请翻译key,每个月都有免费额度,并请检查额度是否充足。'\n )\n },\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Date: 2025-03-31 19:05:57\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-31 19:52:10\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/translator/scan.ts\n */\nimport { Translator, TranslatorOption } from './translator'\n\n/**\n * 空翻译器,不翻译文本,用于配合某些特殊的操作\n */\nexport class EmptyTranslator extends Translator {\n constructor(option: Partial<TranslatorOption> = {}) {\n const resultOption: TranslatorOption = {\n name: '空翻译器',\n fetchMethod: async (text, _from, _to, separator) => {\n // 相当于把翻译结果统一设置为空串\n const value = text.split(separator).fill('')\n return value.join(separator)\n },\n ...option\n }\n super(resultOption)\n }\n // TODO: 后续可以作为基类,提供更多的配置选项\n}\n\n/** @deprecated 别名导出,兼容旧版本 */\nexport const ScanTranslator = EmptyTranslator\n","import { Translator } from './translator'\nimport * as OpenCC from 'opencc-js'\nconst cn2tw = OpenCC.Converter({ from: 'cn', to: 'tw' })\n\nexport class CNToTWTranslator extends Translator {\n constructor() {\n super({\n name: '中翻繁翻译',\n fetchMethod: async (text, fromKey, toKey) => {\n let translatedTexts = text\n if (fromKey === 'zh-cn' && toKey === 'zh-tw') {\n translatedTexts = cn2tw(text)\n }\n\n // 请求成功,返回响应数据\n return translatedTexts\n },\n onError: (error, cb) => {\n cb(error)\n console.error('翻译失败')\n }\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-02-29 14:44:18\n * @LastEditTime: 2024-03-01 11:42:34\n * @FilePath: /i18n_translation_vite/autoI18nPluginCore/src/utils/option.ts\n */\nimport { FunctionFactoryOptions } from '../types'\n\nexport class FunctionFactoryOption {\n static originLang: string = ''\n}\n\nexport const functionFactory = (\n fn: (path: string, options: FunctionFactoryOptions) => void,\n options: FunctionFactoryOptions\n) => {\n return (path: any) => {\n fn(path, options)\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-03-11 18:59:10\n * @LastEditTime: 2025-03-16 18:15:25\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/enums/language.ts\n */\n// 待补充...\nexport enum LanguageEnum {}\n\nexport enum OriginLangKeyEnum {\n ZH = 'zh-cn',\n EN = 'en',\n JA = 'ja',\n KO = 'ko',\n RU = 'ru'\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-04-06 15:47:14\n * @LastEditTime: 2025-03-16 18:18:28\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/constants/translate.ts\n */\nimport { OriginLangKeyEnum } from 'src/enums/language'\n\nexport const REGEX_MAP = {\n [OriginLangKeyEnum.ZH]: /[\\u4e00-\\u9fff]/,\n [OriginLangKeyEnum.EN]: /[a-zA-Z]/,\n [OriginLangKeyEnum.JA]: /[\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF]/, // 日语假名和汉字\n [OriginLangKeyEnum.KO]: /[\\uAC00-\\uD7A3]/, // 韩语字母\n [OriginLangKeyEnum.RU]: /[йцукенгшщзхъфывапролджэячсмитьбюё .-]{1,}/ // 俄语字母\n}\n","export default [\n {\n code: 'zh-CN',\n name: '简体中文'\n },\n {\n code: 'zh-TW',\n name: '繁体中文'\n },\n {\n code: 'zh-UG',\n name: '维吾尔语'\n },\n {\n code: 'en-US',\n name: '英文'\n },\n {\n code: 'tr-TR',\n name: '土耳其语'\n },\n {\n code: 'es-ES',\n name: '西班牙语'\n },\n {\n code: 'ja-JP',\n name: '日语'\n },\n {\n code: 'ru-RU',\n name: '俄语'\n },\n {\n code: 'fr-FR',\n name: '法语'\n },\n {\n code: 'de-DE',\n name: '德语'\n },\n {\n code: 'pt-BR',\n name: '巴西葡萄牙语'\n },\n {\n code: 'pt-PT',\n name: '葡萄牙语'\n },\n {\n code: 'ko-KR',\n name: '韩语'\n },\n {\n code: 'vi-VN',\n name: '越南语'\n },\n {\n code: 'sv-SE',\n name: '瑞典语'\n },\n {\n code: 'id-ID',\n name: '印尼语'\n },\n {\n code: 'uk-UA',\n name: '乌克兰语'\n },\n {\n code: 'it-IT',\n name: '意大利语'\n },\n {\n code: 'th-TH',\n name: '泰语'\n },\n {\n code: 'hi-IN',\n name: '印地语'\n },\n {\n code: 'fa-IR',\n name: '波斯语'\n },\n {\n code: 'ro-RO',\n name: '罗马尼亚语'\n },\n {\n code: 'el-GR',\n name: '希腊语'\n },\n {\n code: 'nl-NL',\n name: '荷兰语'\n },\n {\n code: 'cs-CZ',\n name: '捷克语'\n },\n {\n code: 'mn-MN',\n name: '蒙古语'\n },\n {\n code: 'mn-TR',\n name: '传统蒙古语'\n },\n {\n code: 'fi-FI',\n name: '芬兰语'\n },\n {\n code: 'ar-SA',\n name: '阿拉伯语'\n },\n {\n code: 'ar-EG',\n name: '阿拉伯语-埃及'\n },\n {\n code: 'da-DK',\n name: '丹麦语'\n },\n {\n code: 'pl-PL',\n name: '波兰语'\n },\n {\n code: 'nb-NO',\n name: '挪威语'\n },\n {\n code: 'si-LK',\n name: '僧伽罗语'\n }\n]\n","/**\n * JSON 格式化配置类型\n */\ntype IndentType = 'tab' | 'space'\n\ninterface IndentConfig {\n tab: { char: string; size: number }\n space: { char: string; size: number }\n}\n\ninterface JSONFormatConfig {\n type: IndentType\n size?: number\n}\n\n// 默认的缩进配置\nconst indentConfig: IndentConfig = {\n tab: { char: '\\t', size: 1 },\n space: { char: ' ', size: 4 }\n}\n\n// 默认格式化配置\nconst configDefault: JSONFormatConfig = {\n type: 'tab'\n}\n\n// 临时存储替换字符串的数组\nlet placeholderStorage: string[] = []\n\n// 临时存储处理函数\nconst pushPlaceholder = (match: string): string => `\\\\${placeholderStorage.push(match)}\\\\`\nconst popPlaceholder = (_match: string, index: string): string => placeholderStorage[+index - 1]\n\n// 生成缩进字符\nconst generateIndentation = (count: number, indentType: string): string => {\n return new Array(count + 1).join(indentType)\n}\n\n/**\n * 格式化 JSON 字符串\n * @param json JSON 字符串\n * @param indentType 缩进类型\n * @returns 格式化的 JSON 字符串\n */\nfunction formatJSON(json: string, indentType: string): string {\n placeholderStorage = []\n let output = ''\n let indentLevel = 0\n\n // 提取反斜杠和字符串\n json = json\n .replace(/\\\\./g, pushPlaceholder) // 处理反斜杠\n .replace(/(\".*?\"|'.*?')/g, pushPlaceholder) // 处理字符串\n .replace(/\\s+/g, '') // 去除多余空格\n\n // 根据 JSON 内容添加换行和缩进\n for (let i = 0; i < json.length; i++) {\n const char = json.charAt(i)\n\n switch (char) {\n case '{':\n case '[':\n output += char + '\\n' + generateIndentation(++indentLevel, indentType)\n break\n case '}':\n case ']':\n output += '\\n' + generateIndentation(--indentLevel, indentType) + char\n break\n case ',':\n output += ',\\n' + generateIndentation(indentLevel, indentType)\n break\n case ':':\n output += ': '\n break\n default:\n output += char\n break\n }\n }\n\n // 去除数字数组的空格,并还原反斜杠和字符串\n output = output\n .replace(/\\[[\\d,\\s]+?\\]/g, match => match.replace(/\\s/g, ''))\n .replace(/\\\\(\\d+)\\\\/g, popPlaceholder) // 还原填充数据\n .replace(/\\\\(\\d+)\\\\/g, popPlaceholder) // 再次还原填充数据\n\n return output\n}\n\n/**\n * 格式化 JSON 的主函数\n * @param json 需要格式化的 JSON 对象或字符串\n * @param config 配置选项\n * @returns 格式化后的 JSON 字符串\n */\nexport function jsonFormatter(\n json: object | string,\n config: JSONFormatConfig = configDefault\n): string {\n // 确保输入是 JSON 字符串\n const jsonString = typeof json === 'string' ? json : JSON.stringify(json)\n\n // 获取缩进配置\n const indent = indentConfig[config.type]\n if (!indent) {\n throw new Error(`Unrecognized indent type: \"${config.type}\"`)\n }\n\n // 生成缩进字符\n const indentType = generateIndentation(config.size || indent.size, indent.char)\n\n // 格式化 JSON 字符串\n return formatJSON(jsonString, indentType)\n}\n","/*\n * @Date: 2025-02-17 17:11:26\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-02-17 18:00:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/chunk.ts\n */\nimport { SEPARATOR } from './translate'\n\n/**\n * 智能文本分块处理器\n * @param values 待分块的原始文本数组\n * @param maxChunkSize 最大分块长度\n * @returns 包含分块文本和重组方法的对象\n *\n * 功能特性:\n * 1. 自动合并小文本为最大可能块\n * 2. 处理超长文本并给出警告\n * 3. 保证块长度不超过限制\n * 4. 保留原始顺序和分隔符语义\n */\nexport function createTextSplitter(values: string[], maxChunkSize: number) {\n // 分隔符定义(用于合并/拆分时保持语义)\n const SEP_LENGTH = SEPARATOR.length\n\n // 结果存储和缓冲区\n const result: string[] = [] // 最终分块结果\n let buffer: string[] = [] // 当前累积块缓冲区\n let currentSize = 0 // 当前缓冲区字符数(含分隔符)\n\n /**\n * 提交缓冲区内容到结果集\n * - 将缓冲区内容用分隔符连接\n * - 重置缓冲区和计数器\n */\n const commitBuffer = () => {\n if (buffer.length > 0) {\n // 计算实际连接长度用于验证\n const actualLength = buffer.join(SEPARATOR).length\n if (actualLength > maxChunkSize) {\n console.warn(`缓冲区提交异常:生成块长度 ${actualLength} 超过限制`)\n }\n\n result.push(buffer.join(SEPARATOR))\n buffer = []\n currentSize = 0\n }\n }\n\n // 主处理循环:遍历所有原始文本项\n for (const value of values) {\n // 计算需要新增的空间:文本长度 + 分隔符(非首项)\n const neededSpace = value.length + (buffer.length > 0 ? SEP_LENGTH : 0)\n\n // ─── 超长文本处理策略 ───\n if (value.length > maxChunkSize) {\n // 优先提交现有缓冲区内容\n if (buffer.length > 0) commitBuffer()\n\n /**\n * 超长文本处理逻辑:\n * - 长度超过1.5倍限制时发出强警告\n * - 强制单独成块(即使超过限制)\n * - 后续需要特殊处理这些异常块\n */\n if (value.length > maxChunkSize * 1.5) {\n console.warn(\n `超长文本告警:检测到长度 ${value.length} 字符的文本项,可能影响翻译质量`\n )\n }\n // 结果直接新增一个超长文本\n result.push(value)\n continue\n }\n\n // ─── 正常分块逻辑 ───\n // 空间不足时提交当前缓冲区\n if (currentSize + neededSpace > maxChunkSize) {\n commitBuffer()\n }\n\n // 更新缓冲区状态(累加长度需包含分隔符)\n currentSize += neededSpace\n buffer.push(value)\n }\n\n // 提交最终未完成的缓冲区内容\n commitBuffer()\n\n // 返回分块结果\n return result\n}\n","/*\n * @Date: 2025-03-26 20:28:21\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-31 10:29:49\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/split.ts\n */\n// 插件核心文件\n// 字符串切割与转换函数\n// import generate from '@babel/generator'\nimport { getOriginRegex } from './base'\nimport * as types from '@babel/types'\nimport { baseUtils } from '.'\n\n// todo 这个切割函数可以优化,性能可能很差\n/**\n * 根据正则表达式分割字符串,并将符合正则的连续字符拼接起来。\n * @param str - 要分割的字符串。\n * @param separatorRegex - 用于分割字符串的正则表达式。\n * @returns 分割并拼接后的字符串数组。\n */\n/**\n * 这个函数的主要功能是根据给定的正则表达式分割字符串,并对分割结果进行特殊处理。\n * 处理过程分为三个主要步骤:\n *\n * 1. 首先根据分隔符正则和标点符号正则进行初步分割\n * 2. 然后将连续的标点符号和符合分隔符正则的部分重新连接\n * 3. 最后将不符合分隔符正则的相邻部分合并\n *\n * @param str - 需要分割的源字符串\n * @param separatorRegex - 用于分割的正则表达式\n * @returns 处理后的字符串数组\n */\nexport function splitByRegex(str: string, separatorRegex: RegExp): string[] {\n // 定义标点符号的正则表达式\n const punctuationRegex = /[,。?!《》()(),..:!?\"\"'';'\"、0-9\\n\\r\\t\\v\\f]/\n // 创建一个新的正则表达式,用于分割字符串\n const splitRegex = new RegExp(\n `(${separatorRegex.source}|${punctuationRegex.source})`,\n separatorRegex.flags\n )\n\n // 使用正则表达式分割字符串,并过滤掉空字符串\n const splitArr = str.split(splitRegex).filter(Boolean)\n const result: string[] = []\n let currentMatch = ''\n\n // 定义连接标点符号的正则表达式\n const connectPunctuationRegex = /[,。?!《》()(),..:!?;'\"、0-9]/\n // 创建一个新的正则表达式,用于检测是否需要连接\n const connectRegex = new RegExp(\n `(${separatorRegex.source}|${connectPunctuationRegex.source})`,\n separatorRegex.flags\n )\n\n // 遍历分割后的数组\n for (const item of splitArr) {\n if (connectRegex.test(item)) {\n // 如果当前项符合连接条件,则将其添加到当前匹配字符串中\n currentMatch += item\n } else {\n // 如果当前匹配字符串不为空,则将其添加到结果数组中\n if (currentMatch) {\n result.push(currentMatch)\n currentMatch = ''\n }\n // 将当前项添加到结果数组中\n result.push(item)\n }\n }\n\n // 如果最后一个匹配字符串不为空,则将其添加到结果数组中\n if (currentMatch) {\n result.push(currentMatch)\n }\n\n // 再遍历一次,把不符合separatorRegex 这个正则的拼起来\n const finalResult: string[] = []\n let tempStr = ''\n\n for (let i = 0; i < result.length; i++) {\n const item = result[i]\n if (separatorRegex.test(item)) {\n if (tempStr) {\n finalResult.push(tempStr)\n tempStr = ''\n }\n finalResult.push(item)\n } else {\n tempStr += item\n if (i === result.length - 1 || separatorRegex.test(result[i + 1])) {\n finalResult.push(tempStr)\n tempStr = ''\n }\n }\n }\n\n if (tempStr) {\n finalResult.push(tempStr)\n }\n return mergeInlineTextSeparatedOriginChunks(finalResult, separatorRegex)\n}\n\nfunction mergeInlineTextSeparatedOriginChunks(strArray: string[], separatorRegex: RegExp) {\n const result: string[] = []\n\n for (let i = 0; i < strArray.length; i++) {\n let current = strArray[i]\n\n if (!separatorRegex.test(current) && i + 1 < strArray.length && separatorRegex.test(strArray[i + 1])) {\n const { beforeInlineText, inlineText } = splitTrailingInlineText(current)\n if (inlineText && /[^\\s\\u00a0]/.test(inlineText)) {\n if (beforeInlineText) {\n result.push(beforeInlineText)\n }\n current = `${normalizeInlineTextPrefix(inlineText)}${strArray[i + 1]}`\n i += 1\n }\n }\n\n if (\n !separatorRegex.test(current) &&\n isInlineTextSeparator(current) &&\n /[^\\s\\u00a0]/.test(current) &&\n i + 1 < strArray.length &&\n separatorRegex.test(strArray[i + 1])\n ) {\n current = `${normalizeInlineTextPrefix(current)}${strArray[i + 1]}`\n i += 1\n }\n\n if (separatorRegex.test(current)) {\n while (\n i + 2 < strArray.length &&\n isInlineTextSeparator(strArray[i + 1]) &&\n separatorRegex.test(strArray[i + 2])\n ) {\n current += `${normalizeInlineTextSeparator(strArray[i + 1])}${strArray[i + 2]}`\n i += 2\n }\n if (i + 1 < strArray.length) {\n const { inlineText, rest } = splitLeadingInlineText(strArray[i + 1])\n if (inlineText) {\n current += normalizeInlineTextSeparator(inlineText)\n strArray[i + 1] = rest\n }\n }\n }\n\n if (current) {\n result.push(current)\n }\n }\n\n return result\n}\n\nfunction isInlineTextSeparator(value: string) {\n return value !== '' && !/[<>]/.test(value)\n}\n\nfunction normalizeInlineTextSeparator(value: string) {\n return /^[\\s\\u00a0]+$/.test(value) ? ' ' : value.replace(/[\\s\\u00a0]+/g, ' ')\n}\n\nfunction normalizeInlineTextPrefix(value: string) {\n return value.replace(/[\\s\\u00a0]+/g, ' ').trimStart()\n}\n\nfunction splitLeadingInlineText(value: string) {\n const tagIndex = value.search(/[<>]/)\n if (tagIndex === -1) {\n return { inlineText: value, rest: '' }\n }\n return {\n inlineText: value.slice(0, tagIndex),\n rest: value.slice(tagIndex)\n }\n}\n\nfunction splitTrailingInlineText(value: string) {\n const tagEndIndex = value.lastIndexOf('>')\n if (tagEndIndex === -1) {\n return {\n beforeInlineText: '',\n inlineText: value\n }\n }\n return {\n beforeInlineText: value.slice(0, tagEndIndex + 1),\n inlineText: value.slice(tagEndIndex + 1)\n }\n}\n\n/**\n * 检查字符串是否需要切割。\n * @param str - 要检查的字符串。\n * @returns 如果字符串需要切割,则返回 true,否则返回 false。\n */\nexport function checkNeedSplit(str: string) {\n // 检查字符串中是否包含需要切割的特殊字符\n return (\n str.includes('\\\\') ||\n /<\\/?[A-Za-z][^>]*>/.test(str)\n )\n}\n\n/**\n * @description: 将字符串数组转换为babel的模板字符串节点\n * @param {string[]} strArray - 字符串数组\n * @return {types.CallExpression} - babel的深度扫描的表达式\n */\nexport function convertToTemplateLiteral(strArray: string[], option?: any): types.CallExpression {\n const quasis: types.TemplateElement[] = [types.templateElement({ raw: '', cooked: '' }, false)]\n const expressions: types.Expression[] = []\n\n strArray.forEach(str => {\n if (getOriginRegex().test(str)) {\n expressions.push(\n baseUtils.createI18nTranslator({\n value: str,\n isExpression: true,\n insertOption: option\n })\n )\n quasis.push(types.templateElement({ raw: '', cooked: '' }, false))\n } else {\n const quasi = quasis[quasis.length - 1]\n quasi.value.raw += str\n quasi.value.cooked = `${quasi.value.cooked || ''}${str}`\n }\n })\n\n quasis[quasis.length - 1].tail = true\n\n const templateLiteral = types.templateLiteral(quasis, expressions)\n const deepScanCall = types.callExpression(types.identifier('$deepScan'), [templateLiteral])\n // 打印转换结果\n // console.log('deepScanCall', (generate as any).default(deepScanCall).code)\n return deepScanCall\n}\n","// 上传到远程服务器\n// import { getAppCode, saveConfig, convertToUploadJson } from './config.js'\nimport { option } from '../option'\nimport axios from 'axios'\nimport _ from 'lodash'\nexport async function upload(json: object) {\n const { appCode, targetLangList } = option\n let data: any = []\n _.map(json, (value: object, key: string) => {\n _.map(targetLangList, (item: string) => {\n const parts = item.split('-')\n const lang = parts[0] + '-' + parts[1].toUpperCase()\n data.push({\n page: 'common',\n key,\n lang,\n value: _.get(value, item, key)\n })\n })\n })\n const res = await axios.post(\n 'http://192.168.0.104:8108/i18n-web/kv_translate/batch',\n { appCode, data },\n {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: '728635D658AE11F18F33000C29A621CA'\n }\n }\n )\n if (res.status === 200 && res.data.result === 0) {\n console.info('上传翻译服务成功✔')\n } else {\n console.error('上传翻译服务失败❌')\n console.log(`请求数据为:`, JSON.stringify(data))\n console.log(`返回报错信息为:`, res.data)\n }\n}\n","import allLanguage from './allLanguage'\nimport { jsonFormatter } from './json'\nimport { option } from '../option'\nimport { uploadUtils } from '.'\nimport path from 'path'\nimport _ from 'lodash'\nimport fs from 'fs'\n\n/**\n * @description: 新建国际化配置文件夹\n * @return {*}\n */\nexport function initLangFile() {\n if (!fs.existsSync(option.globalPath)) {\n fs.mkdirSync(option.globalPath) // 创建lang文件夹\n }\n initLangTranslateJSONFile()\n initTranslateBasicFnFile()\n}\n/**\n * Normalize a language key for runtime storage aliases.\n * Examples: zh-cn -> zhcn, en -> en.\n */\nexport function normalizeRuntimeLangKey(langKey: string) {\n return String(langKey || '')\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '')\n}\n\nfunction resolveLanguageMeta(langKey: string) {\n const [lang, region] = langKey.split('-')\n const normalizedCode = region ? `${lang}-${region.toUpperCase()}` : langKey\n const matched = _.find(allLanguage, { code: normalizedCode }) as\n | { code: string; name: string }\n | undefined\n\n return {\n code: matched?.code || normalizedCode,\n name: matched?.name || langKey\n }\n}\n\nfunction getRuntimeLangKeys() {\n return Array.from(new Set([option.originLang, ...option.targetLangList].filter(Boolean)))\n}\n\n/**\n * Create the self-contained browser runtime written to lang/index.js.\n *\n * The runtime intentionally avoids importing an external gc_i18n package so generated\n * examples/apps can translate transformed calls immediately after importing ./lang.\n */\nexport function createRuntimeIndexCode() {\n const namespace = option.namespace || 'lang'\n const commonTranslateKey = option.commonTranslateKey || ''\n const originRuntimeKey = normalizeRuntimeLangKey(option.originLang)\n const languages = option.targetLangList.map(resolveLanguageMeta)\n const langEntries = getRuntimeLangKeys()\n .map(langKey => {\n const runtimeKey = normalizeRuntimeLangKey(langKey)\n return ` '${runtimeKey}': getJSONKey('${langKey}', langJSON)`\n })\n .join(',\\n')\n\n return `import langJSON from './index.json'\n\nexport const languages = ${JSON.stringify(languages, null, 4)}\n\nconst DEFAULT_NAMESPACE = '${namespace}'\nconst COMMON_TRANSLATE_KEY = '${commonTranslateKey}'\nconst ORIGIN_LANG = '${originRuntimeKey}'\nconst root = typeof globalThis !== 'undefined' ? globalThis : window\n\nfunction normalizeLangKey(lang) {\n return String(lang || '').toLowerCase().replace(/[^a-z0-9]/g, '')\n}\n\nfunction getJSONKey(key, insertJSONObj = langJSON) {\n const langObj = {}\n Object.keys(insertJSONObj || {}).forEach(value => {\n langObj[value] = insertJSONObj[value] && insertJSONObj[value][key]\n })\n return langObj\n}\n\nfunction createTranslate(defaultNamespace) {\n const translate = function (key, val, nameSpace = defaultNamespace) {\n const langPackage = translate[nameSpace] || {}\n return langPackage[key] || val\n }\n translate.locale = function (locale, nameSpace = defaultNamespace) {\n translate[nameSpace] = locale || {}\n }\n return translate\n}\n\nroot.$t = root.$t || createTranslate(DEFAULT_NAMESPACE)\nroot.$$t = root.$$t || function (val) {\n return val\n}\nroot.$deepScan = root.$deepScan || function (val) {\n return val\n}\nroot._getJSONKey = root._getJSONKey || getJSONKey\n\nconst runtimeLangMap = {\n${langEntries}\n}\nconst existingLangMap = root.langMap || {}\nconst langMap = { ...runtimeLangMap, ...existingLangMap }\nroot.langMap = langMap\n\nfunction readStorageLang(key) {\n if (!key || !root.localStorage || typeof root.localStorage.getItem !== 'function') {\n return ''\n }\n return root.localStorage.getItem(key) || ''\n}\n\nfunction applyLanguage(lang, nameSpace = DEFAULT_NAMESPACE) {\n const runtimeKey = normalizeLangKey(lang) || ORIGIN_LANG\n const locale = langMap[runtimeKey] || langMap[ORIGIN_LANG] || {}\n root.$t.locale(locale, nameSpace)\n return locale\n}\n\nconst storedCommonLang = readStorageLang(COMMON_TRANSLATE_KEY)\nconst storedLang = readStorageLang('lang')\napplyLanguage(storedCommonLang || storedLang || ORIGIN_LANG)\n\nroot.$changeLang = function (lang, nameSpace = DEFAULT_NAMESPACE) {\n return applyLanguage(lang, nameSpace)\n}\n\nexport default {\n install() {\n applyLanguage(readStorageLang(COMMON_TRANSLATE_KEY) || readStorageLang('lang') || ORIGIN_LANG)\n }\n}\n`\n}\n\n/**\n * @description: 初始化翻译基础函数文件\n * @returns {void}\n */\nexport async function initTranslateBasicFnFile() {\n const indexPath = path.join(option.globalPath, 'index.js')\n\n // 项目已有 lang/index.js 时保留项目自定义运行时,不再由插件覆盖。\n if (fs.existsSync(indexPath)) return\n\n const translateBasicFnText = createRuntimeIndexCode()\n fs.writeFileSync(indexPath, translateBasicFnText)\n}\n/**\n * @description: 生成国际化JSON文件\n * @return {*}\n */\nexport function initLangTranslateJSONFile() {\n const indexPath = path.join(option.globalPath, 'index.json')\n if (!fs.existsSync(indexPath)) {\n // 不存在就创建\n fs.writeFileSync(indexPath, JSON.stringify({})) // 创建\n }\n}\n\n/**\n * @description: 读取国际化JSON文件\n * @return {*}\n */\nexport function getLangTranslateJSONFile() {\n const filePath = path.join(option.globalPath, 'index.json')\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n return content\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n console.log('❌读取JSON配置文件异常,文件不存在')\n } else {\n console.log('❌读取JSON配置文件异常,无法读取文件')\n }\n return JSON.stringify({})\n }\n}\n\n/**\n * @description: 基于langKey获取JSON配置文件中对应语言对象\n * @param {string} key\n * @return {*}\n */\nexport function getLangObjByJSONFileWithLangKey(\n key: string,\n insertJSONObj: object | undefined = undefined\n) {\n // 获取翻译配置对象,优先使用传入的配置,否则从本地文件读取\n const JSONObj = insertJSONObj || JSON.parse(getLangTranslateJSONFile())\n\n // 初始化语言映射对象,用于存储不同语言的hash: value映射\n const langObj: Record<string, any> = {}\n\n // 遍历hash,提取hash对应语言key的值,并写入到langObj\n Object.keys(JSONObj).forEach(langCode => {\n langObj[langCode] = JSONObj[langCode][key]\n })\n\n // 返回当前语言的hash: value映射对象\n // 例如: 'zh-cn' > {'hash1': '你好', 'hash2': '世界'}\n // 'en' > {'hash1': 'hello', 'hash2': 'world'}\n return langObj\n}\n\n/**\n * @description: 设置国际化JSON文件\n * @return {*}\n */\nexport function setLangTranslateJSONFile(obj: object) {\n const filePath = path.join(option.globalPath, 'index.json')\n const jsonObj = jsonFormatter(obj)\n if (fs.existsSync(filePath)) {\n fs.writeFileSync(filePath, jsonObj)\n } else {\n console.log('❌JSON配置文件写入异常,文件不存在')\n }\n}\n\n/**\n * @description: 构建时把lang配置文件设置到打包后到主文件中\n * @return {*}\n */\nexport function uploadFile() {\n const JSONObj = JSON.parse(getLangTranslateJSONFile())\n uploadUtils.upload(JSONObj)\n // if (!option.buildToDist) return\n // let langObjMap: any = {}\n // option.langKey.forEach(item => {\n // langObjMap[item] = getLangObjByJSONFileWithLangKey(item)\n // })\n // if (fs.existsSync(option.distPath)) {\n // fs.readdir(option.distPath, (err, files) => {\n // if (err) {\n // console.error('❌构建文件夹为空,翻译配置无法写入')\n // return\n // }\n\n // files.forEach(file => {\n // if (file.startsWith(option.distKey) && file.endsWith('.js')) {\n // const filePath = path.join(option.distPath, file)\n // fs.readFile(filePath, 'utf-8', (err, data) => {\n // if (err) {\n // console.log(filePath)\n // console.error('❌构建主文件不存在,翻译配置无法写入')\n // return\n // }\n // let buildLangConfigString = ''\n // Object.keys(langObjMap).forEach(item => {\n // buildLangConfigString =\n // buildLangConfigString +\n // `globalThis['${option.namespace}']['${item}']=${JSON.stringify(langObjMap[item])};`\n // })\n // try {\n // // 翻译配置写入主文件\n // fs.writeFileSync(\n // filePath,\n // `globalThis['${option.namespace}']={};${buildLangConfigString}` +\n // data\n // )\n // console.info('恭喜:翻译配置写入构建主文件成功🌟🌟🌟')\n // } catch (err) {\n // console.error('翻译配置写入构建主文件失败:', err)\n // }\n // })\n // }\n // })\n // })\n // }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-30 18:23:03\n * @LastEditTime: 2025-03-16 19:12:54\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/translate.ts\n */\n\nimport { option } from 'src/option'\nimport { REGEX_MAP } from 'src/constants'\nimport * as fileUtils from './file'\nimport { chunkUtils } from '.'\nimport fs from 'fs'\nimport path from 'path'\n\nexport const SEPARATOR = '\\n┇┇┇\\n'\nexport const SPLIT_SEPARATOR_REGEX = /\\n┇ *┇ *┇\\n/\n\ntype langObj = { [key: string]: string }\n\nexport let langObj: langObj = {}\n\nfunction normalizeValueForDedupe(value: string) {\n return String(value || '').trim()\n}\n\nfunction findKeyByValue(valueMap: Record<string, string>, value: string) {\n const exactKey = Object.entries(valueMap).find(([, oldValue]) => oldValue === value)?.[0]\n if (exactKey) return exactKey\n\n const normalizedValue = normalizeValueForDedupe(value)\n return Object.entries(valueMap).find(\n ([, oldValue]) => normalizeValueForDedupe(oldValue) === normalizedValue\n )?.[0]\n}\n\nfunction getExistingOriginLangObj() {\n try {\n const filePath = path.join(option.globalPath, 'index.json')\n if (!fs.existsSync(filePath)) return {}\n return fileUtils.getLangObjByJSONFileWithLangKey(option.originLang)\n } catch (error) {\n return {}\n }\n}\n\nexport function getLangKeyByValue(value: string) {\n return findKeyByValue(langObj, value) || findKeyByValue(getExistingOriginLangObj(), value)\n}\n\nexport function resolveLangKey(key: string, value: string) {\n return getLangKeyByValue(value) || key\n}\n\nfunction isTemplateValue(value: string) {\n return /\\$\\{[^}]+}/.test(value)\n}\n\nfunction hasOriginSymbols(value: string) {\n const originRegex = REGEX_MAP[option.originLang as keyof typeof REGEX_MAP]\n return originRegex ? originRegex.test(value) : false\n}\n\nfunction isTemplateFragmentSegment(value: string) {\n return /[^\\p{Script=Han}A-Za-z0-9_\\s]/u.test(value)\n}\n\nfunction getTemplateSemanticSplitSegments(value: string) {\n const expressionCount = value.match(/\\$\\{[^}]+}/g)?.length || 0\n if (expressionCount < 2) return []\n\n const segments = value.split(/\\$\\{[^}]+}/g)\n const result = new Set<string>()\n\n for (let index = 0; index < segments.length - 1; index++) {\n const beforeValue = segments[index]\n const afterValue = segments[index + 1]\n\n if (!hasOriginSymbols(beforeValue) || !hasOriginSymbols(afterValue)) continue\n ;[beforeValue, afterValue].forEach(segment => {\n if (segment.trim().length > 1 && isTemplateFragmentSegment(segment)) {\n result.add(segment)\n }\n })\n }\n\n return [...result]\n}\n\nfunction isTemplateStaticSegment(value: string) {\n return Object.values(langObj).some(\n oldValue =>\n isTemplateValue(oldValue) &&\n getTemplateSemanticSplitSegments(oldValue).includes(value)\n )\n}\n\nfunction removeTemplateStaticSegments(value: string) {\n const segments = new Set(getTemplateSemanticSplitSegments(value))\n Object.keys(langObj).forEach(key => {\n if (segments.has(langObj[key])) {\n delete langObj[key]\n }\n })\n}\n\n/**\n * @description: 设置翻译对象属性\n * @param {string} key\n * @param {string} value\n * @return {*}\n */\nexport function setLangObj(key: string, value: string) {\n if (isTemplateValue(value)) {\n removeTemplateStaticSegments(value)\n } else if (isTemplateStaticSegment(value)) {\n return\n }\n\n const existingKey = getLangKeyByValue(value)\n if (existingKey && existingKey !== key) {\n return\n }\n if (!langObj[key]) {\n langObj[key] = value\n }\n}\n\nfunction dedupeLangObjMapByOriginValue(originLangObjMap: Record<string, any>) {\n const originMap = originLangObjMap[option.originLang]\n const valueKeyMap = new Map<string, string>()\n\n Object.keys(originMap).forEach(key => {\n const value = originMap[key]\n const normalizedValue = normalizeValueForDedupe(value)\n const existingKey = valueKeyMap.get(normalizedValue)\n\n if (!existingKey) {\n valueKeyMap.set(normalizedValue, key)\n return\n }\n\n option.langKey.forEach(lang => {\n delete originLangObjMap[lang][key]\n })\n })\n}\n\n/**\n * @description: 读取翻译对象\n * @return {*}\n */\nexport function getLangObj() {\n return langObj\n}\n\n/**\n * @description: 初始化翻译对象\n * @param {langObj} obj\n * @return {*}\n */\nexport function initLangObj(obj: langObj) {\n if (!Object.keys(langObj).length) {\n langObj = obj\n }\n}\n\n// todo 类型修复\n/**\n * 自动生成多语言配置文件的核心方法\n *\n * 主要流程:\n * 1. 加载现有翻译文件\n * 2. 对比找出新增需要翻译的内容\n * 3. 分块并行翻译所有目标语言\n * 4. 合并翻译结果并生成最终配置文件\n *\n * 异常处理:\n * - 翻译结果不完整时中断流程\n * - 文件读写失败时明确报错\n */\nexport async function autoTranslate() {\n const enabled = typeof option.enabled === 'function' ? option.enabled() : option.enabled\n\n if (!enabled) return\n\n // 初始化现有翻译文件缓存\n const originLangObjMap: Record<string, any> = {}\n\n // 加载所有语言的现有翻译内容\n // 获取当前待翻译内容(深拷贝避免污染原始数据)\n const currentLangObj = JSON.parse(JSON.stringify(getLangObj()))\n option.langKey.forEach(lang => {\n const keyMap = fileUtils.getLangObjByJSONFileWithLangKey(lang)\n originLangObjMap[lang] = keyMap\n })\n\n // 筛选需要翻译的新增内容\n const transLangObj: Record<string, string> = {}\n Object.keys(currentLangObj).forEach(key => {\n if (!originLangObjMap[option.originLang][key]) {\n transLangObj[key] = currentLangObj[key]\n }\n })\n\n // 无新内容提前退出\n if (Object.keys(transLangObj).length === 0) {\n return\n }\n\n // 初始化翻译结果存储结构\n const newLangObjMap: Record<string, (string | number)[]> = {}\n\n // 遍历所有目标语言进行处理\n for (let langIndex = 0; langIndex < option.langKey.length; langIndex++) {\n const currentLang = option.langKey[langIndex]\n\n // 原始语言直接存储原文,读取扫出来的元素翻译内容\n if (langIndex === 0) {\n newLangObjMap[option.originLang] = Object.values(transLangObj)\n continue\n }\n\n console.info('开始自动翻译...')\n\n // ─── 分块翻译流程开始 ───\n const translatedValues = await translateChunks(transLangObj, option.langKey[langIndex])\n // ─── 分块翻译流程结束 ───=\n\n // ─── 翻译结果校验 ───\n if (translatedValues.length !== Object.keys(transLangObj).length) {\n console.error(\n '❌ 使用付费翻译时,请检查翻译API额度是否充足,或是否已申请对应翻译API使用权限'\n )\n console.error(`❌ 翻译结果不完整\n 预期数量: ${Object.keys(transLangObj).length}\n 实际数量: ${translatedValues.length}\n 样例数据: ${JSON.stringify(translatedValues.slice(0, 3))}`)\n return\n }\n\n // 存储当前语言翻译结果\n newLangObjMap[currentLang] = translatedValues\n console.info(`✅ ${currentLang} 翻译完成`)\n }\n\n // ─── 合并翻译结果到配置 ───\n Object.keys(transLangObj).forEach((key: any, index) => {\n option.langKey.forEach(item => {\n originLangObjMap[item][key] = newLangObjMap[item][index]\n })\n })\n dedupeLangObjMapByOriginValue(originLangObjMap)\n\n // ─── 生成最终配置文件结构 ───\n console.log('📄 构建配置文件数据结构...')\n const configLangObj: Record<string, Record<string, string>> = {}\n Object.keys(originLangObjMap[option.originLang]).forEach(key => {\n configLangObj[key] = {}\n option.langKey.forEach(lang => {\n configLangObj[key][lang] = originLangObjMap[lang][key]\n })\n })\n\n // ─── 写入文件系统 ───\n try {\n fileUtils.setLangTranslateJSONFile(configLangObj)\n console.info('🎉 多语言配置文件已成功更新')\n } catch (error) {\n console.error('❌ 配置文件写入失败,原因:', error)\n // todo 可添加重试逻辑或回滚机制\n }\n}\n\n/**\n * @description: 新增语言类型配置补全\n * @param {any} obj\n * @return {*}\n */\nexport function languageConfigCompletion(obj: any) {\n if (!Object.keys(obj)) return\n const enabled = typeof option.enabled === 'function' ? option.enabled() : option.enabled\n if (!enabled) return\n let needCompletionList: any[] = []\n const JSONobj = JSON.parse(fileUtils.getLangTranslateJSONFile())\n option.targetLangList.forEach(item => {\n // 获取目标语言 hash:value 对象 和 语言的复合对象,如果当前语言不存在,是langObj的value卡都为空\n let langObj = fileUtils.getLangObjByJSONFileWithLangKey(item, JSONobj)\n needCompletionList.push({\n key: item,\n curLangObj: langObj\n })\n })\n needCompletionList.forEach(async item => {\n await completionTranslateAndWriteConfigFile(obj, item.curLangObj, item.key)\n })\n}\n\n/**\n * @description: 补全新增语言翻译写入函数\n * @param langObj\n * @param curLangObj\n * @param translateKey\n * @return\n */\nexport async function completionTranslateAndWriteConfigFile(\n langObj: Record<string, string>,\n curLangObj: Record<string, string>,\n translateKey: string\n) {\n // 构建需要翻译的语言映射对象\n // langObj: 源语言的键值对映射,格式为 { hash: sourceText }\n // curLangObj: 目标语言的键值对映射,格式为 { hash: targetText },未翻译的值为空\n\n // 创建待翻译内容对象,仅包含未翻译的条目,key是hash,value是源语言的对应hash的文本\n const transLangObj: Record<string, string> = {}\n Object.keys(langObj).forEach(key => {\n // 如果目标语言中对应的翻译为空,则将 源语言的对应hash的文本 加入待翻译内容对象 中\n if (curLangObj[key] === undefined) {\n transLangObj[key] = langObj[key]\n }\n })\n\n if (!Object.values(transLangObj).length) return\n\n // ─── 分块翻译流程开始 ───\n\n console.info('进入新增语言补全翻译...')\n\n // 调用抽离的函数\n const resultValues = await translateChunks(transLangObj, translateKey)\n // ─── 分块翻译流程结束 ───\n\n if (resultValues.length !== Object.values(langObj).length) {\n console.error('翻译异常,翻译结果缺失❌')\n return\n }\n let newLangObjMap = resultValues\n console.info('翻译成功⭐️⭐️⭐️')\n\n Object.keys(transLangObj).forEach((key, index) => {\n curLangObj[key] = newLangObjMap[index]\n })\n\n console.log('开始写入JSON配置文件...')\n const configLangObj: any = JSON.parse(fileUtils.getLangTranslateJSONFile())\n\n Object.keys(transLangObj).forEach(key => {\n configLangObj[key][translateKey] = curLangObj[key]\n })\n try {\n fileUtils.setLangTranslateJSONFile(configLangObj)\n console.info('JSON配置文件写入成功⭐️⭐️⭐️')\n } catch (error) {\n console.error('❌JSON配置文件写入失败' + error)\n }\n console.info('新增语言翻译补全成功⭐️⭐️⭐️')\n}\n\n// 分块翻译流程函数\nasync function translateChunks(transLangObj: Record<string, string>, translateKey: string) {\n const { translator } = option\n const placeholders: string[] = []\n const protectedValues = Object.values(transLangObj).map(value =>\n protectInterpolationPlaceholders(value, placeholders)\n )\n // 获取分块后的文本列表\n const translationChunks = chunkUtils.createTextSplitter(\n protectedValues,\n translator.option.maxChunkSize\n )\n // 并行执行分块翻译\n const translatePromises: Promise<string>[] = []\n for (let i = 0; i < translationChunks.length; i++) {\n translatePromises.push(\n translator.translate(translationChunks[i], option.originLang, translateKey, SEPARATOR)\n )\n }\n\n // 等待所有分块完成并合并结果\n const chunkResults = await Promise.all(translatePromises)\n return chunkResults\n .map(item => {\n item = restoreInterpolationPlaceholders(item, placeholders)\n // 提取分割逻辑到单独的函数中,提高代码复用性\n const splitTranslation = (text: string, separatorRegex: RegExp) => {\n return text.split(separatorRegex).map(v => v.trim())\n }\n\n // 分割符可能会被翻译,所以这里做了兼容处理\n if (SPLIT_SEPARATOR_REGEX.test(item)) {\n return splitTranslation(item, SPLIT_SEPARATOR_REGEX)\n } else {\n const lines = item.split('\\n')\n const separator = lines.find(line => line.length === 3)\n let value: string[] = []\n if (separator) {\n value = splitTranslation(item, new RegExp(`\\\\n${separator}\\\\n`))\n }\n const realList = value.filter(Boolean)\n if (realList.length > 1) {\n return realList\n }\n return splitTranslation(item, SPLIT_SEPARATOR_REGEX)\n }\n })\n .flat()\n}\n\nfunction protectInterpolationPlaceholders(value: string, placeholders: string[]) {\n return value.replace(/\\$\\{[^}]*\\}/g, match => {\n const index = placeholders.push(match) - 1\n return `__GC_I18N_PH_${index}__`\n })\n}\n\nfunction restoreInterpolationPlaceholders(value: string, placeholders: string[]) {\n return value.replace(/__GC_I18N_PH_(\\d+)__/g, (match, index) => {\n return placeholders[Number(index)] || match\n })\n}\n/**\n * @description: 清理多余的翻译配置JSON文件\n * @return {void} 无返回值\n */\nexport function cleanupUnusedTranslations() {\n if (!option.isClear) return\n console.log('🧹 进入清理流程')\n // 获取当前的语言对象,如果不存在则使用空对象\n const langObj = getLangObj() || {}\n\n // 创建一个Set用于存储当前语言对象的所有key,便于快速查找\n let langSet = new Set(Object.keys(langObj))\n\n // 获取基础对象:优先使用传入的insertObj,否则从翻译文件中读取\n const baseObj = JSON.parse(fileUtils.getLangTranslateJSONFile())\n\n // 获取基础对象的所有key\n const baseObjKeys = Object.keys(baseObj)\n // 遍历所有key,删除在当前语言对象中不存在的配置\n baseObjKeys.forEach(key => {\n if (!langSet.has(key)) {\n baseObj[key] && delete baseObj[key]\n }\n })\n fileUtils.setLangTranslateJSONFile(baseObj)\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-11 10:01:43\n * @LastEditTime: 2025-03-28 19:07:17\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/utils/base.ts\n */\nimport { FunctionFactoryOption } from './option'\nimport { OriginLangKeyEnum } from 'src/enums'\nimport { resolveLangKey } from './translate'\nimport { REGEX_MAP } from 'src/constants'\n// import generate from '@babel/generator'\nimport { Node } from '@babel/types'\nimport { option } from '../option'\nimport types from '@babel/types'\n\nexport function getOriginRegex() {\n const originLang = FunctionFactoryOption.originLang as OriginLangKeyEnum\n return REGEX_MAP[originLang]\n}\n\n/**\n * @description: 是否包含来源语言字符\n * @param {string} code\n * @return {*}\n */\nexport function hasOriginSymbols(code: string) {\n return getOriginRegex().test(code)\n}\n\n/**\n * @description: 过滤注释\n * @param {string} code\n * @return {*}\n */\nexport const removeComments = function (code: string) {\n // 使用正则表达式匹配并删除单行注释\n code = code.replace(/\\/\\/.*?\\n/g, '')\n // 使用正则表达式匹配并删除多行注释\n code = code.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // 使用正则表达式匹配并删除HTML注释\n code = code.replace(/<!--[\\s\\S]*?-->/g, '')\n return code\n}\n\n/**\n * @description: 用于判断提供的值是否符合正则表达式数组中的任一规则,符合则跳过\n * @param {*} value\n * @param {*} regexArray\n * @return {*}\n */\nexport function checkAgainstRegexArray(value: string, regexArray: string[] | RegExp[]) {\n for (let i = 0; i < regexArray.length; i++) {\n const regex = typeof regexArray[i] === 'string' ? new RegExp(regexArray[i]) : regexArray[i]\n if ((regex as RegExp).test(value)) {\n return true // 如果符合任何一个规则,返回 true\n }\n }\n return false // 如果所有规则都不符合,返回 false\n}\n\n/**\n * @description: 用于解析抽象语法树中的调用表达式,并提取出调用的名称,如a.b.c() 取 c。\n * @param {any} node\n * @return {*}\n */\nexport function extractFunctionName(node: Node): string {\n let callName = ''\n function callObjName(callObj: any, name: string): string {\n name += '.' + (callObj.property as any).name\n if (types.isMemberExpression(callObj.object)) {\n // isMemberExpression: 是否是成员表达式\n return callObjName(callObj.object, name)\n }\n name = (callObj.object as any).name + name\n return name\n }\n if (types.isCallExpression(node)) {\n // isCallExpression: 是否是调用表达式\n if (types.isMemberExpression((node as any).callee)) {\n callName = callObjName((node as any).callee, '')\n } else {\n callName = ((node as any).callee as any).name || ''\n }\n }\n return callName\n}\n\n/**\n * @description 判断调用表达式是否是 console.*(...)\n * 只匹配真实点成员调用,例如 console.log(...) / console.debug(...)。\n */\nexport function isConsoleMemberCall(node: Node) {\n if (!types.isCallExpression(node) || !types.isMemberExpression(node.callee)) {\n return false\n }\n\n const { object, property, computed } = node.callee\n return (\n !computed &&\n types.isIdentifier(object) &&\n object.name === 'console' &&\n types.isIdentifier(property)\n )\n}\n\n/**\n * @description 判断当前节点是否位于 console.*(...) 的参数子树中。\n */\nexport function isInsideConsoleCallArgument(path: any) {\n let currentPath = path\n while (currentPath?.parentPath) {\n const parentPath = currentPath.parentPath\n const parentNode = parentPath.node\n\n if (isConsoleMemberCall(parentNode)) {\n return parentNode.arguments.some((arg: any) => arg === currentPath.node)\n }\n\n currentPath = parentPath\n }\n\n return false\n}\n\n/**\n * @description: 提取文件的中文部分\n * @param {string} fileContent\n * @return {*}\n */\nexport const extractCnStrings = (fileContent: string) => {\n const regex = /[^\\x00-\\xff]+/g\n return extractStrings(fileContent, regex)\n}\n\n/**\n * @description: 提取文件指定部分内容\n * @param {string} fileContent\n * @param {any} regex\n * @return {*}\n */\nexport function extractStrings(fileContent: string, regex: any) {\n const matches = fileContent.match(regex)\n return matches ? matches.filter((item, index) => matches.indexOf(item) === index) : []\n}\n\n/**\n * @description: 生成i8n翻译函数\n * @param {string} value\n * @param {boolean} isExpression\n * @param {string} key\n * @return {*}\n */\nexport function createI18nTranslator(createOption: {\n value: string\n isExpression?: boolean\n key?: string\n insertOption?: any\n}): any {\n const { value, isExpression = false, key, insertOption } = createOption\n\n // 从全局配置对象 option 中获取命名空间\n const nameSpace = option.namespace\n const { trimmedValue, valStr } = normalizeTranslateValue(value)\n // 若 key 存在则使用 key,否则调用 generateId 函数根据 valStr 生成唯一的键\n const generatedKey = key || resolveLangKey(generateId(valStr), trimmedValue)\n // 提取公共配置对象,避免重复代码\n const config = {\n option: option,\n hash: generatedKey,\n value: trimmedValue,\n uncodeValue: valStr,\n namespace: nameSpace\n }\n\n insertOption?.collector?.record?.({\n key: option.useValueAsKey ? trimmedValue : generatedKey,\n value: trimmedValue,\n namespace: nameSpace,\n resourcePath: insertOption?.resourcePath,\n root: insertOption?.root\n })\n if (option.translateExtends) {\n const { handleCodeCall, handleCodeString } = option.translateExtends\n return isExpression\n ? handleCodeCall(config, insertOption)\n : handleCodeString(config, insertOption)\n }\n\n if (isExpression) {\n const valueExp = types.stringLiteral(trimmedValue)\n valueExp.extra = {\n raw: `'${valStr}'`, // 防止转码为unicode\n rawValue: trimmedValue\n }\n return option.useValueAsKey\n ? types.callExpression(types.identifier(option.translateKey), [valueExp])\n : types.callExpression(types.identifier(option.translateKey), [\n types.stringLiteral(generatedKey),\n valueExp\n ])\n } else {\n return `${option.translateKey}('${generatedKey}','${valStr}')`\n }\n\n return `${option.translateKey}('${generatedKey}','${valStr}','${nameSpace}')`\n}\n\nexport function normalizeTranslateValue(value: string) {\n const trimmedValue = option.isClearSpace ? value : value.trim()\n const valStr = trimmedValue.replace(/'/g, '\"').replace(/(\\n)/g, '\\\\n')\n return {\n trimmedValue,\n valStr\n }\n}\n\n/**\n * @description: 生成唯一id\n * @param {string} key\n * @return {*}\n */\nexport function generateId(key: string) {\n let hash = 0\n for (let i = 0; i < key.length; i++) {\n const charCode = key.charCodeAt(i)\n hash = (hash << 5) - hash + charCode\n hash = hash & hash\n }\n const id = Math.abs(hash).toString(36) + key.length.toString(36)\n return id\n}\n\n/**\n * @description: unicode转普通字符串\n * @param {string} str\n * @return {*}\n */\nexport const unicodeToString = (str: string) => {\n return str.replace(/\\\\u[\\dA-Fa-f]{4}/g, (match: any) => {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16))\n })\n}\n\n/**\n * @description: 有道翻译 标识截取\n * @param {string} q\n * @return {*}\n */\nexport function truncate(q: string) {\n // 检查输入字符串的长度\n if (q.length <= 20) {\n // 如果长度小于等于20,直接返回原字符串\n return q\n } else {\n // 如果长度大于20,截取前10个字符和后10个字符,并在中间插入长度信息\n const len = q.length\n return q.substring(0, 10) + len + q.substring(len - 10)\n }\n}\n\n// 导出一个深拷贝函数,用于克隆对象\nexport function cloneDeep<T>(value: T, cache: WeakMap<object, any> = new WeakMap()): T {\n // 处理基本类型和 null\n if (typeof value !== 'object' || value === null) {\n return value\n }\n\n // 处理循环引用\n if (cache.has(value)) {\n return cache.get(value)\n }\n\n // 处理特殊对象类型\n if (value instanceof Date) {\n return new Date(value) as T\n }\n\n if (value instanceof RegExp) {\n return new RegExp(value.source, value.flags) as T\n }\n\n // 初始化克隆容器\n const clone: any = Array.isArray(value) ? [] : {}\n\n // 缓存对象防止循环引用\n cache.set(value, clone)\n\n // 处理 Symbol 和普通键的枚举\n const keys = [\n ...Object.keys(value),\n ...Object.getOwnPropertySymbols(value).filter(sym => value.propertyIsEnumerable(sym))\n ]\n\n // 递归克隆属性\n for (const key of keys) {\n clone[key] = cloneDeep((value as any)[key], cache)\n }\n\n return clone as T\n}\n","// 代码灵感来自https://github.com/dadidi9900/auto-plugins-json-translate/blob/main/src/services/translationService.ts\nimport axios, { AxiosProxyConfig } from 'axios'\nimport { generateId } from 'src/utils/base'\nimport { Translator } from './translator'\n\nexport interface VolcengineTranslatorOption {\n apiKey: string\n /** 使用的ai模型,可选值请参阅火山引擎控制台的模型列表,如`doubao-1-5-pro-32k-250115`,并请确保使用前已在控制台开通了对应模型 */\n model: string\n /** 对本项目的简短描述,在有描述的情况下大模型的翻译结果可能会更加准确 */\n desc?: string\n /** 网络代理配置 */\n proxy?: AxiosProxyConfig\n /** 翻译api执行间隔,默认为1000 */\n interval?: number\n insertOption?: {\n [key: string]: any\n }\n}\n\n/**\n * 火山引擎翻译器,内置豆包、deepseek等模型\n * \n * 火山引擎大模型介绍:https://www.volcengine.com/docs/82379/1099455\n * \n * api文档:https://www.volcengine.com/docs/82379/1298454\n * \n * 使用方式:\n * ```ts\n * vitePluginsAutoI18n({\n ...\n translator: new VolcengineTranslator({\n apiKey: '你申请的apiKey',\n model: '你要调用的模型,如:`doubao-1-5-pro-32k-250115`,请确保使用前已在控制台开通了对应模型'\n })\n})\n * ```\n */\nexport class VolcengineTranslator extends Translator {\n constructor(option: VolcengineTranslatorOption) {\n super({\n name: '火山引擎ai翻译',\n fetchMethod: async (text, fromKey, toKey, separator) => {\n let salt = new Date().getTime()\n const textArr = text.split(separator)\n const sourceMap = Object.fromEntries(textArr.map(text => [generateId(text), text]))\n const data = {\n model: option.model,\n messages: [\n {\n role: 'system',\n content: `\n ###\n 假如你是一个无情的翻译接口,你将根据一个文本组成的JSON对象,来解决将数组每个成员从源语言A翻译成目标语言B并返回翻译后的JSON对象的任务。需要注意的是,待翻译的文本均来自一个${option.desc ? option.desc + '的' : ''}web平台,遇到歧义时需要做好处理。根据以下规则一步步执行:\n 1. 明确源语言A和目标语言B。\n 2. 对JSON对象中数组的每个成员进行从源语言A到目标语言B的翻译。\n 3. 将翻译后的内容以JSON对象格式返回,确保返回的内容可以被JSON.parse解析。\n\n 参考例子:\n 示例1:\n 输入:zh-cn -> en { \"awfgx\": \"你好\", \"qwfga\": \"世界\" }\n 输出:{ \"awfgx\": \"Hello\", \"qwfga\": \"World\" }\n\n 示例2:\n 输入:de -> fr { \"gweaq\": \"Hallo\", \"wtrts\": \"Welt\" }\n 输出:{ \"gweaq\": \"Bonjour\", \"wtrts\": \"Monde\" }\n\n 请回答问题:\n 输入:源语言A -> 目标语言B { \"wghhj\": \"XXX\" }\n 输出:\n\n 要求:\n 1 以JSON对象格式输出\n 2 JSON对象中每个成员为翻译后的内容\n ###\n `\n },\n {\n role: 'user',\n content: `${fromKey} -> ${toKey} ${JSON.stringify(sourceMap)}`\n }\n ],\n ...(option.insertOption || {})\n }\n const response = await axios.post(\n `https://ark.cn-beijing.volces.com/api/v3/chat/completions?t=${salt}`,\n data,\n {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${option.apiKey}`\n },\n proxy: option.proxy\n }\n )\n\n let resultTextArr = Array.from(textArr).fill('')\n const content = response.data.choices[0].message.content\n try {\n let resultMap: unknown\n try {\n resultMap = JSON.parse(content)\n } catch (error) {\n throw new Error('大模型返回文本解析失败')\n }\n if (typeof resultMap !== 'object' || !resultMap) {\n throw new Error('大模型返回文本解析后类型不正确')\n }\n const isMiss = Object.keys(resultMap).some(key => !(key in sourceMap))\n if (isMiss) {\n throw new Error('大模型返回文本内容不完整')\n }\n resultTextArr = textArr.map(\n text => (resultMap as Record<string, string>)[generateId(text)]\n ) // 用textArr遍历,保证顺序\n } catch (error) {\n const message = error instanceof Error ? error.message : '未知错误'\n console.warn('⚠', message)\n console.warn('⚠ 返回的文本内容:', content)\n console.warn('⚠ 原文本内容:', JSON.stringify(sourceMap))\n }\n\n return resultTextArr.join(separator)\n },\n onError: (error, cb) => {\n cb(error)\n console.error(\n '请确保在火山引擎控制台开通了对应模型,且有足够的token余额。控制台地址:https://console.volcengine.com/ark/'\n )\n },\n maxChunkSize: 1000, // 太长可能会导致返回文本不完整\n interval: option.interval ?? 1000\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2024-04-03 18:12:45\n * @LastEditTime: 2024-04-03 18:33:53\n * @FilePath: /i18n_translation_vite/autoI18nPluginCore/src/enums/translate.ts\n */\nexport enum TranslateApiEnum {\n google = 'Google',\n youdao = 'Youdao'\n}\n","/*\n * @Date: 2025-03-16 14:12:30\n * @LastEditors: xiaoshan\n * @LastEditTime: 2025-03-16 14:13:42\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/enums/option.ts\n */\n/**\n * 翻译类型枚举\n */\nexport enum TranslateTypeEnum {\n FULL_AUTO = 'full-auto',\n SEMI_AUTO = 'semi-auto'\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-26 17:34:47\n * @LastEditTime: 2025-03-31 19:58:37\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/option.ts\n */\n\nimport { GoogleTranslator, Translator, TranslatorOption } from './translators'\nimport { OriginLangKeyEnum, TranslateTypeEnum } from './enums'\nimport { BaseExtendsType } from './extends'\nimport { cloneDeep } from './utils/base'\n\nconst EXCLUDED_CALL = [\n '$deepScan',\n 'console.info',\n 'console.warn',\n 'console.error',\n '$i8n',\n 'console.log',\n '$t',\n 'require',\n '$$i8n',\n '$$t',\n '_createCommentVNode'\n]\n/**\n * 默认插件配置选项\n */\nconst DEFAULT_OPTION = {\n appCode: '',\n\n /** 是否启用插件,默认启用 */\n enabled: true as boolean | (() => boolean),\n /** 翻译调用函数,默认为 $t */\n translateKey: '$t',\n\n /** 标记不翻译调用函数列表,避免某些调用被错误翻译 */\n excludedCall: [] as string[],\n\n /** 标记不用翻译的字符串模式数组,默认是匹配文件扩展名 */\n excludedPattern: [/\\.\\w+$/],\n\n /** 排查不需要翻译的目录下的文件路径(黑名单), 默认不处理node_modules */\n excludedPath: ['node_modules'] as string[],\n\n /** 指定需要翻译文件的目录路径正则(白名单) */\n includePath: [/src\\//, /src\\\\/],\n\n /** 配置文件生成位置,默认为 './lang' */\n globalPath: './lang',\n\n /** 打包后生成文件的位置,例如 './dist/assets' */\n distPath: '',\n\n /** 打包后生成文件的主文件名称,默认是 'index' */\n distKey: 'index',\n\n /** 来源语言,默认是中文 */\n originLang: OriginLangKeyEnum.ZH as OriginLangKeyEnum | string,\n\n /** 翻译目标语言列表,默认包含英文 */\n targetLangList: ['en'],\n\n /** 语言key,用于请求谷歌api和生成配置文件下对应语言的内容文件 */\n langKey: [] as string[],\n\n /** 命名空间,防止全局命名冲突 */\n namespace: 'lang',\n\n /** 单位代码 */\n orgCode: 'GREENCLOUD',\n\n /** 是否启用源码的值作为key */\n useValueAsKey: false,\n\n /** 是否在构建结束之后将最新的翻译重新打包到主包中,默认不打包 */\n buildToDist: false,\n\n /** 是否启用上传翻译文件到服务器,默认开启 */\n uploadEnabled: true,\n\n /** 翻译器,决定自动翻译使用的api与调用方式,默认使用 Google 翻译器并使用7890(clash)端口代理 */\n translator: new GoogleTranslator({\n proxyOption: {\n port: 7890,\n host: '127.0.0.1',\n headers: {\n 'User-Agent': 'Node'\n }\n }\n }) as Translator,\n\n /** 翻译器配置选项,优先级低于translator */\n translatorOption: undefined as TranslatorOption | undefined,\n\n /**\n * 翻译类型,支持全自动和半自动两种模式\n * 全自动:所有翻译任务自动完成\n * 半自动:需要人工标识,类似于 $t('key') 的方式\n * 默认值为全自动\n */\n translateType: TranslateTypeEnum.FULL_AUTO as TranslateTypeEnum | string,\n\n /**\n * 是否重写配置文件,默认为true\n */\n rewriteConfig: true,\n\n /**\n * 通用翻译key,默认使用namespace,如果commonTranslateKey不为空,则使用commonTranslateKey\n */\n commonTranslateKey: '',\n\n /**\n * 实验性属性,表示是否进行深层扫描字符串,默认为 false\n * 当设置为 true 时,会对代码中的字符串进行更深入的扫描\n */\n deepScan: false,\n\n /**\n * 自定义文件拓展名数组\n */\n insertFileExtensions: [] as string[],\n\n /**\n * 自定义拓展类,插件默认翻译函数挂载在window上,如果希望自定义翻译函数挂载在其他对象上,可以使用该属性\n * 注意:该属性需要继承BaseExtends类,并且需要实现handleInitFile和handleCodeCall和handleCodeString方法\n */\n translateExtends: null as BaseExtendsType | null,\n\n isClear: false, // 是否清除已经不在上下文中的内容(清除项目中不再使用到的源语言键值对)\n\n /**\n * 是否保留空格\n */\n isClearSpace: true\n}\n\n/**\n * 类型定义:插件配置选项类型\n */\ntype OptionType = typeof DEFAULT_OPTION\n\n/**\n * 全局插件配置实例,复制自默认配置\n */\nexport let option: OptionType = { ...DEFAULT_OPTION }\n\n/**\n * 类型定义:用户传入的配置选项\n */\nexport interface OptionInfo extends Partial<OptionType> {}\n\n/**\n * 通过深度克隆提供的选项信息生成一个用户选项对象,\n * 确保原始配置不被修改。它还根据用户的配置初始化翻译器。\n * @param optionInfo - 包含用户选项和翻译器细节的选项信息。\n * @returns 一个新的、可能已初始化翻译器的用户选项对象。\n */\nfunction generateUserOption(optionInfo: OptionInfo) {\n // 深拷贝用户传入的配置,防止修改原配置对象\n const userOption = cloneDeep(optionInfo)\n userOption.translator = optionInfo?.translator\n\n // 如果用户配置了translatorOption则初始化translator,如果都没有则不设置translator\n userOption.translator ||= userOption.translatorOption\n ? new Translator(userOption.translatorOption)\n : undefined\n if (!userOption.translator) delete userOption.translator\n return userOption\n}\n\n/**\n * 初始化插件配置选项\n * @param optionInfo 用户提供的配置选项\n */\nexport function initOption(optionInfo: OptionInfo) {\n // 合并默认配置和用户配置\n option = { ...DEFAULT_OPTION, ...generateUserOption(optionInfo) }\n\n // 初始化语言key数组,包含来源语言和目标语言\n option.langKey = [option.originLang, ...option.targetLangList]\n // 初始化排除调用函数列表,包含默认排除和调用函数主动排除\n option.excludedCall = [\n ...option.excludedCall,\n ...EXCLUDED_CALL,\n ...[option.translateKey, '$' + option.translateKey]\n ]\n\n return option\n}\n\n/**\n * 校验插件配置选项是否完整有效\n * @returns {boolean} 校验结果,完整返回 true,否则返回 false\n */\nexport function checkOption() {\n // 校验翻译调用函数是否配置\n if (!option.translateKey) {\n console.error('❌请配置翻译调用函数')\n return false\n }\n\n // 校验命名空间是否配置\n if (!option.namespace) {\n console.error('❌请配置命名空间')\n return false\n }\n\n // 校验是否配置了打包后生成文件的主文件名称(如果需要打包到主包中)\n if (option.buildToDist && !option.distKey) {\n console.log('❌请配置打包后生成文件的主文件名称')\n return false\n }\n\n // 校验是否配置了打包后生成文件的位置(如果需要打包到主包中)\n if (option.buildToDist && !option.distPath) {\n console.log('❌请配置打包后生成文件的位置')\n return false\n }\n\n // 校验来源语言是否配置\n if (!option.originLang) {\n console.error('❌请配置来源语言')\n return false\n }\n\n // 校验目标翻译语言数组是否配置\n if (!option.targetLangList || !option.targetLangList.length) {\n console.error('❌请配置目标翻译语言数组')\n return false\n }\n\n // 如果所有校验通过,返回 true\n return true\n}\n","import types from '@babel/types'\nimport { OptionInfo } from 'src'\nimport babel from '@babel/core'\nexport class Vue2Extends {\n public handleInitFile: any\n public handleCodeCall: any\n public handleCodeString: any\n constructor() {\n this.handleInitFile = async (source: string, path: string) => {\n let code = source\n\n // 检查是否已经引入了 Vue\n let importVue = false\n let hasVue = false\n let importDefaultChar = 'Vue'\n\n const result = await babel.transformAsync(code, {\n configFile: false,\n plugins: [\n {\n visitor: {\n ImportDeclaration(path: any) {\n const { node } = path\n if (node.source.value === 'vue') {\n importVue = true\n const specifiers = node.specifiers\n specifiers.forEach((specifier: any) => {\n if (types.isImportDefaultSpecifier(specifier)) {\n hasVue = true\n importDefaultChar = specifier.local.name\n }\n })\n if (!hasVue) {\n hasVue = true\n specifiers.unshift(\n types.importDefaultSpecifier(types.identifier('Vue'))\n )\n }\n }\n }\n }\n }\n ]\n })\n if (importVue && result) code = result.code as string\n if (!importVue)\n code = `import Vue from 'vue'\n ${code}`\n\n return {\n path,\n importDefaultChar,\n source: code\n }\n }\n this.handleCodeCall = (\n config: {\n option: OptionInfo\n hash: string\n value: string\n uncodeValue: string\n namespace: string\n },\n _initFileResult: ReturnType<this['handleInitFile']>\n ) => {\n const { option, hash, value, uncodeValue, namespace } = config\n const valueExp = types.stringLiteral(value)\n valueExp.extra = {\n raw: `'${uncodeValue}'`, // 防止转码为unicode\n rawValue: value\n }\n return types.callExpression(\n types.memberExpression(\n types.memberExpression(\n types.identifier(_initFileResult.importDefaultChar),\n types.identifier('prototype')\n ),\n types.identifier(option.translateKey as string)\n ),\n [types.stringLiteral(hash), valueExp, types.stringLiteral(namespace)]\n )\n }\n this.handleCodeString = (\n config: {\n option: OptionInfo\n hash: string\n value: string\n uncodeValue: string\n namespace: string\n },\n _initFileResult: ReturnType<this['handleInitFile']>\n ): string => {\n const { option, hash, uncodeValue, namespace } = config\n return `${_initFileResult.importDefaultChar}.prototype.${option.translateKey}('${hash}','${uncodeValue}','${namespace}')`\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-11-01 16:35:38\n * @LastEditTime: 2025-03-31 02:29:02\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/TemplateElement.ts\n */\nimport { baseUtils, translateUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport { option } from 'src/option'\nimport types from '@babel/types'\nimport * as generate from '@babel/generator'\n\n// 定义一个包含亚洲语言代码的数组\nconst asianLangs = ['zh-cn', 'ja', 'ko']\n\nexport default function (insertOption: any) {\n return function (path: any) {\n // 如果是半自动翻译,不做处理\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n let { node, parent }: { node: types.TemplateLiteral; parent: types.Node } = path\n\n if (!node.quasis.length) return\n\n if (types.isTaggedTemplateExpression(parent)) {\n return\n }\n\n if (baseUtils.isInsideConsoleCallArgument(path)) {\n return\n }\n\n // 获取真实调用函数\n const extractFnName = baseUtils.extractFunctionName(parent)\n\n // 调用语句判断当前调用语句是否包含需要过滤的调用语句\n if (\n types.isCallExpression(parent) &&\n extractFnName &&\n (option.excludedCall.includes(extractFnName) ||\n (extractFnName?.split('.')?.pop() &&\n option.excludedCall.includes(extractFnName?.split('.')?.pop() || '')))\n )\n return\n\n if (node.expressions.length && handleTemplateLiteralWithExpressions(node, path)) {\n return\n }\n\n node.quasis.forEach(item => handleTemplateElement(item, insertOption))\n }\n}\n\nfunction handleTemplateLiteralWithExpressions(node: types.TemplateLiteral, path: any) {\n let hasOptimizedExpression = false\n const expressionLabels = node.expressions.map((expression, index) => {\n const optimizedExpression = optimizeConditionalExpression(expression)\n if (optimizedExpression) {\n hasOptimizedExpression = true\n node.expressions[index] = optimizedExpression.expression\n return optimizedExpression.label\n }\n return getExpressionPlaceholder(expression)\n })\n if (expressionLabels.some(placeholder => placeholder === null)) {\n return false\n }\n\n const fullValue = node.quasis.reduce((result, quasi, index) => {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return (\n result +\n value +\n (index < node.expressions.length\n ? formatExpressionPlaceholder(expressionLabels[index])\n : '')\n )\n }, '')\n\n if (\n !fullValue ||\n !baseUtils.hasOriginSymbols(fullValue) ||\n !option.excludedPattern.length ||\n baseUtils.checkAgainstRegexArray(fullValue, [...option.excludedPattern])\n ) {\n if (hasOptimizedExpression) {\n path.skip()\n return true\n }\n return false\n }\n\n if (!hasExpressionInsideOriginContent(node)) {\n return false\n }\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(fullValue)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n const translateNode = createTranslateNode(path, id, valStr, expressionLabels, node.expressions)\n\n path.replaceWith(translateNode)\n translateUtils.setLangObj(id, trimmedValue)\n return true\n}\n\nfunction hasExpressionInsideOriginContent(node: types.TemplateLiteral) {\n return node.expressions.some((_, index) => {\n const beforeValue = node.quasis\n .slice(0, index + 1)\n .map(getTemplateElementValue)\n .join('')\n const afterValue = node.quasis\n .slice(index + 1)\n .map(getTemplateElementValue)\n .join('')\n\n return baseUtils.hasOriginSymbols(beforeValue) && baseUtils.hasOriginSymbols(afterValue)\n })\n}\n\nfunction getTemplateElementValue(quasi: types.TemplateElement) {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return value\n}\n\nfunction getExpressionPlaceholder(expression: types.Node) {\n if (types.isStringLiteral(expression) || types.isNumericLiteral(expression)) {\n return String(expression.value)\n }\n if (types.isTSAsExpression(expression) || types.isTSTypeAssertion(expression)) {\n return getExpressionPlaceholder(expression.expression)\n }\n if (types.isTSNonNullExpression(expression)) {\n return getExpressionPlaceholder(expression.expression)\n }\n const generateCode = (generate as any).default?.default || (generate as any).default || generate\n return normalizeExpressionPlaceholder(generateCode(expression, { comments: false }).code)\n}\n\nfunction normalizeExpressionPlaceholder(placeholder: string | null) {\n if (placeholder === null) return null\n return placeholder\n .replace(/(^|[^\\w$])(?:_vm|\\$data)\\s*\\./g, '$1')\n .replace(/(^|[^\\w$])(?:_vm|\\$data)\\s*\\[/g, '$1[')\n}\n\nfunction optimizeConditionalExpression(expression: types.Expression) {\n if (!types.isConditionalExpression(expression)) return null\n\n const consequent = translateConditionalStringBranch(expression.consequent)\n const alternate = translateConditionalStringBranch(expression.alternate)\n\n if (!consequent.changed && !alternate.changed) return null\n\n return {\n label: getConditionalExpressionLabel(expression),\n expression: types.conditionalExpression(\n types.cloneNode(expression.test),\n consequent.expression,\n alternate.expression\n )\n }\n}\n\nfunction translateConditionalStringBranch(expression: types.Expression) {\n if (types.isStringLiteral(expression) && baseUtils.hasOriginSymbols(expression.value)) {\n return {\n changed: true,\n expression: createTrackedTranslateCall(expression.value)\n }\n }\n\n if (types.isTemplateLiteral(expression)) {\n const translateCall = createTemplateLiteralTranslateCall(expression)\n if (translateCall) {\n return {\n changed: true,\n expression: translateCall\n }\n }\n }\n\n if (types.isConditionalExpression(expression)) {\n const optimizedExpression = optimizeConditionalExpression(expression)\n if (optimizedExpression) {\n return {\n changed: true,\n expression: optimizedExpression.expression\n }\n }\n }\n\n return {\n changed: false,\n expression: types.cloneNode(expression)\n }\n}\n\nfunction createTrackedTranslateCall(value: string) {\n const translateCall = baseUtils.createI18nTranslator({\n value,\n isExpression: true\n })\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(value)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n if (id && trimmedValue) {\n translateUtils.setLangObj(id, trimmedValue)\n }\n return translateCall\n}\n\nfunction createTemplateLiteralTranslateCall(node: types.TemplateLiteral) {\n const expressions = node.expressions.map((expression) => {\n const optimizedExpression = optimizeConditionalExpression(expression)\n return optimizedExpression ? optimizedExpression.expression : expression\n })\n const expressionLabels = expressions.map(expression => getExpressionPlaceholder(expression))\n if (expressionLabels.some(placeholder => placeholder === null)) {\n return null\n }\n\n const fullValue = node.quasis.reduce((result, quasi, index) => {\n let value = quasi.value.raw || quasi.value.cooked || ''\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n return (\n result +\n value +\n (index < expressions.length ? formatExpressionPlaceholder(expressionLabels[index]) : '')\n )\n }, '')\n\n if (\n !fullValue ||\n !baseUtils.hasOriginSymbols(fullValue) ||\n !option.excludedPattern.length ||\n baseUtils.checkAgainstRegexArray(fullValue, [...option.excludedPattern])\n ) {\n return null\n }\n\n if (!hasExpressionInsideOriginContent(node)) {\n return createTemplateLiteralWithTranslatedQuasis(node, expressions)\n }\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(fullValue)\n const id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n if (id && trimmedValue) {\n translateUtils.setLangObj(id, trimmedValue)\n }\n return createTranslateCall(id, valStr, expressionLabels, expressions)\n}\n\nfunction createTemplateLiteralWithTranslatedQuasis(\n node: types.TemplateLiteral,\n expressions: types.Expression[]\n) {\n const quasis: types.TemplateElement[] = []\n const nextExpressions: types.Expression[] = []\n let pendingText = ''\n let hasTranslatedQuasi = false\n\n node.quasis.forEach((quasi, index) => {\n const value = getTemplateElementValue(quasi)\n\n if (\n value &&\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, false))\n nextExpressions.push(createTrackedTranslateCall(value))\n pendingText = ''\n hasTranslatedQuasi = true\n } else {\n pendingText += value\n }\n\n if (index < expressions.length) {\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, false))\n nextExpressions.push(types.cloneNode(expressions[index]))\n pendingText = ''\n }\n })\n\n if (!hasTranslatedQuasi) return null\n\n quasis.push(types.templateElement({ raw: pendingText, cooked: pendingText }, true))\n return types.templateLiteral(quasis, nextExpressions)\n}\n\nfunction getConditionalExpressionLabel(expression: types.ConditionalExpression) {\n const test = expression.test\n if (types.isBinaryExpression(test) || types.isLogicalExpression(test)) {\n return getExpressionPlaceholder(test.left)\n }\n return getExpressionPlaceholder(test)\n}\n\nfunction formatExpressionPlaceholder(placeholder: string | null) {\n if (placeholder === null) return ''\n return placeholder.trim() ? `\\${${placeholder}}` : placeholder\n}\n\nfunction createTranslateNode(\n path: any,\n id: string,\n valStr: string,\n placeholders: string[] = [],\n expressions: types.Expression[] = []\n) {\n const translateCall = createTranslateCall(id, valStr, placeholders, expressions)\n\n if (!isVueTemplateRender(path)) {\n return translateCall\n }\n\n return types.sequenceExpression([createVueTemplateLanguageDependency(), translateCall])\n}\n\nfunction createTranslateCall(\n id: string,\n valStr: string,\n placeholders: string[] = [],\n expressions: types.Expression[] = []\n) {\n const args: types.Expression[] = [types.stringLiteral(id), types.stringLiteral(valStr)]\n\n if (placeholders.length) {\n const placeholderEntries = placeholders\n .map((placeholder, index) => ({ placeholder, expression: expressions[index] }))\n .filter(({ placeholder }) => placeholder && placeholder.trim())\n\n args.push(\n types.objectExpression(\n placeholderEntries.map(({ placeholder, expression }) =>\n types.objectProperty(\n types.stringLiteral(placeholder),\n types.cloneNode(expression)\n )\n )\n )\n )\n }\n\n return types.callExpression(types.identifier(option.translateKey), args)\n}\n\nfunction isVueTemplateRender(path: any) {\n return Boolean(path.scope?.getBinding('_vm'))\n}\n\nfunction createVueTemplateLanguageDependency() {\n const vm = types.identifier('_vm')\n const store = types.memberExpression(types.cloneNode(vm), types.identifier('$store'))\n const storeState = types.memberExpression(types.cloneNode(store), types.identifier('state'))\n const siteState = types.memberExpression(types.cloneNode(storeState), types.identifier('site'))\n const storeLanguage = types.logicalExpression(\n '&&',\n types.logicalExpression(\n '&&',\n types.logicalExpression('&&', types.cloneNode(store), types.cloneNode(storeState)),\n types.cloneNode(siteState)\n ),\n types.memberExpression(types.cloneNode(siteState), types.identifier('language'))\n )\n\n const i18n = types.memberExpression(types.cloneNode(vm), types.identifier('$i18n'))\n const i18nLocale = types.logicalExpression(\n '&&',\n types.cloneNode(i18n),\n types.memberExpression(types.cloneNode(i18n), types.identifier('locale'))\n )\n\n return types.logicalExpression('||', storeLanguage, i18nLocale)\n}\n\n// 处理模板元素\nfunction handleTemplateElement(node: types.TemplateElement, insertOption: any) {\n let value = node.value.raw || node.value.cooked // 获取模板字符串的值\n if (asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)) {\n try {\n value = baseUtils.unicodeToString(value || '')\n } catch (error) {\n console.log('转换异常')\n }\n }\n // 是否存在来源语言字符,是否在默认字符串中,是否包含过滤字段\n if (\n value &&\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n // 生成字符类型翻译节点\n let newNode = baseUtils.createI18nTranslator({\n insertOption,\n value\n })\n\n // 替换为字符类型翻译节点\n node.value.raw = node.value.cooked = `\\${${newNode}}`\n\n const { trimmedValue, valStr } = baseUtils.normalizeTranslateValue(value)\n let id = translateUtils.resolveLangKey(baseUtils.generateId(valStr), trimmedValue)\n\n if (id && value) {\n translateUtils.setLangObj(id, value)\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:18:51\n * @LastEditTime: 2025-03-16 15:17:30\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/CallExpression.ts\n */\nimport { baseUtils, translateUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { option } from 'src/option'\n\n// 收集翻译对象\nexport default function (insertOption: any) {\n return function (path: any) {\n let { node } = path\n // 提取公共部分,减少重复访问 node.callee 属性\n const callee = node.callee\n if (\n callee.name === option.translateKey ||\n (callee.property && callee.property.name === option.translateKey) // 拓展 半自动模式下的 如 a.b.c() 调用\n ) {\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n // 获取当前翻译函数的参数\n let arg = node.arguments || []\n // 如果参数数量不为 1,则直接返回\n if (arg.length === 1) {\n const value = arg[0]?.value || ''\n // 生成真实调用函数\n const replaceNode = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n path.replaceWith(replaceNode)\n translateSetLang(replaceNode, insertOption)\n }\n } else if (option.translateType === TranslateTypeEnum.FULL_AUTO) {\n // 全自动模式下还是只收集 单独 $t 调用\n if (\n callee.name === option.translateKey ||\n (callee.property && callee.property.name === option.translateKey)\n )\n translateSetLang(node, insertOption)\n }\n }\n }\n}\n\n/**\n * @description: 处理翻译并设置语言对象属性\n * @param node - 调用表达式节点\n * @return\n */\nfunction translateSetLang(node: types.CallExpression, insertOption?: any) {\n // 获取调用表达式的参数\n let arg = node.arguments || []\n // 提取参数作为值\n // 检查参数是否为字符串字面量\n const idArg = arg[0]\n const valueArg = arg[1]\n const id = types.isStringLiteral(idArg) ? idArg.value : ''\n const value = types.isStringLiteral(valueArg) ? valueArg.value : ''\n // 检查 ID 和值是否存在,并且第二个参数是字符串字面量\n if (id && value && types.isStringLiteral(idArg) && types.isStringLiteral(valueArg)) {\n const resolvedId = translateUtils.resolveLangKey(id, value)\n if (resolvedId !== id) {\n idArg.value = resolvedId\n idArg.extra = {\n raw: `'${resolvedId}'`,\n rawValue: resolvedId\n }\n }\n // 调用翻译工具的 setLangObj 方法设置语言对象属性\n translateUtils.setLangObj(resolvedId, value)\n insertOption?.collector?.record?.({\n key: option.useValueAsKey ? value : resolvedId,\n value,\n namespace: option.namespace,\n resourcePath: insertOption?.resourcePath,\n root: insertOption?.root\n })\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:18:51\n * @LastEditTime: 2025-03-31 02:28:53\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/StringLiteral.ts\n */\nimport { baseUtils, splitUtils } from 'src/utils'\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { option } from 'src/option'\n\nexport default function (insertOption: any) {\n return function (path: any) {\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n let { node, parent } = path\n let value = node.value\n\n // 定义一个包含亚洲语言代码的数组\n const asianLangs = ['zh-cn', 'ja', 'ko']\n if (\n asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)\n ) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n if (\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n if (baseUtils.isInsideConsoleCallArgument(path)) return\n\n // 获取真实调用函数\n const extractFnName = baseUtils.extractFunctionName(parent)\n\n // 防止导入语句,只处理那些当前节点不是键值对的键的字符串字面量,调用语句判断当前调用语句是否包含需要过滤的调用语句\n if (\n isTranslateCall(parent) ||\n types.isImportDeclaration(parent) ||\n parent.key === node ||\n (types.isCallExpression(parent) &&\n extractFnName &&\n (option.excludedCall.includes(extractFnName) ||\n (extractFnName?.split('.')?.pop() &&\n option.excludedCall.includes(extractFnName?.split('.')?.pop() || ''))))\n )\n return\n const vueVNodeCallPath = getVueCompiledVNodeCallPath(path)\n let replaceNode\n if (option.deepScan && splitUtils.checkNeedSplit(value)) {\n replaceNode = splitUtils.convertToTemplateLiteral(\n splitUtils.splitByRegex(value, baseUtils.getOriginRegex()),\n insertOption\n )\n } else if (types.isJSXAttribute(parent)) {\n let expression = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n replaceNode = types.jSXExpressionContainer(expression)\n } else {\n replaceNode = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n }\n path.replaceWith(replaceNode)\n markVueCompiledVNodeDynamic(vueVNodeCallPath)\n }\n }\n}\n\nfunction getVueCompiledVNodeCallPath(path: any) {\n const callPath = path.parentPath\n if (!callPath || !types.isCallExpression(callPath.node)) return\n if (!isVueVNodeCreateCall(callPath.node)) return\n\n if (path.listKey !== 'arguments' || path.key !== 2) return\n\n return callPath\n}\n\nfunction markVueCompiledVNodeDynamic(callPath: any) {\n if (!callPath || !types.isCallExpression(callPath.node)) return\n const patchFlag = callPath.node.arguments[3]\n if (isCachedPatchFlag(patchFlag)) {\n const textPatchFlag = types.numericLiteral(1)\n textPatchFlag.leadingComments = null\n textPatchFlag.innerComments = null\n textPatchFlag.trailingComments = null\n callPath.node.arguments[3] = textPatchFlag\n }\n\n const logicalPath = callPath.findParent((parentPath: any) => {\n const node = parentPath.node\n if (!types.isLogicalExpression(node) || node.operator !== '||') return false\n const right = node.right\n return (\n types.isAssignmentExpression(right) &&\n right.operator === '=' &&\n right.right === callPath.node &&\n isVueRenderCacheMember(node.left) &&\n isVueRenderCacheMember(right.left)\n )\n })\n\n if (logicalPath) {\n logicalPath.replaceWith(callPath.node)\n }\n}\n\nfunction isCachedPatchFlag(node: types.Node | null | undefined) {\n return (\n (types.isNumericLiteral(node) && node.value === -1) ||\n (\n types.isUnaryExpression(node) &&\n node.operator === '-' &&\n types.isNumericLiteral(node.argument) &&\n node.argument.value === 1\n )\n )\n}\n\nfunction isVueVNodeCreateCall(node: types.CallExpression) {\n const callee = node.callee\n return (\n types.isIdentifier(callee) &&\n [\n '_createElementVNode',\n '_createVNode',\n 'createElementVNode',\n 'createVNode'\n ].includes(callee.name)\n )\n}\n\nfunction isVueRenderCacheMember(node: types.Node) {\n return (\n types.isMemberExpression(node) &&\n types.isIdentifier(node.object) &&\n node.object.name === '_cache'\n )\n}\n\nfunction isTranslateCall(node: any) {\n if (!types.isCallExpression(node)) return false\n const callee = node.callee\n\n if (types.isIdentifier(callee)) {\n return callee.name === option.translateKey\n }\n\n if (types.isMemberExpression(callee)) {\n return (\n types.isIdentifier(callee.property) &&\n callee.property.name === option.translateKey\n )\n }\n\n return false\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-11-01 16:35:38\n * @LastEditTime: 2025-03-16 18:24:44\n * @FilePath: /i18n_translation_vite/packages/autoI18nPluginCore/src/filter/visitor/JSXText.ts\n */\nimport { TranslateTypeEnum } from 'src/enums'\nimport * as types from '@babel/types'\nimport { baseUtils } from 'src/utils'\nimport { option } from 'src/option'\n\nexport default function (insertOption: any) {\n return function (path: any) {\n console.log('jsx text')\n\n if (option.translateType === TranslateTypeEnum.SEMI_AUTO) {\n return\n }\n\n let { node } = path\n let value = node.value\n // 定义一个包含亚洲语言代码的数组\n const asianLangs = ['zh-cn', 'ja', 'ko']\n if (\n asianLangs.some(lang => option.originLang.includes(lang) || option.originLang === lang)\n ) {\n try {\n value = baseUtils.unicodeToString(value)\n } catch (error) {\n console.log('转换异常')\n }\n }\n if (\n baseUtils.hasOriginSymbols(value) &&\n option.excludedPattern.length &&\n !baseUtils.checkAgainstRegexArray(value, [...option.excludedPattern])\n ) {\n // 生成翻译节点\n let expression = baseUtils.createI18nTranslator({\n insertOption,\n value,\n isExpression: true\n })\n // 生成的翻译节点包装在 types.JSXExpressionContainer 中\n let newNode = types.jSXExpressionContainer(expression)\n // 使用 path.replaceWith 方法将原来的节点替换为新的翻译节点\n path.replaceWith(newNode)\n }\n }\n}\n","/*\n * @Author: xiaoshanwen\n * @Date: 2023-10-12 18:00:37\n * @LastEditTime: 2023-11-02 10:36:02\n * @FilePath: /i18n_translation_vite/src/plugins/filter/index.ts\n */\n\nimport TemplateLiteral from './visitor/TemplateLiteral'\nimport CallExpressionFn from './visitor/CallExpression'\nimport StringLiteralFn from './visitor/StringLiteral'\nimport JSXTextFn from './visitor/JSXText'\n\nexport default function (insertOption?: any) {\n // 分别调用各个访问器函数并传入插入选项\n const stringLiteralVisitor = StringLiteralFn(insertOption)\n const jsxTextVisitor = JSXTextFn(insertOption)\n const templateLiteralVisitor = TemplateLiteral(insertOption)\n const callExpressionVisitor = CallExpressionFn(insertOption)\n\n // 返回一个函数,该函数返回包含访问器的对象\n return function () {\n return {\n // 定义 Babel 访问器对象\n visitor: {\n StringLiteral: stringLiteralVisitor,\n JSXText: jsxTextVisitor,\n TemplateLiteral: templateLiteralVisitor,\n CallExpression: callExpressionVisitor\n }\n }\n }\n}\n","import path from 'path'\n\nexport const RUNTIME_MANIFEST_VERSION = 1\nexport const RUNTIME_MANIFEST_GLOBAL = '__GC_I18N_RUNTIME_MANIFEST__'\nexport const VITE_RUNTIME_MANIFEST_ID = 'virtual:gc-i18n-runtime-manifest'\nexport const RESOLVED_VITE_RUNTIME_MANIFEST_ID = `\\0${VITE_RUNTIME_MANIFEST_ID}`\n\nexport interface RuntimeManifestRecord {\n key: string\n value: string\n namespace: string\n resourcePath?: string\n}\n\nexport interface RuntimeManifestResource {\n path: string\n keys: string[]\n}\n\nexport interface RuntimeManifest {\n version: typeof RUNTIME_MANIFEST_VERSION\n namespace: string\n translateKey: string\n originLang: string\n targetLangList: string[]\n resources: RuntimeManifestResource[]\n byFile: Record<string, string[]>\n allKeys: string[]\n records: RuntimeManifestRecord[]\n}\n\nexport interface ManifestRecordInput {\n key: string\n value: string\n namespace?: string\n resourcePath?: string\n root?: string\n}\n\nexport interface RuntimeManifestOptionLike {\n namespace?: string\n translateKey?: string\n originLang?: string\n targetLangList?: string[]\n}\n\nexport interface I18nManifestCollector {\n record(input: ManifestRecordInput): void\n toJSON(option?: RuntimeManifestOptionLike): RuntimeManifest\n clear(): void\n}\n\nfunction normalizeResourcePath(resourcePath: string | undefined, root: string | undefined) {\n if (!resourcePath) return undefined\n if (!root) return resourcePath\n\n const relativePath = path.relative(root, resourcePath)\n return relativePath && !relativePath.startsWith('..') ? relativePath : resourcePath\n}\n\nexport function createI18nManifestCollector(root = process.cwd()): I18nManifestCollector {\n const records = new Map<string, RuntimeManifestRecord>()\n\n return {\n record(input: ManifestRecordInput) {\n if (!input.key || !input.value) return\n\n const resourcePath = normalizeResourcePath(input.resourcePath, input.root || root)\n const namespace = input.namespace || 'lang'\n const dedupeKey = [namespace, resourcePath || '', input.key].join('\\u0000')\n\n records.set(dedupeKey, {\n key: input.key,\n value: input.value,\n namespace,\n ...(resourcePath ? { resourcePath } : {})\n })\n },\n toJSON(option: RuntimeManifestOptionLike = {}) {\n const recordList = Array.from(records.values()).sort((left, right) => {\n const leftPath = left.resourcePath || ''\n const rightPath = right.resourcePath || ''\n return leftPath.localeCompare(rightPath) || left.key.localeCompare(right.key)\n })\n const resourceMap = new Map<string, Set<string>>()\n const allKeys = new Set<string>()\n\n recordList.forEach(record => {\n const resourcePath = record.resourcePath || '<unknown>'\n const keys = resourceMap.get(resourcePath) || new Set<string>()\n keys.add(record.key)\n allKeys.add(record.key)\n resourceMap.set(resourcePath, keys)\n })\n\n const byFile = Object.fromEntries(\n Array.from(resourceMap.entries()).map(([resourcePath, keys]) => [\n resourcePath,\n Array.from(keys).sort()\n ])\n )\n\n return {\n version: RUNTIME_MANIFEST_VERSION,\n namespace: option.namespace || 'lang',\n translateKey: option.translateKey || '$t',\n originLang: option.originLang || 'zh-cn',\n targetLangList: option.targetLangList || [],\n resources: Object.entries(byFile).map(([resourcePath, keys]) => ({\n path: resourcePath,\n keys\n })),\n byFile,\n allKeys: Array.from(allKeys).sort(),\n records: recordList\n }\n },\n clear() {\n records.clear()\n }\n }\n}\n\nexport function serializeRuntimeManifest(manifest: RuntimeManifest) {\n return `const manifest = ${JSON.stringify(manifest, null, 2)};\\nexport { manifest };\\nexport default manifest;\\n`\n}\n","export type I18nLocaleMessages = Record<string, string>\nexport type I18nMessages = Record<string, I18nLocaleMessages | undefined>\n\nexport interface I18nRuntimeDeltaItem {\n key: string\n value: string\n locale: string\n namespace: string\n}\n\nexport interface I18nRuntimeOptions {\n namespace?: string\n initialLocale?: string\n fallbackLocale?: string\n commonMessages?: I18nMessages\n localMessages?: I18nMessages\n remoteMessages?: I18nMessages\n target?: any\n hotkey?: false | string\n onConfigRequest?: (payload: I18nRuntimeConfigPayload) => void\n}\n\nexport interface I18nRuntimeConfigPayload {\n locale: string\n namespace: string\n delta: I18nRuntimeDeltaItem[]\n messages: I18nMessages\n}\n\nexport interface I18nRuntime {\n readonly namespace: string\n getLocale(): string\n setRemoteMessages(messages?: I18nMessages): void\n mergeMessages(messages?: I18nMessages, layer?: 'common' | 'local' | 'remote'): void\n t(\n key: string,\n value?: string | Record<string, unknown>,\n params?: Record<string, unknown>,\n namespace?: string\n ): string\n changeLocale(locale: string): string\n clearI18n(): void\n isRTL(locale?: string): boolean\n getDelta(): I18nRuntimeDeltaItem[]\n getMergedMessages(): I18nMessages\n requestConfig(): I18nRuntimeConfigPayload\n install(target?: any): I18nRuntime\n}\n\nconst RTL_LANGUAGES = new Set(['ar', 'fa', 'he', 'iw', 'ps', 'ur'])\nconst DEFAULT_NAMESPACE = 'lang'\nconst DEFAULT_HOTKEY = 'Alt+KeyI'\n\nfunction normalizeLocale(locale: string | undefined, fallback = '') {\n return String(locale || fallback)\n .toLowerCase()\n .replace(/_/g, '-')\n}\n\nfunction normalizeStorageKey(locale: string | undefined, fallback = '') {\n return normalizeLocale(locale, fallback).replace(/[^a-z0-9]/g, '')\n}\n\nfunction cloneMessages(messages?: I18nMessages): I18nMessages {\n return Object.keys(messages || {}).reduce<I18nMessages>((result, locale) => {\n result[normalizeStorageKey(locale)] = { ...(messages?.[locale] || {}) }\n return result\n }, {})\n}\n\nfunction mergeMessageLayers(...layers: Array<I18nMessages | undefined>): I18nMessages {\n return layers.reduce<I18nMessages>((result, layer) => {\n Object.keys(layer || {}).forEach(locale => {\n const runtimeLocale = normalizeStorageKey(locale)\n result[runtimeLocale] = {\n ...(result[runtimeLocale] || {}),\n ...(layer?.[locale] || {})\n }\n })\n return result\n }, {})\n}\n\nfunction getMessagesForLocale(messages: I18nMessages, runtimeLocale: string) {\n const baseLocale = runtimeLocale.slice(0, 2)\n return {\n ...(messages[runtimeLocale] || {}),\n ...(baseLocale === runtimeLocale ? {} : messages[baseLocale] || {})\n }\n}\n\nfunction interpolate(template: string, params?: Record<string, unknown>) {\n if (!params) return template\n return template.replace(/\\{\\{?\\s*([\\w.]+)\\s*\\}?\\}/g, (match, path) => {\n const value = String(path)\n .split('.')\n .reduce<unknown>((current, key) => {\n if (current && typeof current === 'object' && key in current) {\n return (current as Record<string, unknown>)[key]\n }\n return undefined\n }, params)\n return value === undefined || value === null ? match : String(value)\n })\n}\n\nfunction parseHotkey(event: any, hotkey: string) {\n const parts = hotkey.split('+')\n const code = parts.pop()\n const modifiers = new Set(parts.map(part => part.toLowerCase()))\n return (\n (!modifiers.has('alt') || !!event.altKey) &&\n (!modifiers.has('ctrl') || !!event.ctrlKey) &&\n (!modifiers.has('meta') || !!event.metaKey) &&\n (!modifiers.has('shift') || !!event.shiftKey) &&\n (!code || event.code === code || event.key === code)\n )\n}\n\nexport function createI18nRuntime(options: I18nRuntimeOptions = {}): I18nRuntime {\n const namespace = options.namespace || DEFAULT_NAMESPACE\n const fallbackLocale = normalizeStorageKey(\n options.fallbackLocale || options.initialLocale || 'zh-cn'\n )\n let locale = normalizeStorageKey(options.initialLocale, fallbackLocale)\n let commonMessages = cloneMessages(options.commonMessages)\n let localMessages = cloneMessages(options.localMessages)\n let remoteMessages = cloneMessages(options.remoteMessages)\n const delta = new Map<string, I18nRuntimeDeltaItem>()\n\n const runtime: I18nRuntime = {\n namespace,\n getLocale() {\n return locale\n },\n setRemoteMessages(messages?: I18nMessages) {\n remoteMessages = cloneMessages(messages)\n },\n mergeMessages(messages?: I18nMessages, layer = 'local') {\n if (layer === 'common')\n commonMessages = mergeMessageLayers(commonMessages, cloneMessages(messages))\n if (layer === 'local')\n localMessages = mergeMessageLayers(localMessages, cloneMessages(messages))\n if (layer === 'remote')\n remoteMessages = mergeMessageLayers(remoteMessages, cloneMessages(messages))\n },\n t(key, value = '', params, callNamespace = namespace) {\n const interpolationParams = typeof value === 'object' ? value : params\n const fallbackValue = typeof value === 'string' ? value : key\n const messages = runtime.getMergedMessages()\n const localeMessages = {\n ...getMessagesForLocale(messages, fallbackLocale),\n ...getMessagesForLocale(messages, locale)\n }\n const translated = localeMessages[key]\n if (translated === undefined) {\n const deltaKey = `${callNamespace}:${locale}:${key}`\n if (!delta.has(deltaKey)) {\n delta.set(deltaKey, {\n key,\n value: fallbackValue,\n locale,\n namespace: callNamespace\n })\n }\n }\n return interpolate(translated || fallbackValue || key, interpolationParams)\n },\n changeLocale(nextLocale) {\n locale = normalizeStorageKey(nextLocale, fallbackLocale)\n return locale\n },\n clearI18n() {\n remoteMessages = {}\n delta.clear()\n },\n isRTL(targetLocale = locale) {\n const lang = normalizeLocale(targetLocale).split('-')[0]\n return RTL_LANGUAGES.has(lang)\n },\n getDelta() {\n return Array.from(delta.values())\n },\n getMergedMessages() {\n return mergeMessageLayers(commonMessages, localMessages, remoteMessages)\n },\n requestConfig() {\n const payload = {\n locale,\n namespace,\n delta: runtime.getDelta(),\n messages: runtime.getMergedMessages()\n }\n options.onConfigRequest?.(payload)\n return payload\n },\n install(\n target = options.target || (typeof globalThis !== 'undefined' ? globalThis : undefined)\n ) {\n if (!target) return runtime\n target.$t = runtime.t\n target.$changeLocale = runtime.changeLocale\n target.$clearI18n = runtime.clearI18n\n target.$isRTL = runtime.isRTL\n target.__GC_I18N_RUNTIME__ = runtime\n return runtime\n }\n }\n\n return runtime\n}\n\nexport function installI18nRuntime(\n app?: any,\n options: I18nRuntimeOptions & { router?: any; messages?: I18nMessages } = {}\n) {\n const runtime = createI18nRuntime({\n ...options,\n localMessages: mergeMessageLayers(options.localMessages, options.messages)\n })\n runtime.install(options.target)\n\n if (app && typeof app.config === 'object') {\n app.config.globalProperties = app.config.globalProperties || {}\n app.config.globalProperties.$t = runtime.t\n app.config.globalProperties.$changeLocale = runtime.changeLocale\n app.config.globalProperties.$clearI18n = runtime.clearI18n\n app.config.globalProperties.$isRTL = runtime.isRTL\n }\n\n const target =\n options.target || (typeof globalThis !== 'undefined' ? (globalThis as any) : undefined)\n const hotkey = options.hotkey === false ? false : options.hotkey || DEFAULT_HOTKEY\n if (target && hotkey && typeof target.addEventListener === 'function') {\n target.addEventListener('keydown', (event: any) => {\n if (!parseHotkey(event, hotkey)) return\n const payload = runtime.requestConfig()\n if (\n typeof target.dispatchEvent === 'function' &&\n typeof target.CustomEvent === 'function'\n ) {\n target.dispatchEvent(\n new target.CustomEvent('gc-i18n-config-request', { detail: payload })\n )\n }\n })\n }\n\n return runtime\n}\n\nexport const runtimeUtils = {\n normalizeLocale,\n normalizeStorageKey,\n mergeMessageLayers\n}\n","// plugin.ts\n// 从 webpack 导入核心接口\n// 导入 gc-i18n-plugin-core 提供的工具和类型\nimport {\n fileUtils,\n translateUtils,\n FunctionFactoryOption,\n OptionInfo,\n option,\n initOption,\n checkOption,\n CNToTWTranslator,\n createI18nManifestCollector,\n serializeRuntimeManifest\n} from 'gc-i18n-plugin-core'\nimport webpack from 'webpack'\n// 导入 path 模块,用于处理文件和目录路径\nimport path from 'path'\n\n// 重新导出 gc-i18n-plugin-core 内容\nexport * from 'gc-i18n-plugin-core'\n\n/**\n * 允许处理的文件扩展名列表。\n * 如果只处理 `.js` 文件,可能会有遗漏。\n * 因此需要结合用户的配置,只处理特定目录内的指定文件类型。\n */\nconst allowedExtensions = ['.vue', '.tsx', '.jsx', '.js', '.ts']\nconst runtimeManifestAssetName = 'gc-i18n-runtime-manifest.mjs'\n\n/**\n * Webpack 插件实现,用于自动化处理国际化翻译功能\n */\nexport default class webpackPluginsAutoI18n {\n private readonly collector = createI18nManifestCollector()\n /**\n * 初始化插件并合并用户配置\n * @param optionInfo 用户提供的配置\n */\n constructor(optionInfo: OptionInfo) {\n // 初始化插件配置\n initOption({\n deepScan: true,\n globalPath: './lang',\n namespace: 'lang',\n translateKey: '$t',\n distPath: './dist/assets',\n distKey: 'index',\n targetLangList: ['zh-cn', 'zh-tw'],\n originLang: 'zh-cn',\n translator: new CNToTWTranslator(),\n ...optionInfo\n })\n\n // 检查配置有效性,如果无效则不执行后续逻辑\n if (!checkOption()) return\n\n // 初始化语言文件\n fileUtils.initLangFile()\n\n // 获取来源语言内容对象\n const originLangObj = fileUtils.getLangObjByJSONFileWithLangKey(option.originLang)\n\n // 补全语言配置,确保来源语言文件的内容完整性\n translateUtils.languageConfigCompletion(originLangObj)\n\n // 初始化翻译对象(用于翻译操作)\n translateUtils.initLangObj(originLangObj)\n }\n\n /**\n * Webpack 插件核心方法,用于集成到编译流程中\n * @param compiler Webpack 编译器实例\n */\n apply(compiler: webpack.Compiler) {\n // 配置初始语言选项,将来源语言设置为配置的 originLang\n FunctionFactoryOption.originLang = option.originLang\n\n /**\n * 检查是否已经添加过这个自定义 Loader,避免重复添加\n * @param rule Webpack 模块规则\n * @returns 如果已经添加过自定义 Loader 则返回 true,否则返回 false\n */\n const hasCustomLoader = (rule: any) =>\n rule.use &&\n Array.isArray(rule.use) &&\n rule.use.some(\n ({ loader }: { loader: string }) =>\n loader && loader.includes('customLoader/index.cjs')\n )\n\n /**\n * 在编译前阶段动态添加自定义 Loader\n */\n compiler.hooks.environment.tap('webpackPluginsAutoI18n', () => {\n // 检查 compiler 配置中是否有 module.rules 且没有添加过自定义 Loader\n if (\n compiler.options.module?.rules &&\n !compiler.options.module.rules.some(hasCustomLoader)\n ) {\n // 向 module.rules 中添加自定义 Loader\n compiler.options.module?.rules.push({\n // 生成高级正则表达式,用于匹配目标文件\n test: generateAdvancedRegex([\n ...allowedExtensions,\n ...(option.insertFileExtensions || [])\n ]),\n // 设置 Loader 执行顺序为后置\n enforce: 'post',\n use: [\n {\n // 指定自定义 Loader 的路径\n loader: path.resolve(__dirname, './customLoader/index.cjs'),\n options: {\n root: compiler.context,\n collector: this.collector\n }\n }\n ]\n })\n }\n })\n\n compiler.hooks.thisCompilation.tap('webpackPluginsAutoI18n', compilation => {\n compilation.hooks.processAssets.tap(\n {\n name: 'webpackPluginsAutoI18n',\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS\n },\n () => {\n const source = serializeRuntimeManifest(\n this.collector.toJSON({\n namespace: option.namespace,\n translateKey: option.translateKey,\n originLang: option.originLang,\n targetLangList: option.targetLangList\n })\n )\n\n compilation.emitAsset(\n runtimeManifestAssetName,\n new compiler.webpack.sources.RawSource(source)\n )\n }\n )\n })\n\n /**\n * 在构建阶段执行翻译任务\n */\n compiler.hooks.emit.tapPromise('webpackPluginsAutoI18n', async _compilation => {\n // 输出构建阶段开始批量翻译的信息\n console.info('构建阶段批量翻译')\n // 清理多余的翻译配置JSON文件\n translateUtils.cleanupUnusedTranslations()\n // 执行自动翻译任务\n await translateUtils.autoTranslate()\n // 输出翻译完成的信息\n console.info('翻译完成✔')\n })\n\n /**\n * 在构建完成后上传翻译文件(仅在生产模式下)\n */\n compiler.hooks.afterEmit.tapPromise('webpackPluginsAutoI18n', async _compilation => {\n // 检查是否为生产模式(build),开发模式(dev/serve)不上传\n const isProduction = compiler.options.mode === 'production'\n if (isProduction) {\n // 检查是否启用了上传功能\n if (option.uploadEnabled) {\n console.info('构建阶段:开始上传翻译文件')\n await fileUtils.uploadFile()\n } else {\n console.info('构建阶段:上传翻译文件功能已禁用(uploadEnabled: false)')\n }\n }\n })\n }\n}\n\n/**\n * 动态生成一个正则表达式,用于匹配目标文件。\n *\n * 验证以下条件:\n * - 文件名需以特定的扩展名结尾(如 `.vue`, `.ts` 等)\n * - 必须满足 `option.includePath` 中的至少一个短语或正则表达式;\n * - 不能满足 `option.excludedPath` 中的任何短语或正则表达式。\n *\n * @param extensions 文件扩展名数组 (如: ['.vue', '.tsx', '.jsx', '.js', '.ts'])\n * @returns 匹配文件的动态生成正则表达式\n */\nfunction generateAdvancedRegex(extensions: string[]): RegExp {\n // 生成扩展名的正则表达式部分\n const extensionsRegex = `(${extensions.map(ext => ext.replace('.', '\\\\.')).join('|')})$`\n\n /**\n * 将短语(字符串或正则)转化为正则表达式\n * @param phrase 包含字符串或正则的短语\n * @returns 短语对应的正则表达式\n */\n function phraseToRegex(phrase: string | RegExp): string {\n if (phrase instanceof RegExp) {\n // 如果是正则表达式,直接返回其源字符串\n return phrase.source\n }\n // 如果是字符串,对特殊字符进行转义\n return phrase.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n }\n\n // 获取用户配置的包含路径\n const includePhrases = option.includePath\n\n // 获取用户配置的排除路径\n const excludePhrases = option.excludedPath\n\n // 生成包含路径的正则表达式部分\n const includeRegex = includePhrases.length\n ? `(?=.*(${includePhrases.map(phraseToRegex).join('|')}))`\n : ''\n\n // 生成排除路径的正则表达式部分\n const excludeRegex = excludePhrases.length\n ? `^(?!.*(${excludePhrases.map(phraseToRegex).join('|')}))`\n : ''\n\n // 组合最终的正则表达式\n const finalRegex = `${excludeRegex}${includeRegex}.*${extensionsRegex}`\n // 返回忽略大小写的正则表达式对象\n return new RegExp(finalRegex, 'i')\n}\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","create","Iterator","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","l","ar","Array","slice","concat","SuppressedError","error","suppressed","message","Error","name","IntervalQueue","constructor","fn","delay","timeout","queue","wait","undefined","setTimeout","isRunning","run","item","shift","args","execute","_len","_key","Translator","option","getResultOption","defaultErrorHandler","console","getErrorMessage","resultOption","version","maxChunkSize","interval","onError","getIntervalFn","bind","fetchMethod","String","translate","text","fromKey","toKey","separator","GoogleTranslator","data","proxyOption","fetchOptions","agent","tunnel","httpsOverHttp","proxy","insertOption","cb","code","YoudaoTranslator","YOUDAO_TRANSLATE_KEY_CONVERT_MAP","truncate","q","len","substring","getTranslateKey","key","salt","Date","getTime","curTime","Math","round","str","appId","appKey","sign","CryptoJS","SHA256","toString","enc","Hex","signType","curtime","response","axios","post","headers","translation","BaiduTranslator","BAIDU_TRANSLATE_KEY_CONVERT_MAP","ja","ko","appid","MD5","translatedTexts","trans_result","map","dst","filter","_item","index","join","EmptyTranslator","_from","_to","split","fill","ScanTranslator","cn2tw","OpenCC","Converter","CNToTWTranslator","FunctionFactoryOption","originLang","LanguageEnum","OriginLangKeyEnum","REGEX_MAP","ZH","EN","JA","KO","RU","indentConfig","tab","char","size","space","configDefault","type","placeholderStorage","pushPlaceholder","match","popPlaceholder","_match","generateIndentation","count","indentType","formatJSON","json","output","indentLevel","replace","charAt","jsonFormatter","config","jsonString","JSON","stringify","indent","createTextSplitter","values","SEP_LENGTH","SEPARATOR","buffer","currentSize","commitBuffer","actualLength","warn","neededSpace","splitByRegex","separatorRegex","punctuationRegex","splitRegex","RegExp","source","flags","splitArr","Boolean","currentMatch","connectPunctuationRegex","connectRegex","test","finalResult","tempStr","mergeInlineTextSeparatedOriginChunks","strArray","current","beforeInlineText","inlineText","splitTrailingInlineText","normalizeInlineTextPrefix","isInlineTextSeparator","normalizeInlineTextSeparator","rest","splitLeadingInlineText","trimStart","tagIndex","search","tagEndIndex","lastIndexOf","checkNeedSplit","includes","convertToTemplateLiteral","quasis","types","templateElement","raw","cooked","expressions","forEach","getOriginRegex","baseUtils","isExpression","quasi","tail","templateLiteral","deepScanCall","callExpression","identifier","upload","appCode","targetLangList","parts","lang","toUpperCase","page","get","res","Authorization","status","info","log","initLangFile","fs","existsSync","globalPath","mkdirSync","initLangTranslateJSONFile","initTranslateBasicFnFile","normalizeRuntimeLangKey","langKey","toLowerCase","resolveLanguageMeta","region","normalizedCode","matched","find","allLanguage","getRuntimeLangKeys","Set","createRuntimeIndexCode","namespace","commonTranslateKey","originRuntimeKey","languages","langEntries","runtimeKey","indexPath","path","translateBasicFnText","writeFileSync","getLangTranslateJSONFile","filePath","content","readFileSync","getLangObjByJSONFileWithLangKey","insertJSONObj","JSONObj","parse","langObj","keys","langCode","setLangTranslateJSONFile","obj","jsonObj","uploadFile","uploadUtils","SPLIT_SEPARATOR_REGEX","normalizeValueForDedupe","trim","findKeyByValue","valueMap","exactKey","entries","_ref","oldValue","normalizedValue","_ref2","getExistingOriginLangObj","fileUtils","getLangKeyByValue","resolveLangKey","isTemplateValue","hasOriginSymbols","originRegex","isTemplateFragmentSegment","getTemplateSemanticSplitSegments","expressionCount","segments","beforeValue","afterValue","segment","add","isTemplateStaticSegment","some","removeTemplateStaticSegments","has","setLangObj","existingKey","dedupeLangObjMapByOriginValue","originLangObjMap","originMap","valueKeyMap","Map","set","getLangObj","initLangObj","autoTranslate","enabled","currentLangObj","keyMap","transLangObj","newLangObjMap","langIndex","currentLang","translatedValues","translateChunks","configLangObj","languageConfigCompletion","needCompletionList","JSONobj","curLangObj","completionTranslateAndWriteConfigFile","translateKey","resultValues","translator","placeholders","protectedValues","protectInterpolationPlaceholders","translationChunks","chunkUtils","translatePromises","chunkResults","all","restoreInterpolationPlaceholders","splitTranslation","lines","line","realList","flat","Number","cleanupUnusedTranslations","isClear","langSet","baseObj","baseObjKeys","removeComments","checkAgainstRegexArray","regexArray","regex","extractFunctionName","node","callName","callObjName","callObj","property","isMemberExpression","object","isCallExpression","callee","isConsoleMemberCall","computed","isIdentifier","isInsideConsoleCallArgument","currentPath","parentPath","parentNode","arg","extractCnStrings","fileContent","extractStrings","matches","indexOf","createI18nTranslator","createOption","nameSpace","trimmedValue","valStr","normalizeTranslateValue","generatedKey","generateId","hash","uncodeValue","collector","record","useValueAsKey","resourcePath","root","translateExtends","handleCodeCall","handleCodeString","valueExp","stringLiteral","extra","rawValue","isClearSpace","charCode","charCodeAt","id","abs","unicodeToString","fromCharCode","parseInt","cloneDeep","cache","WeakMap","clone","isArray","getOwnPropertySymbols","sym","propertyIsEnumerable","VolcengineTranslator","textArr","sourceMap","fromEntries","model","messages","role","desc","apiKey","resultTextArr","choices","resultMap","isMiss","TranslateApiEnum","TranslateTypeEnum","EXCLUDED_CALL","DEFAULT_OPTION","excludedCall","excludedPattern","excludedPath","includePath","distPath","distKey","orgCode","buildToDist","uploadEnabled","port","host","translatorOption","translateType","FULL_AUTO","rewriteConfig","deepScan","insertFileExtensions","generateUserOption","optionInfo","userOption","initOption","checkOption","Vue2Extends","handleInitFile","importVue","hasVue","importDefaultChar","babel","transformAsync","configFile","plugins","visitor","ImportDeclaration","specifiers","specifier","isImportDefaultSpecifier","local","unshift","importDefaultSpecifier","_initFileResult","memberExpression","asianLangs","SEMI_AUTO","parent","isTaggedTemplateExpression","extractFnName","handleTemplateLiteralWithExpressions","handleTemplateElement","hasOptimizedExpression","expressionLabels","expression","optimizedExpression","optimizeConditionalExpression","getExpressionPlaceholder","placeholder","fullValue","reduce","formatExpressionPlaceholder","skip","hasExpressionInsideOriginContent","translateUtils","translateNode","createTranslateNode","replaceWith","getTemplateElementValue","isStringLiteral","isNumericLiteral","isTSAsExpression","isTSTypeAssertion","isTSNonNullExpression","generateCode","generate","default","normalizeExpressionPlaceholder","comments","isConditionalExpression","consequent","translateConditionalStringBranch","alternate","changed","getConditionalExpressionLabel","conditionalExpression","cloneNode","createTrackedTranslateCall","isTemplateLiteral","translateCall","createTemplateLiteralTranslateCall","createTemplateLiteralWithTranslatedQuasis","createTranslateCall","nextExpressions","pendingText","hasTranslatedQuasi","isBinaryExpression","isLogicalExpression","left","isVueTemplateRender","sequenceExpression","createVueTemplateLanguageDependency","placeholderEntries","objectExpression","objectProperty","scope","getBinding","vm","store","storeState","siteState","storeLanguage","logicalExpression","i18n","i18nLocale","newNode","replaceNode","translateSetLang","idArg","valueArg","resolvedId","isTranslateCall","isImportDeclaration","vueVNodeCallPath","getVueCompiledVNodeCallPath","splitUtils","isJSXAttribute","jSXExpressionContainer","markVueCompiledVNodeDynamic","callPath","isVueVNodeCreateCall","listKey","patchFlag","isCachedPatchFlag","textPatchFlag","numericLiteral","leadingComments","innerComments","trailingComments","logicalPath","findParent","operator","right","isAssignmentExpression","isVueRenderCacheMember","isUnaryExpression","argument","stringLiteralVisitor","StringLiteralFn","jsxTextVisitor","JSXTextFn","templateLiteralVisitor","TemplateLiteral","callExpressionVisitor","CallExpressionFn","StringLiteral","JSXText","CallExpression","RUNTIME_MANIFEST_VERSION","RUNTIME_MANIFEST_GLOBAL","VITE_RUNTIME_MANIFEST_ID","RESOLVED_VITE_RUNTIME_MANIFEST_ID","normalizeResourcePath","relativePath","relative","startsWith","createI18nManifestCollector","process","cwd","records","input","dedupeKey","toJSON","recordList","sort","leftPath","rightPath","localeCompare","resourceMap","allKeys","byFile","resources","clear","serializeRuntimeManifest","manifest","RTL_LANGUAGES","DEFAULT_NAMESPACE","DEFAULT_HOTKEY","normalizeLocale","locale","fallback","normalizeStorageKey","cloneMessages","mergeMessageLayers","layers","layer","runtimeLocale","getMessagesForLocale","baseLocale","interpolate","template","params","parseHotkey","event","hotkey","modifiers","part","altKey","ctrlKey","metaKey","shiftKey","createI18nRuntime","options","fallbackLocale","initialLocale","commonMessages","localMessages","remoteMessages","delta","runtime","getLocale","setRemoteMessages","mergeMessages","callNamespace","interpolationParams","fallbackValue","getMergedMessages","localeMessages","translated","deltaKey","changeLocale","nextLocale","clearI18n","isRTL","targetLocale","getDelta","requestConfig","payload","onConfigRequest","install","target","globalThis","$t","$changeLocale","$clearI18n","$isRTL","__GC_I18N_RUNTIME__","installI18nRuntime","app","globalProperties","addEventListener","dispatchEvent","CustomEvent","detail","runtimeUtils","allowedExtensions","runtimeManifestAssetName","webpackPluginsAutoI18n","originLangObj","compiler","_this","hasCustomLoader","rule","use","_a","loader","hooks","environment","tap","module","rules","_b","generateAdvancedRegex","enforce","__dirname","context","thisCompilation","compilation","processAssets","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_ADDITIONS","emitAsset","sources","RawSource","emit","tapPromise","_compilation","afterEmit","isProduction","mode","extensions","extensionsRegex","ext","phraseToRegex","phrase","includePhrases","excludePhrases","includeRegex","excludeRegex","finalRegex"],"mappings":"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","x_google_ignoreList":[0]}