diff --git a/package.json b/package.json
index ca72e47e..25e68733 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
"electron-window-state": "^5.0.3",
"express": "^4.17.2",
"get-port": "^5.1.1",
+ "jsonc": "^2.0.0",
"lastfmapi": "^0.1.1",
"mdns-js": "github:bitfocus/node-mdns-js",
"mpris-service": "^2.1.2",
@@ -135,12 +136,12 @@
"backgroundColor": "transparent",
"setBuildNumber": true
},
- "nsis": {
+ "nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
- "license": "LICENSE",
- "deleteAppDataOnUninstall": true
+ "license": "LICENSE",
+ "deleteAppDataOnUninstall": true
},
"win": {
"target": [
diff --git a/src/i18n/en_GB.jsonc b/src/i18n/en_GB.jsonc
new file mode 100644
index 00000000..0788726a
--- /dev/null
+++ b/src/i18n/en_GB.jsonc
@@ -0,0 +1,3 @@
+{
+ "home.friendsListeningTo": "Bruv's Listening To"
+}
\ No newline at end of file
diff --git a/src/i18n/en_US.jsonc b/src/i18n/en_US.jsonc
index 5fcf9dcf..26290d9c 100644
--- a/src/i18n/en_US.jsonc
+++ b/src/i18n/en_US.jsonc
@@ -25,6 +25,9 @@
"term.queue": "Queue",
"term.search": "Search",
"term.library": "Library",
+ "term.listenNow": "Listen Now",
+ "term.browse": "Browse",
+ "term.radio": "Radio",
"term.recentlyAdded": "Recently Added",
"term.songs": "Songs",
"term.albums": "Albums",
@@ -171,5 +174,5 @@
// Web Remote
"remote.web.title": "Cider Remote",
- "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
+ "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance"
}
\ No newline at end of file
diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.jsonc
index bf8c14bb..60ac26a5 100644
--- a/src/i18n/ja_JP.jsonc
+++ b/src/i18n/ja_JP.jsonc
@@ -171,4 +171,5 @@
// Web Remote
"remote.web.title": "Cider リモート",
"remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする",
+
}
diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.jsonc
index 10d6bf3e..206e3c6e 100644
--- a/src/i18n/tr_TR.jsonc
+++ b/src/i18n/tr_TR.jsonc
@@ -91,5 +91,5 @@
"settings.header.connectivity": "Diğer Servisler",
"settings.header.connectivity.description": "Cider'i diğer servislere bağlayarak deneyiminizi zenginleştirin.",
"settings.header.experimental": "Deneysel",
- "settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)",
+ "settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)"
}
\ No newline at end of file
diff --git a/src/i18n/zh_CN.jsonc b/src/i18n/zh_CN.jsonc
index 6cf2cb74..44afaaf8 100644
--- a/src/i18n/zh_CN.jsonc
+++ b/src/i18n/zh_CN.jsonc
@@ -172,5 +172,5 @@
// Web Remote
"remote.web.title": "Cider 远程控制",
- "remote.web.description": "扫描以下的二维码以控制 Cider",
+ "remote.web.description": "扫描以下的二维码以控制 Cider"
}
diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc
index 09bafe28..f8ae2145 100644
--- a/src/i18n/zh_TW.jsonc
+++ b/src/i18n/zh_TW.jsonc
@@ -172,5 +172,5 @@
// Web Remote
"remote.web.title": "Cider 遠控",
- "remote.web.description": "掃描以下的行動條碼以控制 Cider",
+ "remote.web.description": "掃描以下的行動條碼以控制 Cider"
}
\ No newline at end of file
diff --git a/src/main/base/win.ts b/src/main/base/win.ts
index fb959568..70402c14 100644
--- a/src/main/base/win.ts
+++ b/src/main/base/win.ts
@@ -12,6 +12,7 @@ import * as os from "os";
import * as mm from 'music-metadata';
import fetch from 'electron-fetch'
import {wsapi} from "./wsapi";
+import * as jsonc from "jsonc";
export class Win {
win: any | undefined = null;
@@ -287,6 +288,24 @@ export class Win {
event.returnValue = process.platform;
});
+ console.warn(path.join(__dirname, "../../src/i18n/en_US.jsonc"))
+
+ electron.ipcMain.on("get-i18n", (event, key) => {
+ let i18nBase = fs.readFileSync(path.join(__dirname, "../../src/i18n/en_US.jsonc"), "utf8");
+ i18nBase = jsonc.parse(i18nBase)
+ try {
+ let i18n = fs.readFileSync(path.join(__dirname, `../../src/i18n/${key}.jsonc`), "utf8");
+ i18n = jsonc.parse(i18n)
+ Object.assign(i18nBase, i18n)
+ }catch(e) {
+ console.error(e);
+ event.returnValue = e;
+ }
+
+ event.returnValue = i18nBase;
+
+ });
+
electron.ipcMain.on("get-gpu-mode", (event) => {
event.returnValue = process.platform;
});
diff --git a/src/renderer/index.js b/src/renderer/index.js
index fa069330..14df5ea7 100644
--- a/src/renderer/index.js
+++ b/src/renderer/index.js
@@ -134,9 +134,7 @@ const app = new Vue({
platform: "",
mk: {},
quickPlayQuery: "",
- lz: {
-
- },
+ lz: ipcRenderer.sendSync("get-i18n", "en_US"),
search: {
term: "",
hints: [],
@@ -339,6 +337,12 @@ const app = new Vue({
},
},
methods: {
+ setLz(lang) {
+ if(lang == "") {
+ lang = this.cfg.general.language
+ }
+ this.lz = ipcRenderer.sendSync("get-i18n", lang)
+ },
getLz(message) {
if(this.lz[message]) {
return this.lz[message]
@@ -499,6 +503,7 @@ const app = new Vue({
},
async init() {
let self = this
+ this.setLz(this.cfg.general.language)
clearTimeout(this.hangtimer)
this.mk = MusicKit.getInstance()
let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined")
diff --git a/src/renderer/views/components/mediaitem-artwork.ejs b/src/renderer/views/components/mediaitem-artwork.ejs
index 7e169943..79ffa4f9 100644
--- a/src/renderer/views/components/mediaitem-artwork.ejs
+++ b/src/renderer/views/components/mediaitem-artwork.ejs
@@ -3,6 +3,7 @@
v-observe-visibility="{callback: visibilityChanged}">