const fs = require("fs"); const path = require("path"); const ROOT = path.join(__dirname, "../src"); const SKIP = /copy\.vue$|weatherInfo copy/i; const TEXT_IN_TAG = />([^<>{}\n]+) { const trimmed = text.trim(); if (!trimmed || !hasChinese(trimmed) || alreadyWrapped(trimmed)) return full; if (/^[\s\d.,:;+\-/%]+$/.test(trimmed)) return full; changed = true; return `>{{ $t('${escapeStr(trimmed)}') }}<`; }); out = out.replace(ATTR_RE, (full, attr, val) => { changed = true; return `:${attr}="$t('${escapeStr(val)}')"`; }); return { out, changed }; } function processVueFile(content) { const open = content.indexOf(""); if (open === -1 || close === -1 || close <= open) { return { content, changed: false }; } const before = content.slice(0, open + "