mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-08 20:26:08 -05:00
Maps page initial
This commit is contained in:
69
scripts/create-misc-json.ts
Normal file
69
scripts/create-misc-json.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { LANG_JSONS_TO_CREATE, loadLangDicts } from "./utils";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import invariant from "tiny-invariant";
|
||||
|
||||
// ⚠️ keep same order as https://github.com/IPLSplatoon/IPLMapGen2/blob/splat3/data.js
|
||||
const stages = [
|
||||
"Scorch Gorge",
|
||||
"Eeltail Alley",
|
||||
"Hagglefish Market",
|
||||
"Undertow Spillway",
|
||||
"Mincemeat Metalworks",
|
||||
"Hammerhead Bridge",
|
||||
"Museum d'Alfonsino",
|
||||
"Mahi-Mahi Resort",
|
||||
"Inkblot Art Academy",
|
||||
"Sturgeon Shipyard",
|
||||
"MakoMart",
|
||||
"Wahoo World",
|
||||
] as const;
|
||||
|
||||
async function main() {
|
||||
const langDicts = await loadLangDicts();
|
||||
|
||||
const englishLangDict = langDicts.find(
|
||||
([langCode]) => langCode === "EUen"
|
||||
)?.[1];
|
||||
invariant(englishLangDict);
|
||||
|
||||
const codeNames = stages.map((stage) => {
|
||||
const codeName = Object.entries(
|
||||
englishLangDict["CommonMsg/VS/VSStageName"]
|
||||
).find(([_key, value]) => value === stage)?.[0];
|
||||
|
||||
invariant(codeName, `Could not find code name for stage ${stage}`);
|
||||
|
||||
return codeName;
|
||||
});
|
||||
|
||||
for (const langCode of LANG_JSONS_TO_CREATE) {
|
||||
const langDict = langDicts.find(([code]) => code === langCode)?.[1];
|
||||
invariant(langDict, `Missing translations for ${langCode}`);
|
||||
|
||||
const translationsMap = Object.fromEntries(
|
||||
stages.map((_, i) => {
|
||||
const codeName = codeNames[
|
||||
i
|
||||
] as keyof typeof langDict["CommonMsg/VS/VSStageName"];
|
||||
invariant(codeName);
|
||||
|
||||
return [`STAGE_${i}`, langDict["CommonMsg/VS/VSStageName"][codeName]];
|
||||
})
|
||||
);
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(
|
||||
__dirname,
|
||||
"..",
|
||||
"public",
|
||||
"locales",
|
||||
langCode.slice(2),
|
||||
`game-misc.json`
|
||||
),
|
||||
JSON.stringify(translationsMap, null, 2) + "\n"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void main();
|
||||
@@ -1,5 +1,6 @@
|
||||
import path from "node:path";
|
||||
import fs from "node:fs";
|
||||
import type euEn from "./dicts/langs/EUen.json";
|
||||
|
||||
const LANG_DICTS_PATH = path.join(__dirname, "dicts", "langs");
|
||||
|
||||
@@ -17,9 +18,7 @@ export const LANG_JSONS_TO_CREATE = [
|
||||
];
|
||||
|
||||
export async function loadLangDicts() {
|
||||
const result: Array<
|
||||
[langCode: string, translations: Record<string, Record<string, string>>]
|
||||
> = [];
|
||||
const result: Array<[langCode: string, translations: typeof euEn]> = [];
|
||||
|
||||
const files = await fs.promises.readdir(LANG_DICTS_PATH);
|
||||
for (const file of files) {
|
||||
|
||||
Reference in New Issue
Block a user