feat(forge): remove unused locales on macOS

This commit is contained in:
Elian Doran 2025-06-15 21:06:01 +03:00
parent 7427507aca
commit 3435f20baa
No known key found for this signature in database

View File

@ -157,42 +157,47 @@ module.exports = {
const extension = (isMac ? ".lproj" : ".pak"); const extension = (isMac ? ".lproj" : ".pak");
for (const outputPath of packageResult.outputPaths) { for (const outputPath of packageResult.outputPaths) {
const localesDir = isMac const localeDirs = isMac
? path.join(outputPath, "TriliumNext Notes.app/Contents/Resources") ? [
: path.join(outputPath, 'locales'); path.join(outputPath, "TriliumNext Notes.app/Contents/Resources"),
path.join(outputPath, "TriliumNext Notes.app/Contents/Frameworks/Electron Framework.framework/Resources")
]
: [ path.join(outputPath, 'locales') ];
if (!fs.existsSync(localesDir)) { for (const localeDir of localeDirs) {
console.log(`No locales directory found in '${localesDir}'.`); if (!fs.existsSync(localeDir)) {
process.exit(2); console.log(`No locales directory found in '${localeDir}'.`);
} process.exit(2);
const files = fs.readdirSync(localesDir);
for (const file of files) {
if (!file.endsWith(extension)) {
continue;
} }
let localeName = path.basename(file, extension); const files = fs.readdirSync(localeDir);
if (localeName === "en-US" && process.platform === "win32") {
// If the locale is "en-US" on Windows, we treat it as "en".
// This is because the Windows version of Electron uses "en-US.pak" instead of "en.pak".
localeName = "en";
}
if (localesToKeep.includes(localeName)) { for (const file of files) {
keptLocales.add(localeName); if (!file.endsWith(extension)) {
continue; continue;
} }
const filePath = path.join(localesDir, file); let localeName = path.basename(file, extension);
if (isMac) { if (localeName === "en-US" && process.platform === "win32") {
fs.rm(filePath, { recursive: true }); // If the locale is "en-US" on Windows, we treat it as "en".
} else { // This is because the Windows version of Electron uses "en-US.pak" instead of "en.pak".
fs.unlinkSync(filePath); localeName = "en";
} }
removedLocales.push(file); if (localesToKeep.includes(localeName)) {
keptLocales.add(localeName);
continue;
}
const filePath = path.join(localeDir, file);
if (isMac) {
fs.rm(filePath, { recursive: true });
} else {
fs.unlinkSync(filePath);
}
removedLocales.push(file);
}
} }
} }