mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-06 13:14:11 +00:00
The Vue SPA had been reading from frontend/src/locales/*.json while the Go binary still loaded web/translation/translate.*.toml — and a sync-locales.mjs pre-build step kept the two in lockstep, with TOML as the source of truth. Now that go-i18n v2.6.1 already flattens nested JSON via recGetMessages/addChildMessages, both runtimes can share one file per locale. - Move the 13 nested-JSON locale files to web/translation/<lang>.json so they live alongside the Go //go:embed translation/* directive. - Switch web/locale/locale.go from toml.Unmarshal to json.Unmarshal (and drop the pelletier/go-toml import — it's now indirect-only). Confirmed via a smoke test that pages.index.cpu, subscription.title, tgbot.commands.help, and menu.settings all resolve in en-US, fa-IR, ru-RU, and zh-CN. - Repoint Vue's i18n loader at the new path (../../../web/translation/ *.json glob) and drop the moved-here pathDelimiter comment that no longer applies. - Delete the 13 legacy translate.*.toml files and the sync-locales.mjs script + its npm pre-script hooks (predev/prebuild/i18n:sync). The Telegram bot and subscription page still get their messages because they were reading the same MessageIDs the JSON files now produce. - Update copilot-instructions.md so the next contributor knows where the canonical translation files live. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
31 lines
796 B
JSON
31 lines
796 B
JSON
{
|
|
"name": "x-ui-frontend",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"description": "3x-ui panel frontend (Vue 3 + Ant Design Vue 4). Built with Vite into ../web/dist/ and embedded by the Go binary.",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint src --ext .js,.vue"
|
|
},
|
|
"dependencies": {
|
|
"@ant-design/icons-vue": "^7.0.1",
|
|
"ant-design-vue": "^4.2.6",
|
|
"axios": "^1.7.9",
|
|
"dayjs": "^1.11.20",
|
|
"moment": "^2.30.1",
|
|
"otpauth": "^9.5.1",
|
|
"qrious": "^4.0.2",
|
|
"qs": "^6.13.1",
|
|
"vue": "^3.5.13",
|
|
"vue-i18n": "^11.1.4"
|
|
},
|
|
"devDependencies": {
|
|
"@vitejs/plugin-vue": "^6.0.6",
|
|
"eslint": "^9.17.0",
|
|
"eslint-plugin-vue": "^9.32.0",
|
|
"vite": "^8.0.11"
|
|
}
|
|
}
|