Automatic locale setting
This commit is contained in:
parent
a7586fd0db
commit
9dde8548a2
1 changed files with 16 additions and 9 deletions
|
@ -1,7 +1,9 @@
|
||||||
import * as ElectronStore from "electron-store";
|
import * as ElectronStore from "electron-store";
|
||||||
import * as electron from "electron";
|
import {app, ipcMain} from "electron";
|
||||||
import { app } from "electron";
|
|
||||||
import fetch from "electron-fetch";
|
import fetch from "electron-fetch";
|
||||||
|
import {existsSync} from "fs";
|
||||||
|
import {join} from "path";
|
||||||
|
import {utils} from "./utils"
|
||||||
|
|
||||||
export class Store {
|
export class Store {
|
||||||
static cfg: ElectronStore;
|
static cfg: ElectronStore;
|
||||||
|
@ -13,7 +15,7 @@ export class Store {
|
||||||
},
|
},
|
||||||
general: {
|
general: {
|
||||||
close_button_hide: false,
|
close_button_hide: false,
|
||||||
language: "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future
|
language: "en_US",
|
||||||
playbackNotifications: true,
|
playbackNotifications: true,
|
||||||
resumeOnStartupBehavior: "local",
|
resumeOnStartupBehavior: "local",
|
||||||
privateEnabled: false,
|
privateEnabled: false,
|
||||||
|
@ -230,6 +232,7 @@ export class Store {
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this.defaults.general.language = this.checkLocale(app.getLocale().replace('-', '_')) ?? "en_US"
|
||||||
Store.cfg = new ElectronStore({
|
Store.cfg = new ElectronStore({
|
||||||
name: "cider-config",
|
name: "cider-config",
|
||||||
defaults: this.defaults,
|
defaults: this.defaults,
|
||||||
|
@ -266,8 +269,8 @@ export class Store {
|
||||||
}
|
}
|
||||||
let postBody = {
|
let postBody = {
|
||||||
id: Store.cfg.get("connectUser.id"),
|
id: Store.cfg.get("connectUser.id"),
|
||||||
app: electron.app.getName(),
|
app: app.getName(),
|
||||||
version: electron.app.isPackaged ? electron.app.getVersion() : "dev",
|
version: app.isPackaged ? app.getVersion() : "dev",
|
||||||
syncData: syncData,
|
syncData: syncData,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -305,20 +308,24 @@ export class Store {
|
||||||
* IPC Handler
|
* IPC Handler
|
||||||
*/
|
*/
|
||||||
private ipcHandler(): void {
|
private ipcHandler(): void {
|
||||||
electron.ipcMain.handle("getStoreValue", (_event, key, defaultValue) => {
|
ipcMain.handle("getStoreValue", (_event, key, defaultValue) => {
|
||||||
return defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key);
|
return defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key);
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.handle("setStoreValue", (_event, key, value) => {
|
ipcMain.handle("setStoreValue", (_event, key, value) => {
|
||||||
Store.cfg.set(key, value);
|
Store.cfg.set(key, value);
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on("getStore", (event) => {
|
ipcMain.on("getStore", (event) => {
|
||||||
event.returnValue = Store.cfg.store;
|
event.returnValue = Store.cfg.store;
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on("setStore", (_event, store) => {
|
ipcMain.on("setStore", (_event, store) => {
|
||||||
Store.cfg.store = store;
|
Store.cfg.store = store;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private checkLocale(language: string) {
|
||||||
|
return (existsSync(join(utils.getPath("i18nPath"), `${language}.json`))) ? language : "en_US";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue