From bdb09bb912342c22bde77d222d19a41bf8f50980 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 14:53:26 +0200 Subject: [PATCH 01/12] Remove unwanted getLang handlers --- src/ipc.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/ipc.ts b/src/ipc.ts index 1248891..c3a9e01 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -14,9 +14,6 @@ export function registerIpc() { ipcMain.on("setLang", (event, lang: string) => { setLang(lang); }); - ipcMain.on("getLang", (event, object: string) => { - getLang(object); - }); ipcMain.on("open-external-link", (event, href: string) => { shell.openExternal(href); }); @@ -60,9 +57,6 @@ export function registerIpc() { ipcMain.on("channel", async (event) => { event.returnValue = await getConfig("channel"); }); - ipcMain.handle("getLang", (event, toGet: string) => { - return getLang(toGet); - }); ipcMain.on("clientmod", async (event, arg) => { event.returnValue = await getConfig("mods"); }); From ef73af66c4c3d34eab6ae8386dc2d771874aac1e Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 14:54:34 +0200 Subject: [PATCH 02/12] Move the getLang handler to main ipc module instead of storing it in settings --- src/ipc.ts | 3 +++ src/settings/main.ts | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ipc.ts b/src/ipc.ts index c3a9e01..a8b7606 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -14,6 +14,9 @@ export function registerIpc() { ipcMain.on("setLang", (event, lang: string) => { setLang(lang); }); + ipcMain.handle("getLang", (event, toGet: string) => { + return getLang(toGet); + }); ipcMain.on("open-external-link", (event, href: string) => { shell.openExternal(href); }); diff --git a/src/settings/main.ts b/src/settings/main.ts index 4167f62..008ada6 100644 --- a/src/settings/main.ts +++ b/src/settings/main.ts @@ -31,9 +31,6 @@ export function createSettingsWindow() { ipcMain.handle("getSetting", (event, toGet: string) => { return getConfig(toGet); }); - ipcMain.handle("getLang", (event, toGet: string) => { - return getLang(toGet); - }); settingsWindow.webContents.setWindowOpenHandler(({url}) => { shell.openExternal(url); return {action: "deny"}; From e86b1a89247c45e23200abcd632f04505dae90dc Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 14:55:47 +0200 Subject: [PATCH 03/12] Don't remove the getLang handler --- src/settings/main.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/settings/main.ts b/src/settings/main.ts index 008ada6..e25b865 100644 --- a/src/settings/main.ts +++ b/src/settings/main.ts @@ -38,7 +38,6 @@ export function createSettingsWindow() { settingsWindow.loadURL(`file://${__dirname}/settings.html`); settingsWindow.on("close", (event: Event) => { ipcMain.removeHandler("getSetting"); - ipcMain.removeHandler("getLang"); ipcMain.removeAllListeners("saveSettings"); instance = 0; }); From 9ab08b16d8457e0a20ae0afd66e9e65d788dca5a Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 16:07:33 +0200 Subject: [PATCH 04/12] Update dependencies --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9541221..b636089 100644 --- a/package.json +++ b/package.json @@ -23,20 +23,20 @@ }, "homepage": "https://github.com/armcord/armcord#readme", "devDependencies": { - "@types/node": "^17.0.33", + "@types/node": "^17.0.42", "@types/ws": "^8.5.3", "copyfiles": "^2.4.1", "electron": "^19.0.4", "electron-builder": "^23.0.3", "husky": "^8.0.1", - "prettier": "^2.5.1", - "typescript": "^4.6.3" + "prettier": "^2.7.0", + "typescript": "^4.7.3" }, "dependencies": { "electron-context-menu": "github:ArmCord/electron-context-menu", "os-locale": "^6.0.2", "v8-compile-cache": "^2.3.0", - "ws": "^8.6.0" + "ws": "^8.8.0" }, "build": { "appId": "com.smartfridge.armcord", From c6e2244ce862ecdb6974fdf4ef6174c4dcb3d330 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 16:30:18 +0200 Subject: [PATCH 05/12] Move attribute logic to main --- src/preload/titlebar.ts | 2 -- src/window.ts | 6 ++++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/preload/titlebar.ts b/src/preload/titlebar.ts index 3c58fc1..28a94f9 100644 --- a/src/preload/titlebar.ts +++ b/src/preload/titlebar.ts @@ -38,10 +38,8 @@ export function injectTitlebar() { maximize!.addEventListener("click", () => { if (ipcRenderer.sendSync("win-isMaximized") == true) { ipcRenderer.send("win-unmaximize"); - document.body.removeAttribute("isMaximized"); } else { ipcRenderer.send("win-maximize"); - document.body.setAttribute("isMaximized", ""); } }); diff --git a/src/window.ts b/src/window.ts index a8b622e..be75b59 100644 --- a/src/window.ts +++ b/src/window.ts @@ -81,6 +81,12 @@ async function doAfterDefiningTheWindow() { app.quit(); } }); + mainWindow.on('maximize',() =>{ + mainWindow.webContents.executeJavaScript(`document.body.setAttribute("isMaximized", "");`) + }) + mainWindow.on('unmaximize',() =>{ + mainWindow.webContents.executeJavaScript(`document.body.removeAttribute("isMaximized");`) + }) console.log(contentPath); if ((await getConfig("inviteWebsocket")) == true) { startServer(); From 8d85591e1c6cae8f69c8aa78d5fedc4dddc57441 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 16:49:12 +0200 Subject: [PATCH 06/12] Change default tray icon for macOS to avoid issues --- assets/16.png | Bin 1134 -> 0 bytes assets/macos.png | Bin 4460 -> 1134 bytes src/tray.ts | 7 ++++++- 3 files changed, 6 insertions(+), 1 deletion(-) delete mode 100644 assets/16.png diff --git a/assets/16.png b/assets/16.png deleted file mode 100644 index f43ff68fd6370e39be7d8a943c4a09c2e57241c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>SW8zQByM2p6H)IU({5zu02I+RG_!UJcMmG@3@NvBi`O+U%dcw6sy~rf zw6eJCPI1@W+@`ZRji-w`Zx?mmD(bqOTDd17r#7SJP;uAo;_kcAIZN_dE~ZuO%Wu70 z&~_!G_AoF)cMJE`0v+8^666O;DY(G2RdTlb4|}mn_uQUm#mQv9^5(YsXghf}_J&O- zu3TE5BqFHd(SBjKAuF50;)Am01!h?rGh}7X6tum2_wS6|a>?{_C#9w`N%JtT`5nsA zYj|mI&zs^%mF-_|-zs6|PX2ncp2hv~T~7|niI;9Jv3@DFVj9pPj7i?^E=+0MH7P(2 zXMsm#F#`j)FbFd;%$g$s6l5>)^mS!_#>OS0$jKD(5R~p;c)B=-NL)^yFl}Ng1CyIX z!i34;0U=2a9fk%Pt5>XAnQdU;z}ncdY}&TIb@TQ$E)-7m2v-5)Q zD{y`6n^BP*Tzm0Xkxq!^40jEsP( zL)XwC#K^$P*x1UzNZY``%D}*8Qu-1U4Y~O#nQ4`{HTa&t4+>}oPgg&ebxsLQ0MavN Ab^rhX diff --git a/assets/macos.png b/assets/macos.png index 953ecfa160dfcaed2b442d82526c9cc4aab2cbb8..f43ff68fd6370e39be7d8a943c4a09c2e57241c5 100644 GIT binary patch literal 1134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>SW8zQByM2p6H)IU({5zu02I+RG_!UJcMmG@3@NvBi`O+U%dcw6sy~rf zw6eJCPI1@W+@`ZRji-w`Zx?mmD(bqOTDd17r#7SJP;uAo;_kcAIZN_dE~ZuO%Wu70 z&~_!G_AoF)cMJE`0v+8^666O;DY(G2RdTlb4|}mn_uQUm#mQv9^5(YsXghf}_J&O- zu3TE5BqFHd(SBjKAuF50;)Am01!h?rGh}7X6tum2_wS6|a>?{_C#9w`N%JtT`5nsA zYj|mI&zs^%mF-_|-zs6|PX2ncp2hv~T~7|niI;9Jv3@DFVj9pPj7i?^E=+0MH7P(2 zXMsm#F#`j)FbFd;%$g$s6l5>)^mS!_#>OS0$jKD(5R~p;c)B=-NL)^yFl}Ng1CyIX z!i34;0U=2a9fk%Pt5>XAnQdU;z}ncdY}&TIb@TQ$E)-7m2v-5)Q zD{y`6n^BP*Tzm0Xkxq!^40jEsP( zL)XwC#K^$P*x1UzNZY``%D}*8Qu-1U4Y~O#nQ4`{HTa&t4+>}oPgg&ebxsLQ0MavN Ab^rhX delta 4352 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 diff --git a/src/tray.ts b/src/tray.ts index 6129949..d690914 100644 --- a/src/tray.ts +++ b/src/tray.ts @@ -3,8 +3,13 @@ import {mainWindow} from "./window"; import {getConfig} from "./utils"; import * as path from "path"; import {createSettingsWindow} from "./settings/main"; +import {platform} from "process"; let tray: any = null; +let defaultIcon = "ac_plug_colored"; app.whenReady().then(async () => { + if (platform == "darwin") { + defaultIcon = "macos" + } if ((await getConfig("windowStyle")) == "discord") { tray = new Tray(path.join(__dirname, "../", "/assets/dsc-tray.png")); const contextMenu = Menu.buildFromTemplate([ @@ -25,7 +30,7 @@ app.whenReady().then(async () => { tray.setToolTip("Discord"); tray.setContextMenu(contextMenu); } else { - var trayIcon = (await getConfig("trayIcon")) ?? "ac_plug_colored"; + var trayIcon = (await getConfig("trayIcon")) ?? defaultIcon; tray = new Tray(path.join(__dirname, "../", `/assets/${trayIcon}.png`)); const contextMenu = Menu.buildFromTemplate([ { From c979328aeec2b1e31a27d15719799cec01612089 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:02:37 +0200 Subject: [PATCH 07/12] Remove glasstron and tabs completely --- src/content/css/tabs.css | 46 ------------------------ src/content/setup.html | 9 ++--- src/ipc.ts | 10 ++---- src/main.ts | 30 +++------------- src/preload/preload.ts | 4 --- src/preload/tabs.ts | 26 -------------- src/settings/settings.html | 2 -- src/utils.ts | 2 -- src/window.ts | 74 +------------------------------------- 9 files changed, 11 insertions(+), 192 deletions(-) delete mode 100644 src/content/css/tabs.css delete mode 100644 src/preload/tabs.ts diff --git a/src/content/css/tabs.css b/src/content/css/tabs.css deleted file mode 100644 index d8f10cb..0000000 --- a/src/content/css/tabs.css +++ /dev/null @@ -1,46 +0,0 @@ -.tabs { - display: block; - top: 0; - left: 0; - right: 0; - flex-shrink: 0; - overflow: hidden; - zoom: 1; - box-sizing: border-box; - width: 100%; - clear: both; - height: 30px; - line-height: 30px; - background-color: #202225; - -webkit-app-region: drag; - width: 100%; - user-select: none; - -webkit-user-select: none; - position: fixed; - z-index: 99999; -} - -.tabs #tabs-controls-container { - float: left; - width: 150px; - height: 100%; - line-height: 30px; - background-color: #202225; - -webkit-app-region: no-drag; -} -.tabs-buttons { - color: white; - background-color: inherit; - float: left; - border: none; - outline: none; - cursor: pointer; - transition: 0.3s; - font-size: 20px; -} -.tabs-buttons:hover { - background-color: #4e515a; -} -.withFrame-haYltI { - height: 30px !important; -} diff --git a/src/content/setup.html b/src/content/setup.html index 04b743c..cdf790a 100644 --- a/src/content/setup.html +++ b/src/content/setup.html @@ -123,8 +123,7 @@ automaticPatches: false, mods: "cumcord", inviteWebsocket: true, - performanceMode: "none", - blurType: "acrylic" + performanceMode: "none" }); setTimeout(() => window.armcordinternal.restart(), 5000); }); @@ -155,8 +154,7 @@ automaticPatches: false, performanceMode: "none", mods: options.mod, - inviteWebsocket: true, - blurType: "acrylic" + inviteWebsocket: true }); setTimeout(() => window.armcordinternal.restart(), 500); }); @@ -170,8 +168,7 @@ autoLaunch: true, mods: "none", performanceMode: "none", - inviteWebsocket: true, - blurType: "acrylic" + inviteWebsocket: true }); setTimeout(() => window.armcordinternal.restart(), 500); } diff --git a/src/ipc.ts b/src/ipc.ts index a8b7606..5ad4e44 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -1,16 +1,13 @@ //ipc stuff import {app, ipcMain, shell, desktopCapturer} from "electron"; -import {createTabsGuest, mainWindow} from "./window"; +import {mainWindow} from "./window"; import {setConfigBulk, getVersion, getConfig, setLang, getLang} from "./utils"; -import {customTitlebar, tabs} from "./main"; +import {customTitlebar} from "./main"; import {createSettingsWindow} from "./settings/main"; export function registerIpc() { ipcMain.on("get-app-path", (event, arg) => { event.reply("app-path", app.getAppPath()); }); - ipcMain.on("openTab", (event, number: number) => { - createTabsGuest(number); - }); ipcMain.on("setLang", (event, lang: string) => { setLang(lang); }); @@ -66,9 +63,6 @@ export function registerIpc() { ipcMain.on("titlebar", (event, arg) => { event.returnValue = customTitlebar; }); - ipcMain.on("tabs", (event, arg) => { - event.returnValue = tabs; - }); ipcMain.on("shouldPatch", async (event, arg) => { event.returnValue = await getConfig("automaticPatches"); }); diff --git a/src/main.ts b/src/main.ts index 8d1abb9..096e8b7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,16 +1,15 @@ // Modules to control application life and create native browser window -import {app, BrowserWindow, session, dialog} from "electron"; +import {app, BrowserWindow, session} from "electron"; import "v8-compile-cache"; -import {getConfig, setup, checkIfConfigExists, injectElectronFlags} from "./utils"; +import {getConfig, checkIfConfigExists, injectElectronFlags} from "./utils"; import "./extensions/mods"; import "./extensions/plugin"; import "./tray"; -import {createCustomWindow, createNativeWindow, createTabsHost} from "./window"; +import {createCustomWindow, createNativeWindow} from "./window"; import "./shortcuts"; export var settings: any; export var customTitlebar: boolean; -export var tabs: boolean; if (process.platform == "linux") { @@ -38,17 +37,6 @@ app.whenReady().then(async () => { case "discord": createNativeWindow(); break; - case "glasstron": - dialog.showErrorBox( - "Glasstron is unsupported.", - "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" - ); - app.quit(); - break; - case "tabs": - createTabsHost(); - tabs = true; - break; default: createCustomWindow(); customTitlebar = true; @@ -73,16 +61,8 @@ app.whenReady().then(async () => { case "native": createNativeWindow(); break; - case "glasstron": - dialog.showErrorBox( - "Glasstron is unsupported.", - "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" - ); - app.quit(); - break; - case "tabs": - createTabsHost(); - tabs = true; + case "discord": + createNativeWindow(); break; default: createCustomWindow(); diff --git a/src/preload/preload.ts b/src/preload/preload.ts index 8b6ac48..1b58435 100644 --- a/src/preload/preload.ts +++ b/src/preload/preload.ts @@ -6,7 +6,6 @@ import * as path from "path"; import {injectTitlebar} from "./titlebar"; import {sleep, addStyle, injectJS, addScript} from "../utils"; import {ipcRenderer} from "electron"; -import {injectTabs} from "./tabs"; var version = ipcRenderer.sendSync("get-app-version", "app-version"); async function updateLang() { if (window.location.href.indexOf("setup.html") > -1) { @@ -35,9 +34,6 @@ if (window.location.href.indexOf("splash.html") > -1) { if (ipcRenderer.sendSync("titlebar")) { injectTitlebar(); } - if (ipcRenderer.sendSync("tabs")) { - injectTabs(); - } sleep(5000).then(async () => { const cssPath = path.join(__dirname, "../", "/content/css/discord.css"); addStyle(fs.readFileSync(cssPath, "utf8")); diff --git a/src/preload/tabs.ts b/src/preload/tabs.ts deleted file mode 100644 index 960dc16..0000000 --- a/src/preload/tabs.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {addStyle} from "../utils"; -import * as fs from "fs"; -import * as path from "path"; -export function injectTabs() { - document.addEventListener("DOMContentLoaded", function (event) { - var elem = document.createElement("div"); - elem.innerHTML = ``; - elem.classList.add("withFrame-haYltI"); - if (document.getElementById("app-mount") == null) { - document.body.appendChild(elem); - } else { - document.getElementById("app-mount")!.prepend(elem); - } - const cssPath = path.join(__dirname, "../", "/content/css/tabs.css"); - addStyle(fs.readFileSync(cssPath, "utf8")); - }); -} diff --git a/src/settings/settings.html b/src/settings/settings.html index e352741..4b0b806 100644 --- a/src/settings/settings.html +++ b/src/settings/settings.html @@ -104,7 +104,6 @@ } loadSettings(); document.getElementById("settings-save").addEventListener("click", function () { - //function saveSettings(windowStyle: string, channelSetting: string, armcordCSPSetting: boolean, minimizeToTray: boolean, automaticPatches: boolean,modsSetting: string, blurType: string) settings.save({ windowStyle: document.getElementById("theme").value, channel: document.getElementById("channel").value, @@ -112,7 +111,6 @@ minimizeToTray: document.getElementById("tray").checked, automaticPatches: document.getElementById("patches").checked, mods: document.getElementById("mod").value, - blurType: "acrylic", inviteWebsocket: document.getElementById("websocket").checked, performanceMode: document.getElementById("prfmMode").value, doneSetup: true diff --git a/src/utils.ts b/src/utils.ts index 04fe9e2..c3b5bf2 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -42,7 +42,6 @@ export function setup() { minimizeToTray: true, automaticPatches: false, mods: "cumcord", - blurType: "acrylic", performanceMode: "none", inviteWebsocket: true, doneSetup: false @@ -148,7 +147,6 @@ export interface Settings { automaticPatches: boolean; mods: string; performanceMode: string; - blurType: string; inviteWebsocket: boolean; doneSetup: boolean; } diff --git a/src/window.ts b/src/window.ts index be75b59..d523314 100644 --- a/src/window.ts +++ b/src/window.ts @@ -2,7 +2,7 @@ // I had to add most of the window creation code here to split both into seperete functions // WHY? Because I can't use the same code for both due to annoying bug with value `frame` not responding to variables // I'm sorry for this mess but I'm not sure how to fix it. -import {BrowserWindow, shell, app, ipcMain, dialog, clipboard} from "electron"; +import {BrowserWindow, shell, app, dialog} from "electron"; import path from "path"; import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang} from "./utils"; import {registerIpc} from "./ipc"; @@ -12,7 +12,6 @@ import os from "os"; export var icon: string; export let mainWindow: BrowserWindow; export let inviteWindow: BrowserWindow; -let guestWindows: BrowserWindow[] = []; var osType = os.type() contextMenu({ @@ -154,77 +153,6 @@ export function createNativeWindow() { doAfterDefiningTheWindow(); } -export function createTabsHost() { - dialog.showErrorBox( - "READ THIS BEFORE USING THE APP", - "ArmCord Tabs are highly experimental and should be only used for strict testing purposes. Please don't ask for support, however you can still report bugs!" - ); - guestWindows[1] = mainWindow; - mainWindow = new BrowserWindow({ - width: 300, - height: 350, - title: "ArmCord", - darkTheme: true, - icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), - frame: true, - autoHideMenuBar: true, - webPreferences: { - preload: path.join(__dirname, "preload/preload.js") - } - }); - doAfterDefiningTheWindow(); -} -export function createTabsGuest(number: number) { - console.log(guestWindows); - if (guestWindows[number] !== undefined || null) { - try { - console.log("Showing Guest Window " + number); - mainWindow.hide(); - guestWindows[number].show(); - mainWindow = guestWindows[number]; - } catch (e) { - console.error(e); - } - } else { - console.log("Creating Guest Window " + number); - mainWindow.hide(); - - guestWindows[number] = new BrowserWindow({ - width: 800, - height: 600, - title: "ArmCord Guest Window " + number, - darkTheme: true, - icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), - frame: true, - autoHideMenuBar: true, - webPreferences: { - preload: path.join(__dirname, "preload/preload.js") - } - }); - - mainWindow = guestWindows[number]; - ipcMain.on("tab" + number, (event) => { - event.returnValue = true; //return true so we know the tab exists - }); - - guestWindows[number].webContents.userAgent = - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"; //fake useragent for screenshare to work - - guestWindows[number].webContents.setWindowOpenHandler(({url}) => { - shell.openExternal(url); - return {action: "deny"}; - }); - - guestWindows[number].webContents.session.webRequest.onBeforeRequest( - (details: {url: string}, callback: (arg0: {cancel?: boolean}) => any) => { - if (/api\/v\d\/science$/g.test(details.url)) return callback({cancel: true}); - return callback({}); - } - ); - - guestWindows[number].loadURL("https://discord.com/app"); - } -} export function createInviteWindow() { inviteWindow = new BrowserWindow({ width: 800, From a29cb2a6a54b089fea35e41af7e3f7c9e87b0b70 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:54:50 +0200 Subject: [PATCH 08/12] Add translation loading to splash --- src/content/splash.html | 89 +++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/src/content/splash.html b/src/content/splash.html index 83cd134..c75ca52 100644 --- a/src/content/splash.html +++ b/src/content/splash.html @@ -17,52 +17,53 @@ From 7f9b93dc79a60d9cd79623d972070dd2a1cd1bbb Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:55:14 +0200 Subject: [PATCH 09/12] Remove unused translation string --- assets/lang/en-US.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/assets/lang/en-US.json b/assets/lang/en-US.json index 979bc73..86d1b3c 100644 --- a/assets/lang/en-US.json +++ b/assets/lang/en-US.json @@ -14,8 +14,6 @@ "setup_question4": "Select a client mod you want to install:", "setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our Discord.", "settings-theme": "ArmCord theme:", - "settings-theme-glasstron": "Glasstron (experimental)", - "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", "settings-tray": "Minimize to tray", From f677b0e4fb03c48c1f6eb6dc9c56ec12753244ef Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 14 Jun 2022 17:55:22 +0200 Subject: [PATCH 10/12] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: ArmCord/ArmCord Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/ --- assets/lang/fr-FR.json | 2 -- assets/lang/id-ID.json | 1 - assets/lang/it-IT.json | 1 - assets/lang/nb-NO.json | 1 - assets/lang/nl-NL.json | 1 - assets/lang/pl-PL.json | 1 - 6 files changed, 7 deletions(-) diff --git a/assets/lang/fr-FR.json b/assets/lang/fr-FR.json index 7745641..774fd98 100644 --- a/assets/lang/fr-FR.json +++ b/assets/lang/fr-FR.json @@ -19,9 +19,7 @@ "settings-save": "Save settings", "settings-updater": "Check for updates", "settings-theme": "Thème ArmCord :", - "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", - "settings-theme-glasstron": "Glasstron (experimental)", "settings-theme-native": "Native", "settings-patches": "Automatic Patches", "settings-invitewebsocket": "Lien discord.gg", diff --git a/assets/lang/id-ID.json b/assets/lang/id-ID.json index 03f2b4f..51bef0a 100644 --- a/assets/lang/id-ID.json +++ b/assets/lang/id-ID.json @@ -14,7 +14,6 @@ "setup_question4": "Select a client mod you want to install:", "setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our documentation.", "settings-theme": "ArmCord Theme:", - "settings-theme-glasstron": "Glasstron (experimental)", "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", diff --git a/assets/lang/it-IT.json b/assets/lang/it-IT.json index a301d5c..25d10d4 100644 --- a/assets/lang/it-IT.json +++ b/assets/lang/it-IT.json @@ -19,7 +19,6 @@ "settings-updater": "Controlla gli aggiornamenti", "settings-mod": "Client mod:", "settings-theme": "ArmCord Theme:", - "settings-theme-glasstron": "Glasstron (experimental)", "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", diff --git a/assets/lang/nb-NO.json b/assets/lang/nb-NO.json index 050af76..29ed697 100644 --- a/assets/lang/nb-NO.json +++ b/assets/lang/nb-NO.json @@ -19,7 +19,6 @@ "settings-save": "Save settings", "settings-updater": "Check for updates", "settings-theme": "ArmCord Theme:", - "settings-theme-glasstron": "Glasstron (experimental)", "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", diff --git a/assets/lang/nl-NL.json b/assets/lang/nl-NL.json index bb37188..c981b8d 100644 --- a/assets/lang/nl-NL.json +++ b/assets/lang/nl-NL.json @@ -20,7 +20,6 @@ "settings-updater": "Check voor updates", "settings-patches": "Automatische Patches", "settings-theme": "ArmCord Thema:", - "settings-theme-glasstron": "Glasstron (experimenteel)", "settings-theme-tabs": "Tabs (experimenteel)", "settings-theme-default": "Standaard", "settings-theme-native": "Native", diff --git a/assets/lang/pl-PL.json b/assets/lang/pl-PL.json index e4892b6..4870b4f 100644 --- a/assets/lang/pl-PL.json +++ b/assets/lang/pl-PL.json @@ -19,7 +19,6 @@ "settings-save": "Zapisz ustawienia", "settings-mod": "Modyfikacja klienta:", "settings-theme": "Motyw ArmCord:", - "settings-theme-glasstron": "Glasstron (eksperymentalne)", "settings-theme-tabs": "Karty (eksperymentalne)", "settings-theme-default": "Domyślny", "settings-theme-native": "Natywny", From 4cf0187ef8d913a256b9c484da380b6bbfb9ad71 Mon Sep 17 00:00:00 2001 From: smartfridge Date: Tue, 14 Jun 2022 19:12:34 +0200 Subject: [PATCH 11/12] Added translation using Weblate (Spanish (Latin America)) --- assets/lang/es-419.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 assets/lang/es-419.json diff --git a/assets/lang/es-419.json b/assets/lang/es-419.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/assets/lang/es-419.json @@ -0,0 +1 @@ +{} From 72c35cb2f3cfe521dd5177a2f9dcf2df59abb5cc Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 14 Jun 2022 17:12:38 +0000 Subject: [PATCH 12/12] Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (0 of 0 strings) Translation: ArmCord/ArmCord Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/es_419/ --- assets/lang/es-419.json | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/assets/lang/es-419.json b/assets/lang/es-419.json index 0967ef4..3230182 100644 --- a/assets/lang/es-419.json +++ b/assets/lang/es-419.json @@ -1 +1,30 @@ -{} +{ + "loading_screen_start": "Starting ArmCord…", + "loading_screen_offline": "You appear to be offline. Please connect to the Internet and try again.", + "loading_screen_update": "A new version of ArmCord is available. Please update to the latest version.", + "setup_question1": "Select what kind of setup you want to perform:", + "yes": "Yes", + "setup_question2": "Choose your Discord channel/instance:", + "setup_question3": "Should ArmCord handle client mods installation?", + "setup_question1_answer1": "Express setup", + "setup_question1_answer2": "Full setup", + "setup_offline": "You appear to be offline. Please connect to the Internet and restart the ArmCord setup.", + "no": "No", + "next": "Next", + "setup_question4": "Select a client mod you want to install:", + "setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our Discord.", + "settings-theme": "ArmCord theme:", + "settings-theme-default": "Default", + "settings-theme-native": "Native", + "settings-tray": "Minimize to tray", + "settings-patches": "Automatic Patches", + "settings-channel": "Discord channel:", + "settings-invitewebsocket": "Invite Websocket", + "settings-mod": "Client mod:", + "settings-prfmMode": "Performance mode:", + "settings-prfmMode-performance": "Performance", + "settings-prfmMode-battery": "Battery", + "settings-none": "None", + "settings-save": "Save settings", + "settings-updater": "Check for updates" +}