All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 54s
- Changed file permissions from 644 to 755 for various files in the mobile-app and mobile-app_legacy_rn_expo directories, ensuring executable permissions where necessary. - Added a new SQL migration script to the backend to introduce missing columns for club billing and invoice settings in the clubs table, maintaining synchronization with the current Sequelize model.
50 lines
1.5 KiB
JavaScript
Executable File
50 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/** Setzt nur ß→ss Overrides in de-CH.json, ohne bestehende Einträge zu löschen. */
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const ROOT = path.resolve(__dirname, '..');
|
|
const LOCALES_DIR = path.join(ROOT, 'frontend', 'src', 'i18n', 'locales');
|
|
|
|
function flatten(obj, prefix = '', out = {}) {
|
|
for (const [key, value] of Object.entries(obj || {})) {
|
|
const nextKey = prefix ? `${prefix}.${key}` : key;
|
|
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
flatten(value, nextKey, out);
|
|
} else if (typeof value === 'string') {
|
|
out[nextKey] = value;
|
|
}
|
|
}
|
|
return out;
|
|
}
|
|
|
|
function setByPath(obj, dotPath, value) {
|
|
const parts = dotPath.split('.');
|
|
let cur = obj;
|
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
if (!cur[parts[i]] || typeof cur[parts[i]] !== 'object') cur[parts[i]] = {};
|
|
cur = cur[parts[i]];
|
|
}
|
|
cur[parts[parts.length - 1]] = value;
|
|
}
|
|
|
|
const de = JSON.parse(fs.readFileSync(path.join(LOCALES_DIR, 'de.json'), 'utf8'));
|
|
const deFlat = flatten(de);
|
|
const chPath = path.join(LOCALES_DIR, 'de-CH.json');
|
|
const ch = JSON.parse(fs.readFileSync(chPath, 'utf8'));
|
|
const chFlat = flatten(ch);
|
|
|
|
let n = 0;
|
|
for (const [key, deVal] of Object.entries(deFlat)) {
|
|
if (!deVal.includes('ß')) continue;
|
|
const swiss = deVal.replace(/ß/g, 'ss');
|
|
if (chFlat[key] !== swiss) {
|
|
setByPath(ch, key, swiss);
|
|
n++;
|
|
}
|
|
}
|
|
|
|
fs.writeFileSync(chPath, `${JSON.stringify(ch, null, 2)}\n`, 'utf8');
|
|
console.log(`de-CH: ${n} ß→ss patches applied`);
|