Maps page initial

This commit is contained in:
Kalle
2022-10-05 19:36:25 +03:00
parent 36280db0b1
commit 87bca7aa44
19 changed files with 321 additions and 3 deletions

View 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();

View File

@@ -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) {