diff --git a/apps/scandic-web/.gitignore b/apps/scandic-web/.gitignore index e13a42fac..f1233229d 100644 --- a/apps/scandic-web/.gitignore +++ b/apps/scandic-web/.gitignore @@ -62,4 +62,5 @@ variables.css # i18n generated files i18n/tooling/extracted.json i18n/tooling/translations/ +i18n/tooling/translations-all/ .swc diff --git a/apps/scandic-web/i18n/tooling/diff.mjs b/apps/scandic-web/i18n/tooling/diff.mjs index d2c12999f..59cc3dd65 100644 --- a/apps/scandic-web/i18n/tooling/diff.mjs +++ b/apps/scandic-web/i18n/tooling/diff.mjs @@ -1,4 +1,5 @@ -import fromLokalise from "./translations/en.json" with { type: "json" } +import filteredLokalise from "./translations/en.json" with { type: "json" } +import allLokalise from "./translations-all/en.json" with { type: "json" } import fromCodebase from "./extracted.json" with { type: "json" } function diffArray(json1, json2) { @@ -24,20 +25,24 @@ function resolveLabels(ids, arr) { }) } -const labelsToRemove = diffArray(fromLokalise, fromCodebase) -const labelsToAdd = diffArray(fromCodebase, fromLokalise) +const labelsHidden = diffArray(allLokalise, filteredLokalise) +const labelsToRemove = diffArray(filteredLokalise, fromCodebase) +const labelsToAdd = diffArray(fromCodebase, filteredLokalise).filter( + (key) => !labelsHidden.includes(key) +) if (labelsToRemove.length === 0 && labelsToAdd.length === 0) { console.log(`Nothing has changed!`) } else { console.log(`Labels to REMOVE from Lokalise: ${labelsToRemove.length}`) console.log(`Labels to ADD to Lokalise: ${labelsToAdd.length}`) + console.log(`Labels HIDDEN in Lokalise: ${labelsHidden.length}`) console.log("") } if (labelsToRemove.length) { console.log(`${labelsToRemove.length} labels to remove from Lokalise:`) - console.table(resolveLabels(labelsToRemove, fromLokalise)) + console.table(resolveLabels(labelsToRemove, filteredLokalise)) console.log("") } @@ -48,10 +53,18 @@ if (labelsToAdd.length) { console.log("") } +if (labelsHidden.length) { + console.log("") + console.log(`${labelsHidden.length} labels are hidden in Lokalise`) + console.table(resolveLabels(labelsHidden, allLokalise)) + console.log("") +} + if (labelsToRemove.length === 0 && labelsToAdd.length === 0) { console.log(`Nothing has changed!`) } else { console.log(`Labels to REMOVE from Lokalise: ${labelsToRemove.length}`) console.log(`Labels to ADD to Lokalise: ${labelsToAdd.length}`) + console.log(`Labels HIDDEN in Lokalise: ${labelsHidden.length}`) console.log("") } diff --git a/apps/scandic-web/i18n/tooling/download.ts b/apps/scandic-web/i18n/tooling/download.ts index 16209224f..a082a7ae0 100644 --- a/apps/scandic-web/i18n/tooling/download.ts +++ b/apps/scandic-web/i18n/tooling/download.ts @@ -4,11 +4,13 @@ import { config } from "dotenv" config({ path: `${process.cwd()}/.env.local` }) -const extractPath = path.resolve(__dirname, "translations") +const filteredExtractPath = path.resolve(__dirname, "translations") +const allExtractPath = path.resolve(__dirname, "translations-all") async function main() { const { download } = await import("./lokalise") - await download(extractPath) + await download(filteredExtractPath, false) + await download(allExtractPath, true) } main() diff --git a/apps/scandic-web/i18n/tooling/lokalise.ts b/apps/scandic-web/i18n/tooling/lokalise.ts index 3b6cc5ba3..6fae35a15 100644 --- a/apps/scandic-web/i18n/tooling/lokalise.ts +++ b/apps/scandic-web/i18n/tooling/lokalise.ts @@ -36,7 +36,6 @@ const perf = new PerformanceObserver((items) => { } performance.clearMeasures() }) -perf.observe({ type: "measure" }) async function waitUntilUploadDone(processId: string) { return new Promise((resolve, reject) => { @@ -87,6 +86,8 @@ async function waitUntilUploadDone(processId: string) { } export async function upload(filepath: string) { + perf.observe({ type: "measure" }) + try { log(`Uploading ${filepath}...`) @@ -143,9 +144,15 @@ export async function upload(filepath: string) { await performanceMetrics } -export async function download(extractPath: string) { +export async function download(extractPath: string, all: boolean = false) { + perf.observe({ type: "measure" }) + try { - log("Downloading translations...") + log( + all + ? "Downloading all translations..." + : "Downloading filtered translations..." + ) performance.mark("downloadStart") @@ -158,7 +165,7 @@ export async function download(extractPath: string) { icu_numeric: true, bundle_structure: "%LANG_ISO%.%FORMAT%", directory_prefix: "", - filter_data: ["translated", "nonhidden"], + filter_data: all ? [] : ["translated", "nonhidden"], export_empty_as: "skip", }) performance.mark("lokaliseDownloadInitEnd")