mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
* fix(i18n): preserve remaining Vietnamese localization * chore(quality): rebaseline file-size cap for 9 dashboard components (i18n wiring) Restoring the Vietnamese localization on 9 dashboard components (useTranslations wiring + t()/tc() call-site swaps for previously hardcoded strings) grows each file by a small, irreducible amount. Bumps the frozen file-size-baseline.json caps to match, with a justification entry per the project's own ratchet policy. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> * fix(i18n): wire weekday localization + add missing qwen CLI description Two gaps left by this PR's own new contract tests, caught while reconciling the branch against the release tip: - CostOverviewTab.tsx added formatWeekdayLabel() but never called it; the Weekly Usage Pattern chart still showed raw English day abbreviations regardless of locale. Now maps weeklyPattern rows through it before handing them to WeeklyPatternCard. - cliTools.toolDescriptions was missing an entry for "qwen" (a baseUrlSupport:"full" tool) in both en.json and vi.json, failing the PR's own cli-catalog-display-contract.test.ts. Covered by the PR's existing tests/unit/dashboard-localization-contract.test.ts and tests/unit/cli-catalog-display-contract.test.ts (both now pass). Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> * i18n(vi): backfill the 4 proxySubscription keys #7299 added to en.json #7299 (proxy subscriptions) merged while this branch was rebasing, adding settings.proxySubscriptionsTab and settings.proxySubscription.error.{LOCAL_CORE_ENDPOINT_INVALID, NEEDS_CORE_NOT_CONFIGURED,NO_USABLE_NODES} to en.json. This PR's own i18n-vi-completeness contract asserts full en↔vi key parity, so the merge of the current release tip surfaced them as missing. Adds the Vietnamese translations, keeping the SS/VMess/Trojan/VLESS/SOCKS5 technical terms verbatim. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> --------- Co-authored-by: nguyenha935 <208228297+nguyenha935@users.noreply.github.com> Co-authored-by: Diego Rodrigues de Sa e Souza <diegosouza.pw@gmail.com> Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> Co-authored-by: nguyenha935 <nguyenha935@users.noreply.github.com>
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import { existsSync } from "node:fs";
|
|
import test from "node:test";
|
|
|
|
import en from "../../src/i18n/messages/en.json" with { type: "json" };
|
|
import vi from "../../src/i18n/messages/vi.json" with { type: "json" };
|
|
import { CLI_TOOLS } from "../../src/shared/constants/cliTools";
|
|
|
|
test("every CLI catalog image points to a bundled public asset", () => {
|
|
const missing = Object.values(CLI_TOOLS).flatMap((tool) =>
|
|
[tool.image, tool.imageLight, tool.imageDark]
|
|
.filter((asset): asset is string => Boolean(asset))
|
|
.filter((asset) => !existsSync(`public${asset}`))
|
|
.map((asset) => `${tool.id}: ${asset}`)
|
|
);
|
|
|
|
assert.deepEqual(missing, []);
|
|
});
|
|
|
|
test("every visible CLI catalog entry has English and Vietnamese descriptions", () => {
|
|
const visibleToolIds = Object.values(CLI_TOOLS)
|
|
.filter((tool) => tool.baseUrlSupport !== "none")
|
|
.map((tool) => tool.id);
|
|
const englishDescriptions = en.cliTools.toolDescriptions as Record<string, string>;
|
|
const vietnameseDescriptions = vi.cliTools.toolDescriptions as Record<string, string>;
|
|
|
|
assert.deepEqual(
|
|
visibleToolIds.filter((id) => !englishDescriptions[id]?.trim()),
|
|
[]
|
|
);
|
|
assert.deepEqual(
|
|
visibleToolIds.filter((id) => !vietnameseDescriptions[id]?.trim()),
|
|
[]
|
|
);
|
|
});
|