mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-13 03:11:46 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1f7e28b6fb | |||
| c41b2ce861 | |||
| 7f02afc5a6 | |||
| 496b3ffc1b | |||
| e9a395f67a | |||
| 0660f0b7ce | |||
| 3ac09b9dc1 | |||
| fe4904a4af | |||
| d8c8bd17ec |
34
changelog.md
34
changelog.md
@ -2,8 +2,42 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||||
|
|
||||||
|
#### [v3.0.0](https://github.com/th-ch/youtube-music/compare/v2.2.0...v3.0.0)
|
||||||
|
|
||||||
|
- Add text to Translation section [`#1470`](https://github.com/th-ch/youtube-music/pull/1470)
|
||||||
|
- fix(deps): update dependency youtubei.js to v8 [`#1473`](https://github.com/th-ch/youtube-music/pull/1473)
|
||||||
|
- chore(deps): update dependency electron to v27.1.3 [`#1471`](https://github.com/th-ch/youtube-music/pull/1471)
|
||||||
|
- fix(deps): update dependency @xhayper/discord-rpc to v1.1.1 [`#1472`](https://github.com/th-ch/youtube-music/pull/1472)
|
||||||
|
- feat: add support i18n [`#1468`](https://github.com/th-ch/youtube-music/pull/1468)
|
||||||
|
- chore(deps): update dependency electron to v27.1.2 [`#1441`](https://github.com/th-ch/youtube-music/pull/1441)
|
||||||
|
- Nicer Readme [`#1439`](https://github.com/th-ch/youtube-music/pull/1439)
|
||||||
|
- Windows Zoom, ScaleFactor [`#1402`](https://github.com/th-ch/youtube-music/pull/1402)
|
||||||
|
- chore(deps): bump axios from 1.5.1 to 1.6.1 [`#1400`](https://github.com/th-ch/youtube-music/pull/1400)
|
||||||
|
- Updated mac icon to better reflect the Mac styling [`#1395`](https://github.com/th-ch/youtube-music/pull/1395)
|
||||||
|
- feat: rename plugins to clarify context [`#1392`](https://github.com/th-ch/youtube-music/pull/1392)
|
||||||
|
- feat: refactor plugin utils [`#1391`](https://github.com/th-ch/youtube-music/pull/1391)
|
||||||
|
- feat: plugin auto-importer with `vite-plugin-resolve` [`#1385`](https://github.com/th-ch/youtube-music/pull/1385)
|
||||||
|
- feat: migrate from `rollup` to `electron-vite` [`#1364`](https://github.com/th-ch/youtube-music/pull/1364)
|
||||||
|
- feat: enable `context-isolation` [`#1361`](https://github.com/th-ch/youtube-music/pull/1361)
|
||||||
|
- fix: add workaround for `podcast` type video [`#1362`](https://github.com/th-ch/youtube-music/pull/1362)
|
||||||
|
- fix: fix broken menu-layout [`#1360`](https://github.com/th-ch/youtube-music/pull/1360)
|
||||||
|
- Add Homebrew cask install option for MacOS. [`#1357`](https://github.com/th-ch/youtube-music/pull/1357)
|
||||||
|
- feat: changed Zoom shortcuts to standard [`#1458`](https://github.com/th-ch/youtube-music/issues/1458)
|
||||||
|
- fix(in-app-menu): fix #1436 [`#1436`](https://github.com/th-ch/youtube-music/issues/1436)
|
||||||
|
- fix(discord): update application client-id [`#1431`](https://github.com/th-ch/youtube-music/issues/1431)
|
||||||
|
- chore(deps): update dependency electron to v27.0.4 [`#1324`](https://github.com/th-ch/youtube-music/issues/1324)
|
||||||
|
- fix(in-app-menu): panel should close with the window when it is closed [`#1389`](https://github.com/th-ch/youtube-music/issues/1389)
|
||||||
|
- fix: change titleBarOverlay height based on zoomFactor [`#1375`](https://github.com/th-ch/youtube-music/issues/1375)
|
||||||
|
- fix: fixed an issue if "Always on top" is enabled, the dialog is displayed below the window [`#1379`](https://github.com/th-ch/youtube-music/issues/1379)
|
||||||
|
- fix: fix winget version (fix #1363) [`#1363`](https://github.com/th-ch/youtube-music/issues/1363)
|
||||||
|
- feat: run prettier [`a3104fd`](https://github.com/th-ch/youtube-music/commit/a3104fda4b0d58b076d0c737111636a66e468acc)
|
||||||
|
- Translated using Weblate (Korean) [`b4b7ad8`](https://github.com/th-ch/youtube-music/commit/b4b7ad824b8c489ae483eba139b46e5b200231fc)
|
||||||
|
- Translated using Weblate (English) [`d2eabaa`](https://github.com/th-ch/youtube-music/commit/d2eabaa4bbccd89eae529eae52cec035e8e2620c)
|
||||||
|
|
||||||
#### [v2.2.0](https://github.com/th-ch/youtube-music/compare/v2.1.3...v2.2.0)
|
#### [v2.2.0](https://github.com/th-ch/youtube-music/compare/v2.1.3...v2.2.0)
|
||||||
|
|
||||||
|
> 27 October 2023
|
||||||
|
|
||||||
- feat(ambient-mode): add config for `ambient-mode` plugin [`#1349`](https://github.com/th-ch/youtube-music/pull/1349)
|
- feat(ambient-mode): add config for `ambient-mode` plugin [`#1349`](https://github.com/th-ch/youtube-music/pull/1349)
|
||||||
- bump deps [`4248d20`](https://github.com/th-ch/youtube-music/commit/4248d20e8ef926ce7b1d07eb83743755a341d9f6)
|
- bump deps [`4248d20`](https://github.com/th-ch/youtube-music/commit/4248d20e8ef926ce7b1d07eb83743755a341d9f6)
|
||||||
- Update changelog for v2.1.3 [`dc73561`](https://github.com/th-ch/youtube-music/commit/dc73561c8a8acfc8ba91aff2dc78e4267869f2fd)
|
- Update changelog for v2.1.3 [`dc73561`](https://github.com/th-ch/youtube-music/commit/dc73561c8a8acfc8ba91aff2dc78e4267869f2fd)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "youtube-music",
|
"name": "youtube-music",
|
||||||
"productName": "YouTube Music",
|
"productName": "YouTube Music",
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"description": "YouTube Music Desktop App - including custom plugins",
|
"description": "YouTube Music Desktop App - including custom plugins",
|
||||||
"main": "./dist/main/index.js",
|
"main": "./dist/main/index.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
@ -59,7 +59,7 @@
|
|||||||
},
|
},
|
||||||
"unresponsive": {
|
"unresponsive": {
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"quit": "Beenden",
|
"quit": "Verlassen",
|
||||||
"relaunch": "Neustarten",
|
"relaunch": "Neustarten",
|
||||||
"wait": "Warten"
|
"wait": "Warten"
|
||||||
},
|
},
|
||||||
@ -296,7 +296,7 @@
|
|||||||
"fade-in-duration": "Einblendezeit (Millisekunden)",
|
"fade-in-duration": "Einblendezeit (Millisekunden)",
|
||||||
"fade-out-duration": "Ausblendezeit (Millisekunden)",
|
"fade-out-duration": "Ausblendezeit (Millisekunden)",
|
||||||
"fade-scaling": {
|
"fade-scaling": {
|
||||||
"label": "Fade-Skalierung",
|
"label": "Übergangsskalierung",
|
||||||
"linear": "Linear",
|
"linear": "Linear",
|
||||||
"logarithmic": "Logarithmisch"
|
"logarithmic": "Logarithmisch"
|
||||||
},
|
},
|
||||||
@ -421,7 +421,7 @@
|
|||||||
"menu": {
|
"menu": {
|
||||||
"romanized-lyrics": "Romanisierte Songtexte"
|
"romanized-lyrics": "Romanisierte Songtexte"
|
||||||
},
|
},
|
||||||
"name": "Liedtext von Genius",
|
"name": "Liedtexte von Genius",
|
||||||
"renderer": {
|
"renderer": {
|
||||||
"fetched-lyrics": "Liedtexte für Genius abgerufen"
|
"fetched-lyrics": "Liedtexte für Genius abgerufen"
|
||||||
}
|
}
|
||||||
@ -500,7 +500,7 @@
|
|||||||
"title": "Globale Lautstärketastenbelegungen"
|
"title": "Globale Lautstärketastenbelegungen"
|
||||||
},
|
},
|
||||||
"volume-steps": {
|
"volume-steps": {
|
||||||
"label": "Wähle Schritte zur Erhöhung/Senkung der Lautstärke",
|
"label": "Wähle Schritte zur Lautstärkehebung/-senkung",
|
||||||
"title": "Lautstärkestufen"
|
"title": "Lautstärkestufen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -519,6 +519,7 @@
|
|||||||
"name": "Videoqualitätsänderer"
|
"name": "Videoqualitätsänderer"
|
||||||
},
|
},
|
||||||
"shortcuts": {
|
"shortcuts": {
|
||||||
|
"description": "Ermöglicht das Festlegen globaler Hotkeys für die Wiedergabe (Abspielen/Pause/Nächstes/Vorheriges) + Deaktivieren des Medien-OSD durch Überschreiben der Medientasten + Aktivieren von Strg/CMD + F zum Suchen + Aktivieren der Linux mpris-Unterstützung für Medientasten + Angepasste Tastenkürzel für fortgeschrittene Benutzer",
|
||||||
"menu": {
|
"menu": {
|
||||||
"override-media-keys": "Medienschlüssel überschreiben",
|
"override-media-keys": "Medienschlüssel überschreiben",
|
||||||
"set-keybinds": "Globale Liedsteuerung setzen"
|
"set-keybinds": "Globale Liedsteuerung setzen"
|
||||||
@ -571,9 +572,9 @@
|
|||||||
"mode": {
|
"mode": {
|
||||||
"label": "Modus",
|
"label": "Modus",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"custom": "Angepasster Wechsler",
|
"custom": "Angepasster Schalter",
|
||||||
"disabled": "Deaktiviert",
|
"disabled": "Deaktiviert",
|
||||||
"native": "Eingebauter Umschalter"
|
"native": "Eingebauter Schalter"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
48
src/i18n/resources/fr.json
Normal file
48
src/i18n/resources/fr.json
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"language": {
|
||||||
|
"code": "fr",
|
||||||
|
"local-name": "Français",
|
||||||
|
"name": "French"
|
||||||
|
},
|
||||||
|
"main": {
|
||||||
|
"console": {
|
||||||
|
"theme": {
|
||||||
|
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dialog": {
|
||||||
|
"update-available": {
|
||||||
|
"buttons": {
|
||||||
|
"download": "Sauvegarder"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"menu": {
|
||||||
|
"options": {
|
||||||
|
"label": "Paramètres",
|
||||||
|
"submenu": {
|
||||||
|
"advanced-options": {
|
||||||
|
"submenu": {
|
||||||
|
"edit-config-json": "Modifier config.json",
|
||||||
|
"set-proxy": {
|
||||||
|
"prompt": {
|
||||||
|
"placeholder": "Exemple: socks5://127.0.0.1:9999"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"label": "Langue"
|
||||||
|
},
|
||||||
|
"visual-tweaks": {
|
||||||
|
"submenu": {
|
||||||
|
"like-buttons": {
|
||||||
|
"hide": "Cacher"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -556,11 +556,14 @@ app.on('activate', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const getDefaultLocale = (locale: string) =>
|
const getDefaultLocale = (locale: string) =>
|
||||||
Object.keys(languageResources).includes(locale) ? locale : 'en';
|
Object.keys(languageResources).includes(locale) ? locale : null;
|
||||||
|
|
||||||
app.whenReady().then(async () => {
|
app.whenReady().then(async () => {
|
||||||
if (!config.get('options.language')) {
|
if (!config.get('options.language')) {
|
||||||
config.set('options.language', getDefaultLocale(app.getLocale()));
|
const locale = getDefaultLocale(app.getLocale());
|
||||||
|
if (locale) {
|
||||||
|
config.set('options.language', locale);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await loadI18n().then(async () => {
|
await loadI18n().then(async () => {
|
||||||
@ -683,7 +686,7 @@ app.whenReady().then(async () => {
|
|||||||
type: 'info',
|
type: 'info',
|
||||||
buttons: [
|
buttons: [
|
||||||
t('main.dialog.update-available.buttons.download'),
|
t('main.dialog.update-available.buttons.download'),
|
||||||
t('main.dialog.update-available.buttons.later'),
|
t('main.dialog.update-available.buttons.ok'),
|
||||||
t('main.dialog.update-available.buttons.disable'),
|
t('main.dialog.update-available.buttons.disable'),
|
||||||
],
|
],
|
||||||
title: t('main.dialog.update-available.title'),
|
title: t('main.dialog.update-available.title'),
|
||||||
|
|||||||
@ -379,7 +379,7 @@ export const mainMenuTemplate = async (
|
|||||||
(lang): Electron.MenuItemConstructorOptions => ({
|
(lang): Electron.MenuItemConstructorOptions => ({
|
||||||
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`,
|
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`,
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
checked: config.get('options.language') === lang,
|
checked: (config.get('options.language') ?? 'en') === lang,
|
||||||
click() {
|
click() {
|
||||||
config.setMenuOption('options.language', lang);
|
config.setMenuOption('options.language', lang);
|
||||||
refreshMenu(win);
|
refreshMenu(win);
|
||||||
|
|||||||
@ -113,18 +113,25 @@ export default createPlugin({
|
|||||||
if (config.blocker === blockers.WithBlocklists) {
|
if (config.blocker === blockers.WithBlocklists) {
|
||||||
// Preload adblocker to inject scripts/styles
|
// Preload adblocker to inject scripts/styles
|
||||||
await injectCliqzPreload();
|
await injectCliqzPreload();
|
||||||
} else if (config.blocker === blockers.InPlayer) {
|
|
||||||
inject();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onConfigChange(newConfig) {
|
async onConfigChange(newConfig) {
|
||||||
if (newConfig.blocker === blockers.WithBlocklists) {
|
if (newConfig.blocker === blockers.WithBlocklists) {
|
||||||
await injectCliqzPreload();
|
await injectCliqzPreload();
|
||||||
} else if (newConfig.blocker === blockers.InPlayer) {
|
|
||||||
if (!isInjected()) {
|
|
||||||
inject();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
renderer: {
|
||||||
|
async start({ getConfig }) {
|
||||||
|
const config = await getConfig();
|
||||||
|
if (config.blocker === blockers.InPlayer && !isInjected()) {
|
||||||
|
inject();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onConfigChange(newConfig) {
|
||||||
|
if (newConfig.blocker === blockers.InPlayer && !isInjected()) {
|
||||||
|
inject();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user