electron: Solve server translation loading on macOS

This commit is contained in:
Elian Doran 2024-10-13 14:24:46 +03:00
parent e7378306a2
commit 849a6a3aef
No known key found for this signature in database
2 changed files with 24 additions and 4 deletions

View File

@ -10,7 +10,13 @@ module.exports = {
overwrite: true,
asar: true,
icon: "./images/app-icons/icon",
extraResource: getExtraResourcesForPlatform(),
extraResource: [
// Moved to root
...getExtraResourcesForPlatform(),
// Moved to resources (TriliumNext Notes.app/Contents/Resources on macOS)
"translations/"
],
afterComplete: [(buildPath, _electronVersion, platform, _arch, callback) => {
const extraResources = getExtraResourcesForPlatform();
for (const resource of extraResources) {
@ -77,8 +83,7 @@ module.exports = {
function getExtraResourcesForPlatform() {
let resources = [
'dump-db/',
'./bin/tpl/anonymize-database.sql',
'translations/'
'./bin/tpl/anonymize-database.sql'
];
const scripts = ['trilium-portable', 'trilium-safe-mode', 'trilium-no-cert-check']
switch (process.platform) {

View File

@ -2,19 +2,34 @@ import i18next from "i18next";
import Backend from "i18next-fs-backend";
import options from "./options.js";
import sql_init from "./sql_init.js";
import { fileURLToPath } from "url";
import { dirname, join } from "path";
import utils from "./utils.js";
import env from "./env.js";
export async function initializeTranslations() {
const resourceDir = getResourceDir();
// Initialize translations
await i18next.use(Backend).init({
lng: getCurrentLanguage(),
fallbackLng: "en",
ns: "server",
debug: true,
backend: {
loadPath: "translations/{{lng}}/{{ns}}.json"
loadPath: join(resourceDir, "translations/{{lng}}/{{ns}}.json")
}
});
}
function getResourceDir() {
if (utils.isElectron() && !env.isDev()) {
return process.resourcesPath;
} else {
return join(dirname(fileURLToPath(import.meta.url)), "..", "..");
}
}
function getCurrentLanguage() {
let language;
if (sql_init.isDbInitialized()) {