Ajout de la commande /voyage et grosse MAJK de la commande /auberge

This commit is contained in:
2026-01-07 15:04:49 +01:00
parent c8119601d8
commit f525b6c07a
1329 changed files with 24138 additions and 4397 deletions

View File

@@ -0,0 +1,78 @@
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const FR_DIR = path.join(__dirname, 'scripts');
const OPPORTUNITIES_FILE = path.join(__dirname, 'translation-opportunities.json');
// Charger les opportunités de traduction
const data = JSON.parse(fs.readFileSync(OPPORTUNITIES_FILE, 'utf8'));
const { reliableTranslations, opportunities } = data;
// Fonction pour échapper les caractères spéciaux pour regex
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
// Statistiques
let stats = {
filesProcessed: 0,
filesModified: 0,
replacementsMade: 0,
errors: 0
};
console.log('Application automatique des traductions...\n');
console.log('='.repeat(60));
// Traiter chaque fichier avec des opportunités
opportunities.forEach(({ file, translations }) => {
const filePath = path.join(FR_DIR, file);
stats.filesProcessed++;
try {
let content = fs.readFileSync(filePath, 'utf8');
let modified = false;
let replacementsInFile = 0;
// Appliquer chaque traduction
translations.forEach(({ en, fr }) => {
// Vérifier que la chaîne anglaise existe toujours dans le fichier
if (content.includes(en)) {
// Remplacement simple (pas de regex pour éviter les problèmes avec les caractères spéciaux)
const newContent = content.split(en).join(fr);
if (newContent !== content) {
const count = (content.split(en).length - 1);
content = newContent;
modified = true;
replacementsInFile += count;
stats.replacementsMade += count;
}
}
});
// Sauvegarder si modifié
if (modified) {
fs.writeFileSync(filePath, content, 'utf8');
stats.filesModified++;
console.log(`${file} : ${replacementsInFile} remplacement(s)`);
}
} catch (error) {
stats.errors++;
console.error(`${file} : ${error.message}`);
}
});
console.log('\n' + '='.repeat(60));
console.log('Application terminée !');
console.log('='.repeat(60));
console.log(`Fichiers traités : ${stats.filesProcessed}`);
console.log(`Fichiers modifiés : ${stats.filesModified}`);
console.log(`Remplacements effectués : ${stats.replacementsMade}`);
console.log(`Erreurs : ${stats.errors}`);
console.log('='.repeat(60));