2025-05-08 09:23:07 -07:00
|
|
|
import fs from 'fs';
|
2025-05-08 18:44:20 +02:00
|
|
|
import { languages } from './languages';
|
2025-05-08 09:23:07 -07:00
|
|
|
|
|
|
|
function localizeManifest(manifestTemplateData: any, language: string) {
|
|
|
|
const localizedManifestFile = `static/${language}.manifest.webmanifest`;
|
|
|
|
const localizedStringsFile = `src/locales/${language}.json`;
|
|
|
|
const localizedStrings = JSON.parse(fs.readFileSync(localizedStringsFile, 'utf8'));
|
|
|
|
|
|
|
|
manifestTemplateData.description = localizedStrings.metadata.description;
|
|
|
|
manifestTemplateData.lang = language;
|
|
|
|
manifestTemplateData.start_url = `/${language}/app`;
|
|
|
|
manifestTemplateData.scope = `/${language}/app`;
|
|
|
|
manifestTemplateData.id = `https://gpx.studio/${language}/app`;
|
|
|
|
|
|
|
|
fs.writeFileSync(localizedManifestFile, JSON.stringify(manifestTemplateData, null, 2));
|
|
|
|
}
|
|
|
|
|
|
|
|
const manifestTemplateFile = 'static/en.manifest.webmanifest';
|
|
|
|
const manifestTemplateData = JSON.parse(fs.readFileSync(manifestTemplateFile, 'utf8'));
|
|
|
|
for (const language of Object.keys(languages)) {
|
|
|
|
if (language === 'en') continue;
|
|
|
|
localizeManifest(manifestTemplateData, language);
|
|
|
|
}
|