From dd97dd4ccb196f100f67588e4f5c8227d7104035 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Mon, 24 Jan 2022 01:34:09 -0800 Subject: [PATCH 1/2] implemented i18n on sidebar, added language setting in settings --- package.json | 7 ++++--- src/i18n/en_GB.jsonc | 3 +++ src/i18n/en_US.jsonc | 5 ++++- src/i18n/ja_JP.jsonc | 2 +- src/i18n/tr_TR.jsonc | 2 +- src/i18n/zh_CN.jsonc | 2 +- src/i18n/zh_TW.jsonc | 2 +- src/main/base/win.ts | 19 +++++++++++++++++++ src/renderer/index.js | 11 ++++++++--- src/renderer/views/main.ejs | 22 +++++++++++----------- src/renderer/views/pages/settings.ejs | 16 ++++++++++++++++ 11 files changed, 69 insertions(+), 22 deletions(-) create mode 100644 src/i18n/en_GB.jsonc 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 38f06287..3fd4d113 100644 --- a/src/i18n/ja_JP.jsonc +++ b/src/i18n/ja_JP.jsonc @@ -170,5 +170,5 @@ // Web Remote "remote.web.title": "Cider リモート", - "remote.web.description": "QR コードを使用して、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/main.ejs b/src/renderer/views/main.ejs index 972027a6..48a20527 100644 --- a/src/renderer/views/main.ejs +++ b/src/renderer/views/main.ejs @@ -204,32 +204,32 @@
-