|
|
|
|
@ -1,5 +1,8 @@
|
|
|
|
|
const { app, BrowserWindow, dialog, ipcMain, shell } = require("electron");
|
|
|
|
|
const { autoUpdater } = require("electron-updater");
|
|
|
|
|
const fs = require("fs");
|
|
|
|
|
const path = require("path");
|
|
|
|
|
|
|
|
|
|
autoUpdater.autoDownload = false;
|
|
|
|
|
let win, secondaryWindow;
|
|
|
|
|
|
|
|
|
|
@ -29,12 +32,30 @@ function createWindow() {
|
|
|
|
|
// win.webContents.openDevTools();
|
|
|
|
|
autoUpdater.checkForUpdates();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let loadedLanguage;
|
|
|
|
|
app.whenReady().then(() => {
|
|
|
|
|
// Logging
|
|
|
|
|
console.log("Locale:" + app.getLocale());
|
|
|
|
|
console.log("Version: " + app.getVersion());
|
|
|
|
|
|
|
|
|
|
let locale = app.getLocale();
|
|
|
|
|
|
|
|
|
|
if (fs.existsSync(path.join(__dirname, "translations", locale + ".json"))) {
|
|
|
|
|
loadedLanguage = JSON.parse(
|
|
|
|
|
fs.readFileSync(
|
|
|
|
|
path.join(__dirname, "translations", locale + ".json"),
|
|
|
|
|
"utf8"
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
loadedLanguage = JSON.parse(
|
|
|
|
|
fs.readFileSync(
|
|
|
|
|
path.join(__dirname, "translations", "en.json"),
|
|
|
|
|
"utf8"
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
createWindow();
|
|
|
|
|
app.on("activate", () => {
|
|
|
|
|
if (BrowserWindow.getAllWindows().length === 0) {
|
|
|
|
|
@ -102,10 +123,12 @@ autoUpdater.on("update-available", (_event, releaseNotes, releaseName) => {
|
|
|
|
|
if (process.platform === "darwin") {
|
|
|
|
|
const dialogOpts = {
|
|
|
|
|
type: "info",
|
|
|
|
|
buttons: ["Download", "No"],
|
|
|
|
|
buttons: [i18n("Download"), i18n("No")],
|
|
|
|
|
title: "Update Available",
|
|
|
|
|
detail: releaseName,
|
|
|
|
|
message: "A new version is available, do you want to download it?",
|
|
|
|
|
message: i18n(
|
|
|
|
|
"A new version is available, do you want to download it?"
|
|
|
|
|
),
|
|
|
|
|
};
|
|
|
|
|
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
|
|
|
|
if (returnValue.response === 0) {
|
|
|
|
|
@ -119,10 +142,10 @@ autoUpdater.on("update-available", (_event, releaseNotes, releaseName) => {
|
|
|
|
|
else {
|
|
|
|
|
const dialogOpts = {
|
|
|
|
|
type: "info",
|
|
|
|
|
buttons: ["Update", "No"],
|
|
|
|
|
buttons: [i18n("Update"), i18n("No")],
|
|
|
|
|
title: "Update Available",
|
|
|
|
|
detail: process.platform === "win32" ? releaseNotes : releaseName,
|
|
|
|
|
message: "A new version is available, do you want to update?",
|
|
|
|
|
message: i18n("A new version is available, do you want to update?"),
|
|
|
|
|
};
|
|
|
|
|
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
|
|
|
|
if (returnValue.response === 0) {
|
|
|
|
|
@ -135,9 +158,9 @@ autoUpdater.on("update-available", (_event, releaseNotes, releaseName) => {
|
|
|
|
|
autoUpdater.on("update-downloaded", (_event, releaseNotes, releaseName) => {
|
|
|
|
|
const dialogOpts = {
|
|
|
|
|
type: "info",
|
|
|
|
|
buttons: ["Restart", "Later"],
|
|
|
|
|
buttons: [i18n("Restart"), i18n("Later")],
|
|
|
|
|
title: "Update Ready",
|
|
|
|
|
message: "Install and restart now?",
|
|
|
|
|
message: i18n("Install and restart now?"),
|
|
|
|
|
};
|
|
|
|
|
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
|
|
|
|
if (returnValue.response === 0) {
|
|
|
|
|
@ -147,3 +170,12 @@ autoUpdater.on("update-downloaded", (_event, releaseNotes, releaseName) => {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Translation
|
|
|
|
|
function i18n(phrase) {
|
|
|
|
|
let translation = loadedLanguage[phrase];
|
|
|
|
|
if (translation === undefined) {
|
|
|
|
|
translation = phrase;
|
|
|
|
|
}
|
|
|
|
|
return translation;
|
|
|
|
|
}
|
|
|
|
|
|