Compare commits

...

17 Commits

Author SHA1 Message Date
ca04c4561b Bump version to 3.0.2 2023-12-03 03:30:08 +09:00
7d8fbf49a8 Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:34 +01:00
75e15b948d Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:28 +01:00
125b69fd75 Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:28 +01:00
a68d6b64dd Translated using Weblate (French)
Currently translated at 8.9% (26 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 19:29:28 +01:00
a60d4264dc fix: pnpm install doesn't refresh lock file 2023-12-03 03:16:07 +09:00
9e2c6b1afa fix: update pnpm-lock.yaml 2023-12-03 03:07:11 +09:00
14965a93e9 fix: simple-youtube-age-restriction-bypass 2023-12-03 02:49:17 +09:00
f62664b6a5 fix(adblocker): fix In-Player adblocker
- resolves #1478
2023-12-03 02:06:49 +09:00
60cb7f32f1 fix(in-app-menu/i18n): fix hide-dom-window-controls 2023-12-03 01:00:33 +09:00
008b3ad710 Translated using Weblate (Chinese (Traditional))
Currently translated at 1.0% (3 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 16:59:02 +01:00
8cae64f496 fix(menu): crash on linux
- resolves #1477
2023-12-03 00:54:36 +09:00
5cdc1bc762 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2023-12-02 16:29:40 +01:00
15c455105b Translated using Weblate (French)
Currently translated at 8.5% (25 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 16:29:40 +01:00
14407a98c9 Translated using Weblate (English)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2023-12-02 16:29:40 +01:00
0d004d5caf Added translation using Weblate (Chinese (Traditional)) 2023-12-02 16:29:40 +01:00
4b75a2405c Update changelog for v3.0.1 2023-12-02 14:32:40 +00:00
13 changed files with 619 additions and 435 deletions

View File

@ -2,7 +2,16 @@
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) #### [v3.0.1](https://github.com/th-ch/youtube-music/compare/v3.0.0...v3.0.1)
- hotfix(adblocker): fix #1475 [`#1475`](https://github.com/th-ch/youtube-music/issues/1475)
- Translated using Weblate (French) [`7f02afc`](https://github.com/th-ch/youtube-music/commit/7f02afc5a6839adfe8437d4e2cc8dee13a93b311)
- Update changelog for v3.0.0 [`d8c8bd1`](https://github.com/th-ch/youtube-music/commit/d8c8bd17ecfbdf96ebd29eb4c5748c07876ee242)
- Translated using Weblate (German) [`0660f0b`](https://github.com/th-ch/youtube-music/commit/0660f0b7ce6895ef5800f48ade1da2d7f8e0c1f7)
### [v3.0.0](https://github.com/th-ch/youtube-music/compare/v2.2.0...v3.0.0)
> 2 December 2023
- Add text to Translation section [`#1470`](https://github.com/th-ch/youtube-music/pull/1470) - 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) - fix(deps): update dependency youtubei.js to v8 [`#1473`](https://github.com/th-ch/youtube-music/pull/1473)

View File

@ -1,7 +1,7 @@
{ {
"name": "youtube-music", "name": "youtube-music",
"productName": "YouTube Music", "productName": "YouTube Music",
"version": "3.0.1", "version": "3.0.2",
"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",
@ -162,7 +162,7 @@
"node-html-parser": "6.1.11", "node-html-parser": "6.1.11",
"node-id3": "0.2.6", "node-id3": "0.2.6",
"serve": "14.2.1", "serve": "14.2.1",
"simple-youtube-age-restriction-bypass": "git+https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass.git#v2.5.8", "simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
"ts-morph": "20.0.0", "ts-morph": "20.0.0",
"vudio": "2.1.1", "vudio": "2.1.1",
"x11": "2.3.0", "x11": "2.3.0",

809
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
export interface LanguageResources { export interface LanguageResources {
[lang: string]: { [lang: string]: {
translation: Record<string, unknown> & { translation: Record<string, unknown> & {
language: { language?: {
name: string; name: string;
'local-name': string; 'local-name': string;
code: string; code: string;

View File

@ -21,7 +21,7 @@
"main": { "main": {
"console": { "console": {
"did-finish-load": { "did-finish-load": {
"dev-tools": "did finish load. dev tools opened" "dev-tools": "Finished loading. DevTools opened"
}, },
"i18n": { "i18n": {
"loaded": "i18n loaded" "loaded": "i18n loaded"

View File

@ -44,5 +44,69 @@
} }
} }
} }
},
"plugins": {
"ambient-mode": {
"menu": {
"buffer": {
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"submenu": {
"percent": "{{opacity}}%"
}
},
"size": {
"submenu": {
"percent": "{{size}}%"
}
}
}
},
"captions-selector": {
"prompt": {
"selector": {
"none": "Aucun"
}
}
},
"crossfade": {
"prompt": {
"options": {
"multi-input": {
"fade-scaling": {
"linear": "Linéaire",
"logarithmic": "Logarithmique"
}
}
}
}
},
"downloader": {
"backend": {
"dialog": {
"start-download-playlist": {
"detail": "({{playlistSize}} chansons)",
"title": "Téléchargement a commencé"
}
},
"feedback": {
"download-progress": "Télécharger: {{percent}}%",
"downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…",
"preparing-file": "Péparer des fichier…",
"saving": "Sauvegarde…"
}
},
"name": "Téléchargeur",
"templates": {
"button": "Télécharger"
}
},
"last-fm": {
"name": "Last.fm"
}
} }
} }

View File

@ -0,0 +1,145 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "插件 {{pluginName}} 無法被執行::{{contextName}}",
"executed-at-ms": "插件 {{pluginName}} ::{{contextName}} 用了 {{ms}} ms 來執行",
"initialize-failed": "初始化插件 \"{{pluginName}}\" 失敗",
"load-all": "載入所有插件",
"load-failed": "載入插件 \"{{pluginName}}\" 失敗",
"loaded": "插件 \"{{pluginName}}\" 已被載入",
"unload-failed": "解除安裝插件 \"{{pluginName}}\" 失敗",
"unloaded": "插件 \"{{pluginName}}\" 已被解除安裝"
}
}
},
"language": {
"code": "zh-TW",
"local-name": "正體字",
"name": "Traditional Chinese"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "載入完成。開發者工具已開啟"
},
"i18n": {
"loaded": "i18n 已載入"
},
"second-instance": {
"receive-command": "使用協定來接收指令: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS 檔案 \"{{cssFile}}\" 不存在,已忽略"
},
"unresponsive": {
"details": "無回應錯誤!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "清理程式的快取資料"
},
"window": {
"tried-to-render-offscreen": "視窗正嘗試在螢幕外渲染,視窗大小 = {{windowSize}},螢幕大小 = {{displaySize}},位置 = {{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "選單已隱藏,使用 'Alt' 鍵來重新顯示(或是使用空白鍵來使用程式內選單)",
"message": "隱藏選單已經啟用",
"title": "隱藏選單已啟用"
},
"need-to-restart": {
"buttons": {
"later": "稍後",
"restart-now": "立即重啟"
},
"detail": "插件 \"{{pluginName}}\" 需要程式重新啟動之後才會生效",
"message": "\"{{pluginName}}\" 需要重新啟動",
"title": "需要重新啟動"
},
"unresponsive": {
"buttons": {
"quit": "離開",
"relaunch": "重新啟動",
"wait": "等一下"
},
"detail": "造成不便我們深表歉意!請選擇動作:",
"message": "應用程式無回應",
"title": "視窗無回應"
},
"update-available": {
"buttons": {
"disable": "關閉更新",
"download": "下載",
"ok": "OK"
},
"detail": "新的版本已經推出,你可以到 {{downloadLink}} 下載",
"message": "有新版本可用",
"title": "有可用的更新"
}
},
"menu": {
"about": "關於",
"navigation": {
"label": "導覽列",
"submenu": {
"copy-current-url": "複製目前的網址",
"go-back": "回到上一頁",
"go-forward": "回到下一頁",
"quit": "退出",
"restart": "重啟程式"
}
},
"options": {
"label": "選項",
"submenu": {
"advanced-options": {
"label": "進階選項",
"submenu": {
"auto-reset-app-cache": "當程式啟動時重置應用程式快取",
"disable-hardware-acceleration": "關閉硬體加速",
"edit-config-json": "編輯 config.json",
"override-user-agent": "複寫用戶代理",
"restart-on-config-changes": "重新啟動來更改配置",
"set-proxy": {
"label": "設定代理伺服器",
"prompt": {
"label": "輸入代理伺服器位置:(留空以停用本設定)",
"placeholder": "示例: socks5://127.0.0.1:9999",
"title": "設定代理伺服器"
}
},
"toggle-dev-tools": "切換開發者工具"
}
},
"always-on-top": "永遠顯示在最上層",
"auto-update": "自動更新",
"hide-menu": {
"label": "隱藏選單"
},
"language": {
"dialog": {
"message": "語言會在下一次重啟應用時變更",
"title": "語言已變更"
},
"label": "語言",
"submenu": {
"to-help-translate": "想要協助翻譯?點擊這裡"
}
},
"resume-on-start": "繼續上次關閉應用前的音樂",
"start-at-login": "開機時啟動",
"starting-page": {
"label": "啟動頁面",
"unset": "未設置"
},
"tray": {
"submenu": {
"disabled": "已停用"
}
}
}
}
}
}
}

View File

@ -404,7 +404,7 @@ async function createMainWindow() {
removeContentSecurityPolicy(); removeContentSecurityPolicy();
win.webContents.on('dom-ready', async () => { win.webContents.on('dom-ready', async () => {
if (useInlineMenu) { if (useInlineMenu && !is.linux()) {
win.setTitleBarOverlay({ win.setTitleBarOverlay({
...defaultTitleBarOverlayOptions, ...defaultTitleBarOverlayOptions,
height: Math.floor( height: Math.floor(

View File

@ -377,7 +377,7 @@ export const mainMenuTemplate = async (
availableLanguages availableLanguages
.map( .map(
(lang): Electron.MenuItemConstructorOptions => ({ (lang): Electron.MenuItemConstructorOptions => ({
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`, label: `${languageResources[lang].translation.language?.name ?? 'Unknown'} (${languageResources[lang].translation.language?.['local-name'] ?? 'Unknown'})`,
type: 'checkbox', type: 'checkbox',
checked: (config.get('options.language') ?? 'en') === lang, checked: (config.get('options.language') ?? 'en') === lang,
click() { click() {

View File

@ -10,7 +10,7 @@
let injected = false; let injected = false;
export const isInjected = () => isInjected; export const isInjected = () => injected;
export const inject = () => { export const inject = () => {
injected = true; injected = true;

View File

@ -1,3 +1,5 @@
import { inject } from 'simple-youtube-age-restriction-bypass';
import { createPlugin } from '@/utils'; import { createPlugin } from '@/utils';
import { t } from '@/i18n'; import { t } from '@/i18n';
@ -6,6 +8,6 @@ export default createPlugin({
description: () => t('plugins.bypass-age-restrictions.description'), description: () => t('plugins.bypass-age-restrictions.description'),
restartNeeded: true, restartNeeded: true,
// See https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass#userscript // See https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass#userscript
renderer: () => import('simple-youtube-age-restriction-bypass'), renderer: () => inject(),
}); });

View File

@ -1,4 +1,3 @@
declare module 'simple-youtube-age-restriction-bypass' { declare module 'simple-youtube-age-restriction-bypass' {
const nothing: never; export const inject: () => void;
export default nothing;
} }

View File

@ -15,7 +15,7 @@ export const onMenu = async ({
if (is.linux()) { if (is.linux()) {
return [ return [
{ {
label: t('plugins.in-app-menu.hide-dom-window-controls'), label: t('plugins.in-app-menu.menu.hide-dom-window-controls'),
type: 'checkbox', type: 'checkbox',
checked: config.hideDOMWindowControls, checked: config.hideDOMWindowControls,
click(item) { click(item) {