mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-10 10:11:46 +00:00
Compare commits
209 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 203c80767d | |||
| f564039438 | |||
| d6566fb870 | |||
| 55ab17e789 | |||
| e0eeb720cd | |||
| 53ac7ff257 | |||
| a4e2f10afa | |||
| c9c9d766e6 | |||
| b82d161180 | |||
| 7cadacd8cf | |||
| fc1a7cda62 | |||
| da3bc5aeb7 | |||
| ee98344064 | |||
| da10eabf99 | |||
| ce3c63c386 | |||
| f8c3cff5a9 | |||
| 08f369f8bc | |||
| 1517230ede | |||
| 45aeadef86 | |||
| 5ec7c346ca | |||
| 4b68de1606 | |||
| 7710bcdacc | |||
| 4c19bcc983 | |||
| 2f50b1423a | |||
| 15768c9691 | |||
| 442eb75b8d | |||
| 8facd27125 | |||
| a302cb6ebf | |||
| 32422c7ba9 | |||
| ca131cb156 | |||
| 5f8262ede1 | |||
| 88db9d3693 | |||
| 0fa6f344f9 | |||
| d1642b3dfb | |||
| 7599fce5f5 | |||
| 9bd0dc9a7b | |||
| dad7cafebc | |||
| 4febb28201 | |||
| ced943bad3 | |||
| 202b8717a2 | |||
| eba7026b89 | |||
| 6b2adca1f4 | |||
| 0c9d3cc057 | |||
| 45ec11aaed | |||
| 4d47fa3fac | |||
| 6322d5bb09 | |||
| 2e8a579049 | |||
| 9db7e99d7f | |||
| ef73989995 | |||
| 61024084e9 | |||
| 1c71b2020f | |||
| 3b2b545388 | |||
| fafc7f94fd | |||
| 5fa88b5ce9 | |||
| a8fe4167db | |||
| 0e6b0ddc26 | |||
| af88db3865 | |||
| 0a1bef556c | |||
| 7030181dc1 | |||
| 98cb2f61ab | |||
| a601d0b3d2 | |||
| 8d18923065 | |||
| 4b6a7e0bd7 | |||
| 44f87853d6 | |||
| 4ff47bee03 | |||
| 7a2c28df21 | |||
| f7241d1e4a | |||
| 2b5daf3a75 | |||
| d7184cf75d | |||
| 1313d18d44 | |||
| 605e9481d9 | |||
| cf4c89f825 | |||
| f4f1d4d373 | |||
| 6557b40924 | |||
| e01a29c5d1 | |||
| d9a7e16d63 | |||
| d170199d85 | |||
| e650aae491 | |||
| 49058dbeab | |||
| 31d2d91566 | |||
| abf2a52b46 | |||
| d0ca10e1a1 | |||
| fe99a04174 | |||
| 916900ae6a | |||
| 826c9ba48e | |||
| 7783cc5f30 | |||
| 035d7f19ea | |||
| 294cf15d58 | |||
| 11fa0dcbc6 | |||
| 85b53db439 | |||
| 200df100f4 | |||
| ba202a8572 | |||
| daf05239a1 | |||
| b73b5735ec | |||
| 292248dd35 | |||
| 2e240541c8 | |||
| ab62ae3682 | |||
| 5c3f5d05d3 | |||
| c81af537b6 | |||
| 7295c73371 | |||
| 5a65e08a94 | |||
| 45e5bc7df5 | |||
| a81cb9515c | |||
| 88e5cc2728 | |||
| 1685648328 | |||
| 9334adacf6 | |||
| efbe557dce | |||
| 52b2625486 | |||
| aa0424db08 | |||
| 157619aa4f | |||
| ce637968b2 | |||
| b2a3ed7428 | |||
| ca856e4d88 | |||
| 2ef2536766 | |||
| 1b22633388 | |||
| db306ad4e0 | |||
| 34a44cb9c6 | |||
| 8c499a6e20 | |||
| 3b816a6fd9 | |||
| 35aba8e25a | |||
| 0eb6723f27 | |||
| 2250ec9372 | |||
| ef02b53284 | |||
| 57df7cf3f9 | |||
| f0cd540726 | |||
| 7e919395eb | |||
| facc7252c2 | |||
| 09b8943f69 | |||
| aa84ffc7e1 | |||
| 10162c948b | |||
| e8c1cbdd94 | |||
| 5459f623ec | |||
| 2a2cba3539 | |||
| 1ce84607e6 | |||
| 075c54d39f | |||
| aabb826cb8 | |||
| 3791b1ae1c | |||
| d4b87d098b | |||
| 57e9c13d13 | |||
| e48e570e69 | |||
| b7d4d5b022 | |||
| dc8b0173e9 | |||
| 840729126e | |||
| ed90b97a92 | |||
| bbe4f07651 | |||
| 66df83a86d | |||
| dfedd8f091 | |||
| 58ec6eebfb | |||
| 3ba4130bc6 | |||
| 7dbbf38e78 | |||
| 51e04162a7 | |||
| d3325e2490 | |||
| d2708ee32f | |||
| 781a09c717 | |||
| 11605293dd | |||
| 3f0b946190 | |||
| 74972f053a | |||
| d85190ace1 | |||
| 5755b4ac7f | |||
| 3c24f2edcd | |||
| 6828520853 | |||
| 2ba7dddb95 | |||
| 57a8922d04 | |||
| 640098860a | |||
| 53384d9f3b | |||
| 89d8d98a35 | |||
| 7b78ba6761 | |||
| 3926a9a0c0 | |||
| 0708cd5a38 | |||
| e20e9ca771 | |||
| be1038bafd | |||
| ebc087963b | |||
| 020bdc0811 | |||
| a0d1ad6a47 | |||
| 62e5679791 | |||
| 35568bd299 | |||
| 1e40b377af | |||
| 1073de1b45 | |||
| 1d5788acaf | |||
| 8fb446588d | |||
| 6cec34b2ac | |||
| 763d3e8f74 | |||
| 7da0a913f1 | |||
| ca04c4561b | |||
| 7d8fbf49a8 | |||
| 75e15b948d | |||
| 125b69fd75 | |||
| a68d6b64dd | |||
| a60d4264dc | |||
| 9e2c6b1afa | |||
| 14965a93e9 | |||
| f62664b6a5 | |||
| 60cb7f32f1 | |||
| 008b3ad710 | |||
| 8cae64f496 | |||
| 5cdc1bc762 | |||
| 15c455105b | |||
| 14407a98c9 | |||
| 0d004d5caf | |||
| 4b75a2405c | |||
| 1f7e28b6fb | |||
| c41b2ce861 | |||
| 7f02afc5a6 | |||
| 496b3ffc1b | |||
| e9a395f67a | |||
| 0660f0b7ce | |||
| 3ac09b9dc1 | |||
| fe4904a4af | |||
| d8c8bd17ec |
5
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
5
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -24,6 +24,11 @@ body:
|
||||
placeholder: 2.0.0
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Are you using the portable version of the YouTube Music Application?
|
||||
options:
|
||||
- label: I use the portable version of the YouTube Music Application.
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: What operating system are you using?
|
||||
|
||||
@ -290,9 +290,9 @@ import style from './style.css?inline'; // import style as inline
|
||||
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
const builder = createPlugin({
|
||||
export default createPlugin({
|
||||
name: 'Plugin Label',
|
||||
restartNeeded: true, // if value is true, ytmusic show restart dialog
|
||||
restartNeeded: true, // if value is true, ytmusic will show a restart dialog
|
||||
config: {
|
||||
enabled: false,
|
||||
}, // your custom config
|
||||
@ -306,9 +306,9 @@ const builder = createPlugin({
|
||||
```typescript
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
const builder = createPlugin({
|
||||
export default createPlugin({
|
||||
name: 'Plugin Label',
|
||||
restartNeeded: true, // if value is true, ytmusic show restart dialog
|
||||
restartNeeded: true, // if value is true, ytmusic will show the restart dialog
|
||||
config: {
|
||||
enabled: false,
|
||||
}, // your custom config
|
||||
|
||||
69
changelog.md
69
changelog.md
@ -2,8 +2,77 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||
|
||||
#### [v3.1.0](https://github.com/th-ch/youtube-music/compare/v3.0.2...v3.1.0)
|
||||
|
||||
- chore(deps): update dependency electron to v28 [`#1498`](https://github.com/th-ch/youtube-music/pull/1498)
|
||||
- Enable/Disable Navigation without restart [`#1507`](https://github.com/th-ch/youtube-music/pull/1507)
|
||||
- Turkish(tr)_lang_file [`#1513`](https://github.com/th-ch/youtube-music/pull/1513)
|
||||
- Skip Disliked Songs [`#1505`](https://github.com/th-ch/youtube-music/pull/1505)
|
||||
- chore(deps): update dependency @typescript-eslint/eslint-plugin to v6.13.2 [`#1452`](https://github.com/th-ch/youtube-music/pull/1452)
|
||||
- fix: Homebrew latest release url parsing [`#1496`](https://github.com/th-ch/youtube-music/pull/1496)
|
||||
- fix: in-player adblocker inject timing issue [`#1478`](https://github.com/th-ch/youtube-music/issues/1478)
|
||||
- fix(package.json): fix RPM version `libuuid` issue [`#1508`](https://github.com/th-ch/youtube-music/issues/1508)
|
||||
- Translated using Weblate (Polish) [`7b78ba6`](https://github.com/th-ch/youtube-music/commit/7b78ba67613f14be65a45751efeb06431b405a91)
|
||||
- Translated using Weblate (French) [`ebc0879`](https://github.com/th-ch/youtube-music/commit/ebc087963b23265ff00528c8305d51597abf587a)
|
||||
- Translated using Weblate (Chinese (Traditional)) [`020bdc0`](https://github.com/th-ch/youtube-music/commit/020bdc0811ea45ad6c2853c62a05ae6695c5c4f9)
|
||||
|
||||
#### [v3.0.2](https://github.com/th-ch/youtube-music/compare/v3.0.1...v3.0.2)
|
||||
|
||||
> 3 December 2023
|
||||
|
||||
- fix(adblocker): fix In-Player adblocker [`#1478`](https://github.com/th-ch/youtube-music/issues/1478)
|
||||
- fix(menu): crash on linux [`#1477`](https://github.com/th-ch/youtube-music/issues/1477)
|
||||
- fix: update pnpm-lock.yaml [`9e2c6b1`](https://github.com/th-ch/youtube-music/commit/9e2c6b1afa33b5708853c8328946e68ec45b09c3)
|
||||
- Translated using Weblate (Chinese (Traditional)) [`125b69f`](https://github.com/th-ch/youtube-music/commit/125b69fd75a05c3eb893886119e2d9f2332b3e56)
|
||||
- Translated using Weblate (French) [`15c4551`](https://github.com/th-ch/youtube-music/commit/15c455105b5100a8ee2bd0a4631548d3d455f047)
|
||||
|
||||
#### [v3.0.1](https://github.com/th-ch/youtube-music/compare/v3.0.0...v3.0.1)
|
||||
|
||||
> 2 December 2023
|
||||
|
||||
- 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)
|
||||
- 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)
|
||||
|
||||
> 27 October 2023
|
||||
|
||||
- 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)
|
||||
- Update changelog for v2.1.3 [`dc73561`](https://github.com/th-ch/youtube-music/commit/dc73561c8a8acfc8ba91aff2dc78e4267869f2fd)
|
||||
|
||||
@ -1,15 +1,18 @@
|
||||
import { resolve } from 'node:path';
|
||||
import { resolve, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import { defineConfig, defineViteConfig } from 'electron-vite';
|
||||
import builtinModules from 'builtin-modules';
|
||||
import viteResolve from 'vite-plugin-resolve';
|
||||
import Inspect from 'vite-plugin-inspect';
|
||||
|
||||
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer';
|
||||
import pluginLoader from './vite-plugins/plugin-loader';
|
||||
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs';
|
||||
import pluginLoader from './vite-plugins/plugin-loader.mjs';
|
||||
|
||||
import type { UserConfig } from 'vite';
|
||||
import { i18nImporter } from './vite-plugins/i18n-importer';
|
||||
import { i18nImporter } from './vite-plugins/i18n-importer.mjs';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const resolveAlias = {
|
||||
'@': resolve(__dirname, './src'),
|
||||
47
package.json
47
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "youtube-music",
|
||||
"productName": "YouTube Music",
|
||||
"version": "3.0.0",
|
||||
"version": "3.1.1",
|
||||
"description": "YouTube Music Desktop App - including custom plugins",
|
||||
"main": "./dist/main/index.js",
|
||||
"license": "MIT",
|
||||
@ -77,6 +77,11 @@
|
||||
"rpm"
|
||||
]
|
||||
},
|
||||
"rpm": {
|
||||
"depends": [
|
||||
"/usr/lib64/libuuid.so.1"
|
||||
]
|
||||
},
|
||||
"snap": {
|
||||
"slots": [
|
||||
{
|
||||
@ -97,7 +102,7 @@
|
||||
"vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect",
|
||||
"start": "electron-vite preview",
|
||||
"start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
|
||||
"dev": "electron-vite dev",
|
||||
"dev": "electron-vite dev --watch",
|
||||
"dev:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
|
||||
"clean": "del-cli dist && del-cli pack && del-cli .vite-inspect",
|
||||
"dist": "pnpm clean && pnpm build && electron-builder --win --mac --linux -p never",
|
||||
@ -114,12 +119,13 @@
|
||||
"typecheck": "tsc -p tsconfig.json --noEmit"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
"node": ">=18.0.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"esbuild": "0.18.20",
|
||||
"usocket": "1.0.1",
|
||||
"rollup": "4.6.1",
|
||||
"rollup": "4.9.1",
|
||||
"node-gyp": "10.0.1",
|
||||
"xml2js": "0.6.2",
|
||||
"node-fetch": "3.3.2",
|
||||
@ -131,7 +137,7 @@
|
||||
"@cliqz/adblocker-electron": "1.26.12",
|
||||
"@cliqz/adblocker-electron-preload": "1.26.12",
|
||||
"@electron-toolkit/tsconfig": "1.0.1",
|
||||
"@electron/remote": "2.1.0",
|
||||
"@electron/remote": "2.1.1",
|
||||
"@ffmpeg.wasm/core-mt": "0.12.0",
|
||||
"@ffmpeg.wasm/main": "0.12.0",
|
||||
"@foobar404/wave": "2.0.4",
|
||||
@ -156,48 +162,49 @@
|
||||
"filenamify": "6.0.0",
|
||||
"howler": "2.2.4",
|
||||
"html-to-text": "9.0.5",
|
||||
"i18next": "23.7.7",
|
||||
"i18next": "23.7.11",
|
||||
"keyboardevent-from-electron-accelerator": "2.0.0",
|
||||
"keyboardevents-areequal": "0.2.2",
|
||||
"node-html-parser": "6.1.11",
|
||||
"node-id3": "0.2.6",
|
||||
"serve": "14.2.1",
|
||||
"simple-youtube-age-restriction-bypass": "git+https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass.git#v2.5.8",
|
||||
"ts-morph": "20.0.0",
|
||||
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
|
||||
"ts-morph": "21.0.1",
|
||||
"vudio": "2.1.1",
|
||||
"x11": "2.3.0",
|
||||
"youtubei.js": "8.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "1.40.1",
|
||||
"@playwright/test": "1.41.0-alpha-dec-18-2023",
|
||||
"@total-typescript/ts-reset": "0.5.1",
|
||||
"@types/electron-localshortcut": "3.1.3",
|
||||
"@types/howler": "2.2.11",
|
||||
"@types/html-to-text": "9.0.4",
|
||||
"@typescript-eslint/eslint-plugin": "6.13.1",
|
||||
"@typescript-eslint/eslint-plugin": "6.14.0",
|
||||
"bufferutil": "4.0.8",
|
||||
"builtin-modules": "3.3.0",
|
||||
"cross-env": "7.0.3",
|
||||
"del-cli": "5.1.0",
|
||||
"electron": "27.1.3",
|
||||
"electron": "28.0.0",
|
||||
"electron-builder": "24.9.1",
|
||||
"electron-devtools-installer": "3.2.0",
|
||||
"electron-vite": "1.0.29",
|
||||
"eslint": "8.55.0",
|
||||
"electron-vite": "2.0.0-beta.1",
|
||||
"esbuild": "0.18.20",
|
||||
"eslint": "8.56.0",
|
||||
"eslint-import-resolver-exports": "1.0.0-beta.5",
|
||||
"eslint-import-resolver-typescript": "3.6.1",
|
||||
"eslint-plugin-import": "2.29.0",
|
||||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-prettier": "5.0.1",
|
||||
"glob": "10.3.10",
|
||||
"node-gyp": "10.0.1",
|
||||
"playwright": "1.40.1",
|
||||
"rollup": "4.6.1",
|
||||
"typescript": "5.3.2",
|
||||
"playwright": "1.41.0-alpha-dec-18-2023",
|
||||
"rollup": "4.9.1",
|
||||
"typescript": "5.3.3",
|
||||
"utf-8-validate": "6.0.3",
|
||||
"vite": "4.5.0",
|
||||
"vite": "5.0.10",
|
||||
"vite-plugin-inspect": "0.8.1",
|
||||
"vite-plugin-resolve": "2.5.1",
|
||||
"ws": "8.14.2"
|
||||
"ws": "8.15.1"
|
||||
},
|
||||
"auto-changelog": {
|
||||
"hideCredit": true,
|
||||
@ -205,5 +212,5 @@
|
||||
"unreleased": true,
|
||||
"output": "changelog.md"
|
||||
},
|
||||
"packageManager": "pnpm@8.11.0"
|
||||
"packageManager": "pnpm@8.12.1"
|
||||
}
|
||||
|
||||
1225
pnpm-lock.yaml
generated
1225
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
export interface LanguageResources {
|
||||
[lang: string]: {
|
||||
translation: Record<string, unknown> & {
|
||||
language: {
|
||||
language?: {
|
||||
name: string;
|
||||
'local-name': string;
|
||||
code: string;
|
||||
|
||||
@ -2,8 +2,13 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Selhalo execute pluginu {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} executed at {{ms}}ms",
|
||||
"initialize-failed": "Selhala initialize \"{{pluginName}}\" pluginu",
|
||||
"load-all": "Načítání všech pluginů",
|
||||
"loaded": "Plugin \"{{pluginName}}\" načten"
|
||||
"load-failed": "Selhalo načtení \"{{pluginName}}\" pluginu",
|
||||
"loaded": "Plugin \"{{pluginName}}\" načten",
|
||||
"unload-failed": "Selhalo unload \"{{pluginName}}\" pluginu"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -14,34 +19,52 @@
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Načítání dokončeno. Vývojářské nástroje se otevřely"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n načteno"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Received command přes protokol: \"{{command}}\""
|
||||
"receive-command": "Přijmut příkaz přes protokol: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS soubor \"{{cssFile}}\" neexistuje, ignoring"
|
||||
"css-file-not-found": "CSS soubor \"{{cssFile}}\" neexistuje, ignorováno"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Unresponsive chyba!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Čištění mezipaměti aplikace"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Okno se pokusilo render na pozadí, Velikost okna ={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu je skryté, stiskněte 'Alt' k zobrazení (nebo 'Escape', pokud používáte in-app-menu)",
|
||||
"message": "Skrýt Menu je povoleno",
|
||||
"title": "Skrýt Menu Povolené"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Později",
|
||||
"restart-now": "Restartovat nyní"
|
||||
}
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" plugin vyžaduje restart, aby se projevil",
|
||||
"message": "\"{{pluginName}}\" potřebuje restartovat",
|
||||
"title": "Restart vyžadován"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Ukončení",
|
||||
"quit": "Ukončit",
|
||||
"relaunch": "Spustit znovu",
|
||||
"wait": "Počkat"
|
||||
},
|
||||
"detail": "Omlouváme se za způsobené nepříjemnosti! prosím vyberte, co dělat:",
|
||||
"message": "Aplikace nereaguje"
|
||||
"message": "Aplikace nereaguje",
|
||||
"title": "Okno nereaguje"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
@ -49,6 +72,7 @@
|
||||
"download": "Stáhnout",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Nová verze je k dispozici a lze stáhnout na {{downloadLink}}",
|
||||
"message": "Nová verze je dostupná",
|
||||
"title": "Aktualizace k dispozici"
|
||||
}
|
||||
@ -61,6 +85,7 @@
|
||||
"copy-current-url": "Kopírovat aktuální URL adresu",
|
||||
"go-back": "Jít zpátky",
|
||||
"go-forward": "Jít dopředu",
|
||||
"quit": "Ukončit",
|
||||
"restart": "Restartovat aplikaci"
|
||||
}
|
||||
},
|
||||
@ -70,22 +95,29 @@
|
||||
"advanced-options": {
|
||||
"label": "Pokročilé možnosti",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Při spuštění aplikace, se resetuje její mezipaměť",
|
||||
"disable-hardware-acceleration": "Vypnout hardware zrychlení",
|
||||
"edit-config-json": "Upravit config.json",
|
||||
"override-user-agent": "Přepsat User-Agent",
|
||||
"restart-on-config-changes": "Restartovat na změny v configu",
|
||||
"restart-on-config-changes": "Restartovat na změny v konfiguraci",
|
||||
"set-proxy": {
|
||||
"label": "Nastavit proxy",
|
||||
"prompt": {
|
||||
"label": "Zadejte adresu proxy: (nechejte prázdné to disable)",
|
||||
"placeholder": "Příklad: socks5://127.0.0.1:9999",
|
||||
"title": "Nastavit proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Toggle Vývojářské nástroje"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Vždy na vrchu",
|
||||
"auto-update": "Automatické aktualizace",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu bude skryto na dalším launch, use [Alt] to show it (nebo backtick [`] pokud používáte in-app-menu)",
|
||||
"title": "Skrýt Menu Povoleno"
|
||||
},
|
||||
"label": "Skrýt menu"
|
||||
},
|
||||
"language": {
|
||||
@ -98,24 +130,34 @@
|
||||
"to-help-translate": "Chcete pomoc s překladem? Klikněte zde"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Resume poslední písničku při spuštění aplikace",
|
||||
"single-instance-lock": "Zámek pro jednu instanci",
|
||||
"starting-page": {
|
||||
"label": "Úvodní stránka",
|
||||
"unset": "Nenastaveno"
|
||||
},
|
||||
"tray": {
|
||||
"submenu": {
|
||||
"disabled": "Vypnuté",
|
||||
"enabled-and-hide-app": "Povolit a skrýt aplikaci",
|
||||
"enabled-and-show-app": "Enabled a show aplikaci",
|
||||
"play-pause-on-click": "Přehrát/Pozastavit na kliknutí"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vzhledové vylepšení",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Výchozí",
|
||||
"force-show": "Vynutit show",
|
||||
"hide": "Schovat",
|
||||
"label": "Like tlačítka"
|
||||
},
|
||||
"remove-upgrade-button": "Remove upgrade tlačítko",
|
||||
"remove-upgrade-button": "Odebrat upgrade tlačítko",
|
||||
"theme": {
|
||||
"label": "Motiv",
|
||||
"submenu": {
|
||||
"import-css-file": "Import custom CSS soubor",
|
||||
"import-css-file": "Import vlastní CSS soubor",
|
||||
"no-theme": "Žádný motiv"
|
||||
}
|
||||
}
|
||||
@ -128,7 +170,12 @@
|
||||
"label": "Pluginy"
|
||||
},
|
||||
"view": {
|
||||
"label": "Zobrazení",
|
||||
"submenu": {
|
||||
"force-reload": "Vynutit znovu načtení",
|
||||
"reload": "Obnovit",
|
||||
"reset-zoom": "Actual velikost",
|
||||
"toggle-fullscreen": "Přepnout režim celé obrazovky",
|
||||
"zoom-in": "Přiblížit",
|
||||
"zoom-out": "Oddálit"
|
||||
}
|
||||
@ -136,7 +183,7 @@
|
||||
},
|
||||
"tray": {
|
||||
"next": "Další",
|
||||
"play-pause": "Hrát/Zastavit",
|
||||
"play-pause": "Přehrát/Pozastavit",
|
||||
"previous": "Minulý",
|
||||
"quit": "Ukončit",
|
||||
"restart": "Restartovat aplikaci",
|
||||
@ -152,11 +199,11 @@
|
||||
"name": "Blokovač reklam"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Použije dynamický motiv a visuální efekty based na paletě barev alba",
|
||||
"name": "Album Color Motiv"
|
||||
"description": "Použije dynamický motiv a vizuální efekty na základě palety barev alba",
|
||||
"name": "Motiv podle barvy Alba"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Applies a lighting efekty by casting gentle colors z videa, into your screen’s pozadí.",
|
||||
"description": "Applies a lighting efekty pomocí casting gentle barvy z videa, do vašeho screen’s pozadí.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"submenu": {
|
||||
@ -196,15 +243,19 @@
|
||||
},
|
||||
"name": "Ambientní režim"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"name": "Audio kompresor"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Udělá navigační panel průhledným a rozmazaným"
|
||||
"description": "Udělá navigační panel průhledným a rozmazaným",
|
||||
"name": "Rozmazaný navigační Bar"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Obejít ověření věku na YouTube",
|
||||
"name": "Obejít věková omezení"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Titulkový selector pro YouTube Music audio tracks",
|
||||
"description": "Titulkový selector pro zvukové stopy v YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Automaticky vybrat naposledy použité titulky",
|
||||
"disable-captions": "Žádné titulky ve vychozím nastavení"
|
||||
@ -222,13 +273,15 @@
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Vždy set the sidebar in compact mode"
|
||||
"description": "Vždy set the sidebar v kompaktním režimu",
|
||||
"name": "Kompaktní Sidebar"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Crossfade mezi písničkami",
|
||||
"menu": {
|
||||
"advanced": "Pokročilý"
|
||||
},
|
||||
"name": "Prolínání [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
@ -243,6 +296,9 @@
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"menu": {
|
||||
"apply-once": "Applies jenom na spuštění aplikace"
|
||||
},
|
||||
"name": "Zrušit automatické přehrávání"
|
||||
},
|
||||
"discord": {
|
||||
@ -256,6 +312,11 @@
|
||||
"disconnected": "Odpojeno",
|
||||
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
|
||||
"play-on-youtube-music": "Hrát na YouTube Music"
|
||||
},
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Zadejte inactivity timeout v sekundách:"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
@ -273,29 +334,34 @@
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} písničky)",
|
||||
"message": "Stahování Playlistu {{playlistTitle}}",
|
||||
"message": "Stahování seznamu skladeb {{playlistTitle}}",
|
||||
"title": "Stahování začalo"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"done": "Hotovo: {{filePath}}",
|
||||
"download-info": "Stahování {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Stahování: {{percent}}%",
|
||||
"downloading": "Stahování…",
|
||||
"downloading-counter": "Stahování {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Downloading playlist \"{{playlistTitle}}\" - {{playlistSize}} písničky ({{playlistId}})",
|
||||
"downloading-playlist": "Stahování seznamu skladeb \"{{playlistTitle}}\" - {{playlistSize}} písničky ({{playlistId}})",
|
||||
"error-while-downloading": "Chyba při stahování \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Složka {{playlistFolder}} již existuje",
|
||||
"getting-playlist-info": "Getting informace o seznamu skladeb…",
|
||||
"loading": "Načítání…",
|
||||
"playlist-has-only-one-song": "Playlist má jenom jeden položku, downloading it directly",
|
||||
"playlist-id-not-found": "Žádný playlist ID nenalezen",
|
||||
"playlist-is-empty": "Playlist je prázdný",
|
||||
"playlist-has-only-one-song": "Seznam skladeb má pouze jednu položku, downloading it directly",
|
||||
"playlist-id-not-found": "Žádné ID seznamu skladeb nenalezeno",
|
||||
"playlist-is-empty": "Seznam skladeb je prázdný",
|
||||
"preparing-file": "Připravování souboru…",
|
||||
"saving": "Ukládání…",
|
||||
"trying-to-get-playlist-id": "Trying to get ID seznamu skladeb: {{playlistId}}",
|
||||
"video-id-not-found": "Video nebylo nalezeno"
|
||||
}
|
||||
},
|
||||
"description": "Stahuje MP3 / source audio přímo z rozhraní",
|
||||
"menu": {
|
||||
"choose-download-folder": "Vybrat download složku",
|
||||
"download-playlist": "Stáhnout playlist",
|
||||
"download-playlist": "Stáhnout seznam skladeb",
|
||||
"skip-existing": "Přeskočit existující soubory"
|
||||
},
|
||||
"name": "Stahovač",
|
||||
@ -306,13 +372,24 @@
|
||||
"exponential-volume": {
|
||||
"name": "Exponenciální hlasitost"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Dává menu-bars a fancy, tmavý nebo album-color vzhled"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Přidat scrobbling podporu pro Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Přidává Lumia Stream podporu"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Přidat lyrics podporu pro většinu písniček"
|
||||
"description": "Přidat lyrics podporu pro většinu písniček",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Fetched lyrics pro Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Další/Zpátky navigační šipky přímo integrovány do rozhraní, jako ve vašem oblíbeném prohlížeči",
|
||||
"name": "Navigace"
|
||||
},
|
||||
"no-google-login": {
|
||||
@ -322,14 +399,17 @@
|
||||
"notifications": {
|
||||
"description": "Display oznámení when a písnička starts hraje (interactive notifications are available on Windows)",
|
||||
"menu": {
|
||||
"interactive": "Interaktivní oznámení",
|
||||
"interactive-settings": {
|
||||
"label": "Interactive Nastavení",
|
||||
"submenu": {
|
||||
"hide-button-text": "Skrýt text tlačítka",
|
||||
"refresh-on-play-pause": "Refresh na Přehrát/Pozastavit",
|
||||
"tray-controls": "Otevřít/Zavřít on tray click"
|
||||
}
|
||||
},
|
||||
"priority": "Priorita Oznámení"
|
||||
"priority": "Priorita Oznámení",
|
||||
"unpause-notification": "Zobrazit oznámení na unpause"
|
||||
},
|
||||
"name": "Oznámení"
|
||||
},
|
||||
@ -341,7 +421,9 @@
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Klávesová zkratka"
|
||||
}
|
||||
},
|
||||
"label": "Vybrat klávesovou zkratku pro toggle obrázek v obrázku",
|
||||
"title": "Obrázek v obrázku klávesová zkratka"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Uložit pozici okna",
|
||||
@ -355,7 +437,7 @@
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Posloiuchej rychle, poslouchej pomalu! Adds a slider, který kontroluje rychlost písníčky",
|
||||
"name": "Playback rychlost",
|
||||
"name": "Rychlost přehrávání",
|
||||
"templates": {
|
||||
"button": "Rychlost"
|
||||
}
|
||||
@ -364,7 +446,7 @@
|
||||
"menu": {
|
||||
"global-shortcuts": "Globální klávesové zkratky"
|
||||
},
|
||||
"name": "Precise hlasitost",
|
||||
"name": "Přesná hlasitost",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
@ -386,6 +468,9 @@
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"menu": {
|
||||
"override-media-keys": "Přepsat Media Keys"
|
||||
},
|
||||
"name": "Zkratky (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
@ -401,18 +486,32 @@
|
||||
"description": "Automaticky přeskakovat tichá místa v písničkách",
|
||||
"name": "Přeskočit Tichá místa"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Automaticky přeskakuje non-music části jako intro/outro nebo části of music videos, kde nehraje písnčka"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Kontrolovat playback z vašeho Windows taskbar"
|
||||
"description": "Ovládejte přehrávání z vašeho hlavního panelu Windows",
|
||||
"name": "Hlavní panel Media Control"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Přidává Touch Bar widget pro macOS uživatele",
|
||||
"name": "Touch Bar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integrace s OBS's plugin Tuna"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Přidává tlačítko switch mezi videem/písničkou mode. Může také optionally remove celou video kartu",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Zarovnání",
|
||||
"submenu": {
|
||||
"left": "Vlevo",
|
||||
"middle": "Uprostřed",
|
||||
"right": "Pravo"
|
||||
}
|
||||
},
|
||||
"force-hide": "Vynutit odstranění karty videa",
|
||||
"mode": {
|
||||
"label": "Režim"
|
||||
}
|
||||
@ -420,6 +519,13 @@
|
||||
"templates": {
|
||||
"button": "Písnička"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Přidá vizualizér do přehrávače",
|
||||
"menu": {
|
||||
"visualizer-type": "Typ vizualizéru"
|
||||
},
|
||||
"name": "Vizualizér"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menü ist versteckt, nutze 'Alt', um es zu zeigen (oder 'Escape' beim Verwenden des In-App-Menüs)",
|
||||
"detail": "Das Menü ist versteckt, nutze 'Alt', um es zu aufzurufen (oder 'Escape' beim Verwenden des In-App-Menüs)",
|
||||
"message": "Menü verstecken ist aktiviert",
|
||||
"title": "Menü Verstecken Aktiviert"
|
||||
},
|
||||
@ -59,7 +59,7 @@
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Beenden",
|
||||
"quit": "Verlassen",
|
||||
"relaunch": "Neustarten",
|
||||
"wait": "Warten"
|
||||
},
|
||||
@ -105,7 +105,7 @@
|
||||
"label": "Proxy setzen",
|
||||
"prompt": {
|
||||
"label": "Proxy-Adresse eingeben: (leer lassen zum Ausschalten)",
|
||||
"placeholder": "Beispiel: socks5://127.0.0.1:9999",
|
||||
"placeholder": "Beispiel: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Proxy setzen"
|
||||
}
|
||||
},
|
||||
@ -296,7 +296,7 @@
|
||||
"fade-in-duration": "Einblendezeit (Millisekunden)",
|
||||
"fade-out-duration": "Ausblendezeit (Millisekunden)",
|
||||
"fade-scaling": {
|
||||
"label": "Fade-Skalierung",
|
||||
"label": "Übergangsskalierung",
|
||||
"linear": "Linear",
|
||||
"logarithmic": "Logarithmisch"
|
||||
},
|
||||
@ -421,7 +421,7 @@
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanisierte Songtexte"
|
||||
},
|
||||
"name": "Liedtext von Genius",
|
||||
"name": "Liedtexte von Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Liedtexte für Genius abgerufen"
|
||||
}
|
||||
@ -470,9 +470,9 @@
|
||||
"save-window-size": "Fenstergröße speichern",
|
||||
"use-native-pip": "Browsereigenes PiP verwenden"
|
||||
},
|
||||
"name": "Bild im Bild",
|
||||
"name": "Bild-im-Bild",
|
||||
"templates": {
|
||||
"button": "Bild im Bild"
|
||||
"button": "Bild-im-Bild"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
@ -500,7 +500,7 @@
|
||||
"title": "Globale Lautstärketastenbelegungen"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Wähle Schritte zur Erhöhung/Senkung der Lautstärke",
|
||||
"label": "Wähle Schritte zur Lautstärkehebung/-senkung",
|
||||
"title": "Lautstärkestufen"
|
||||
}
|
||||
}
|
||||
@ -519,8 +519,9 @@
|
||||
"name": "Videoqualitätsänderer"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Ermöglicht das Festlegen globaler Hotkeys für die Wiedergabe (Abspielen/Pause/Nächster/Vorheriger) + 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": {
|
||||
"override-media-keys": "Medienschlüssel überschreiben",
|
||||
"override-media-keys": "Medientasten überschreiben",
|
||||
"set-keybinds": "Globale Liedsteuerung setzen"
|
||||
},
|
||||
"name": "Abkürzungen (& MPRIS)",
|
||||
@ -536,6 +537,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Überspringt Lieder, die ihnen nicht gefallen",
|
||||
"name": "Überspring Lieder, die ihnen nicht gefallen"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatisch stille Abschnitte in Liedern überspringen",
|
||||
"name": "Stille überspringen"
|
||||
@ -571,9 +576,9 @@
|
||||
"mode": {
|
||||
"label": "Modus",
|
||||
"submenu": {
|
||||
"custom": "Angepasster Wechsler",
|
||||
"custom": "Angepasster Schalter",
|
||||
"disabled": "Deaktiviert",
|
||||
"native": "Eingebauter Umschalter"
|
||||
"native": "Eingebauter Schalter"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -1,4 +1,11 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Αποτυχία εκτέλεσης προσθέτου {{pluginName}}::{{contextName}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "el",
|
||||
"local-name": "Ελληνικά",
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "did finish load. dev tools opened"
|
||||
"dev-tools": "Finished loading. DevTools opened"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n loaded"
|
||||
@ -44,7 +44,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu is hidden, use 'Alt' to show it (or 'Escape' if using in-app-menu)",
|
||||
"detail": "Menu is hidden, use 'Alt' to show it (or 'Escape' if using In-App Menu)",
|
||||
"message": "Hide Menu is enabled",
|
||||
"title": "Hide Menu Enabled"
|
||||
},
|
||||
@ -96,7 +96,7 @@
|
||||
"advanced-options": {
|
||||
"label": "Advanced options",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Reset App cache when app starts",
|
||||
"auto-reset-app-cache": "Reset app cache when app starts",
|
||||
"disable-hardware-acceleration": "Disable hardware acceleration",
|
||||
"edit-config-json": "Edit config.json",
|
||||
"override-user-agent": "Override User-Agent",
|
||||
@ -105,7 +105,7 @@
|
||||
"label": "Set proxy",
|
||||
"prompt": {
|
||||
"label": "Enter Proxy Address: (leave empty to disable)",
|
||||
"placeholder": "Example: socks5://127.0.0.1:9999",
|
||||
"placeholder": "Example: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Set proxy"
|
||||
}
|
||||
},
|
||||
@ -241,7 +241,7 @@
|
||||
"smoothness-transition": {
|
||||
"label": "Smoothness transition",
|
||||
"submenu": {
|
||||
"during": "During {{interpolationTime}}s"
|
||||
"during": "During {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
@ -293,8 +293,8 @@
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Fade in duration (milliseconds)",
|
||||
"fade-out-duration": "Fade out duration (milliseconds)",
|
||||
"fade-in-duration": "Fade in duration (ms)",
|
||||
"fade-out-duration": "Fade out duration (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Fade scaling",
|
||||
"linear": "Linear",
|
||||
@ -462,17 +462,17 @@
|
||||
"keybind-options": {
|
||||
"hotkey": "Hotkey"
|
||||
},
|
||||
"label": "Choose a hotkey for toggle Picture in Picture",
|
||||
"title": "Picture in Picture Hotkey"
|
||||
"label": "Choose a hotkey to toggle picture-in-picture",
|
||||
"title": "Picture-in-picture Hotkey"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Save window position",
|
||||
"save-window-size": "Save window size",
|
||||
"use-native-pip": "Use browser native PiP"
|
||||
},
|
||||
"name": "Picture in Picture",
|
||||
"name": "Picture-in-picture",
|
||||
"templates": {
|
||||
"button": "Picture in Picture"
|
||||
"button": "Picture-in-picture"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
@ -519,7 +519,7 @@
|
||||
"name": "Video Quality Changer"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Allows setting global hotkeys for playback (play/pause/next/previous) + disable media osd by overriding media keys + enable Ctrl/CMD + F to search + enable linux mpris support for mediakeys + custom hotkeys for advanced users",
|
||||
"description": "Allows setting global hotkeys for playback (play/pause/next/previous) and turning off media OSD by overriding media keys, turning on Ctrl/CMD + F to search, turning on Linux MPRIS support for media keys, and custom hotkeys for advanced users.",
|
||||
"menu": {
|
||||
"override-media-keys": "Override Media Keys",
|
||||
"set-keybinds": "Set Global Song Controls"
|
||||
@ -537,6 +537,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Skips disliked songs",
|
||||
"name": "Skip Disliked Songs"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatically skip silences sections in songs",
|
||||
"name": "Skip Silences"
|
||||
|
||||
598
src/i18n/resources/es.json
Normal file
598
src/i18n/resources/es.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Error al ejecutar el plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}: {{contextName}} ejecutado en {{ms}}ms",
|
||||
"initialize-failed": "Error al inicializar plugin \"{{pluginName}}\"",
|
||||
"load-all": "Cargando todos los plugins",
|
||||
"load-failed": "Error al cargar el plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" cargado",
|
||||
"unload-failed": "No se ha podido descargar el plugin \"{{pluginName}}\"",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" descargado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "es",
|
||||
"local-name": "Inglés",
|
||||
"name": "Spanish"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Carga finalizada. DevTools abiertos"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n cargado"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Comando recibido sobre el protocolo: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "El archivo CSS \"{{cssFile}}\" no existe, ignorando"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "¡Error sin repuesta!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Borrar caché de la aplicación"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "La ventana intentó mostrarse fuera de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, posicion={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "El menú está oculto, utiliza \"Alt\" para mostrarlo (o \"Escape\" si utilizas el menú integrado en la aplicación)",
|
||||
"message": "Menu oculto esta deshabilitado",
|
||||
"title": "Menú oculto activado"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Más tarde",
|
||||
"restart-now": "Reiniciar ahora"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" se requiere reiniciar para que el plugin tome efecto",
|
||||
"message": "\"{{pluginName}}\" necesita reiniciar",
|
||||
"title": "Se requiere reinicio"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Dejar",
|
||||
"relaunch": "Volver a abrir",
|
||||
"wait": "Espera"
|
||||
},
|
||||
"detail": "Sentimos las molestias. Por favor, elija qué hacer:",
|
||||
"message": "La aplicación no responde",
|
||||
"title": "La ventana no responde"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Desactivar actualizaciones",
|
||||
"download": "Descargar",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Una nueva versión está disponible y puede descargarse en {{downloadLink}}",
|
||||
"message": "Ya está disponible una nueva versión",
|
||||
"title": "Actualización disponible"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Acerca de",
|
||||
"navigation": {
|
||||
"label": "Navegación",
|
||||
"submenu": {
|
||||
"copy-current-url": "Copiar la URL actual",
|
||||
"go-back": "Regresar",
|
||||
"go-forward": "Adelante",
|
||||
"quit": "Salir",
|
||||
"restart": "Reiniciar la aplicación"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opciones",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Opciones avanzadas",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Restablecer la caché de la aplicación al iniciarla",
|
||||
"disable-hardware-acceleration": "Desactivar la aceleración por hardware",
|
||||
"edit-config-json": "Editar config.json",
|
||||
"override-user-agent": "sobrescribir User-Agent",
|
||||
"restart-on-config-changes": "Reinicie al cambiar la configuración",
|
||||
"set-proxy": {
|
||||
"label": "Definir proxy",
|
||||
"prompt": {
|
||||
"label": "Introduzca la dirección del proxy: (déjela vacía para desactivarla)",
|
||||
"placeholder": "Ejemplo: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Establecer proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Activar DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Siempre arriba",
|
||||
"auto-update": "Actualización automática",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "El menú se ocultará la próxima vez que lo inicies, usa [Alt] para mostrarlo (o pulsa [`] si usas el menú dentro de la aplicación)",
|
||||
"title": "Ocultar menú habilitado"
|
||||
},
|
||||
"label": "Ocultar menú"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "El idioma se cambiará después de reiniciar",
|
||||
"title": "Se cambio el idioma"
|
||||
},
|
||||
"label": "Idioma",
|
||||
"submenu": {
|
||||
"to-help-translate": "¿Quieres ayudar a traducir? Haz clic aquí"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Reanudar la última canción al iniciar la aplicación",
|
||||
"single-instance-lock": "Bloquear en una instancia unica",
|
||||
"start-at-login": "Comenzar al iniciar sesión",
|
||||
"starting-page": {
|
||||
"label": "Página de inicio",
|
||||
"unset": "Sin configurar"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Bandeja",
|
||||
"submenu": {
|
||||
"disabled": "Desactivado",
|
||||
"enabled-and-hide-app": "Activar y ocultar la aplicación",
|
||||
"enabled-and-show-app": "Activado y mostrar aplicación",
|
||||
"play-pause-on-click": "Reproducir/Pausar al hacer clic"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Ajustes visuales",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Predeterminado",
|
||||
"force-show": "Forzar la visualización",
|
||||
"hide": "Ocultar",
|
||||
"label": "Botones de \"Me Gusta\""
|
||||
},
|
||||
"remove-upgrade-button": "Remover el botón de Actualización",
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Importar archivo CSS personalizado",
|
||||
"no-theme": "Sin temas"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Habilitado",
|
||||
"label": "Plugins"
|
||||
},
|
||||
"view": {
|
||||
"label": "Ver",
|
||||
"submenu": {
|
||||
"force-reload": "Forzar la recarga",
|
||||
"reload": "Recargar",
|
||||
"reset-zoom": "Tamaño actual",
|
||||
"toggle-fullscreen": "Alternar pantalla completa",
|
||||
"zoom-in": "Acercar",
|
||||
"zoom-out": "Alejar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Siguiente",
|
||||
"play-pause": "Reproducir/Pausar",
|
||||
"previous": "Anterior",
|
||||
"quit": "Salir",
|
||||
"restart": "Reiniciar la aplicación",
|
||||
"show": "Mostrar ventana"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Bloquear todos los anuncios y el rastreo",
|
||||
"menu": {
|
||||
"blocker": "Bloqueador"
|
||||
},
|
||||
"name": "Adblocker"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Aplica un tema dinámico y efectos visuales basados en la paleta de colores del álbum",
|
||||
"name": "Color del álbum"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Aplica un efecto de iluminación proyectando colores suaves del vídeo en el fondo de la pantalla.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Cantidad de desenfoque",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixeles"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buffer",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Transparencia",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Calidad",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} píxeles"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Tamaño",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Transición suave",
|
||||
"submenu": {
|
||||
"during": "Durante {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Usando Pantalla Completa"
|
||||
}
|
||||
},
|
||||
"name": "Modo ambiente"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Aplicar compresión al audio (reduce la diferencia entre las partes más fuertes y más suaves de una pista para que tenga un nivel más consistente)",
|
||||
"name": "Compresor de audio"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Hace que la barra de navegación sea transparente y borrosa",
|
||||
"name": "Desenfocar barra de navegación"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Saltar la verificación de edad de YouTube",
|
||||
"name": "Saltar las restricciones de edad"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Selector de subtítulos para pistas de audio de YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
|
||||
"disable-captions": "Sin subtítulos por defecto"
|
||||
},
|
||||
"name": "Selector de subtítulos",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Idioma actual: {{language}}",
|
||||
"none": "Ninguno",
|
||||
"title": "Seleccionar idioma de los subtítulos"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Abra el selector de subtítulos"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Poner siempre la barra lateral en modo compacto",
|
||||
"name": "Barra lateral compacta"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Crossfade entre canciones",
|
||||
"menu": {
|
||||
"advanced": "Avanzado"
|
||||
},
|
||||
"name": "Crossfade [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Duración del fundido (ms)",
|
||||
"fade-out-duration": "Duración del fundido de salida (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Escala de fundido",
|
||||
"linear": "Lineal",
|
||||
"logarithmic": "Logarítmico"
|
||||
},
|
||||
"seconds-before-end": "Crossfade N segundos antes del final"
|
||||
},
|
||||
"title": "Opciones de crossfade"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Hace que la canción comience en modo \"pausado\"",
|
||||
"menu": {
|
||||
"apply-once": "Sólo se aplica al inicio"
|
||||
},
|
||||
"name": "Desactivar reproducción automática"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Se intentó conectar con una conexión activa",
|
||||
"connected": "Conectado a Discord",
|
||||
"disconnected": "Desconectado de Discord"
|
||||
},
|
||||
"description": "Muestra a tus amigos lo que escuchas con Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Reconectar automáticamente",
|
||||
"clear-activity": "Borrar actividad",
|
||||
"clear-activity-after-timeout": "Borrar actividad después de un tiempo",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"hide-duration-left": "Ocultar la duración restante",
|
||||
"hide-github-button": "Ocultar el botón de enlace a GitHub",
|
||||
"play-on-youtube-music": "Reproducir en YouTube Music",
|
||||
"set-inactivity-timeout": "Establecer tiempo de inactividad"
|
||||
},
|
||||
"name": "Estado de actividad de Discord",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Introduzca el tiempo de inactividad en segundos:",
|
||||
"title": "Establecer tiempo de inactividad"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "¡Argh! Lo siento, la descarga falló…",
|
||||
"title": "¡Error en la descarga!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} canciones)",
|
||||
"message": "Descargar Playlist {{playlistTitle}}",
|
||||
"title": "Descarga iniciada"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Conversión: {{percent}}%",
|
||||
"converting": "Convirtiendo…",
|
||||
"done": "Listo: {{filePath}}",
|
||||
"download-info": "Descargando {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Descarga: {{percent}}%",
|
||||
"downloading": "Descargando…",
|
||||
"downloading-counter": "Descargando {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Descargar lista de reproducción \"{{playlistTitle}}\" - {{playlistSize}} canciones ({{playlistId}})",
|
||||
"error-while-downloading": "Error al descargar \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "La carpeta {{playlistFolder}} ya existe",
|
||||
"getting-playlist-info": "Obteniendo información de la lista de reproducción…",
|
||||
"loading": "Cargando…",
|
||||
"playlist-has-only-one-song": "La lista de reproducción sólo tiene un elemento, descárgala directamente",
|
||||
"playlist-id-not-found": "No se ha encontrado el ID de la lista de reproducción",
|
||||
"playlist-is-empty": "La lista de reproducción está vacía",
|
||||
"playlist-is-mix-or-private": "Error obteniendo información de la lista de reproducción: asegúrese de que no es una lista privada o \"Mixed for you\"\n\n{{error}}",
|
||||
"preparing-file": "Preparando archivo…",
|
||||
"saving": "Guardando…",
|
||||
"trying-to-get-playlist-id": "Intentando obtener el ID de la lista de reproducción: {{playlistId}}",
|
||||
"video-id-not-found": "Video no encontrado",
|
||||
"writing-id3": "Escribiendo las etiquetas ID3…"
|
||||
}
|
||||
},
|
||||
"description": "Descarga MP3 / audio fuente directamente desde la interfaz",
|
||||
"menu": {
|
||||
"choose-download-folder": "Elija la carpeta de descarga",
|
||||
"download-playlist": "Descargar lista de reproducción",
|
||||
"presets": "Preajustes",
|
||||
"skip-existing": "Saltar archivos existentes"
|
||||
},
|
||||
"name": "Descargador",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "No se puede actualizar el progreso"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Descargar"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Hace que el control deslizante de volumen sea exponencial para que sea más fácil seleccionar volúmenes más bajos.",
|
||||
"name": "Volumen exponencial"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Da a las barras de menú un aspecto elegante, oscuro o del color de un álbum",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Ocultar controles de ventana DOM"
|
||||
},
|
||||
"name": "Menú de aplicación"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Añade soporte de scrobbling para Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Agrega soporte para Lumia Stream",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Añade el soporte para las letras para la mayoría de las canciones",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Letras Romanizadas"
|
||||
},
|
||||
"name": "Lyrics Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Letras recuperadas de Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Flechas de navegación Siguiente/Atrás directamente integradas en la interfaz, como en tu navegador favorito",
|
||||
"name": "Navegación"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Eliminar los botones y enlaces de inicio de sesión de Google de la interfaz",
|
||||
"name": "Sin inicio de sesión de Google"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Mostrar una notificación cuando empiece a sonar una canción (las notificaciones interactivas están disponibles en Windows)",
|
||||
"menu": {
|
||||
"interactive": "Notificaciones interactivas",
|
||||
"interactive-settings": {
|
||||
"label": "Ajustes interactivos",
|
||||
"submenu": {
|
||||
"hide-button-text": "Ocultar el texto del botón",
|
||||
"refresh-on-play-pause": "Actualizar al reproducir/pausar",
|
||||
"tray-controls": "Abrir/Cerrar al hacer clic en la bandeja"
|
||||
}
|
||||
},
|
||||
"priority": "Prioridad de notificación",
|
||||
"toast-style": "Estilo de mensaje emergente",
|
||||
"unpause-notification": "Mostrar notificación al reanudar"
|
||||
},
|
||||
"name": "Notificaciones"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permite cambiar la aplicación al modo de imagen en imagen",
|
||||
"menu": {
|
||||
"always-on-top": "Siempre encima",
|
||||
"hotkey": {
|
||||
"label": "Tecla de acceso rápido",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Tecla de acceso rápido"
|
||||
},
|
||||
"label": "Elige una tecla de acceso rápido para activar la función de imagen en imagen",
|
||||
"title": "Tecla de acceso directo a imagen en imagen"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Guardar la posición de la ventana",
|
||||
"save-window-size": "Guardar tamaño de la ventana",
|
||||
"use-native-pip": "Utilizar \"Dos imágenes a la vez\" PiP nativo del navegador"
|
||||
},
|
||||
"name": "Imagen en imagen",
|
||||
"templates": {
|
||||
"button": "Imagen en imagen"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Escucha rápido, escucha despacio! Añade un control deslizante que ajusta la velocidad de la canción",
|
||||
"name": "Velocidad de reproducción",
|
||||
"templates": {
|
||||
"button": "Velocidad"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Controla el volumen de manera precisa utilizando la rueda del ratón/teclas de acceso rápido, con una interfaz personalizada y pasos de volumen personalizables",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Controles de teclas de flechas locales",
|
||||
"custom-volume-steps": "Establecer niveles de volumen personalizados",
|
||||
"global-shortcuts": "Teclas de acceso rápido globales"
|
||||
},
|
||||
"name": "Volumen preciso",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Disminuir el volumen",
|
||||
"increase": "Aumentar el volumen"
|
||||
},
|
||||
"label": "Elija combinaciones de teclas para el volumen:",
|
||||
"title": "Combinaciones de teclas para el volumen"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Escoge los pasos de aumento o disminución del volumen",
|
||||
"title": "Niveles de volumen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Calidad actual: {{quality}}",
|
||||
"message": "Elija la calidad de vídeo:",
|
||||
"title": "Elija la calidad de vídeo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Permite cambiar la calidad del vídeo con un botón sobre puesto en el vídeo",
|
||||
"name": "Ajustador de calidad de vídeo"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Permite configurar teclas de acceso rápido globales para la reproducción (reproducir/pausa/siguiente/anterior) y desactivar el OSD multimedia anulando las teclas multimedia, activar Ctrl/CMD + F para buscar, activar la compatibilidad con MPRIS de Linux para las teclas multimedia y teclas de acceso rápido personalizadas para usuarios avanzados.",
|
||||
"menu": {
|
||||
"override-media-keys": "Anular teclas de medios",
|
||||
"set-keybinds": "Configurar controles globales de canciones"
|
||||
},
|
||||
"name": "Atajos (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Siguiente",
|
||||
"play-pause": "Reproducir / Pausa",
|
||||
"previous": "Anterior"
|
||||
},
|
||||
"label": "Elija combinaciones de teclas para el control de las canciones:",
|
||||
"title": "Atajos de teclado globales"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Omite las canciones que no le gustan",
|
||||
"name": "Saltar canciones que no me gustan"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Salta automáticamente las secciones silenciosas de las canciones",
|
||||
"name": "Saltar silencios"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Salta automáticamente las partes no musicales como la introducción/final o secciones de videos musicales donde la canción no está sonando",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Controla la reproducción desde la barra de tareas de Windows",
|
||||
"name": "Control de medios de la barra de tareas"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Añade un widget TouchBar para los usuarios de macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integración con el complemento Tuna de OBS",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Añade un botón para cambiar entre el modo Vídeo/Canción. también puede eliminar opcionalmente toda la pestaña de vídeo",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Alineación",
|
||||
"submenu": {
|
||||
"left": "Izquierda",
|
||||
"middle": "Medio",
|
||||
"right": "Derecha"
|
||||
}
|
||||
},
|
||||
"force-hide": "Forzar eliminación de la pestaña de vídeo",
|
||||
"mode": {
|
||||
"label": "Modo",
|
||||
"submenu": {
|
||||
"custom": "Alternador personalizado",
|
||||
"disabled": "Desactivado",
|
||||
"native": "Alternador nativo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Alternador de vídeo",
|
||||
"templates": {
|
||||
"button": "Canción"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Añadir un visualizador al reproductor",
|
||||
"menu": {
|
||||
"visualizer-type": "Tipo de visualizador"
|
||||
},
|
||||
"name": "Visualizador"
|
||||
}
|
||||
}
|
||||
}
|
||||
597
src/i18n/resources/fr.json
Normal file
597
src/i18n/resources/fr.json
Normal file
@ -0,0 +1,597 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Échec de l'exécution du plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} exécuté en {{ms}}ms",
|
||||
"initialize-failed": "Échec de l'initialisation du plugin \"{{pluginName}}\"",
|
||||
"load-all": "Chargement des plugins",
|
||||
"load-failed": "Échec du chargement du plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" chargé",
|
||||
"unload-failed": "Échec du déchargement du plugin \"{{pluginName}}\"",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" déchargé"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "fr",
|
||||
"local-name": "Français",
|
||||
"name": "French"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Chargement terminé. DevTools ouvert"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n chargé"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Received command over protocol : \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Erreur : ne répond pas !\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Effacement du cache de l'application"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "La fenêtre a essayé d'effectuer un rendu hors écran, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Le menu est masqué, utilisez « Alt » pour l'afficher (ou « Échap » si vous utilisez le menu de l'application)",
|
||||
"message": "Le masquage du menu est activé",
|
||||
"title": "Masquer le menu activé"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Plus tard",
|
||||
"restart-now": "Redémarrer maintenant"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" plugin nécessite un redémarrage pour qu'il soit pris en compte",
|
||||
"message": "\"{{pluginName}}\" a besoin d'un redémarrage",
|
||||
"title": "Redémarrage requis"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Quitté",
|
||||
"relaunch": "Relancer",
|
||||
"wait": "Attendre"
|
||||
},
|
||||
"detail": "Nous sommes désolés du dérangement ! veuillez choisir quoi faire :",
|
||||
"message": "L'application ne répond pas",
|
||||
"title": "La fenêtre ne répond pas"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Désactiver les mises à jour",
|
||||
"download": "Télécharger",
|
||||
"ok": "Ok"
|
||||
},
|
||||
"detail": "Une nouvelle version est disponible et peut-être télécharger sur {{downloadLink}}",
|
||||
"message": "Une nouvelle version est disponible",
|
||||
"title": "Mise à jour disponible"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "À-propos",
|
||||
"navigation": {
|
||||
"label": "Navigation",
|
||||
"submenu": {
|
||||
"copy-current-url": "Copier l'URL actuelle",
|
||||
"go-back": "Retour",
|
||||
"go-forward": "Avancer",
|
||||
"quit": "Quitter",
|
||||
"restart": "Redémarrer l'application"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Paramètres",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Options avancée",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Réinitialiser le cache de l'application au démarrage",
|
||||
"disable-hardware-acceleration": "Désactiver les accélérations matérielles",
|
||||
"edit-config-json": "Modifier config.json",
|
||||
"override-user-agent": "Remplacer le User-Agent",
|
||||
"restart-on-config-changes": "Redémarrer quand la configuration change",
|
||||
"set-proxy": {
|
||||
"label": "Définir un proxy",
|
||||
"prompt": {
|
||||
"label": "Entrez l'adresse proxy : (laissez vide pour désactiver)",
|
||||
"placeholder": "Exemple: socks5://127.0.0.1:9999",
|
||||
"title": "Définir un proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Ouvrir/fermer les outils de développement"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Toujours au dessus",
|
||||
"auto-update": "Mise à jour automatique",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Le menu sera masqué au prochain lancement, utilisez [Alt] pour l'afficher (ou backtick [`] si vous utilisez le menu intégré à l'application)",
|
||||
"title": "Masquer le menu activé"
|
||||
},
|
||||
"label": "Cacher le menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "La langue sera changée après le redémarrage",
|
||||
"title": "Langue modifiée"
|
||||
},
|
||||
"label": "Langue",
|
||||
"submenu": {
|
||||
"to-help-translate": "Envie d'aider à la traduction ? Cliquer ici"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Reprendre la dernière chanson quand l'application démarre",
|
||||
"single-instance-lock": "Verrouillage d'instance unique",
|
||||
"start-at-login": "Démarrer à la connexion",
|
||||
"starting-page": {
|
||||
"label": "Page de démarrage",
|
||||
"unset": "Définir à vide"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Plateau",
|
||||
"submenu": {
|
||||
"disabled": "Désactivé",
|
||||
"enabled-and-hide-app": "Activé et cacher l'app",
|
||||
"enabled-and-show-app": "Activé et afficher l'application",
|
||||
"play-pause-on-click": "Lecture/Pause au clic"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Ajustements visuels",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Par défaut",
|
||||
"force-show": "Forcer à apparaître",
|
||||
"hide": "Cacher",
|
||||
"label": "Boutons « J'aime »"
|
||||
},
|
||||
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
|
||||
"theme": {
|
||||
"label": "Thème",
|
||||
"submenu": {
|
||||
"import-css-file": "Importer fichier CSS personnalisé",
|
||||
"no-theme": "Pas de thème"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Activé",
|
||||
"label": "Extensions"
|
||||
},
|
||||
"view": {
|
||||
"label": "Vue",
|
||||
"submenu": {
|
||||
"force-reload": "Forcer l'actualisation",
|
||||
"reload": "Actualiser",
|
||||
"reset-zoom": "Taille réelle",
|
||||
"toggle-fullscreen": "Basculer en plein écran",
|
||||
"zoom-in": "Zoom avant",
|
||||
"zoom-out": "Zoom arrière"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Suivant",
|
||||
"play-pause": "Lecture/Pause",
|
||||
"previous": "Précédent",
|
||||
"quit": "Quitter",
|
||||
"restart": "Redémarrer l'application",
|
||||
"show": "Afficher la fenêtre"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Bloquer toutes les annonces et le suivi par défaut",
|
||||
"menu": {
|
||||
"blocker": "Bloqueur"
|
||||
},
|
||||
"name": "Bloqueur de publicités"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Applique un thème dynamique et des effets visuels basés sur la palette des couleurs de l'album",
|
||||
"name": "Thème de couleur d'album"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Applique un effet d'éclairage en jetant des couleurs douces de la vidéo, dans le fond de votre écran.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Quantité de flou",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixels"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Tampon",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Opacité",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Qualité",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pixels"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Taille",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Transition en douceur",
|
||||
"submenu": {
|
||||
"during": "Pendant {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Utilisation du mode plein écran"
|
||||
}
|
||||
},
|
||||
"name": "Mode ambiant"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Appliquer une compression à l'audio (diminue le volume des parties les plus fortes du signal et augmente le volume des parties les plus faibles)",
|
||||
"name": "Compresseur audio"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Rend la barre de navigation transparente et floue",
|
||||
"name": "Barre de navigation floue"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Contourner la vérification de l'âge de YouTube",
|
||||
"name": "Contourner les restrictions d’âge"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Sélecteur de sous-titres pour les pistes audio YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
|
||||
"disable-captions": "Pas de sous-titres par défaut"
|
||||
},
|
||||
"name": "Sélecteur de sous-titres",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Langue de sous-titrage actuelle : {{language}}",
|
||||
"none": "Aucun",
|
||||
"title": "Sélectionnez la langue des sous-titres"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Ouvrir le sélecteur de sous-titres"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Toujours définir la barre latérale en mode compact",
|
||||
"name": "Barre latérale compacte"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Fondu enchaîné entre les chansons",
|
||||
"menu": {
|
||||
"advanced": "Avancé"
|
||||
},
|
||||
"name": "Fondu enchaîné [bêta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Durée du fondu (millisecondes)",
|
||||
"fade-out-duration": "Durée du fondu (millisecondes)",
|
||||
"fade-scaling": {
|
||||
"label": "Mise à l'échelle du fondu",
|
||||
"linear": "Linéaire",
|
||||
"logarithmic": "Logarithmique"
|
||||
},
|
||||
"seconds-before-end": "Fondu enchaîné N secondes avant la fin"
|
||||
},
|
||||
"title": "Options de fondu enchaîné"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Fait démarrer la chanson en mode \"pause\"",
|
||||
"menu": {
|
||||
"apply-once": "S'applique seulement au démarrage"
|
||||
},
|
||||
"name": "Désactiver la lecture automatique"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Tentative de connexion avec une connexion active",
|
||||
"connected": "Connecté à Discord",
|
||||
"disconnected": "Déconnecté de Discord"
|
||||
},
|
||||
"description": "Montrez à vos amis ce que vous écoutez avec Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Reconnexion automatique",
|
||||
"clear-activity": "Effacer l'activité",
|
||||
"clear-activity-after-timeout": "Effacer l’activité après un délai d’attente",
|
||||
"connected": "Connecté",
|
||||
"disconnected": "Déconnecté",
|
||||
"hide-duration-left": "Masquer la durée restante",
|
||||
"hide-github-button": "Masquer le bouton du lien GitHub",
|
||||
"play-on-youtube-music": "Jouer sur YouTube Music",
|
||||
"set-inactivity-timeout": "Définir le délai d'inactivité"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Entrez le délai d'inactivité en secondes :",
|
||||
"title": "Définir le délai d'inactivité"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "Ok"
|
||||
},
|
||||
"message": "Argh ! Désolé, le téléchargement a échoué…",
|
||||
"title": "Erreur de téléchargement !"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "Ok"
|
||||
},
|
||||
"detail": "({{playlistSize}} chansons)",
|
||||
"message": "Téléchargement de la playlist {{playlistTitle}}",
|
||||
"title": "Téléchargement a commencé"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Conversion : {{percent}} %",
|
||||
"converting": "Conversion…",
|
||||
"done": "Terminé : {{filePath}}",
|
||||
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Télécharger: {{percent}}%",
|
||||
"downloading": "Télécharge…",
|
||||
"downloading-counter": "Télécharge {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\" – {{playlistSize}} chansons ({{playlistId}})",
|
||||
"error-while-downloading": "Erreur lors du téléchargement de \"{{author}} - {{title}}\" : {{error}}",
|
||||
"folder-already-exists": "Le dossier {{playlistFolder}} existe déjà",
|
||||
"getting-playlist-info": "Obtention d'informations sur la liste de lecture…",
|
||||
"loading": "Chargement…",
|
||||
"playlist-has-only-one-song": "La liste de lecture ne contient qu'un seul élément, téléchargement du morceau seul",
|
||||
"playlist-id-not-found": "Aucun ID de liste de lecture trouvé",
|
||||
"playlist-is-empty": "La liste de lecture est vide",
|
||||
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la liste de lecture : assurez-vous qu'il ne s'agit pas d'une liste privée ou \"Mixée pour vous\"\n\n{{error}}",
|
||||
"preparing-file": "Péparer des fichier…",
|
||||
"saving": "Sauvegarde…",
|
||||
"trying-to-get-playlist-id": "Obtention de l'ID de la liste de lecture : {{playlistId}}",
|
||||
"video-id-not-found": "Vidéo non trouvée",
|
||||
"writing-id3": "Écriture des balises ID3…"
|
||||
}
|
||||
},
|
||||
"description": "Télécharge les fichiers MP3/source audio directement depuis l'interface",
|
||||
"menu": {
|
||||
"choose-download-folder": "Choisissez le dossier de téléchargement",
|
||||
"download-playlist": "Télécharger la liste de lecture",
|
||||
"presets": "Préconfigurations",
|
||||
"skip-existing": "Passer les fichiers existants"
|
||||
},
|
||||
"name": "Téléchargeur",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Impossible de mettre à jour la progression"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Télécharger"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Rend le curseur de volume exponentiel afin qu'il soit plus facile de sélectionner des volumes plus faibles.",
|
||||
"name": "Volume exponentiel"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Donne aux barres de menus un aspect élégant, sombre ou aux couleurs de l'album",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Masquer les contrôles de la fenêtre DOM"
|
||||
},
|
||||
"name": "Menu intégré à l'application"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Ajouter le support du scrobbling pour Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Ajoute la prise en charge de Lumia Stream",
|
||||
"name": "Lumia Stream [bêta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Paroles romanisées"
|
||||
},
|
||||
"name": "Paroles Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Paroles récupérées pour Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Flèches de navigation Suivant/Retour directement intégrées dans l'interface, comme dans votre navigateur préféré",
|
||||
"name": "Navigation"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Supprimer les boutons et liens de connexion Google de l'interface",
|
||||
"name": "Pas de connexion Google"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Afficher une notification quand une chanson commence à jouer (les notifications interactives sont disponibles sur Windows)",
|
||||
"menu": {
|
||||
"interactive": "Notifications interactives",
|
||||
"interactive-settings": {
|
||||
"label": "Paramètres interactifs",
|
||||
"submenu": {
|
||||
"hide-button-text": "Masquer le texte du bouton",
|
||||
"refresh-on-play-pause": "Actualiser lors de la lecture/pause",
|
||||
"tray-controls": "Ouvrir/Fermer sur le plateau, cliquez"
|
||||
}
|
||||
},
|
||||
"priority": "Priorité des notifications",
|
||||
"toast-style": "Style des notifications \"Toast\"",
|
||||
"unpause-notification": "Afficher la notification lors de la reprise"
|
||||
},
|
||||
"name": "Notifications"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permet de basculer l’application en mode image dans image",
|
||||
"menu": {
|
||||
"always-on-top": "Toujours en haut",
|
||||
"hotkey": {
|
||||
"label": "Raccourci clavier",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Raccourci clavier"
|
||||
},
|
||||
"label": "Choisissez un raccourci clavier pour activer l'image dans l'image",
|
||||
"title": "Touche de raccourci Image dans l'image"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Enregistrer la position de la fenêtre",
|
||||
"save-window-size": "Enregistrer la taille de la fenêtre",
|
||||
"use-native-pip": "Utiliser le mode image dans image natif du navigateur"
|
||||
},
|
||||
"name": "Image dans l'image",
|
||||
"templates": {
|
||||
"button": "Image dans l'image"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson",
|
||||
"name": "Vitesse de lecture",
|
||||
"templates": {
|
||||
"button": "Vitesse"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Contrôlez le volume avec précision à l'aide de la molette de la souris/des raccourcis clavier, avec une interface personnalisée et des étapes de volume personnalisables",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Contrôles avec les touches fléchées",
|
||||
"custom-volume-steps": "Définir des étapes de volume personnalisées",
|
||||
"global-shortcuts": "Raccourcis clavier globaux"
|
||||
},
|
||||
"name": "Volume précis",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Diminuer le volume",
|
||||
"increase": "Augmenter le volume"
|
||||
},
|
||||
"label": "Choisissez les raccourcis clavier du volume global :",
|
||||
"title": "Raccourcis clavier de volume global"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Choisissez les étapes d'augmentation/diminution du volume",
|
||||
"title": "Étapes de volume"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Qualité actuelle : {{quality}}",
|
||||
"message": "Choisissez la qualité vidéo :",
|
||||
"title": "Choisissez la qualité vidéo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Permet de changer la qualité vidéo avec un bouton sur la vidéo",
|
||||
"name": "Changeur de qualité vidéo"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Permet de définir des raccourcis clavier globaux pour la lecture (lecture/pause/suivant/précédent) + désactiver l'OSD multimédia en remplaçant les touches multimédias + activer Ctrl/CMD + F pour rechercher + activer la prise en charge Linux MPRIS pour les touches multimédias + raccourcis clavier personnalisés pour les utilisateurs avancés",
|
||||
"menu": {
|
||||
"override-media-keys": "Remplacer les touches multimédias",
|
||||
"set-keybinds": "Définir les contrôles globaux des morceaux"
|
||||
},
|
||||
"name": "Raccourcis (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Suivant",
|
||||
"play-pause": "Lecture / Pause",
|
||||
"previous": "Précédent"
|
||||
},
|
||||
"label": "Choisissez les raccourcis clavier globaux pour le contrôle des morceaux :",
|
||||
"title": "Raccourcis clavier globaux"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Passer les musiques que je n'aime pas"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Ignorer automatiquement les sections de silence dans les chansons",
|
||||
"name": "Passer les silences"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Saute automatiquement les parties non musicales comme l'intro/outro ou les parties de clips vidéo où la chanson n'est pas lue",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Contrôlez la lecture depuis votre barre des tâches Windows",
|
||||
"name": "Contrôle multimédia de la barre des tâches"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Ajoute un widget TouchBar pour les utilisateurs de macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Intégration avec le plugin OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Ajoute un bouton pour basculer entre le mode Vidéo/Chanson. peut également supprimer tout l'onglet vidéo",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Alignement",
|
||||
"submenu": {
|
||||
"left": "Gauche",
|
||||
"middle": "Milieu",
|
||||
"right": "Droite"
|
||||
}
|
||||
},
|
||||
"force-hide": "Forcer la suppression de l'onglet vidéo",
|
||||
"mode": {
|
||||
"label": "Mode",
|
||||
"submenu": {
|
||||
"custom": "Bascule personnalisée",
|
||||
"disabled": "Désactivé",
|
||||
"native": "Bascule native"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Basculer la vidéo",
|
||||
"templates": {
|
||||
"button": "Musique"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Ajoute un visualiseur au lecteur",
|
||||
"menu": {
|
||||
"visualizer-type": "Type de visualiseur"
|
||||
},
|
||||
"name": "Visualiseur"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/i18n/resources/id.json
Normal file
19
src/i18n/resources/id.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Gagal saat mengeksekusi plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} dieksekusi pada {{ms}}ms",
|
||||
"initialize-failed": "Gagal dalam menginisialisasi plugin \"{{pluginName}}\"",
|
||||
"load-all": "Memuat semua plugin",
|
||||
"load-failed": "Gagal memuat plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" dimuat"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "id",
|
||||
"local-name": "Bahasa Indonesia",
|
||||
"name": "Indonesian"
|
||||
}
|
||||
}
|
||||
598
src/i18n/resources/it.json
Normal file
598
src/i18n/resources/it.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "È stato impossibile eseguire il plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Il plugin {{pluginName}}:{{contextName}} è stato eseguito a {{ms}}ms",
|
||||
"initialize-failed": "Inizializzazione del plugin \"{{pluginName}}\" fallita",
|
||||
"load-all": "Carica tutti i plugin",
|
||||
"load-failed": "Caricamento del plugin \"{{pluginName}}\" non riuscito",
|
||||
"loaded": "Plugin \"{{pluginName}}\" caricato",
|
||||
"unload-failed": "Rimozione del plugin \"{{pluginName}}\" fallita",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" rimosso"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "it",
|
||||
"local-name": "Italiano",
|
||||
"name": "Italian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Caricamento concluso. DevTools aperto"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n caricato"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Comando ricevuto tramite protocollo: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Il file CSS \"{{cssFile}}\" non esiste, ignorato"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Errore di mancata risposta!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Sto liberando la cache dell'app"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "La finestra ha cercato di renderizzare fuori schermo, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}\""
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Il menu è nascosto, utilizza 'Alt' per visualizzarlo (o 'Escape' se si utilizza il Menu In-App)\"",
|
||||
"message": "'Nascondi menu' è attivo",
|
||||
"title": "'Nascondi menu' attivo"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "In seguito",
|
||||
"restart-now": "Riavvia ora"
|
||||
},
|
||||
"detail": "Riavviare per attivare il plugin\"{{pluginName}}\"",
|
||||
"message": "\"{{pluginName}}\" deve essere riavviato",
|
||||
"title": "Riavvio richiesto"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Arresta",
|
||||
"relaunch": "Riavvia",
|
||||
"wait": "Attendi"
|
||||
},
|
||||
"detail": "Ci dispiace per l'inconveniente! Scegli cosa fare:",
|
||||
"message": "L'applicazione non risponde",
|
||||
"title": "La finestra non risponde"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Disattiva gli aggiornamenti",
|
||||
"download": "Download",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "È disponibile una nuova versione scaricabile all'indirizzo {{downloadLink}}",
|
||||
"message": "È disponibile una nuova versione",
|
||||
"title": "Aggiornamento disponibile"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Informazioni",
|
||||
"navigation": {
|
||||
"label": "Navigazione",
|
||||
"submenu": {
|
||||
"copy-current-url": "Copia l'URL corrente",
|
||||
"go-back": "Pagina indietro",
|
||||
"go-forward": "Pagina avanti",
|
||||
"quit": "Esci",
|
||||
"restart": "Riavvia l'app"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opzioni",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Opzioni avanzate",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Reimposta la cache dell'app quando viene riavviata",
|
||||
"disable-hardware-acceleration": "Disabilita l'accelerazione hardware",
|
||||
"edit-config-json": "Modificare config.json",
|
||||
"override-user-agent": "Sovrascrivi User-Agent",
|
||||
"restart-on-config-changes": "Riavvia alla modifica delle impostazioni",
|
||||
"set-proxy": {
|
||||
"label": "Imposta il proxy",
|
||||
"prompt": {
|
||||
"label": "Inserisci l'indirizzo proxy: (lascia vuoto per disabilitare)",
|
||||
"placeholder": "Esempio: SOKS5://127.0.0.1:9999",
|
||||
"title": "Imposta il proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Attiva/disattiva DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Sempre in cima",
|
||||
"auto-update": "Aggiornamento automatico",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Il menu verrà nascosto al prossimo avvio. Utilizzare [Alt] per mostrarlo (o backtick [`] se si utilizza il Menu In-App)",
|
||||
"title": "Nascondi menu abilitato"
|
||||
},
|
||||
"label": "Nascondi menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "La lingua verrà cambiata dopo il riavvio",
|
||||
"title": "Lingua cambiata"
|
||||
},
|
||||
"label": "Lingua",
|
||||
"submenu": {
|
||||
"to-help-translate": "Vuoi aiutare a tradurre? Clicca qui"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Riprendi a riprodurre l'ultimo brano all'avvio dell'app",
|
||||
"single-instance-lock": "Permetti una sola istanza dell'app",
|
||||
"start-at-login": "Avvia al login",
|
||||
"starting-page": {
|
||||
"label": "Pagina iniziale",
|
||||
"unset": "Non impostato"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Mostra icona nel tray",
|
||||
"submenu": {
|
||||
"disabled": "Disabilita",
|
||||
"enabled-and-hide-app": "Abilita e nascondi l'app",
|
||||
"enabled-and-show-app": "Abilita e mostra l'app",
|
||||
"play-pause-on-click": "Riproduci/Pausa al click sull'icona"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Miglioramenti visivi",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Predefinito",
|
||||
"force-show": "Forza la visualizzazione",
|
||||
"hide": "Nascondi",
|
||||
"label": "Pulsanti Like"
|
||||
},
|
||||
"remove-upgrade-button": "Rimuovi il pulsante aggiorna",
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Importa file CSS personalizzato",
|
||||
"no-theme": "Nessun tema"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Attivato",
|
||||
"label": "Plugin"
|
||||
},
|
||||
"view": {
|
||||
"label": "Visualizzazione",
|
||||
"submenu": {
|
||||
"force-reload": "Forza l'aggiornamento",
|
||||
"reload": "Aggiorna",
|
||||
"reset-zoom": "Ripristina dimensione",
|
||||
"toggle-fullscreen": "Attiva/disattiva Schermo Intero",
|
||||
"zoom-in": "Zoom in",
|
||||
"zoom-out": "Zoom out"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Prossimo",
|
||||
"play-pause": "Riproduci/Pausa",
|
||||
"previous": "Precedente",
|
||||
"quit": "Esci",
|
||||
"restart": "Riavvia l'app",
|
||||
"show": "Mostra finestra"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Blocca tutti gli annunci e i tracker",
|
||||
"menu": {
|
||||
"blocker": "Blocco"
|
||||
},
|
||||
"name": "Adblocker"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Applica un tema dinamico e degli effetti visivi basandosi sul colore dell'album",
|
||||
"name": "Tema abbinato a colore album"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Applica un effetto di illuminazione proiettando i colori delicati del video sullo sfondo dello schermo.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Intensità sfocatura",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixel"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buffer",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Trasparenza",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Qualità",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pixel"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Dimensione",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Fluidità transizione",
|
||||
"submenu": {
|
||||
"during": "Per {{interpolationTime}} _s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Utilizzo di schermo intero"
|
||||
}
|
||||
},
|
||||
"name": "Modalità Ambiente"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Attiva la compressione audio (abbassa il volume delle parti più alte e alza quello delle parti più basse del segnale)",
|
||||
"name": "Compressore audio"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Rende la barra di navigazione trasparente e sfuocata",
|
||||
"name": "Barra di navigazione trasparente"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Bypassa la verifica dell'età di YouTube",
|
||||
"name": "Aggira i limiti d'età"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Selettore sottotitolo per le tracce audio di YouTube",
|
||||
"menu": {
|
||||
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
|
||||
"disable-captions": "Disattiva i sottotitoli"
|
||||
},
|
||||
"name": "Selettore Sottotitoli",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Lingua del sottotitolo attuale: {{language}}",
|
||||
"none": "Nessuno",
|
||||
"title": "Scegli la lingua del sottotitolo"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Apri il selettore dei sottotitoli"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Imposta sempre la barra laterale in modalità compatta",
|
||||
"name": "Barra laterale compatta"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Crossfade tra i brani",
|
||||
"menu": {
|
||||
"advanced": "Impostazioni avanzate"
|
||||
},
|
||||
"name": "Crossfade [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Durata dissolvenza in entrata (ms)",
|
||||
"fade-out-duration": "Durata dissolvenza in uscita (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Transizione dissolvenza",
|
||||
"linear": "Lineare",
|
||||
"logarithmic": "Logaritmica"
|
||||
},
|
||||
"seconds-before-end": "N° secondi di crossfade prima della fine"
|
||||
},
|
||||
"title": "Opzioni crossfade"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Fa iniziare i brani in modalità \"pausa\"",
|
||||
"menu": {
|
||||
"apply-once": "Solo all'avvio"
|
||||
},
|
||||
"name": "Disattiva autoplay"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Tenta di connettersi con connessione attiva",
|
||||
"connected": "Connesso a Discord",
|
||||
"disconnected": "Scollegato da Discord"
|
||||
},
|
||||
"description": "Mostra ai tuoi amici cosa ascolti con Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Riconnessione automatica",
|
||||
"clear-activity": "Rimuovi attività",
|
||||
"clear-activity-after-timeout": "Cancella attività dopo il timeout",
|
||||
"connected": "Connesso",
|
||||
"disconnected": "Disconnesso",
|
||||
"hide-duration-left": "Nascondi la durata rimasta",
|
||||
"hide-github-button": "Nascondi il pulsante link a GitHub",
|
||||
"play-on-youtube-music": "Riproduci su YouTube Music",
|
||||
"set-inactivity-timeout": "Imposta il timeout di inattività"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Inserisci il timeout di inattività in secondi:",
|
||||
"title": "Imposta il timeout di inattività"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Mi dispiace, download fallito…",
|
||||
"title": "Errore nel download!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} canzoni)",
|
||||
"message": "Scarica Playlist {{playlistTitle}}",
|
||||
"title": "Download iniziato"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Conversione: {{percent}}%",
|
||||
"converting": "Sto convertendo…",
|
||||
"done": "Fatto: {{filePath}}",
|
||||
"download-info": "Sto scaricando {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Download: {{percent}}%",
|
||||
"downloading": "Sto scaricando…",
|
||||
"downloading-counter": "Sto scaricando {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Sto scaricando la playlist \"{{playlistTitle}}\" - {{playlistSize}} brani({{playlistId}})",
|
||||
"error-while-downloading": "Errore di download \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "La cartella {{playlistFolder}} è già esistente",
|
||||
"getting-playlist-info": "Sto ottenendo le info sulla playlist…",
|
||||
"loading": "Caricamento…",
|
||||
"playlist-has-only-one-song": "La playlist ha un solo elemento, lo sto scaricando direttamente",
|
||||
"playlist-id-not-found": "Nessun ID playlist trovato",
|
||||
"playlist-is-empty": "La playlist è vuota",
|
||||
"playlist-is-mix-or-private": "Errore nell'ottenere info sulla playlist: assicurati che non sia una playlist privata o un \"Mixtape per te\"\n\n{{error}}",
|
||||
"preparing-file": "Sto preparando il file…",
|
||||
"saving": "Sto salvando…",
|
||||
"trying-to-get-playlist-id": "Sto cercando di ottenere l'ID della playlist: {{playlistId}}",
|
||||
"video-id-not-found": "Video non trovato",
|
||||
"writing-id3": "Sto scrivendo i tag ID3…"
|
||||
}
|
||||
},
|
||||
"description": "Download MP3 / sorgenti audio direttamente dall'interfaccia",
|
||||
"menu": {
|
||||
"choose-download-folder": "Scegli cartella download",
|
||||
"download-playlist": "Scarica la playlist",
|
||||
"presets": "Preimpostazioni",
|
||||
"skip-existing": "Salta i file esistenti"
|
||||
},
|
||||
"name": "Downloader",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Impossibile aggiornare l'avanzamento"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Scarica"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Rende esponenziale il cursore del volume, in modo da facilitare la selezione di volumi più bassi.",
|
||||
"name": "Volume esponenziale"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Migliora l'aspetto delle barre del menu con un look scuro o basato sul colore dell'album",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Nascondi i controlli delle finestre DOM"
|
||||
},
|
||||
"name": "Menu In-App"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Aggiungi supporto per lo scrobbling su Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Aggiungi supporto per Lumia Stream",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Aggiunge il supporto dei testi per la maggior parte delle canzoni",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Alfabeto latino per i brani con testo in caratteri orientali"
|
||||
},
|
||||
"name": "Lyrics Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Testi recuperati per Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Frecce di navigazione Avanti/Indietro integrate direttamente nell'interfaccia, come nel tuo browser preferito",
|
||||
"name": "Navigazione"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Rimuovi i pulsanti di accesso e i link di Google dall'interfaccia",
|
||||
"name": "Nessun login di Google"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Mostra una notifica quando viene riprodotto un brano (le notifiche interattive sono disponibili su Windows)",
|
||||
"menu": {
|
||||
"interactive": "Notifiche interattive",
|
||||
"interactive-settings": {
|
||||
"label": "Impostazioni dell'interazione",
|
||||
"submenu": {
|
||||
"hide-button-text": "Nascondi il testo del pulsante",
|
||||
"refresh-on-play-pause": "Refresh quando si preme Riproduci/Pausa",
|
||||
"tray-controls": "Apri/chiudi cliccando l'icona nel tray"
|
||||
}
|
||||
},
|
||||
"priority": "Priorità di notifica",
|
||||
"toast-style": "Stile Toast",
|
||||
"unpause-notification": "Mostra notifica quando riprendi ascolto"
|
||||
},
|
||||
"name": "Notifiche"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Consente di far passare l'app alla modalità Picture-in-Picture",
|
||||
"menu": {
|
||||
"always-on-top": "Sempre in primo piano",
|
||||
"hotkey": {
|
||||
"label": "Hotkey",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Hotkey"
|
||||
},
|
||||
"label": "Scegliere un'hotkey per attivare Picture-in-picture",
|
||||
"title": "Picture-in-picture Hotkey"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Salva la posizione della finestra",
|
||||
"save-window-size": "Salva la dimensione della finestra",
|
||||
"use-native-pip": "Usa il PiP nativo del browser"
|
||||
},
|
||||
"name": "Picture-in-Picture",
|
||||
"templates": {
|
||||
"button": "Picture-in-Picture"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Ascolto veloce, ascolto lento! Aggiunge un cursore che controlla la velocità di riproduzione del brano",
|
||||
"name": "Velocità riproduzione",
|
||||
"templates": {
|
||||
"button": "Velocità"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Controlla con precisione il volume utilizzando la rotella del mouse, le hotkey o i tasti freccia e usando incrementi di volume personalizzabili",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Controlla con i tasti freccia",
|
||||
"custom-volume-steps": "Imposta incrementi di volume personalizzati",
|
||||
"global-shortcuts": "Hotkey globali"
|
||||
},
|
||||
"name": "Volume preciso",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Diminuisci volume",
|
||||
"increase": "Aumenta volume"
|
||||
},
|
||||
"label": "Scegli i tasti di scelta rapida regolazione volume:",
|
||||
"title": "Tasti di scelta rapida regolazione volume"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Seleziona l'incremento/decremento del volume",
|
||||
"title": "Incrementi volume"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Qualità attuale: {{quality}}",
|
||||
"message": "Qualità Video:",
|
||||
"title": "Scegli la qualità video"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Permette di cambiare la qualità del video con un pulsante in sovrimpressione",
|
||||
"name": "Cambia qualità video"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Consente di impostare tasti di scelta rapida globali per la riproduzione (riproduci/pausa/successivo/precedente) + disabilita l'OSD multimediale sovrascrivendo i tasti multimediali + abilita Ctrl/CMD + F per la ricerca + abilita il supporto Linux MPRIS per i tasti multimediali + tasti di scelta rapida personalizzati per utenti avanzati.",
|
||||
"menu": {
|
||||
"override-media-keys": "Ridefinisci i tasti multimediali",
|
||||
"set-keybinds": "Imposta i controlli brano globali"
|
||||
},
|
||||
"name": "Scorciatoie (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Prossimo",
|
||||
"play-pause": "Riproduci / Pausa",
|
||||
"previous": "Precedente"
|
||||
},
|
||||
"label": "Scegli combinazioni di tasti per il controllo dei brani:",
|
||||
"title": "Combinazioni di tasti"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Salta i brani che non ti piacciono",
|
||||
"name": "Salta i brani che non ti piacciono"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Salta automaticamente le parti silenziose nei brani",
|
||||
"name": "Salta silenzi"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Salta automaticamente le parti non musicali, come l'intro/outro delle canzoni o le parti dei video musicali in cui non viene riprodotto il brano",
|
||||
"name": "Blocco sponsor"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Controlla riproduzione dalla taskbar di Windows",
|
||||
"name": "Controlli multimediali sulla taskbar"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Aggiunge un widget TouchBar per gli utenti macOS",
|
||||
"name": "Touch Bar (per MacOS)"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integrazione con il plugin OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Aggiunge un pulsante per passare dalla modalità Video a quella Brano. Può anche rimuovere l'intera scheda Brano/Video",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Allineamento",
|
||||
"submenu": {
|
||||
"left": "Sinistra",
|
||||
"middle": "Centro",
|
||||
"right": "Destra"
|
||||
}
|
||||
},
|
||||
"force-hide": "Rimuovi la scheda Brano/Video",
|
||||
"mode": {
|
||||
"label": "Modalità",
|
||||
"submenu": {
|
||||
"custom": "Brano/Video personalizzato",
|
||||
"disabled": "Disattivato",
|
||||
"native": "Brano/Video nativo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Selettore Brano/Video",
|
||||
"templates": {
|
||||
"button": "Brano"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Sostituisce al Video un visualizzatore grafico",
|
||||
"menu": {
|
||||
"visualizer-type": "Tipo di visualizzazione"
|
||||
},
|
||||
"name": "Visualizzatore grafico"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -105,7 +105,7 @@
|
||||
"label": "プロキシ",
|
||||
"prompt": {
|
||||
"label": "プロキシのアドレスを入力: (空にすると無効化)",
|
||||
"placeholder": "例: socks5://127.0.0.1:9999",
|
||||
"placeholder": "例: SOCKS5://127.0.0.1:9999",
|
||||
"title": "プロキシ"
|
||||
}
|
||||
},
|
||||
@ -519,7 +519,7 @@
|
||||
"name": "ビデオ品質チェンジャー"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "再生用のグローバル ホットキー (再生/一時停止/次/前) の設定 + メディア キーをオーバーライドしてメディア OSD を無効にする + Ctrl/CMD + F による検索を有効にする + メディアキーの Linux mpris サポートを有効にする + 上級ユーザー向けのカスタム ホットキー を可能にします",
|
||||
"description": "再生用のグローバル ホットキー (再生/一時停止/次/前) の設定、メディア キーをオーバーライドしてメディア OSD を無効にする、Ctrl/CMD + F による検索を有効にする、 メディアキーの Linux mpris サポートを有効にする、 上級ユーザー向けのカスタム ホットキー を可能にします",
|
||||
"menu": {
|
||||
"override-media-keys": "メディアキーを上書き",
|
||||
"set-keybinds": "グローバルソングコントロールを設定する"
|
||||
@ -537,6 +537,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "低評価と表示された曲をスキップします",
|
||||
"name": "低評価曲をスキップ"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "曲の無音区間を自動でスキップ",
|
||||
"name": "無音区間をスキップ"
|
||||
|
||||
@ -105,7 +105,7 @@
|
||||
"label": "프록시 설정",
|
||||
"prompt": {
|
||||
"label": "프록시 주소를 입력하세요: (비워두면 비활성화됨)",
|
||||
"placeholder": "예제: socks5://127.0.0.1:9999",
|
||||
"placeholder": "예제: SOCKS5://127.0.0.1:9999",
|
||||
"title": "프록시 설정"
|
||||
}
|
||||
},
|
||||
@ -197,9 +197,9 @@
|
||||
"adblocker": {
|
||||
"description": "모든 광고와 트래커를 즉시 차단합니다",
|
||||
"menu": {
|
||||
"blocker": "애드블록 타입"
|
||||
"blocker": "광고 차단 타입"
|
||||
},
|
||||
"name": "애드블록"
|
||||
"name": "광고 차단기"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "앨범 색상 팔레트를 기반으로 동적 테마 및 시각 효과를 적용합니다",
|
||||
@ -519,7 +519,7 @@
|
||||
"name": "영상 품질 체인저"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "재생을 위한 전역 단축키 설정 허용 (재생/일시 정지/다음/이전) + 미디어 키를 재정의하여 미디어 OSD 비활성화 + Ctrl/CMD + F 검색 활성화 + 미디어 키에 대한 리눅스 MPRIS 지원 활성화 + 고급 사용자를 위한 사용자 지정 단축키 지원",
|
||||
"description": "재생을 위한 전역 단축키 설정 허용 (재생/일시 정지/다음/이전), 미디어 키를 재정의하여 미디어 OSD 비활성화, Ctrl/CMD + F 검색을 활성화, 미디어키 지원을 위해 리눅스 MPRIS 지원 활성화, 고급 사용자를 위한 사용자 지정 단축키 지원 추가.",
|
||||
"menu": {
|
||||
"override-media-keys": "미디어 키 재정의",
|
||||
"set-keybinds": "전역 노래 제어 설정"
|
||||
@ -537,6 +537,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "싫어요 표시된 노래를 건너뜁니다",
|
||||
"name": "싫어요 표시 노래 건너뛰기"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "노래의 무음 부분을 자동으로 건너뜁니다",
|
||||
"name": "무음 건너뛰기"
|
||||
|
||||
598
src/i18n/resources/lt.json
Normal file
598
src/i18n/resources/lt.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Nepavyko įvykdyti įskiepio {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Įskiepis {{pluginName}}::{{contextName}} įvykdytas per {{ms}}ms",
|
||||
"initialize-failed": "Nepavyko inicijuoti įskiepio \"{{pluginName}}\"",
|
||||
"load-all": "Kraunama visus įskiepius",
|
||||
"load-failed": "Nepavyko užkrauti įskiepio \"{{pluginName}}\"",
|
||||
"loaded": "Įskiepis \"{{pluginName}}\" užkrautas",
|
||||
"unload-failed": "Nepavyko iškrauti įskiepio \"{{pluginName}}\"",
|
||||
"unloaded": "Įskiepis \"{{pluginName}}\" iškrautas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "lt",
|
||||
"local-name": "Lietuvių kalba",
|
||||
"name": "Lithuanian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Baigta krauti. \"DevTools\" atidaryta"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "\"i18n\" užkrauta"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Gauta komanda per protokolą: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS failas \"{{cssFile}}\" neegzistuoja, ignoruojama"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Nereguojanti paklaida\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Išvaloma programos talpykla"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Langas bandė vaizduotis už ekrano ribų, langoDydis={{windowSize}}, ekranoDydis={{displaySize}}, pozicija={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Meniu yra paslėpta, naudokite 'Alt', kad ją parodyti (arba 'Escape' jei naudojama programos meniu)",
|
||||
"message": "\"Paslėpti Meniu\" yra įjungta",
|
||||
"title": "Įjungta \"Paslėpti Meniu\""
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Vėliau",
|
||||
"restart-now": "Perkrauti Dabar"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" įskiepis reikalauja perkrovimą, kad veiktų",
|
||||
"message": "\"{{pluginName}}\" reikia perkrovimo",
|
||||
"title": "Reikiamas perkrovimas"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Išeiti",
|
||||
"relaunch": "Perleisti",
|
||||
"wait": "Palaukti"
|
||||
},
|
||||
"detail": "Mes apgailestaujame dėl nepatogumų! prašau pasirinkti ką daryti:",
|
||||
"message": "Programa Neatsako",
|
||||
"title": "Langas Neatsako"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Išjungti Atnaujinimus",
|
||||
"download": "Atsisiųsti",
|
||||
"ok": "Gerai"
|
||||
},
|
||||
"detail": "Nauja versija yra prieinama ir gali būti atsisiųsta {{downloadLink}}",
|
||||
"message": "Nauja versija yra prieinama",
|
||||
"title": "Prieinamas Atnaujinimas"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Apie",
|
||||
"navigation": {
|
||||
"label": "Navigacija",
|
||||
"submenu": {
|
||||
"copy-current-url": "Nukopijuoti dabartinį URL",
|
||||
"go-back": "Grįžti Atgal",
|
||||
"go-forward": "Eiti į priekį",
|
||||
"quit": "Išeiti",
|
||||
"restart": "Perkrauti programą"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Nustatymai",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Išplėstiniai nustatymai",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Perkrauti programos talpyklą, kai programa paleidžiama",
|
||||
"disable-hardware-acceleration": "Išjungti aparatūros pagreitį",
|
||||
"edit-config-json": "Redaguoti config.json",
|
||||
"override-user-agent": "Perrašyti User-Agent",
|
||||
"restart-on-config-changes": "Perkrauti po config pasikeitimo",
|
||||
"set-proxy": {
|
||||
"label": "Nustatyti įgaliotajį serverį",
|
||||
"prompt": {
|
||||
"label": "Įvesti Įgaliotojo serverio adresą: (palikti tuščią, kad išjungti)",
|
||||
"placeholder": "Pavyzdys: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Nustatyti įgaliotajį serverį"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Įjungti/Išjungti DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Visada viršuje",
|
||||
"auto-update": "Automatinis Atnaujinimas",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Meniu bus paslėpta per kitą paleidimą, naudokite [Alt], kad ją parodyti (arba [`] jei naudojama programos meniu)",
|
||||
"title": "\"Paslėpti Meniu\" įjungtas"
|
||||
},
|
||||
"label": "Paslėpti Meniu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Kalba bus pakeista po perkrovimo",
|
||||
"title": "Kalba Pakeista"
|
||||
},
|
||||
"label": "Kalba",
|
||||
"submenu": {
|
||||
"to-help-translate": "Norite padėti išversti? Paspauskite čia"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Tęsti paskutinę dainą, kai programa bus paleista",
|
||||
"single-instance-lock": "Vienkartinis užraktas",
|
||||
"start-at-login": "Pradėti nuo prisijungimo",
|
||||
"starting-page": {
|
||||
"label": "Pradžios puslapis",
|
||||
"unset": "Nenustatyta"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Padėklas",
|
||||
"submenu": {
|
||||
"disabled": "Išjungta",
|
||||
"enabled-and-hide-app": "Įjungta ir slėpti programos langą",
|
||||
"enabled-and-show-app": "Įjungta ir rodyti programos langą",
|
||||
"play-pause-on-click": "Leisti/Sustabdyti ant paspaudimo"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vizualiniai patobulinimai",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Numatytasis",
|
||||
"force-show": "Priversti rodyti",
|
||||
"hide": "Slėpti",
|
||||
"label": "\"Patinka\" mygtukai"
|
||||
},
|
||||
"remove-upgrade-button": "Nerodyti \"Patobulinti\" mygtuko",
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Įkelti pasirinktinį CSS failą",
|
||||
"no-theme": "Be temos"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Įjungta",
|
||||
"label": "Įskiepiai"
|
||||
},
|
||||
"view": {
|
||||
"label": "Vaizdas",
|
||||
"submenu": {
|
||||
"force-reload": "Priverstinis perkrovimas",
|
||||
"reload": "Perkrauti",
|
||||
"reset-zoom": "Tikras dydis",
|
||||
"toggle-fullscreen": "Įjungti/Išjungti Pilną Ekraną",
|
||||
"zoom-in": "Priartinti",
|
||||
"zoom-out": "Nutolinti"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Kitas",
|
||||
"play-pause": "Leisti/Sustabdyti",
|
||||
"previous": "Ankstesnis",
|
||||
"quit": "Išeiti",
|
||||
"restart": "Perkrauti programą",
|
||||
"show": "Rodyti langą"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Blokuoti visas reklamas ir seklius",
|
||||
"menu": {
|
||||
"blocker": "Blokuotojas"
|
||||
},
|
||||
"name": "Reklamų blokuotojas"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Pritaiko dinamišką temą ir vizualinius efektus pagal albumo spalvų paletę",
|
||||
"name": "Albumo Spalvų Tema"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Pritaiko apšvietimo efektą, perteikdamas švelnias vaizdo įrašo spalvas į ekrano foną.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Suliejimo kiekis",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pikseliai"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buferis",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Skaidrumas",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kokybė",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pikseliai"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Dydis",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Perėjimo švelnumas",
|
||||
"submenu": {
|
||||
"during": "Per {{interpolationTime}}s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Naudojamas visas ekranas"
|
||||
}
|
||||
},
|
||||
"name": "Aplinkos rėžimas"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Pritaikyti garso kompresiją (sumažina garsiausių signalo dalių garsumą ir padidina švelniausių dalių garsumą)",
|
||||
"name": "Garso Kompresorius"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Padaro navigacijos lentą permatomą ir susiliejusią",
|
||||
"name": "Sulieti Navigacijos Lentą"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Apeiti \"Youtube\" amžiaus patikrinimą",
|
||||
"name": "Apeiti Amžiaus Apribojimus"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "„YouTube Music“ Garso takelių antraščių parinkiklis",
|
||||
"menu": {
|
||||
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
|
||||
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
|
||||
},
|
||||
"name": "Antraščių parinkiklis",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Dabartinė antraščių kalba: {{language}}",
|
||||
"none": "Joks",
|
||||
"title": "Pasirinkti antraščių kalbą"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Atidaryti antraščių parinkiklį"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Visada nustatyti šoninę juostą kompaktiniame rėžime",
|
||||
"name": "Kompaktinė šoninė juosta"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Perliejimas tarp dainų",
|
||||
"menu": {
|
||||
"advanced": "Išplėstinė"
|
||||
},
|
||||
"name": "Perliejimas [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Išblukimo trukmė (ms)",
|
||||
"fade-out-duration": "Išnykimo trukmė (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Išblukimo stiprumas",
|
||||
"linear": "Linijinis",
|
||||
"logarithmic": "Logaritminis"
|
||||
},
|
||||
"seconds-before-end": "Pradėti lieti dainas N sekundžių prieš pabaigą"
|
||||
},
|
||||
"title": "Perliejimo nustatymai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Pradeda dainą sustabdytame rėžime",
|
||||
"menu": {
|
||||
"apply-once": "Pritaiko tik per programos paleidimą"
|
||||
},
|
||||
"name": "Išjungti Automatinį leidimą"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Bandyta prisijungti naudojant aktyvų ryšį",
|
||||
"connected": "Prisijungta prie \"Discord\"",
|
||||
"disconnected": "Atsijungta nuo \"Discord\""
|
||||
},
|
||||
"description": "Parodyk savo draugams ko tu klausaisi su \"Turtingas Buvimas\"",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatiškai prisijungti",
|
||||
"clear-activity": "Išvalyti veiksmus",
|
||||
"clear-activity-after-timeout": "Išvalyti veiksmus po skirtojo laiko",
|
||||
"connected": "Prisijungta",
|
||||
"disconnected": "Atsijungta",
|
||||
"hide-duration-left": "Slėpti kiek liko laiko",
|
||||
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
||||
"play-on-youtube-music": "Leisti ant \"Youtube Music\"",
|
||||
"set-inactivity-timeout": "Nustatyti neveiklumo laiką"
|
||||
},
|
||||
"name": "\"Discord\" Turtingas Buvimas",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Įveskite neveiklumo skirtąjį laiką sekundėmis:",
|
||||
"title": "Nustatyti neveiklumo laiką"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "Gerai"
|
||||
},
|
||||
"message": "Aaa! Apgailestaujame, nepavyko atsisiųsti…",
|
||||
"title": "Paklaida atsisiunčiant!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "Gerai"
|
||||
},
|
||||
"detail": "({{playlistSize}} dainos)",
|
||||
"message": "Atsisiunčiama {{playlistTitle}} grojaraštį",
|
||||
"title": "Prasidėjo atsisiuntimas"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konversija: {{percent}}%",
|
||||
"converting": "Konvertuojama…",
|
||||
"done": "Baigta: {{filePath}}",
|
||||
"download-info": "Atsiunčiama {{artist}} - {{title}} {{videoId}}",
|
||||
"download-progress": "Atsisiuntimas: {{percent}}%",
|
||||
"downloading": "Atsisiunčiama…",
|
||||
"downloading-counter": "Atsisiunčiama {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Atsisiunčiamas grojaraštis \"{{playlistTitle}}\" - {{playlistSize}} dainų {{playlistId}}",
|
||||
"error-while-downloading": "Paklaida atsisiunčiant \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Aplankas {{playlistFolder}} jau egzistuoja",
|
||||
"getting-playlist-info": "Gaunama grojaraščio informacija…",
|
||||
"loading": "Kraunama…",
|
||||
"playlist-has-only-one-song": "Grojaraštis turi tik vieną daiktą, jis atsisiunčiamas tiesiogiai",
|
||||
"playlist-id-not-found": "Grojaraščio ID nerastas",
|
||||
"playlist-is-empty": "Grojaraštis yra tuščias",
|
||||
"playlist-is-mix-or-private": "Paklaida gaunant grojaraščio informaciją: Pasitikrink, kad nėra privatus ar \"Surinkta specialiai jums\" grojaraštis\n\n{{error}}",
|
||||
"preparing-file": "Failas paruošiamas…",
|
||||
"saving": "Išsaugojama…",
|
||||
"trying-to-get-playlist-id": "Bandoma gauti grojaraščio ID: {{playlistId}}",
|
||||
"video-id-not-found": "Vaizdo įrašas nerastas",
|
||||
"writing-id3": "Rašoma ID3 žymes…"
|
||||
}
|
||||
},
|
||||
"description": "Atsisiunčia MP3 / šaltinio garsą tiesiogiai iš sąsajos",
|
||||
"menu": {
|
||||
"choose-download-folder": "Pasirinkti atsisiuntimų aplanką",
|
||||
"download-playlist": "Atsisiųsti grojaraštį",
|
||||
"presets": "Iš anksto nustatyti nustatymai",
|
||||
"skip-existing": "Praleisti egzistuojančius failus"
|
||||
},
|
||||
"name": "Atsiuntėjas",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Nepavyko atnaujinti eigos"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Atsisiųsti"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Padaro garsumo slankiklį eksponentinį, kad būtų lengviau pasirinkti mažesnį garsumą.",
|
||||
"name": "Eksponentinis garsas"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Duoda meniu lentoms įmantrią, tamsią ar albumo spalvos išvaizdą",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Slėpti DOM lango kontroles"
|
||||
},
|
||||
"name": "Programos Meniu"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Pridėkite Last.fm scrobble palaikymą",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Prideda \"Lumia Stream\" palaikymą",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Prideda daugumai dainių žodžių tekstus",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanizuoti dainų tekstai"
|
||||
},
|
||||
"name": "\"Genius\" Žodžių tekstai",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Gauti žodžiai iš „Genius“."
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Kitas/Ankstenis navigacijos rodyklės tiesiogiai integruotos sąsajoje, kaip tavo mėgstamiausioje naršyklėje",
|
||||
"name": "Navigacija"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Pašalinti \"Google\" prisijungimo mygtukus ir nuorodas iš sąsjos",
|
||||
"name": "Be \"Google\" Prisijungimo"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Rodyti pranešimą, kai pradeda groti daina (interaktyvūs pranešimai pasiekiami sistemoje \"Windows\")",
|
||||
"menu": {
|
||||
"interactive": "Interaktyvūs pranešimai",
|
||||
"interactive-settings": {
|
||||
"label": "Interaktyvūs nustatymai",
|
||||
"submenu": {
|
||||
"hide-button-text": "Paslėpti mygtuko tekstą",
|
||||
"refresh-on-play-pause": "Atnaujinti ant Leisti/Sustabdyti",
|
||||
"tray-controls": "Atidaryti/Uždaryti ant padėklo paspaudimo"
|
||||
}
|
||||
},
|
||||
"priority": "Pranešimų pirminybė",
|
||||
"toast-style": "Skrudintas stilius",
|
||||
"unpause-notification": "Rodyti pranešimus po dainos paleidimo"
|
||||
},
|
||||
"name": "Pranešimai"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Leidžia pakeisti programą į \"picture-in-picture\" rėžimą",
|
||||
"menu": {
|
||||
"always-on-top": "Visada viršuje",
|
||||
"hotkey": {
|
||||
"label": "Spartusis klavišas",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Spartusis klavišas"
|
||||
},
|
||||
"label": "Pasirinkti spartujį klaviša, kad įjungti/išjungti \"picture-in-picture\"",
|
||||
"title": "\"Picture-in-picture\" Spartusis klavišas"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Išsaugoti lango poziciją",
|
||||
"save-window-size": "Išsaugoti lango dydį",
|
||||
"use-native-pip": "Naudoti naršyklės savajį PiP"
|
||||
},
|
||||
"name": "Picture-in-picture",
|
||||
"templates": {
|
||||
"button": "Picture-in-picture"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Klausyk greitai, klausyk lėtai! Prideda slankiklį, kuris valdo dainos greitį",
|
||||
"name": "Atkūrimo Greitis",
|
||||
"templates": {
|
||||
"button": "Greitis"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Tiksliai valdykite garsumą naudodami pelės ratuką / sparčiuosius klavišus, naudodami pritaikytą HUD ir pritaikomus garsumo žingsnius",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Vietiniai rodyklių klavišai valdikliai",
|
||||
"custom-volume-steps": "Nustatykite Pasirinktinius Garsumo Žingsnius",
|
||||
"global-shortcuts": "Pasauliniai spartieji klavišai"
|
||||
},
|
||||
"name": "Tikslus Garsas",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Pamažinti Garsą",
|
||||
"increase": "Padidinti Garsą"
|
||||
},
|
||||
"label": "Pasirinkti Pasaulinius garso klavišus:",
|
||||
"title": "Pasauliniai Garso Klavišai"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Pasirinkti Garso Didinimo/Mažinimo Žingsnius",
|
||||
"title": "Garso Žingsniai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Dabartinė Kokybė: {{quality}}",
|
||||
"message": "Pasirinkite Vaizdo Kokybę:",
|
||||
"title": "Pasirinkite Vaizdo Kokybę"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Leidžia pakeisti vaizdo kokybę su mygtuku ant vaizdo perdangos",
|
||||
"name": "Vaizdo Kokybės Pakeitėjas"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Leidžia nustatyti visuotinius atkūrimo sparčiuosius klavišus (paleisti / pristabdyti / kitą / ankstesnį) ir išjungti medijos OSD nepaisant medijos klavišų, įjungti Ctrl / CMD + F ieškoti, įjungti Linux MPRIS palaikymą medijos klavišams ir pasirinktinius sparčiuosius klavišus pažengusiems vartotojams.",
|
||||
"menu": {
|
||||
"override-media-keys": "Perrašyti Medijos klavišus",
|
||||
"set-keybinds": "Nustatyti Pasaulines Dainų Kontroles"
|
||||
},
|
||||
"name": "Spartieji klavišai (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Kitas",
|
||||
"play-pause": "Paleisti / Pristabdyti",
|
||||
"previous": "Ankstesnis"
|
||||
},
|
||||
"label": "Pasirinkti Pasaulinius Klavišus Dainų Kontroliavimui:",
|
||||
"title": "Pasauliniai Klavišai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Praleidžia nepatinkančias dainas",
|
||||
"name": "Praleisti Nepatinkančias Dainas"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatiškai praleisti tylos dalis dainose",
|
||||
"name": "Praleisti Tylas"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Automatiškai praleidžia ne muzikines dalis, pvz., įžangą/užvedimą arba muzikinių vaizdo įrašų dalis, kuriose daina negrojama",
|
||||
"name": "Rėmėjų blokuotojas"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Valdykite atkūrimą iš „Windows“ užduočių juostos",
|
||||
"name": "Užduočių juostos medijos valdymas"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Pridedamas jutiklinės juostos valdiklis MacOS vartotojams",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integracija su OBS papildiniu \"Tuna\"",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Pridedamas mygtukas, skirtas perjungti vaizdo įrašo/dainos režimą. taip pat galite pasirinktinai pašalinti visą vaizdo įrašo skirtuką",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Lygiavimas",
|
||||
"submenu": {
|
||||
"left": "Kairė",
|
||||
"middle": "Vidurys",
|
||||
"right": "Dešinė"
|
||||
}
|
||||
},
|
||||
"force-hide": "Priverstinai pašalinti vaizdo įrašo skirtuką",
|
||||
"mode": {
|
||||
"label": "Rėžimas",
|
||||
"submenu": {
|
||||
"custom": "Pasirinktinis perjungimas",
|
||||
"disabled": "Išjungta",
|
||||
"native": "Vietinis perjungimas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Vaizdo įrašo perjungimas",
|
||||
"templates": {
|
||||
"button": "Daina"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Prie grotuvo pridedamas vizualizatorius",
|
||||
"menu": {
|
||||
"visualizer-type": "Vizualizatoriaus tipas"
|
||||
},
|
||||
"name": "Vizualizatorius"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,25 +1,160 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Klarte ikke å kjøre programtillegg {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Det tok {{ms}} ms å kjøre {{pluginName}}::{{contextName}}",
|
||||
"initialize-failed": "Klarte ikke å igangsette «{{pluginName}}»",
|
||||
"load-all": "Laster inn alle programtillegg",
|
||||
"load-failed": "Klarte ikke å laste inn {{pluginName}}-programtillegget",
|
||||
"loaded": "Lastet inn {{pluginName}}-programtillegget",
|
||||
"unload-failed": "Kunne ikke skru av {{pluginName}}-programtillegget",
|
||||
"unloaded": "{{pluginName}}-programtillegg avskrudd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "nb_NO",
|
||||
"local-name": "Norsk bokmål",
|
||||
"name": "Norwegian Bokmål"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Innlasting fullført. Utviklerverktøy åpnet."
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "språkstøtte innlastet"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Mottok kommando over protokoll: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS-filen «{{cssFile}}» finnes ikke. Ignorerer."
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Svarer ikke\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Tømmer programhurtiglager"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Prøvde å tegne vindu utenfor skjermen. Størrelse={{windowSize}}, skjermstørrelse={{displaySize}}, posisjon={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menyen er skjult. Bruk «Alt» for å vise den, (ller «Esc» for å bruke menyen i programmet).",
|
||||
"message": "Meny skjult",
|
||||
"title": "Meny vist"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Senere",
|
||||
"restart-now": "Start på ny nå"
|
||||
},
|
||||
"detail": "{{pluginName}}-programtillegget krever programomstart før bruk.",
|
||||
"message": "{{pluginName}}-programtillegget krever programomstart.",
|
||||
"title": "Programomstart kreves"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Avslutt",
|
||||
"relaunch": "Start igjen",
|
||||
"wait": "Vent"
|
||||
},
|
||||
"detail": "Velg blandt følgende:",
|
||||
"message": "Programmet svarer ikke",
|
||||
"title": "Vinduet svarer ikke"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Skru av oppgraderinger",
|
||||
"download": "Last ned",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "En ny versjon er tilgjengelig og kan lastes ned fra {{downloadLink}}",
|
||||
"message": "En ny versjon er tilgjengelig",
|
||||
"title": "Oppgradering tilgjengelig"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Om",
|
||||
"navigation": {
|
||||
"label": "Navigasjon",
|
||||
"submenu": {
|
||||
"copy-current-url": "Kopier nåværende nettadresse",
|
||||
"go-back": "Tilbake",
|
||||
"go-forward": "Forover",
|
||||
"quit": "Avslutt",
|
||||
"restart": "Programomstart"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Alternativer",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Avanserte alternativer",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Tilbakestill programhurtiglager når programmet startes",
|
||||
"disable-hardware-acceleration": "Skru av maskinvareakselerasjon",
|
||||
"edit-config-json": "Rediger config.json",
|
||||
"override-user-agent": "Overstyr brukeragent",
|
||||
"restart-on-config-changes": "Omstart ved oppsettsendringer",
|
||||
"set-proxy": {
|
||||
"label": "Sett mellomtjener",
|
||||
"prompt": {
|
||||
"label": "Skriv inn mellomtjeneradresse: (la stå tom for å skru av)",
|
||||
"placeholder": "Eksempel: socks5://127.0.0.1:9999",
|
||||
"title": "Sett mellomtjener"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Skru av/på utviklerverktøy"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Alltid på toppen",
|
||||
"auto-update": "Auto-oppdatering",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menyen vil bli skjult ved neste programstart. Bruk [Alt] for å vise den, eller gravistegn [`] hvis du bruker menyen i programmet).",
|
||||
"title": "Skjuler meny"
|
||||
},
|
||||
"label": "Skjul meny"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Nytt språk vises når programmet startes på ny",
|
||||
"title": "Språk endret"
|
||||
},
|
||||
"label": "Språk",
|
||||
"submenu": {
|
||||
"to-help-translate": "Klikk her for å bistå oversettelsen"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Gjenoppta siste spor ved programstart",
|
||||
"single-instance-lock": "Sperr én instans",
|
||||
"start-at-login": "Start ved innlogging",
|
||||
"starting-page": {
|
||||
"label": "Startside",
|
||||
"unset": "Opphev"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Systemkurv",
|
||||
"submenu": {
|
||||
"disabled": "Avskrudd"
|
||||
"disabled": "Avskrudd",
|
||||
"play-pause-on-click": "Spill av/pause ved klikk"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Visuelle tilpasninger",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Forvalg",
|
||||
"force-show": "Tving visning",
|
||||
"hide": "Skjul",
|
||||
"label": "Begunstningsknapper"
|
||||
},
|
||||
"remove-upgrade-button": "Fjern oppgraderingsknapp",
|
||||
"theme": {
|
||||
"label": "Drakt",
|
||||
"submenu": {
|
||||
@ -32,8 +167,28 @@
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Påskrudd",
|
||||
"label": "Programtillegg"
|
||||
},
|
||||
"view": {
|
||||
"label": "Vis",
|
||||
"submenu": {
|
||||
"force-reload": "Tving gjeninnlasting",
|
||||
"reload": "Gjeninnlast",
|
||||
"reset-zoom": "Faktisk størrelse",
|
||||
"toggle-fullscreen": "Veksle fullskjermsvisning",
|
||||
"zoom-in": "Forstørr",
|
||||
"zoom-out": "Forminsk"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Neste",
|
||||
"play-pause": "Spill av/pause",
|
||||
"previous": "Forrige",
|
||||
"quit": "Avslutt",
|
||||
"restart": "Programomstart",
|
||||
"show": "Vis vindu"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
@ -49,6 +204,7 @@
|
||||
"name": "Albumsfargedrakt"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Ifører lyseffekt ved å hente myke farger fra videoen inn i skjermens bakgrunn.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Tilsløringsmengde",
|
||||
@ -56,6 +212,12 @@
|
||||
"pixels": "{{blurAmount}} piksler"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Mellomlager",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Dekkevne",
|
||||
"submenu": {
|
||||
@ -73,10 +235,38 @@
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Mykhetsovergang",
|
||||
"submenu": {
|
||||
"during": "I løpet av {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Ved bruk av fullskjerm"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Omgivelsesmodus"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Anvend kompresjon for lyd (senker lydstyrken for de kraftigste delene av signalet og øker nivået i de svakeste)",
|
||||
"name": "Lydkompressor"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Gjør navigeringsbjelken gjennomsiktig og tilslørt",
|
||||
"name": "Tilslør navigasjonsfelt"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Omgå YouTube sin aldersgrenser",
|
||||
"name": "Omgå aldersgrense"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Undertekstverktøy for lydspor i YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Auto-velg sist brukte undertekst",
|
||||
"disable-captions": "Ingen undertekst som forvalg"
|
||||
},
|
||||
"name": "Undertekstvelger",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Nåværende tekstingsspråk: {{language}}",
|
||||
@ -88,27 +278,63 @@
|
||||
"title": "Åpne undertekstvelger"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Alltid sett sidefeltet i kompakt modus",
|
||||
"name": "Kompakt sidefelt"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Overgang mellom spor",
|
||||
"menu": {
|
||||
"advanced": "Avansert"
|
||||
},
|
||||
"name": "Overgang [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Inntoningsvarighet (ms)",
|
||||
"fade-out-duration": "Uttoningsvarighet (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Overgangsskalering",
|
||||
"linear": "Lineær",
|
||||
"logarithmic": "Logaritmisk"
|
||||
}
|
||||
}
|
||||
},
|
||||
"seconds-before-end": "Overgang antall sekunder før slutt"
|
||||
},
|
||||
"title": "Overgangsalternativer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Merkerer sporstart i «pauset» modus",
|
||||
"menu": {
|
||||
"apply-once": "Har kun innvirkning ved oppstart"
|
||||
},
|
||||
"name": "Skru av autospilling"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Forsøkte å koble til med aktiv tilkobling",
|
||||
"connected": "Tilkoblet Discord",
|
||||
"disconnected": "Frakoblet fra Discord"
|
||||
},
|
||||
"description": "Vis venne dine hva du lytter til med rik tilstedeværelse",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatisk retilkobling",
|
||||
"clear-activity": "Tøm aktivitet",
|
||||
"clear-activity-after-timeout": "Tøm aktivitet etter tidsavbrudd",
|
||||
"connected": "Tilkoblet",
|
||||
"disconnected": "Frakoblet",
|
||||
"hide-duration-left": "Skjul gjenværende tid",
|
||||
"hide-github-button": "Skjul GitHub-lenkeknapp",
|
||||
"play-on-youtube-music": "Spill på YouTube Music",
|
||||
"set-inactivity-timeout": "Sett tid før tidsavbrudd"
|
||||
},
|
||||
"name": "Rik tilstedeværelse for Discord",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Skriv inn antall sekunder for inaktivitetstidsavbrudd:",
|
||||
"title": "Sett inaktivitetstidsavbrudd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
@ -117,12 +343,16 @@
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
}
|
||||
},
|
||||
"message": "Nedlasting mislyktes …",
|
||||
"title": "Feil i nedlastning."
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} spor)",
|
||||
"message": "Laster ned {{playlistTitle}}-spillelisten …",
|
||||
"title": "Nedlasting startet"
|
||||
}
|
||||
},
|
||||
@ -130,42 +360,147 @@
|
||||
"conversion-progress": "Konvertering: {{percent}}%",
|
||||
"converting": "Konverterer …",
|
||||
"done": "Ferdig: {{filePath}}",
|
||||
"download-info": "Laster ned {{artist}} — {{title}} [{{videoId}} …",
|
||||
"download-progress": "Nedlastet: {{percent}}%",
|
||||
"downloading": "Laster ned …",
|
||||
"downloading-counter": "Laster ned {{current}}/{{total}} …",
|
||||
"downloading-playlist": "Laster ned {{playlistTitle}}-spillelisten — {{playlistSize}} spor ({{playlistId}})",
|
||||
"error-while-downloading": "Kunne ikke laste ned «{{author}} — {{title}}»: {{error}}",
|
||||
"folder-already-exists": "{{playlistFolder}}-mappen finnes allerede",
|
||||
"getting-playlist-info": "Henter spillelisteinfo …",
|
||||
"loading": "Laster inn …",
|
||||
"playlist-has-only-one-song": "Spillelisten har kun ett element. Laster ned direkte.",
|
||||
"playlist-id-not-found": "Fant ingen spilleliste-ID",
|
||||
"playlist-is-empty": "Tom spilleliste",
|
||||
"playlist-is-mix-or-private": "Kunne ikke hente spillelisteinfo. Forsikre deg om at den ikke er privat eller «Mikset for deg».\n\n{{error}}",
|
||||
"preparing-file": "Forbereder fil …",
|
||||
"saving": "Lagrer …"
|
||||
"saving": "Lagrer …",
|
||||
"trying-to-get-playlist-id": "Prøver å hente spilleliste-ID: {{playlistId}}",
|
||||
"video-id-not-found": "Fant ikke videoen",
|
||||
"writing-id3": "Skriver ID3-tagger …"
|
||||
}
|
||||
},
|
||||
"description": "Laster ned MP3/kildelyd direkte fra grensesnittet",
|
||||
"menu": {
|
||||
"choose-download-folder": "Velg nedlastningsmappe",
|
||||
"download-playlist": "Last ned spilleliste",
|
||||
"presets": "Forhåndsinnstillinger",
|
||||
"skip-existing": "Hopp over eksisterende filer"
|
||||
},
|
||||
"name": "Nedlaster",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Kan ikke oppdatere framdrift"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Last ned"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Gjør lydstyrkekontrollen eksponentiell, slik at det er enklere velge lavere lydstyrker.",
|
||||
"name": "Eksponentiell lydstyrke"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Gir menybjelkene stilig, mørk, eller albumfarget utseende",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Skjul DOM-vinduskontroller"
|
||||
},
|
||||
"name": "Meny i programmet"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Legg til lyttestatistikkstøtte for Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Legger til Lumia Stream-støtte",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Gir sangtekststøtte for de fleste spor",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romaniserte sangtekster"
|
||||
},
|
||||
"name": "Sangtekster fra Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Henter sangtekster for Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Direkte integrering av neste/tilbake-navigasjonspilene i grensesnittet, som din favorittnettleser",
|
||||
"name": "Navigasjon"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Fjern Google-innloggingsknapper og lenker fra grensesnittet",
|
||||
"name": "Ingen Google-innlogging"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Vis en merknad når et spor starter avspilling (interaktive merknader er tilgjengelig på Windows)",
|
||||
"menu": {
|
||||
"interactive": "Interaktive merknader",
|
||||
"interactive-settings": {
|
||||
"label": "Interaktive innstillinger",
|
||||
"submenu": {
|
||||
"hide-button-text": "Skjul knappetekst",
|
||||
"refresh-on-play-pause": "Gjenoppfrisk ved avspilling/pause",
|
||||
"tray-controls": "Åpne/lukk med klikk i systemkurven"
|
||||
}
|
||||
},
|
||||
"priority": "Merknadsprioritet",
|
||||
"unpause-notification": "Vis merknad ved oppheving av pause"
|
||||
},
|
||||
"name": "Merknader"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Tillater å bytte programmet til bilde-i-bilde modus",
|
||||
"menu": {
|
||||
"save-window-position": "Lagre vindusposisjon"
|
||||
"always-on-top": "Alltid på toppen",
|
||||
"hotkey": {
|
||||
"label": "Hurtigtast",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Hurtigtast"
|
||||
},
|
||||
"label": "Velg en hurtigtast for veksling av bilde-i-bilde",
|
||||
"title": "Hurtigtast for bilde-i-bilde"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Lagre vindusposisjon",
|
||||
"save-window-size": "Lagre vindusstørrelse",
|
||||
"use-native-pip": "Bruk nettleserens innebygde bilde-i-bilde"
|
||||
},
|
||||
"name": "Bilde-i-bilde",
|
||||
"templates": {
|
||||
"button": "Bilde-i-bilde"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Legger til glidebryter som kontrollerer avspillingshastighet",
|
||||
"name": "Avspillingshastighet",
|
||||
"templates": {
|
||||
"button": "Hastighet"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"name": "Presis lydstyrkejustering"
|
||||
"description": "Kontroller lydstyrken presist ved bruk av musehjul/hurtigtaster, med egendefinert skjermoverlag og tilpassbare steg",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Kontroller for lokale piltaster",
|
||||
"custom-volume-steps": "Sett egendefinerte lydstyrkesteg",
|
||||
"global-shortcuts": "Hurtigtaster i hele programmet"
|
||||
},
|
||||
"name": "Presis lydstyrkejustering",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Senk lydstyrke",
|
||||
"increase": "Øk lydstyrke"
|
||||
},
|
||||
"label": "Velg tastetilknytninger for lydstyrkejusteringskontroller i hele programmet",
|
||||
"title": "Tastetilknytninger for lydstyrkejusteringskontroller i hele programmet"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Velg steg for økning/senking av lydstyrke",
|
||||
"title": "Lydstyrkesteg"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
@ -176,30 +511,85 @@
|
||||
"title": "Velg videokvalitet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Tillat endring av videokvalitet med en knapp i videooverlaget",
|
||||
"name": "Vindukvalitetsvelger"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Tillater bruk av hurtigtaster for hele programmet til avspilling (spill/pause/neste/forrige) + skru av media-videooverlag ved å overstyre mediataster + skru på Ctrl+CMD+F for å søke, pluss å egge til MPRIS støtte på linux for mediataster pluss egendefinerte hurtigtaster for avanserte brukere",
|
||||
"menu": {
|
||||
"override-media-keys": "Overstyr mediataster",
|
||||
"set-keybinds": "Sett kontroller for spor i hele programmet"
|
||||
},
|
||||
"name": "Snarveier (og MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Neste",
|
||||
"play-pause": "Spill av/pause",
|
||||
"previous": "Forrige"
|
||||
},
|
||||
"label": "Velg kontroller for spor i hele programmet:",
|
||||
"title": "Tastaturtilknytninger i hele programmet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Hopper over mislikte spor",
|
||||
"name": "Hopp over mislikte spor"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Hopp over stille deler av spor",
|
||||
"name": "Hopp over pauser"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Hopper over ikke-musikalske deler, som intro/sluttsats, eller deler av musikkvideoer der ingen musikk spilles",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Kontroller avspilling fra din Windows-oppgavelinje",
|
||||
"name": "Oppgavelinje-mediakontroll"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Legger til et pekefelt-miniprogram for macOS-brukere",
|
||||
"name": "Pekefelt"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integrasjon med Tuna-programtillegget i OBS",
|
||||
"name": "OBS Tuna"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Leger til en knapp for å bytte mellom video/spormodus. Kan også alternativt fjerne hele videofanen.",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Justering",
|
||||
"submenu": {
|
||||
"left": "Venstre",
|
||||
"middle": "Midten",
|
||||
"right": "Høyre"
|
||||
}
|
||||
},
|
||||
"force-hide": "Påtving fjerning av videofane",
|
||||
"mode": {
|
||||
"label": "Modus"
|
||||
"label": "Modus",
|
||||
"submenu": {
|
||||
"custom": "Egendefinert veksling",
|
||||
"disabled": "Avskrudd",
|
||||
"native": "Innebygd veksling"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Videoveksling",
|
||||
"templates": {
|
||||
"button": "Spor"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Legger til en visualisator i avspilleren",
|
||||
"menu": {
|
||||
"visualizer-type": "Visualisatortype"
|
||||
},
|
||||
"name": "Visualisator"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
598
src/i18n/resources/pl.json
Normal file
598
src/i18n/resources/pl.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Błąd uruchamiania wtyczki {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Wtyczka {{pluginName}}::{{contextName}} uruchomiona w {{ms}}ms",
|
||||
"initialize-failed": "Błąd inicjalizacji wtyczki \"{{pluginName}}\"",
|
||||
"load-all": "Ładowanie wszystkich wtyczek",
|
||||
"load-failed": "Błąd w ładowaniu wtyczki \"{{pluginName}}\"",
|
||||
"loaded": "Wtyczka \"{{pluginName}}\" załadowana",
|
||||
"unload-failed": "Błąd w odłączaniu wtyczki \"{{pluginName}}\"",
|
||||
"unloaded": "Wtyczka \"{{pluginName}}\" odłączona"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "pl",
|
||||
"local-name": "Polski",
|
||||
"name": "Polish"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Ukończono ładowanie. Narzędzia deweloperskie otwarte"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n załadowane"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Otrzymano komendę przez protokół: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Plik CSS \"{{cssFile}}\" nie istnieje, ignoruję"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Błąd! Brak odpowiedzi:\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Czyszczenie pamięci podręcznej aplikacji"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Okno próbuje się renderować poza ekranem, rozmiar okna={{windowSize}}, rozmiar monitora={{displaySize}}, pozycja={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu jest ukryte, użyj przycisku [Alt] aby je pokazać (lub [Escape], jeśli używasz menu w aplikacji)",
|
||||
"message": "Ukrywanie menu jest włączone",
|
||||
"title": "Ukrywanie Menu Włączone"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Później",
|
||||
"restart-now": "Uruchom ponownie teraz"
|
||||
},
|
||||
"detail": "Wtyczka \"{{pluginName}}\" potrzebuje ponownego uruchomienia aby była aktywna",
|
||||
"message": "\"{{pluginName}}\" potrzebuje ponownego uruchomienia",
|
||||
"title": "Ponowne uruchomienie potrzebne"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Wyjdź",
|
||||
"relaunch": "Ponownie uruchom",
|
||||
"wait": "Czekać"
|
||||
},
|
||||
"detail": "Przepraszamy za niedogodność! Proszę wybierz co zrobić:",
|
||||
"message": "Aplikacja nie reaguje",
|
||||
"title": "Okno nie reaguje"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Wyłącz aktualizacje",
|
||||
"download": "Pobierz",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Nowa wersja jest dostępna i możesz ją pobrać tutaj {{downloadLink}}",
|
||||
"message": "Nowa wersja jest dostępna",
|
||||
"title": "Aktualizacja jest dostępna"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "O aplikacji",
|
||||
"navigation": {
|
||||
"label": "Nawigacja",
|
||||
"submenu": {
|
||||
"copy-current-url": "Skopiuj aktualny adres URL",
|
||||
"go-back": "Wróć",
|
||||
"go-forward": "Do przodu",
|
||||
"quit": "Wyjście",
|
||||
"restart": "Uruchom ponownie aplikację"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opcje",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Opcje zaawansowane",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Wyczyść pamięć podręczną aplikacji przy jej uruchomieniu",
|
||||
"disable-hardware-acceleration": "Wyłącz przyspieszanie sprzętowe",
|
||||
"edit-config-json": "Edytuj config.json",
|
||||
"override-user-agent": "Zastąp klienta użytkownika (User-Agent)",
|
||||
"restart-on-config-changes": "Uruchom ponownie po zmianie konfiguracji",
|
||||
"set-proxy": {
|
||||
"label": "Ustaw proxy",
|
||||
"prompt": {
|
||||
"label": "Podaj adres Proxy: (zostaw pusty aby wyłączyć)",
|
||||
"placeholder": "Przykład: socks5://127.0.0.1:9999",
|
||||
"title": "Ustaw proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Przełącz narzędzia deweloperskie"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Zawsze na wierzchu",
|
||||
"auto-update": "Automatyczne aktualizacje",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu będzie ukryte po następnym uruchomieniu, użyj przycisku [Alt] aby je pokazać (lub [`], jeśli używasz menu w aplikacji)",
|
||||
"title": "Ukrywanie menu włączone"
|
||||
},
|
||||
"label": "Ukryj menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Język będzie zmieniony po ponownym uruchomieniu",
|
||||
"title": "Język zmieniony"
|
||||
},
|
||||
"label": "Język",
|
||||
"submenu": {
|
||||
"to-help-translate": "Chcesz pomóc w tłumaczeniu? Kliknij tutaj"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Wznów ostatni utwór po uruchomieniu aplikacji",
|
||||
"single-instance-lock": "Zablokuj do jednej instancji aplikacji",
|
||||
"start-at-login": "Uruchom po zalogowaniu",
|
||||
"starting-page": {
|
||||
"label": "Strona startowa",
|
||||
"unset": "Pusty"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Ikona w zasobniku",
|
||||
"submenu": {
|
||||
"disabled": "Wyłączone",
|
||||
"enabled-and-hide-app": "Włącz i ukryj aplikację",
|
||||
"enabled-and-show-app": "Włącz i pokaż aplikację",
|
||||
"play-pause-on-click": "Odtwórz/Wstrzymaj po kliknięciu"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Poprawki wizualne",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Domyślne",
|
||||
"force-show": "Wymuś pokazywanie",
|
||||
"hide": "Ukryj",
|
||||
"label": "Przyciski polubienia"
|
||||
},
|
||||
"remove-upgrade-button": "Usuń przycisk subskrypcji premium",
|
||||
"theme": {
|
||||
"label": "Motyw",
|
||||
"submenu": {
|
||||
"import-css-file": "Importuj własny plik CSS",
|
||||
"no-theme": "Bez motywu"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Włączone",
|
||||
"label": "Wtyczki"
|
||||
},
|
||||
"view": {
|
||||
"label": "Widok",
|
||||
"submenu": {
|
||||
"force-reload": "Wymuś ponowne ładowanie",
|
||||
"reload": "Ponowne ładowanie",
|
||||
"reset-zoom": "Rozmiar rzeczywisty",
|
||||
"toggle-fullscreen": "Przełącz pełny ekran",
|
||||
"zoom-in": "Powiększ",
|
||||
"zoom-out": "Pomniejsz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Następny",
|
||||
"play-pause": "Odtwórz/Pauza",
|
||||
"previous": "Poprzedni",
|
||||
"quit": "Wyjdź",
|
||||
"restart": "Uruchom ponownie aplikację",
|
||||
"show": "Pokaż okno"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Blokuj wszystkie reklamy i śledzenie",
|
||||
"menu": {
|
||||
"blocker": "Metoda przechwytywania"
|
||||
},
|
||||
"name": "Blokowanie reklam"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Stosuje dynamiczny motyw i efekty wizualne w oparciu o paletę kolorów albumu",
|
||||
"name": "Motyw kolorów albumu"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Stosuje efekt świetlny, rzucając delikatne kolory z wideo na tło ekranu.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Ilość rozmycia",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pikseli"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Bufor",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Nieprzezroczystość",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Jakość",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pikseli"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Rozmiar",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Płynność przejścia",
|
||||
"submenu": {
|
||||
"during": "W czasie {{interpolationTime}}s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Podczas pełnego ekranu"
|
||||
}
|
||||
},
|
||||
"name": "Tryb otoczenia"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Zastosuj kompresję do dźwięku (obniża głośność najgłośniejszych części sygnału i zwiększa głośność najcichszych części)",
|
||||
"name": "Kompresor dźwięku"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Sprawia, że pasek nawigacji jest przezroczysty i rozmazany",
|
||||
"name": "Rozmycie paska nawigacji"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Pomija weryfikację wieku",
|
||||
"name": "Omiń ograniczenia wiekowe"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Selektor napisów dla ścieżek audio YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
|
||||
"disable-captions": "Domyślnie, brak napisów"
|
||||
},
|
||||
"name": "Selektor napisów",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Bieżący język napisów: {{language}}",
|
||||
"none": "Brak",
|
||||
"title": "Wybierz język napisów"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Otwórz selektor napisów"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Zawsze ustawiaj pasek boczny w trybie kompaktowym",
|
||||
"name": "Kompaktowy pasek boczny"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Przenikanie pomiędzy utworami",
|
||||
"menu": {
|
||||
"advanced": "Zaawansowane"
|
||||
},
|
||||
"name": "Przenikanie [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Czas wnikania (milisekundy)",
|
||||
"fade-out-duration": "Czas zanikania (milisekundy)",
|
||||
"fade-scaling": {
|
||||
"label": "Skalowanie zanikania",
|
||||
"linear": "Liniowe",
|
||||
"logarithmic": "Logarytmiczne"
|
||||
},
|
||||
"seconds-before-end": "Przenikanie N sekund przed końcem"
|
||||
},
|
||||
"title": "Opcje przenikania"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Wyłącza automatyczne odtwarzanie utworów",
|
||||
"menu": {
|
||||
"apply-once": "Tylko przy uruchomieniu aplikacji"
|
||||
},
|
||||
"name": "Wyłącz automatyczne odtwarzanie"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Próbowano połączyć się przy aktywnym połączeniu",
|
||||
"connected": "Połączono z Discordem",
|
||||
"disconnected": "Odłączono od Discorda"
|
||||
},
|
||||
"description": "Pokaż znajomym, czego słuchasz dzięki Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatyczne wznawianie połączenia",
|
||||
"clear-activity": "Wyczyść aktywność",
|
||||
"clear-activity-after-timeout": "Wyczyść aktywność po czasie",
|
||||
"connected": "Połączono",
|
||||
"disconnected": "Odłączono",
|
||||
"hide-duration-left": "Ukryj pozostały czas trwania",
|
||||
"hide-github-button": "Ukryj przycisk do GitHub",
|
||||
"play-on-youtube-music": "Odtwórz w YouTube Music",
|
||||
"set-inactivity-timeout": "Ustaw limit czasu bezczynności"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Podaj limit czasu bezczynności w sekundach:",
|
||||
"title": "Ustaw limit czasu bezczynności"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Argh! Przepraszamy, pobieranie nie powiodło się…",
|
||||
"title": "Błąd podczas pobierania!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} utworów)",
|
||||
"message": "Pobieranie playlisty {{playlistTitle}}",
|
||||
"title": "Pobieranie rozpoczęte"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konwertowanie: {{percent}}%",
|
||||
"converting": "Konwertowanie…",
|
||||
"done": "Gotowe: {{filePath}}",
|
||||
"download-info": "Pobieranie {{artist}} - {{title}} {{videoId}}",
|
||||
"download-progress": "Pobieranie: {{percent}}%",
|
||||
"downloading": "Pobieranie…",
|
||||
"downloading-counter": "Pobieranie {{current}}/{{total}} …",
|
||||
"downloading-playlist": "Pobieranie playlisty \"{{playlistTitle}}\" - {{playlistSize}} utworów ({{playlistId}})",
|
||||
"error-while-downloading": "Błąd pobierania \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Folder {{playlistFolder}} już istnieje",
|
||||
"getting-playlist-info": "Pobieram informacje o playliście…",
|
||||
"loading": "Ładowanie…",
|
||||
"playlist-has-only-one-song": "Playlista zawiera tylko jeden element, zostanie pobrany bezpośrednio",
|
||||
"playlist-id-not-found": "Nie znaleziono ID playlisty",
|
||||
"playlist-is-empty": "Playlista jest pusta",
|
||||
"playlist-is-mix-or-private": "Podczas pobierania informacji o playliście wystąpił błąd: upewnij się, że nie jest to playlista prywatna ani playlista „Składanki dla Ciebie”.\n\n{{error}}",
|
||||
"preparing-file": "Przygotowuję plik…",
|
||||
"saving": "Zapisuję…",
|
||||
"trying-to-get-playlist-id": "Próbuję uzyskać ID playlisty: {{playlistId}}",
|
||||
"video-id-not-found": "Nie znaleziono filmu",
|
||||
"writing-id3": "Zapisywanie tagów ID3…"
|
||||
}
|
||||
},
|
||||
"description": "Pobiera MP3/ źródło audio bezpośrednio z interfejsu",
|
||||
"menu": {
|
||||
"choose-download-folder": "Wybierz folder pobierania",
|
||||
"download-playlist": "Pobierz playlistę",
|
||||
"presets": "Predefiniowane ustawienia",
|
||||
"skip-existing": "Pomiń istniejące pliki"
|
||||
},
|
||||
"name": "Pobieranie",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Nie można zaktualizować postępu"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Pobierz"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Sprawia, że suwak głośności jest proporcjonalna, dzięki czemu łatwiej jest wybrać niższą głośność.",
|
||||
"name": "Proporcjonalna głośność"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Nadaje paskom menu elegancki, ciemny lub albumowy wygląd",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Ukryj kontrolki okna DOM"
|
||||
},
|
||||
"name": "Menu w aplikacji"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Dodanie obsługi scrobblingu dla Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Dodaje obsługę Lumia Stream",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Dodaje obsługę tekstów dla większości piosenek",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Teksty zromanizowane"
|
||||
},
|
||||
"name": "Tekst piosenek od Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Tekst dostarczony przez Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Strzałki nawigacyjne Dalej/Wstecz zintegrowane bezpośrednio z interfejsem, tak jak w Twojej ulubionej przeglądarce",
|
||||
"name": "Nawigacja"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Usuń przyciski i linki logowania Google z interfejsu",
|
||||
"name": "Usuń logowanie do Google"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Wyświetl powiadomienie, gdy rozpocznie się odtwarzanie utworu (interaktywne powiadomienia są dostępne w systemie Windows)",
|
||||
"menu": {
|
||||
"interactive": "Interaktywne powiadomienia",
|
||||
"interactive-settings": {
|
||||
"label": "Interaktywne ustawienia",
|
||||
"submenu": {
|
||||
"hide-button-text": "Ukryj tekst przycisku",
|
||||
"refresh-on-play-pause": "Odśwież podczas odtwarzania/pauzy",
|
||||
"tray-controls": "Otwórz/zamknij po kliknięciu ikony na pasku zadań"
|
||||
}
|
||||
},
|
||||
"priority": "Priorytet powiadomień",
|
||||
"toast-style": "Styl powiadomień \"Toast\"",
|
||||
"unpause-notification": "Pokaż powiadomienie po wznowieniu"
|
||||
},
|
||||
"name": "Powiadomienia"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Umożliwia przełączenie aplikacji w tryb obrazu w obrazie",
|
||||
"menu": {
|
||||
"always-on-top": "Zawsze na wierzchu",
|
||||
"hotkey": {
|
||||
"label": "Klawisz skrótu",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Klawisz skrótu"
|
||||
},
|
||||
"label": "Wybierz klawisz skrótu do przełączania trybu obrazu w obrazie",
|
||||
"title": "Klawisz skrótu obrazu w obrazie"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Zapisz pozycję okna",
|
||||
"save-window-size": "Zapisz rozmiar okna",
|
||||
"use-native-pip": "Użyj natywnego PiP dla przeglądarki"
|
||||
},
|
||||
"name": "Obraz w obrazie",
|
||||
"templates": {
|
||||
"button": "Obraz w obrazie"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Słuchaj szybko, słuchaj powoli! Dodaje suwak kontrolujący prędkość utworu",
|
||||
"name": "Szybkość odtwarzania",
|
||||
"templates": {
|
||||
"button": "Szybkość"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Precyzyjnie kontroluj głośność za pomocą kółka myszy/klawiszy skrótu, z niestandardowym interfejsem HUD i konfigurowalnymi krokami głośności",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Sterowanie za pomocą klawiszy strzałek",
|
||||
"custom-volume-steps": "Ustaw niestandardowe kroki głośności",
|
||||
"global-shortcuts": "Globalne skróty klawiszowe"
|
||||
},
|
||||
"name": "Precyzyjna głośność",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Zmniejsz głośność",
|
||||
"increase": "Zwiększ głośność"
|
||||
},
|
||||
"label": "Wybierz globalne skróty klawiaturowe głośności:",
|
||||
"title": "Globalne skróty klawiszowe głośności"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Wybierz kroki zwiększania/zmniejszania głośności",
|
||||
"title": "Kroki głośności"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Aktualna jakość: {{quality}}",
|
||||
"message": "Wybierz jakość wideo:",
|
||||
"title": "Wybierz jakość wideo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Umożliwia zmianę jakości wideo za pomocą przycisku na nakładce wideo",
|
||||
"name": "Zmieniacz jakości wideo"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Umożliwia ustawienie globalnych skrótów klawiszowych do odtwarzania (odtwarzanie/pauza/następny/poprzedni) + wyłączanie OSD multimediów poprzez zastąpienie klawiszy multimediów, włączając kombinację klawiszy Ctrl/CMD + F w celu wyszukiwania, obsługę Linux MPRIS dla klawiszy multimediów oraz niestandardowe skróty klawiszowe dla zaawansowanych użytkowników.",
|
||||
"menu": {
|
||||
"override-media-keys": "Zastąp klawisze multimediów",
|
||||
"set-keybinds": "Ustaw globalne sterowanie utworem"
|
||||
},
|
||||
"name": "Skróty klawiszowe (oraz MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Następny",
|
||||
"play-pause": "Odtwarzanie / Pauza",
|
||||
"previous": "Poprzedni"
|
||||
},
|
||||
"label": "Wybierz globalne skróty klawiszowe do sterowania utworami:",
|
||||
"title": "Globalne skróty klawiszowe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Pomija nieulubione piosenki (zaznaczone łapką w dół)",
|
||||
"name": "Pomijanie nieulubionych piosenek"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatycznie pomijaj sekcje bez dźwięku w utworach",
|
||||
"name": "Pomiń ciszę"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Automatycznie pomija fragmenty niebędące muzyką, takie jak wstęp/zakończenie lub fragmenty teledysków, w których utwór nie jest odtwarzany",
|
||||
"name": "Pomiń nieistotne fragmenty"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Steruj odtwarzaniem z paska zadań systemu Windows",
|
||||
"name": "Kontroler odtwarzania z paska zadań"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Dodaje widżet do paska dotykowego dla użytkowników systemu macOS",
|
||||
"name": "Pasek dotykowy"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integracja z wtyczką OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Dodaje przycisk do przełączania między trybem wideo a piosenki. Może również opcjonalnie usunąć całą kartę wideo",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Wyrównanie",
|
||||
"submenu": {
|
||||
"left": "Lewo",
|
||||
"middle": "Środek",
|
||||
"right": "Prawo"
|
||||
}
|
||||
},
|
||||
"force-hide": "Wymuś usunięcie zakładki wideo",
|
||||
"mode": {
|
||||
"label": "Tryb",
|
||||
"submenu": {
|
||||
"custom": "Niestandardowy przełącznik",
|
||||
"disabled": "Wyłączony",
|
||||
"native": "Natywny przełącznik"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Przełącznik wideo",
|
||||
"templates": {
|
||||
"button": "Utwór"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Dodaje wizualizator do odtwarzacza",
|
||||
"menu": {
|
||||
"visualizer-type": "Typ wizualizatora"
|
||||
},
|
||||
"name": "Wizualizator"
|
||||
}
|
||||
}
|
||||
}
|
||||
598
src/i18n/resources/pt.json
Normal file
598
src/i18n/resources/pt.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Falha ao executar o plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} executado com {{ms}}ms",
|
||||
"initialize-failed": "Falha ao inicializar o plugin \"{{pluginName}}\"",
|
||||
"load-all": "Carregando todos os plugins",
|
||||
"load-failed": "Falha ao carregar o plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" carregado",
|
||||
"unload-failed": "Falha ao descarregar o plugin \"{{pluginName}}\"",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" descarregado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "pt",
|
||||
"local-name": "Português",
|
||||
"name": "Portuguese"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Carregamento finalizado. DevTools aberto"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n carregado"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Comando recebido através do protocolo: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Arquivo CSS \"{{cssFile}}\" não existe, ignorando"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Erro sem resposta!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Limpando o cache do aplicativo"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Janela tentou desenhar fora do ecrã, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "O menu está oculto, use a tecla 'Alt' para mostra-lo (ou 'Esc' se estiver usando o menu do aplicativo)",
|
||||
"message": "Ocultar menu está ativado",
|
||||
"title": "Ocultar menu ativado"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Depois",
|
||||
"restart-now": "Reiniciar agora"
|
||||
},
|
||||
"detail": "O plugin {{pluginName}} precisa ser reiniciado para ter efeito",
|
||||
"message": "\"{{pluginName}}\" precisa ser reiniciado",
|
||||
"title": "É necessário reiniciar"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Sair",
|
||||
"relaunch": "Reiniciar",
|
||||
"wait": "Espere"
|
||||
},
|
||||
"detail": "Lamentamos o inconveniente! Por favor escolha o que fazer:",
|
||||
"message": "A aplicação não está respondendo",
|
||||
"title": "A janela não está respondendo"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Desabilitar atualizações",
|
||||
"download": "Baixar",
|
||||
"ok": "Ok"
|
||||
},
|
||||
"detail": "Uma nova versão está disponível e pode ser baixada em {{downloadLink}}",
|
||||
"message": "Uma nova versão está disponível",
|
||||
"title": "Atualização disponível"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Sobre",
|
||||
"navigation": {
|
||||
"label": "Navegação",
|
||||
"submenu": {
|
||||
"copy-current-url": "Copiar URL atual",
|
||||
"go-back": "Voltar",
|
||||
"go-forward": "Avançar",
|
||||
"quit": "Saída",
|
||||
"restart": "Reiniciar aplicativo"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opções",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Opções avançadas",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Reiniciar cache do aplicativo quando o aplicativo abrir",
|
||||
"disable-hardware-acceleration": "Desabilitar aceleração por hardware",
|
||||
"edit-config-json": "Editar config.json",
|
||||
"override-user-agent": "Substituir User-Agent",
|
||||
"restart-on-config-changes": "Reinicie as alterações de configurações feitas",
|
||||
"set-proxy": {
|
||||
"label": "Definir proxy",
|
||||
"prompt": {
|
||||
"label": "Inserir Endereço do Proxy: (deixe em branco para desativar)",
|
||||
"placeholder": "Exemplo: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Definir proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Ativar DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Sempre no topo",
|
||||
"auto-update": "Atualização automática",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "O menu será ocultado na próxima inicialização, use [Alt] para mostrá-lo (ou acento grave [`] se estiver usando o menu interno do aplicativo)",
|
||||
"title": "Ocultar Menu Ativado"
|
||||
},
|
||||
"label": "Ocultar Menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Idioma será alterado após reiniciar",
|
||||
"title": "Idioma Alterado"
|
||||
},
|
||||
"label": "Idioma",
|
||||
"submenu": {
|
||||
"to-help-translate": "Quer ajudar na tradução? Clique aqui"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Continuar última música ao iniciar o aplicativo",
|
||||
"single-instance-lock": "Trava de instância única",
|
||||
"start-at-login": "Iniciar no login",
|
||||
"starting-page": {
|
||||
"label": "Página inicial",
|
||||
"unset": "Indefinido"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Bandeja",
|
||||
"submenu": {
|
||||
"disabled": "Desabilitado",
|
||||
"enabled-and-hide-app": "Ativado e esconder aplicativo",
|
||||
"enabled-and-show-app": "Ativado e mostrar aplicativo",
|
||||
"play-pause-on-click": "Play/Pausa ao clicar"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Tweaks Visuais",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Padrão",
|
||||
"force-show": "Forçar mostrar",
|
||||
"hide": "Esconder",
|
||||
"label": "Botões de curtida"
|
||||
},
|
||||
"remove-upgrade-button": "Remover botão upgrade",
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Importar arquivo CSS personalizado",
|
||||
"no-theme": "Sem tema"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Ativado",
|
||||
"label": "Plugins"
|
||||
},
|
||||
"view": {
|
||||
"label": "Ver",
|
||||
"submenu": {
|
||||
"force-reload": "Forçar Recarregamento",
|
||||
"reload": "Recarregar",
|
||||
"reset-zoom": "Tamanho Atual",
|
||||
"toggle-fullscreen": "Ativar Tela Cheia",
|
||||
"zoom-in": "Zoom Dentro",
|
||||
"zoom-out": "Zoom Fora"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Próximo",
|
||||
"play-pause": "Play/Pausa",
|
||||
"previous": "Anterior",
|
||||
"quit": "Sair",
|
||||
"restart": "Reiniciar aplicativo",
|
||||
"show": "Mostrar janela"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Bloquear todos os anúncios e rastreamento automaticamente",
|
||||
"menu": {
|
||||
"blocker": "Bloqueador"
|
||||
},
|
||||
"name": "Bloqueador de anúncios"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Aplica um tema dinâmico e efeitos visuais com base na paleta de cores do álbum",
|
||||
"name": "Tema de cores do álbum"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Aplica um efeito de iluminação lançando cores suaves do vídeo no fundo da tela.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Quantidade de desfoque",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} píxeis"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buffer",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Opacidade",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Qualidade",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} píxeis"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Tamanho",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Transição suave",
|
||||
"submenu": {
|
||||
"during": "Durante {{interpolationTime}}s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Tela cheia"
|
||||
}
|
||||
},
|
||||
"name": "Modo Ambiente"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Aplicar compressão ao áudio (diminui o volume das partes mais altas do sinal e aumenta o volume das partes mais suaves)",
|
||||
"name": "Compressor de áudio"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Torna a barra de navegação transparente e desfocada",
|
||||
"name": "Barra de navegação desfocada"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Ignorar a verificação de idade do YouTube",
|
||||
"name": "Ignorar restrições de idade"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Seletor de legenda para faixas de áudio do YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Selecionar automaticamente a última legenda usada",
|
||||
"disable-captions": "Sem legendas por padrão"
|
||||
},
|
||||
"name": "Seletor de legendas",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Idioma da legenda atual: {{language}}",
|
||||
"none": "Nenhuma",
|
||||
"title": "Selecione o idioma da legenda"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Seletor de legendas aberto"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Definir sempre a barra lateral no modo compacto",
|
||||
"name": "Barra lateral compacta"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Transição entre músicas",
|
||||
"menu": {
|
||||
"advanced": "Avançado"
|
||||
},
|
||||
"name": "Transição entre músicas [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Duração da transição no início (ms)",
|
||||
"fade-out-duration": "Duração da transição no final (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Escala da transição",
|
||||
"linear": "Linear",
|
||||
"logarithmic": "Logarítmica"
|
||||
},
|
||||
"seconds-before-end": "Realizar transição N segundos antes do final"
|
||||
},
|
||||
"title": "Opções de transição"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Faz a música começar no modo \"pausado\"",
|
||||
"menu": {
|
||||
"apply-once": "Aplicar apenas na inicialização"
|
||||
},
|
||||
"name": "Desativar reprodução automática"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Tentativa de conexão com conexão já ativa",
|
||||
"connected": "Conectado ao Discord",
|
||||
"disconnected": "Desconectado do Discord"
|
||||
},
|
||||
"description": "Mostre aos seus amigos o que você ouve com Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Reconexão automática",
|
||||
"clear-activity": "Limpar atividade",
|
||||
"clear-activity-after-timeout": "Limpar atividade após o tempo limite",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"hide-duration-left": "Ocultar duração restante",
|
||||
"hide-github-button": "Ocultar botão de link do GitHub",
|
||||
"play-on-youtube-music": "Reproduzir no YouTube Music",
|
||||
"set-inactivity-timeout": "Definir tempo limite de inatividade"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Insira o tempo limite de inatividade em segundos:",
|
||||
"title": "Definir tempo limite de inatividade"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Poxa! Desculpe, o download falhou…",
|
||||
"title": "Erro no download!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} músicas)",
|
||||
"message": "Baixando lista de reprodução {{playlistTitle}}",
|
||||
"title": "Download iniciado"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Conversão: {{percent}}%",
|
||||
"converting": "Convertendo…",
|
||||
"done": "Finalizado: {{filePath}}",
|
||||
"download-info": "Baixando {{artist}} - {{title}} {{videoId}}",
|
||||
"download-progress": "Baixando: {{percent}}%",
|
||||
"downloading": "Baixando…",
|
||||
"downloading-counter": "Baixando {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Baixando lista de reprodução \"{{playlistTitle}}\" - {{playlistSize}} músicas ({{playlistId}})",
|
||||
"error-while-downloading": "Erro ao baixar \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "A pasta {{playlistFolder}} já existe",
|
||||
"getting-playlist-info": "Obtendo informações da lista de reprodução…",
|
||||
"loading": "Carregando…",
|
||||
"playlist-has-only-one-song": "A lista de reprodução possui apenas um item, baixando-o diretamente",
|
||||
"playlist-id-not-found": "ID da lista de reprodução não encontrado",
|
||||
"playlist-is-empty": "Lista de reprodução vazia",
|
||||
"playlist-is-mix-or-private": "Erro ao obter informações da lista de reprodução: tenha certeza que ela não está privada ou não seja \"Mixtapes criadas para você\"\n\n{{error}}",
|
||||
"preparing-file": "Preparando arquivos…",
|
||||
"saving": "Salvando…",
|
||||
"trying-to-get-playlist-id": "Tentando pegar ID da lista de reprodução: {{playlistId}}",
|
||||
"video-id-not-found": "Vídeo não encontrado",
|
||||
"writing-id3": "Escrevendo tags ID3…"
|
||||
}
|
||||
},
|
||||
"description": "Baixa MP3 / fonte de áudio diretamente da interface",
|
||||
"menu": {
|
||||
"choose-download-folder": "Escolha a pasta de download",
|
||||
"download-playlist": "Baixar lista de reprodução",
|
||||
"presets": "Predefinições",
|
||||
"skip-existing": "Ignorar arquivos existentes"
|
||||
},
|
||||
"name": "Downloader",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Não é possível atualizar o progresso"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Baixar"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Torna o controle deslizante de volume exponencial, facilitando a seleção de volumes mais baixos.",
|
||||
"name": "Volume Exponencial"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Dá às barras de menu uma aparência sofisticada, escura ou com a cor do álbum",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Ocultar controles da janela DOM"
|
||||
},
|
||||
"name": "Menu no aplicativo"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "Adiciona suporte de scrobbling para Last.fm",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Adiciona suporte Lumia Stream",
|
||||
"name": "Lumia Stream [beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Adiciona suporte a letras para a maioria das músicas",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Letras romanizadas"
|
||||
},
|
||||
"name": "Letras Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Buscar letras no Genius"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Setas de navegação Próximo/Voltar integradas diretamente na interface, como no seu navegador favorito",
|
||||
"name": "Navegação"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Remove os botões e links de login do Google da interface",
|
||||
"name": "Sem login do Google"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Exibir uma notificação quando uma música começar a tocar (notificações interativas estão disponíveis no Windows)",
|
||||
"menu": {
|
||||
"interactive": "Notificações interativas",
|
||||
"interactive-settings": {
|
||||
"label": "Configurações interativas",
|
||||
"submenu": {
|
||||
"hide-button-text": "Ocultar texto do botão",
|
||||
"refresh-on-play-pause": "Atualizar ao reproduzir/pausar",
|
||||
"tray-controls": "Abrir/Fechar no clique da bandeja"
|
||||
}
|
||||
},
|
||||
"priority": "Prioridade de notificação",
|
||||
"toast-style": "Estilo de alerta",
|
||||
"unpause-notification": "Mostrar notificação ao despausar"
|
||||
},
|
||||
"name": "Notificações"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permite mudar o aplicativo para o modo picture-in-picture",
|
||||
"menu": {
|
||||
"always-on-top": "Sempre no topo",
|
||||
"hotkey": {
|
||||
"label": "Tecla de atalho",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Tecla de atalho"
|
||||
},
|
||||
"label": "Escolha uma tecla de atalho para alternar o picture-in-picture",
|
||||
"title": "Tecla de atalho picture-in-picture"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Salvar posição da janela",
|
||||
"save-window-size": "Salvar tamanho da janela",
|
||||
"use-native-pip": "Use PiP nativo do navegador"
|
||||
},
|
||||
"name": "Picture-in-picture",
|
||||
"templates": {
|
||||
"button": "Picture-in-picture"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Ouça rápido, ouça devagar! Adiciona um controle deslizante que controla a velocidade da música",
|
||||
"name": "Velocidade de reprodução",
|
||||
"templates": {
|
||||
"button": "Velocidade"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Controle o volume com precisão usando a roda do mouse/teclas de atalho, com um HUD personalizado e etapas de volume personalizáveis",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Controles locais das teclas de seta",
|
||||
"custom-volume-steps": "Definir etapas de volume personalizadas",
|
||||
"global-shortcuts": "Teclas de atalho globais"
|
||||
},
|
||||
"name": "Volume preciso",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Diminuir o volume",
|
||||
"increase": "Aumentar o volume"
|
||||
},
|
||||
"label": "Escolha atalhos de teclado de volume global:",
|
||||
"title": "Atalhos de teclado de volume global"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Escolha as etapas de aumento/diminuição de volume",
|
||||
"title": "Etapas de volume"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Qualidade atual: {{quality}}",
|
||||
"message": "Escolha a qualidade do vídeo:",
|
||||
"title": "Escolha a qualidade do vídeo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Permite alterar a qualidade do vídeo com um botão na sobreposição de vídeo",
|
||||
"name": "Trocador de qualidade do vídeo"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Permite definir teclas de atalho globais para reprodução (reproduzir/pausar/próximo/anterior) e desligar o OSD de mídia substituindo as teclas de mídia, ativando Ctrl/CMD + F para pesquisar, ativando o suporte Linux MPRIS para teclas de mídia e teclas de atalho personalizadas para usuários avançados.",
|
||||
"menu": {
|
||||
"override-media-keys": "Substituir teclas de mídia",
|
||||
"set-keybinds": "Definir controles globais de música"
|
||||
},
|
||||
"name": "Atalhos (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Próximo",
|
||||
"play-pause": "Reproduzir/Pausar",
|
||||
"previous": "Anterior"
|
||||
},
|
||||
"label": "Escolha atalhos de teclado globais para controle de músicas:",
|
||||
"title": "Atalhos globais do teclado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Pula músicas com 'não gostei'",
|
||||
"name": "Pular músicas com 'não gostei'"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Pular automaticamente seções de silêncio nas músicas",
|
||||
"name": "Pular silêncios"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Ignora automaticamente partes não musicais, como introdução/final ou partes de videoclipes onde a música não está tocando",
|
||||
"name": "SponsorBlock (bloqueador de patrocínios)"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Controle a reprodução na barra de tarefas do Windows",
|
||||
"name": "Controle de mídia da barra de tarefas"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Adiciona um widget TouchBar para usuários do macOS",
|
||||
"name": "Barra de toque"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integração com o plugin Tuna do OBS",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Adiciona um botão para alternar entre o modo Vídeo/Música. Também pode, opcionalmente, remover toda a guia de vídeo",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Alinhamento",
|
||||
"submenu": {
|
||||
"left": "Esquerda",
|
||||
"middle": "Centro",
|
||||
"right": "Direita"
|
||||
}
|
||||
},
|
||||
"force-hide": "Forçar remoção da guia de vídeo",
|
||||
"mode": {
|
||||
"label": "Modo",
|
||||
"submenu": {
|
||||
"custom": "Alternar personalizado",
|
||||
"disabled": "Desabilitado",
|
||||
"native": "Alternar nativo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Botão de Alternar Vídeo",
|
||||
"templates": {
|
||||
"button": "Música"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Adiciona um visualizador ao player",
|
||||
"menu": {
|
||||
"visualizer-type": "Tipo de visualizador"
|
||||
},
|
||||
"name": "Visualizer"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,49 +1,165 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Ошибка загрузки плагина {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс",
|
||||
"initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"",
|
||||
"load-all": "Загружаем все плагины",
|
||||
"load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"",
|
||||
"loaded": "Плагин \"{{pluginName}}\" загружен",
|
||||
"unload-failed": "Ошибка выгрузки плагина \"{{pluginName}}\"",
|
||||
"unloaded": "Плагин \"{{pluginName}}\" выгружен"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "ru",
|
||||
"local-name": "Русский",
|
||||
"name": "Russian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Загрузка завершена. DevTools открыт"
|
||||
},
|
||||
"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' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
|
||||
"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": {
|
||||
"download": "Download",
|
||||
"disable": "Отключить обновления",
|
||||
"download": "Скачать",
|
||||
"ok": "OK"
|
||||
}
|
||||
},
|
||||
"detail": "Новая версия доступна для загрузки на {{downloadLink}}",
|
||||
"message": "Доступная новая версия",
|
||||
"title": "Доступно обновление"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "О приложении",
|
||||
"navigation": {
|
||||
"label": "Navigation"
|
||||
"label": "Навигация",
|
||||
"submenu": {
|
||||
"copy-current-url": "Скопировать текущий URL",
|
||||
"go-back": "Вернуться",
|
||||
"go-forward": "Вперед",
|
||||
"quit": "Выйти",
|
||||
"restart": "Перезапустить приложение"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Options",
|
||||
"label": "Настройки",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Расширенные настройки",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Очищать кеш при запуске приложения",
|
||||
"disable-hardware-acceleration": "Отключить аппаратное ускорение",
|
||||
"edit-config-json": "Редактировать config.json",
|
||||
"restart-on-config-changes": "Перезапускать при изменениях конфига",
|
||||
"set-proxy": {
|
||||
"label": "Set proxy",
|
||||
"label": "Задать прокси",
|
||||
"prompt": {
|
||||
"title": "Set proxy"
|
||||
"label": "Введите прокси адрес (оставьте поле пустым для отключения)",
|
||||
"placeholder": "Пример: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Задать прокси"
|
||||
}
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Включить DevTools"
|
||||
}
|
||||
},
|
||||
"auto-update": "Auto Update",
|
||||
"start-at-login": "Start at login",
|
||||
"always-on-top": "Поверх остальных окон",
|
||||
"auto-update": "Автообновление",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Меню будет скрыто при следующем запуске, используйте [Alt] чтобы показать его (или [`] если используйте меню внутри приложения)",
|
||||
"title": "Скрытие меню включено"
|
||||
},
|
||||
"label": "Скрыть меню"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Язык будет сменён после перезапуска",
|
||||
"title": "Язык изменён"
|
||||
},
|
||||
"label": "Язык",
|
||||
"submenu": {
|
||||
"to-help-translate": "Хотите помочь с переводом? Кликните сюда"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Продолжать последнюю песню при запуске приложения",
|
||||
"start-at-login": "Запуск при включении компьютера",
|
||||
"starting-page": {
|
||||
"label": "Стартовая страница",
|
||||
"unset": "Не настроено"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Tray"
|
||||
"label": "Трей",
|
||||
"submenu": {
|
||||
"disabled": "Отключено",
|
||||
"enabled-and-hide-app": "Включено и скрывать приложение",
|
||||
"enabled-and-show-app": "Включено и показывать приложение",
|
||||
"play-pause-on-click": "Пауза/продолжить при нажатии"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Визуальные настройки",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Default"
|
||||
"default": "Default",
|
||||
"force-show": "Всегда показывать",
|
||||
"hide": "Скрывать",
|
||||
"label": "Кнопка лайка"
|
||||
},
|
||||
"remove-upgrade-button": "Убрать кнопку Youtube Premium",
|
||||
"theme": {
|
||||
"label": "Theme",
|
||||
"label": "Тема",
|
||||
"submenu": {
|
||||
"no-theme": "No theme"
|
||||
"import-css-file": "Импортировать кастомный CSS файл",
|
||||
"no-theme": "Без темы"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -51,11 +167,28 @@
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"label": "Plugins"
|
||||
"enabled": "Включено",
|
||||
"label": "Плагины"
|
||||
},
|
||||
"view": {
|
||||
"label": "View"
|
||||
"label": "Вид",
|
||||
"submenu": {
|
||||
"force-reload": "Принудительная перезагрузка",
|
||||
"reload": "Перезагрузить",
|
||||
"reset-zoom": "Настоящий размер",
|
||||
"toggle-fullscreen": "Включить полноэкранный режим",
|
||||
"zoom-in": "Приблизить",
|
||||
"zoom-out": "Отдалить"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Следующий",
|
||||
"play-pause": "Пауза/Продолжить",
|
||||
"previous": "Предыдущий",
|
||||
"quit": "Выйти",
|
||||
"restart": "Перезагрузить приложение",
|
||||
"show": "Показать окно"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
@ -106,7 +239,7 @@
|
||||
"smoothness-transition": {
|
||||
"label": "Плавный переход",
|
||||
"submenu": {
|
||||
"during": "В течение {{interpolationTime}}s"
|
||||
"during": "В течение {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
@ -129,21 +262,78 @@
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Выбор субтитров для аудиотреков в YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Автоматически выбирать последние использованные субтитры",
|
||||
"disable-captions": "Без субтитров по умолчанию"
|
||||
},
|
||||
"name": "Выбор субтитров",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"none": "None"
|
||||
"label": "Текущий язык субтитров:{{language}}",
|
||||
"none": "Нет",
|
||||
"title": "Выберите язык субтитров"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Открыть выбор субтитров"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Боковая панель всегда в компактном режиме",
|
||||
"name": "Компактная боковая панель"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Плавный переход между песнями",
|
||||
"menu": {
|
||||
"advanced": "Расширенное"
|
||||
},
|
||||
"name": "Плавный переход [бета]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Длительность постепенного появления (мс)",
|
||||
"fade-out-duration": "Длительность затухания (мс)",
|
||||
"fade-scaling": {
|
||||
"linear": "Linear"
|
||||
}
|
||||
}
|
||||
"label": "Сила перехода",
|
||||
"linear": "Линейный",
|
||||
"logarithmic": "Логарифмический"
|
||||
},
|
||||
"seconds-before-end": "Плавных переход за N секунд перед концом"
|
||||
},
|
||||
"title": "Настройки плавного перехода"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Запускает песню сразу на паузе",
|
||||
"menu": {
|
||||
"apply-once": "Применимо только при запуске"
|
||||
},
|
||||
"name": "Отключить Автопроигрыш"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Попытка подключения при уже существующем соединении",
|
||||
"connected": "Подключено к Discord",
|
||||
"disconnected": "Отключено от Discord"
|
||||
},
|
||||
"description": "Покажите своим друзьям что вы слушаете с помощью Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Авто переподключение",
|
||||
"clear-activity": "Очистить активность",
|
||||
"clear-activity-after-timeout": "Очищать активность после таймаута",
|
||||
"connected": "Подключено",
|
||||
"disconnected": "Отключено",
|
||||
"hide-duration-left": "Скрыть сколько осталось времени",
|
||||
"hide-github-button": "Скрыть ссылку на GitHub",
|
||||
"play-on-youtube-music": "Воспроизвести на YouTube Music",
|
||||
"set-inactivity-timeout": "Поставить таймер неактивности"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Введите таймер неактивности в секундах:",
|
||||
"title": "Задать таймер неактивности"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -154,22 +344,61 @@
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Ой-ой! Прошу простить, загрузка дала сбой…",
|
||||
"title": "Error in download!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
}
|
||||
},
|
||||
"detail": "({{playlistSize}} песен)",
|
||||
"message": "Скачиваем плейлист {{playlistTitle}}",
|
||||
"title": "Загрузка началась"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"download-progress": "Download: {{percent}}%"
|
||||
"conversion-progress": "Конвертация: {{percent}}%",
|
||||
"converting": "Конвертация…",
|
||||
"done": "Выполнено: {{filePath}}",
|
||||
"download-info": "Скачиваем {{artist}}-{{title}} {{videoId}}",
|
||||
"download-progress": "Download: {{percent}}%",
|
||||
"downloading": "Скачиваем…",
|
||||
"downloading-counter": "Скачиваем {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Скачиваем плейлист \"{{playlistTitle}}\" - {{playlistSize}} песен {{playlistId}}",
|
||||
"error-while-downloading": "Ошибка при скачивании \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Папка {{playlistFolder}} уже существует",
|
||||
"getting-playlist-info": "Получаем информацию о плейлисте…",
|
||||
"loading": "Загрузка…",
|
||||
"playlist-has-only-one-song": "В плейлисте только одна песня, скачиваем напрямую",
|
||||
"playlist-id-not-found": "Плейлист не найден",
|
||||
"playlist-is-empty": "Плейлист пуст",
|
||||
"playlist-is-mix-or-private": "Ошибка при получении данных о плейлисте: убедитесь что он не приватный или \"Только для вас\" плейлист\n\n{{error}}",
|
||||
"preparing-file": "Подготавливаем файл…",
|
||||
"saving": "Сохраняем…",
|
||||
"trying-to-get-playlist-id": "Пытаемся получить ID плейлиста: {{playlistId}}",
|
||||
"video-id-not-found": "Видео не найдено",
|
||||
"writing-id3": "Пишем ID3 теги…"
|
||||
}
|
||||
},
|
||||
"description": "Скачивать MP3 / исходное аудио напрямую из интерфейса",
|
||||
"menu": {
|
||||
"choose-download-folder": "Выберите папку для загрузок",
|
||||
"download-playlist": "Скачать плейлист",
|
||||
"presets": "Пресеты",
|
||||
"skip-existing": "Пропускать уже существующие файлы"
|
||||
},
|
||||
"name": "Загрузчик",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Невозможно обновить прогресс"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Download"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Делает слайдер громкости расширенным чтобы было легче выбирать низкие уровни.",
|
||||
"name": "Расширенная громкость"
|
||||
},
|
||||
"last-fm": {
|
||||
"name": "Last.fm"
|
||||
},
|
||||
@ -195,7 +424,7 @@
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"touchbar": {
|
||||
"name": "TouchBar"
|
||||
"name": "Тачбар"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"name": "Tuna OBS"
|
||||
@ -215,6 +444,9 @@
|
||||
"templates": {
|
||||
"button": "Song"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"name": "Визуалайзер"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
7
src/i18n/resources/th.json
Normal file
7
src/i18n/resources/th.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"language": {
|
||||
"code": "th",
|
||||
"local-name": "ภาษาไทย",
|
||||
"name": "Thai"
|
||||
}
|
||||
}
|
||||
262
src/i18n/resources/tr.json
Normal file
262
src/i18n/resources/tr.json
Normal file
@ -0,0 +1,262 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "{{pluginName}}::{{contextName}} eklentisi çalıştırılamadı",
|
||||
"executed-at-ms": "{{pluginName}}::{{contextName}} eklentisi {{ms}}ms'de çalıştırıldı",
|
||||
"initialize-failed": "\"{{pluginName}}\" eklentisi başlatılamadı",
|
||||
"load-all": "Tüm eklentiler yükleniyor",
|
||||
"load-failed": "\"{{pluginName}}\" eklentisi yüklenemedi",
|
||||
"loaded": "\"{{pluginName}}\" eklentisi yüklendi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "tr",
|
||||
"local-name": "Türkçe",
|
||||
"name": "Turkish"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Yükleme tamamlandı. Geliştirici araçları açıldı"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n yüklendi"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"message": "Gizli menüyü etkinleştir"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"download": "İndir",
|
||||
"ok": "Tamam"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"navigation": {
|
||||
"label": "Navigasyon"
|
||||
},
|
||||
"options": {
|
||||
"label": "Seçenekler",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"submenu": {
|
||||
"set-proxy": {
|
||||
"label": "Proxy ayarla",
|
||||
"prompt": {
|
||||
"title": "Proxy ayarla"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"auto-update": "Otomatik Güncelleme",
|
||||
"language": {
|
||||
"label": "Dil"
|
||||
},
|
||||
"start-at-login": "Başlangıçta çalıştır",
|
||||
"tray": {
|
||||
"label": "Tepsi",
|
||||
"submenu": {
|
||||
"enabled-and-hide-app": "Uygulamayı etkinleştirin gizleyin.",
|
||||
"play-pause-on-click": "Tıklaynınca Oynat-Duraklat"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Varsayılan"
|
||||
},
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"no-theme": "Tema Yok"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"label": "Eklentiler"
|
||||
},
|
||||
"view": {
|
||||
"label": "Görüntü"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Tüm reklamları ve izleyicileri engelle",
|
||||
"menu": {
|
||||
"blocker": "Engelleme Yöntemi"
|
||||
},
|
||||
"name": "Adblocker"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Albümün renk paletine dayalı dinamik bir tema ve efektler uygular.",
|
||||
"name": "Albüm Renk Teması"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Videodaki yumuşak renkleri ekranınızın arka planına yansıtarak bir ışık efekti uygular..",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixels"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Önbellek",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Opaklık Miktarı",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pixels"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"submenu": {
|
||||
"during": "{{interpolationTime}} saniye içinde"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Ses sıkıştırma (dalganın en gürültülü bölümlerinin ses düzeyini azaltır ve daha yumuşak bölümlerin ses düzeyini artırır)"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Gezinme çubuğunu şeffaf ve bulanık yapar"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "YouTube yaş doğrulamasını atla"
|
||||
},
|
||||
"captions-selector": {
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"none": "Hiçbiri"
|
||||
}
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Her zaman kompakt kenar çubugu"
|
||||
},
|
||||
"crossfade": {
|
||||
"menu": {
|
||||
"advanced": "İleri düzey için"
|
||||
},
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-scaling": {
|
||||
"linear": "Doğrusal",
|
||||
"logarithmic": "Logaritmik"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Şarkıların otomatik olarak duraklatılmasını sağlar",
|
||||
"menu": {
|
||||
"apply-once": "Yalnızca ilk şarkı için geçerlidir"
|
||||
}
|
||||
},
|
||||
"discord": {
|
||||
"description": "Rich Presence ile Discord'da ne dinlediğinizi gösterin.",
|
||||
"menu": {
|
||||
"hide-duration-left": "Kalan süreyi gizle",
|
||||
"hide-github-button": "GitHub bağlantısını gizle",
|
||||
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla"
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "Tamam"
|
||||
},
|
||||
"title": "İndirmede hata meydana geldi!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "Tamam"
|
||||
},
|
||||
"message": "Çalma listesini indir : {{playlistTitle}}",
|
||||
"title": "İndirme Başladı"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Dönüştürme : {{percent}}%",
|
||||
"download-progress": "İndirme : {{percent}}%",
|
||||
"preparing-file": "Dosya Hazırlanıyor…"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"button": "İndir"
|
||||
}
|
||||
},
|
||||
"last-fm": {
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"navigation": {
|
||||
"name": "Navigasyon"
|
||||
},
|
||||
"no-google-login": {
|
||||
"name": "Google Girişini Kaldır"
|
||||
},
|
||||
"notifications": {
|
||||
"name": "Bildirimler"
|
||||
},
|
||||
"shortcuts": {
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "İler"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sponsorblock": {
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"touchbar": {
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"menu": {
|
||||
"align": {
|
||||
"submenu": {
|
||||
"middle": "Orta",
|
||||
"right": "Sağ"
|
||||
}
|
||||
},
|
||||
"mode": {
|
||||
"label": "Mod"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"button": "Şarkı"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
408
src/i18n/resources/uk.json
Normal file
408
src/i18n/resources/uk.json
Normal file
@ -0,0 +1,408 @@
|
||||
{
|
||||
"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": "uk",
|
||||
"local-name": "Українська",
|
||||
"name": "Ukrainian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Завантаження завершено. Відкрито DevTools"
|
||||
},
|
||||
"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={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Меню приховано, використовуйте \"Alt\", щоб показати його (або \"Escape\", якщо ви використовуєте меню в додатку)",
|
||||
"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": "Так"
|
||||
},
|
||||
"detail": "Доступна нова версія, яку можна завантажити за посиланням {{downloadLink}}",
|
||||
"message": "Доступна нова версія",
|
||||
"title": "Доступне оновлення"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Про нас",
|
||||
"navigation": {
|
||||
"label": "Навігація",
|
||||
"submenu": {
|
||||
"copy-current-url": "Копіювати поточну 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": "Змінити User-Agent",
|
||||
"restart-on-config-changes": "Перезапуск після зміни конфігурації",
|
||||
"set-proxy": {
|
||||
"label": "Задати проксі",
|
||||
"prompt": {
|
||||
"label": "Введіть адресу проксі-сервера: (залиште порожнім, щоб вимкнути)",
|
||||
"placeholder": "Приклад: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Задати проксі"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Перемкнути DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Завжди зверху",
|
||||
"auto-update": "Автооновлення",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Меню буде приховано при наступному запуску, використовуйте [Alt], щоб показати його (або клавішу [`], якщо ви використовуєте вбудоване меню)",
|
||||
"title": "Приховане меню Увімкнено"
|
||||
},
|
||||
"label": "Приховане меню"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Мова буде змінена після перезапуску",
|
||||
"title": "Мову змінено"
|
||||
},
|
||||
"label": "Мова",
|
||||
"submenu": {
|
||||
"to-help-translate": "Хочете допомогти з перекладом? Клацніть тут"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Відновлювати останню пісню при запуску програми",
|
||||
"single-instance-lock": "Заблокувати єдиним інстансом",
|
||||
"start-at-login": "Запустити при вході в систему",
|
||||
"starting-page": {
|
||||
"label": "Початкова сторінка",
|
||||
"unset": "Не задано"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Таця",
|
||||
"submenu": {
|
||||
"disabled": "Вимкнено",
|
||||
"enabled-and-hide-app": "Запустити та приховати програму",
|
||||
"enabled-and-show-app": "Запустити та відобразити додаток",
|
||||
"play-pause-on-click": "Відтворення/Пауза за натисканням"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Візуальні налаштування",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "За замовчуванням",
|
||||
"force-show": "Завжди показувати",
|
||||
"hide": "Приховати",
|
||||
"label": "Як кнопки"
|
||||
},
|
||||
"remove-upgrade-button": "Прибрати кнопку оновлення",
|
||||
"theme": {
|
||||
"label": "Тема",
|
||||
"submenu": {
|
||||
"import-css-file": "Імпортувати власний CSS файл",
|
||||
"no-theme": "Без теми"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Увімкнено",
|
||||
"label": "Плагіни"
|
||||
},
|
||||
"view": {
|
||||
"label": "Вид",
|
||||
"submenu": {
|
||||
"force-reload": "Примусове перезавантаження",
|
||||
"reload": "Перезавантажити",
|
||||
"reset-zoom": "Фактичний розмір",
|
||||
"toggle-fullscreen": "Включити повноекранний режим",
|
||||
"zoom-in": "Збільшити",
|
||||
"zoom-out": "Зменшити"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Далі",
|
||||
"play-pause": "Відтворення/Пауза",
|
||||
"previous": "Попередній",
|
||||
"quit": "Вихід",
|
||||
"restart": "Перезапустити програму",
|
||||
"show": "Показати вікно"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "Блокувати всю рекламу та відстеження з коробки",
|
||||
"menu": {
|
||||
"blocker": "Блокувальник"
|
||||
},
|
||||
"name": "Блокувальник реклами"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Застосовує динамічну тему та візуальні ефекти на основі колірної палітри альбому",
|
||||
"name": "Кольорова тема альбому"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Застосовує ефект освітлення, накладаючи ніжні кольори з відео на фон екрана.",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Обсяг розмиття",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} пікселів"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Буфер",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Прозорість",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Якість",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} пікселів"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Розмір",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Плавність переходу",
|
||||
"submenu": {
|
||||
"during": "Протягом {{interpolationTime}} с"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Повноекранний режим"
|
||||
}
|
||||
},
|
||||
"name": "Режим навколишнього середовища"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Застосувати стиснення аудіо (зменшити гучність найгучніших фрагментів сигналу та збільшити гучність тихих фрагментів)",
|
||||
"name": "Аудіокомпресор"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Робить панель навігації прозорою та розмитою",
|
||||
"name": "Розмиття панелі навігації"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Обхід перевірки віку на YouTube",
|
||||
"name": "Обхід вікових обмежень"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Вибір субтитрів для аудіодоріжок YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "Автоматичний вибір останніх використаних субтитрів",
|
||||
"disable-captions": "За замовчуванням субтитри відсутні"
|
||||
},
|
||||
"name": "Вибір субтитрів",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Поточна мова субтитрів: {{language}}",
|
||||
"none": "Нема",
|
||||
"title": "Виберіть мову субтитрів"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Відкрити селектор субтитрів"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Бічна панель завжди в компактному режимі",
|
||||
"name": "Компактна бічна панель"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Плавний перехід між піснями",
|
||||
"menu": {
|
||||
"advanced": "Розширене"
|
||||
},
|
||||
"name": "Плавний перехід[бета-версія]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Тривалість згасання (мс)",
|
||||
"fade-out-duration": "Тривалість згасання (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Згладжування масштабування",
|
||||
"linear": "Лінійна",
|
||||
"logarithmic": "Логарифмічна"
|
||||
},
|
||||
"seconds-before-end": "Плавний перехід за N секунд до кінця"
|
||||
},
|
||||
"title": "Параметри плавного переходу"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Запуск пісні в режимі \"пауза\"",
|
||||
"menu": {
|
||||
"apply-once": "Застосовується тільки при запуску"
|
||||
},
|
||||
"name": "Вимкнути автовідтворення"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Спроба підключення при активному з'єднанні",
|
||||
"connected": "Під'єднано до Discord",
|
||||
"disconnected": "Від'єднано від Discord"
|
||||
},
|
||||
"description": "Покажіть друзям, що ви слухаєте за допомогою Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Автоматичне перепідключення",
|
||||
"clear-activity": "Очистити активність",
|
||||
"clear-activity-after-timeout": "Очистити активність після тайм-ауту",
|
||||
"connected": "Під'єднано",
|
||||
"disconnected": "Від'єднано",
|
||||
"hide-duration-left": "Приховати тривалість, яка залишилася",
|
||||
"hide-github-button": "Приховати посилання на GitHub",
|
||||
"play-on-youtube-music": "Слухати на YouTube Music",
|
||||
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Введіть тайм-аут бездіяльності в секундах:",
|
||||
"title": "Встановлення тайм-ауту бездіяльності"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "Добре"
|
||||
},
|
||||
"message": "Йой! При завантаженні виникла помилка…",
|
||||
"title": "Помилка при завантаженні!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} пісень)",
|
||||
"message": "Завантаження списку відтворення {{playlistTitle}}",
|
||||
"title": "Завантаження розпочато"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Конвертація: {{percent}}%",
|
||||
"converting": "Конвертація…",
|
||||
"done": "Готово: {{filePath}}",
|
||||
"download-info": "Завантаження {{artist}} - {{title}} [{{videoId}}]",
|
||||
"download-progress": "Завантажено: {{percent}}%",
|
||||
"downloading": "Завантаження…",
|
||||
"downloading-counter": "Завантажено {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Завантаження плейлисту \"{{playlistTitle}}\" - {{playlistSize}} пісень ({{playlistId}})",
|
||||
"error-while-downloading": "Помилка завантаження \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Папка {{playlistFolder}} вже існує",
|
||||
"getting-playlist-info": "Отримання інформації про плейлист…",
|
||||
"loading": "Завантаження…",
|
||||
"playlist-has-only-one-song": "Плейлист має лише один елемент, завантаження якого відбувається безпосередньо",
|
||||
"playlist-id-not-found": "Ідентифікатор плейлиста не знайдено",
|
||||
"playlist-is-empty": "Плейлист порожній",
|
||||
"playlist-is-mix-or-private": "Помилка при отриманні інформації про плейлист: переконайтеся, що це не приватний плейлист або плейлист \"Мікс для вас\"\n\n{{error}}",
|
||||
"preparing-file": "Готуємо файл…",
|
||||
"saving": "Збереження…",
|
||||
"trying-to-get-playlist-id": "Спроба отримати ідентифікатора плейлиста: {{playlistId}}",
|
||||
"video-id-not-found": "Відео не знайдено",
|
||||
"writing-id3": "Пишемо ID3-теги…"
|
||||
}
|
||||
},
|
||||
"description": "Завантажує MP3 / джерело аудіо безпосередньо з інтерфейсу",
|
||||
"menu": {
|
||||
"choose-download-folder": "Оберіть папку для завантаження",
|
||||
"download-playlist": "Завантажити плейлист",
|
||||
"presets": "Попередні налаштування",
|
||||
"skip-existing": "Пропустити наявні файли"
|
||||
},
|
||||
"name": "Завантажувач",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Неможливо оновити прогрес"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Завантажити"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Робить регулятор гучності експоненціальним, що полегшує вибір тихих рівнів гучності.",
|
||||
"name": "Експоненціальний обсяг"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Надає меню-барам вишуканого, темного або кольору альбому вигляду"
|
||||
}
|
||||
}
|
||||
}
|
||||
598
src/i18n/resources/zh-CN.json
Normal file
598
src/i18n/resources/zh-CN.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "执行插件 {{pluginName}}::{{contextName}} 失败",
|
||||
"executed-at-ms": "插件 {{pluginName}}::{{contextName}} 已在 {{ms}} 毫秒内执行",
|
||||
"initialize-failed": "初始化插件 “{{pluginName}}” 失败",
|
||||
"load-all": "正在加载所有插件",
|
||||
"load-failed": "加载插件 “{{pluginName}}” 失败",
|
||||
"loaded": "插件 “{{pluginName}}” 已载入",
|
||||
"unload-failed": "卸载插件 “{{pluginName}}” 失败",
|
||||
"unloaded": "插件 “{{pluginName}}” 已卸载"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "zh-CN",
|
||||
"local-name": "简体中文",
|
||||
"name": "Simplified 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={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "菜单已隐藏,按下 Alt 键来显示(若使用应用内菜单则按 Esc 键)",
|
||||
"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": "好的"
|
||||
},
|
||||
"detail": "新版本现已可用,可从 {{downloadLink}} 下载",
|
||||
"message": "新版本可用",
|
||||
"title": "更新可用"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "关于",
|
||||
"navigation": {
|
||||
"label": "导航",
|
||||
"submenu": {
|
||||
"copy-current-url": "复制当前 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": "覆盖 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": {
|
||||
"dialog": {
|
||||
"message": "菜单将在下次启动时隐藏,按下 Alt 键以显示(若使用应用内菜单则按 ` 键)",
|
||||
"title": "隐藏菜单已启用"
|
||||
},
|
||||
"label": "隐藏菜单"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "语言会在应用重启后更改",
|
||||
"title": "语言已更改"
|
||||
},
|
||||
"label": "语言",
|
||||
"submenu": {
|
||||
"to-help-translate": "想要协助翻译?点击此处"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "应用启动时继续上次播放的歌曲",
|
||||
"single-instance-lock": "单例模式",
|
||||
"start-at-login": "系统登录时启动",
|
||||
"starting-page": {
|
||||
"label": "启动页面",
|
||||
"unset": "取消设定"
|
||||
},
|
||||
"tray": {
|
||||
"label": "托盘",
|
||||
"submenu": {
|
||||
"disabled": "已禁用",
|
||||
"enabled-and-hide-app": "启用并隐藏应用",
|
||||
"enabled-and-show-app": "启用并显示应用",
|
||||
"play-pause-on-click": "点击时播放/暂停"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "视觉调整",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "默认",
|
||||
"force-show": "强制显示",
|
||||
"hide": "隐藏",
|
||||
"label": "点赞按钮"
|
||||
},
|
||||
"remove-upgrade-button": "移除升级按钮",
|
||||
"theme": {
|
||||
"label": "主题",
|
||||
"submenu": {
|
||||
"import-css-file": "导入自定义 CSS 文件",
|
||||
"no-theme": "无主题"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "已启用",
|
||||
"label": "插件"
|
||||
},
|
||||
"view": {
|
||||
"label": "视图",
|
||||
"submenu": {
|
||||
"force-reload": "强制刷新",
|
||||
"reload": "刷新",
|
||||
"reset-zoom": "实际缩放大小",
|
||||
"toggle-fullscreen": "切换全屏",
|
||||
"zoom-in": "放大",
|
||||
"zoom-out": "缩小"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "下一首",
|
||||
"play-pause": "播放/暂停",
|
||||
"previous": "上一首",
|
||||
"quit": "退出",
|
||||
"restart": "重启应用",
|
||||
"show": "显示窗口"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "屏蔽所有广告与跟踪器",
|
||||
"menu": {
|
||||
"blocker": "屏蔽器"
|
||||
},
|
||||
"name": "广告屏蔽器"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "根据专辑封面配色动态改变主题与视觉效果",
|
||||
"name": "专辑配色主题"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "将视频中的浅配色作为光效投射到背景中,以增加沉浸感。",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "模糊等级",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} 像素"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "缓冲",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "不透明度",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "质量",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} 像素"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "大小",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "平滑过渡",
|
||||
"submenu": {
|
||||
"during": "持续 {{interpolationTime}} 秒"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "使用全屏"
|
||||
}
|
||||
},
|
||||
"name": "沉浸模式"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "对音频应用压缩(压低响亮部分,提升柔和部分)",
|
||||
"name": "音频压缩器"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "让导航栏透明及模糊",
|
||||
"name": "模糊导航栏"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "绕过 YouTube 年龄验证",
|
||||
"name": "绕过年龄验证"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "YouTube Music 音轨字幕选择器",
|
||||
"menu": {
|
||||
"autoload": "自动选择上次使用的字幕",
|
||||
"disable-captions": "默认无字幕"
|
||||
},
|
||||
"name": "字幕选择器",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "当前字幕语言: {{language}}",
|
||||
"none": "无",
|
||||
"title": "选择字幕语言"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "开启字幕选择器"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "始终将侧边栏设为紧凑模式",
|
||||
"name": "紧凑式侧边栏"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "在歌曲间启用交叉淡化效果",
|
||||
"menu": {
|
||||
"advanced": "高级"
|
||||
},
|
||||
"name": "交叉淡化 [beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "淡入持续时间(毫秒)",
|
||||
"fade-out-duration": "淡出持续时间(毫秒)",
|
||||
"fade-scaling": {
|
||||
"label": "淡化尺度",
|
||||
"linear": "线性",
|
||||
"logarithmic": "对数"
|
||||
},
|
||||
"seconds-before-end": "歌曲结束前持续交叉淡化时长"
|
||||
},
|
||||
"title": "交叉淡化选项"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "让曲目开始时处于 “暂停” 模式",
|
||||
"menu": {
|
||||
"apply-once": "仅在程序启动时应用"
|
||||
},
|
||||
"name": "禁用自动播放"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "已尝试使用活跃网络进行连接",
|
||||
"connected": "已连接到 Discord",
|
||||
"disconnected": "已和 Discord 断开连接"
|
||||
},
|
||||
"description": "使用 Rich Presence 与好友分享正在收听的音乐",
|
||||
"menu": {
|
||||
"auto-reconnect": "自动重连",
|
||||
"clear-activity": "清除状态",
|
||||
"clear-activity-after-timeout": "超时后清除状态",
|
||||
"connected": "已连接",
|
||||
"disconnected": "已断开连接",
|
||||
"hide-duration-left": "隐藏剩余时长",
|
||||
"hide-github-button": "隐藏 GitHub 链接按钮",
|
||||
"play-on-youtube-music": "转至 YouTube Music 播放",
|
||||
"set-inactivity-timeout": "设置非活跃时长"
|
||||
},
|
||||
"name": "Discord Rich Presence 状态显示",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "设置非活跃状态超时时长,以秒为单位:",
|
||||
"title": "设置非活跃超时"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "好的"
|
||||
},
|
||||
"message": "啊!抱歉,下载失败…",
|
||||
"title": "下载时发生错误!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "好的"
|
||||
},
|
||||
"detail": "({{playlistSize}} 首歌曲)",
|
||||
"message": "正在下载播放列表 {{playlistTitle}}",
|
||||
"title": "下载已开始"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "转换进度: {{percent}}%",
|
||||
"converting": "正在转换…",
|
||||
"done": "完成下载: {{filePath}}",
|
||||
"download-info": "正在下载 {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "下载: {{percent}}%",
|
||||
"downloading": "下载中…",
|
||||
"downloading-counter": "当前正下载 {{current}}/{{total}}…",
|
||||
"downloading-playlist": "当前正在下载播放列表 \"{{playlistTitle}}\" - 共有 {{playlistSize}} 首歌曲 ({{playlistId}})",
|
||||
"error-while-downloading": "下载 \"{{author}} - {{title}}\" 时出错: {{error}}",
|
||||
"folder-already-exists": "文件夹 {{playlistFolder}} 已存在",
|
||||
"getting-playlist-info": "正在获取播放列表信息…",
|
||||
"loading": "加载中…",
|
||||
"playlist-has-only-one-song": "播放列表只有一首歌曲,将直接下载",
|
||||
"playlist-id-not-found": "未找到播放列表 ID",
|
||||
"playlist-is-empty": "播放列表是空的",
|
||||
"playlist-is-mix-or-private": "获取播放列表信息时出错:请确认目标不是私有或“为你推荐”列表\n\n{{error}}",
|
||||
"preparing-file": "正在准备文件…",
|
||||
"saving": "正在保存…",
|
||||
"trying-to-get-playlist-id": "正尝试获取播放列表 ID: {{playlistId}}",
|
||||
"video-id-not-found": "视频未找到",
|
||||
"writing-id3": "正在写入 ID3 标签…"
|
||||
}
|
||||
},
|
||||
"description": "在界面内直接下载 MP3 / 源音频",
|
||||
"menu": {
|
||||
"choose-download-folder": "选择下载文件夹",
|
||||
"download-playlist": "下载播放列表",
|
||||
"presets": "预设",
|
||||
"skip-existing": "跳过已存在的文件"
|
||||
},
|
||||
"name": "下载器",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "无法更新进度"
|
||||
},
|
||||
"templates": {
|
||||
"button": "下载"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "让音量滑块指数化以便选择更低的音量。",
|
||||
"name": "指数化音量"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "为菜单栏启用更精美的外观,可选暗色或专辑配色",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "隐藏 DOM 窗口控件"
|
||||
},
|
||||
"name": "应用内菜单"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "添加 Last.fm 记录支持",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "添加 Lumia Stream 支持",
|
||||
"name": "Lumia Stream [测试]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "为大多数歌曲添加歌词支持",
|
||||
"menu": {
|
||||
"romanized-lyrics": "罗马化字幕"
|
||||
},
|
||||
"name": "Genius 歌词",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "已从 Genius 获取字幕"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "如同浏览器般,在应用界面内直接显示前进/后退导航按钮",
|
||||
"name": "导航"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "从界面内移除 Google 登录按钮和链接",
|
||||
"name": "无 Google 登录"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "歌曲开始时显示通知(交互式通知仅适用于 Windows)",
|
||||
"menu": {
|
||||
"interactive": "交互式通知",
|
||||
"interactive-settings": {
|
||||
"label": "通知交互设定",
|
||||
"submenu": {
|
||||
"hide-button-text": "隐藏按钮文字",
|
||||
"refresh-on-play-pause": "播放/暂停时刷新",
|
||||
"tray-controls": "点击托盘时打开/关闭"
|
||||
}
|
||||
},
|
||||
"priority": "通知优先级",
|
||||
"toast-style": "弹出通知样式",
|
||||
"unpause-notification": "取消暂停时显示通知"
|
||||
},
|
||||
"name": "通知"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "允许应用切换到画中画模式",
|
||||
"menu": {
|
||||
"always-on-top": "保持置顶",
|
||||
"hotkey": {
|
||||
"label": "热键",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "热键"
|
||||
},
|
||||
"label": "选择切换画中画模式的热键",
|
||||
"title": "画中画热键"
|
||||
}
|
||||
},
|
||||
"save-window-position": "记住窗口位置",
|
||||
"save-window-size": "记住窗口尺寸",
|
||||
"use-native-pip": "使用浏览器原生画中画功能"
|
||||
},
|
||||
"name": "画中画",
|
||||
"templates": {
|
||||
"button": "画中画"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "快慢随心!为歌曲添加速度控制滑块",
|
||||
"name": "回放速度",
|
||||
"templates": {
|
||||
"button": "速度"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "启用自定义的音量弹窗以及可变步长,以便采用滚轮/热键精确控制音量",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "本地方向键控件",
|
||||
"custom-volume-steps": "设置自定义音量步长",
|
||||
"global-shortcuts": "全局热键"
|
||||
},
|
||||
"name": "精确音量",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "降低音量",
|
||||
"increase": "提升音量"
|
||||
},
|
||||
"label": "选择全局音量键绑定:",
|
||||
"title": "全局音量键绑定"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "选择音量增加/减弱步长",
|
||||
"title": "音量步长"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "当前质量: {{quality}}",
|
||||
"message": "选择视频画质:",
|
||||
"title": "选择视频画质"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "允许在视频上显示切换画质按钮",
|
||||
"name": "视频画质切换器"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "允许为音频回放(播放/暂停/上一曲/下一曲)设置全局热键,兼具覆盖物理键以禁用 OSD、启用 Ctrl/CMD + F 搜索、为物理键启用 Linux MPRIS 支持及自定义热键等高级功能。",
|
||||
"menu": {
|
||||
"override-media-keys": "覆盖物理媒体热键",
|
||||
"set-keybinds": "设置全局歌曲控件"
|
||||
},
|
||||
"name": "快捷键(以及 MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "下一曲",
|
||||
"play-pause": "播放/暂停",
|
||||
"previous": "上一曲"
|
||||
},
|
||||
"label": "为歌曲控制选择全局按键绑定:",
|
||||
"title": "全局按键绑定"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "自动跳过不喜欢的歌曲",
|
||||
"name": "跳过不喜欢的歌曲"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "自动跳过音乐中的无声片段",
|
||||
"name": "跳过无声片段"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "自动跳过非音乐部分,如 MV 的介绍/结语以及歌曲未开始的部分",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "从 Windows 任务栏控制音乐回放",
|
||||
"name": "任务栏媒体控件"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "为 macOS 用户启用 TouchBar 支持",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "与 OBS 的 Tuna 插件集成",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "增加视频/音频模式间的切换按钮。兼具移除整个视频页面的功能",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "位置对齐",
|
||||
"submenu": {
|
||||
"left": "左对齐",
|
||||
"middle": "居中",
|
||||
"right": "右对齐"
|
||||
}
|
||||
},
|
||||
"force-hide": "强制移除视频页",
|
||||
"mode": {
|
||||
"label": "模式",
|
||||
"submenu": {
|
||||
"custom": "自定义开关样式",
|
||||
"disabled": "禁用",
|
||||
"native": "原生开关样式"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "视频切换开关",
|
||||
"templates": {
|
||||
"button": "歌曲"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "在播放器中添加可视化效果",
|
||||
"menu": {
|
||||
"visualizer-type": "可视化类型"
|
||||
},
|
||||
"name": "可视化效果"
|
||||
}
|
||||
}
|
||||
}
|
||||
598
src/i18n/resources/zh-TW.json
Normal file
598
src/i18n/resources/zh-TW.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "外掛 {{pluginName}} 無法執行::{{contextName}}",
|
||||
"executed-at-ms": "外掛 {{pluginName}}::{{contextName}} 用了 {{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 鍵來重新顯示(或是使用 Esc 鍵)",
|
||||
"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": "確定"
|
||||
},
|
||||
"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": {
|
||||
"dialog": {
|
||||
"message": "選單列會在程式下次啟動時隱藏,使用 Alt 鍵來重新顯示(或是使用 ` 鍵)",
|
||||
"title": "隱藏選單列已啟用"
|
||||
},
|
||||
"label": "隱藏選單列"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "語言會在下一次重啟應用程式時變更",
|
||||
"title": "語言已變更"
|
||||
},
|
||||
"label": "語言",
|
||||
"submenu": {
|
||||
"to-help-translate": "想要協助翻譯?按一下這裡"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "繼續上次關閉應用程式前的音樂",
|
||||
"single-instance-lock": "禁止多開應用程式",
|
||||
"start-at-login": "開機時啟動",
|
||||
"starting-page": {
|
||||
"label": "啟動頁面",
|
||||
"unset": "未設定"
|
||||
},
|
||||
"tray": {
|
||||
"label": "系統閘圖式",
|
||||
"submenu": {
|
||||
"disabled": "已停用",
|
||||
"enabled-and-hide-app": "啟用並隱藏應用程式",
|
||||
"enabled-and-show-app": "啟用並顯示應用程式",
|
||||
"play-pause-on-click": "點擊時播放/暫停"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "視覺設定",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "預設",
|
||||
"force-show": "強制顯示",
|
||||
"hide": "隱藏",
|
||||
"label": "按讚按鈕"
|
||||
},
|
||||
"remove-upgrade-button": "移除升級按鈕",
|
||||
"theme": {
|
||||
"label": "主題",
|
||||
"submenu": {
|
||||
"import-css-file": "匯入自訂 CSS 檔案",
|
||||
"no-theme": "無主題"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "啟用",
|
||||
"label": "外掛功能"
|
||||
},
|
||||
"view": {
|
||||
"label": "視窗",
|
||||
"submenu": {
|
||||
"force-reload": "強制重新整理",
|
||||
"reload": "重新整理",
|
||||
"reset-zoom": "重設大小",
|
||||
"toggle-fullscreen": "全螢幕",
|
||||
"zoom-in": "放大",
|
||||
"zoom-out": "縮小"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "下一首",
|
||||
"play-pause": "播放/暫停",
|
||||
"previous": "上一首",
|
||||
"quit": "關閉",
|
||||
"restart": "重啟程式",
|
||||
"show": "顯示視窗"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "阻擋所有廣告",
|
||||
"menu": {
|
||||
"blocker": "阻擋方式"
|
||||
},
|
||||
"name": "廣告阻擋"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "依歌曲色調自動更改應用程式主題",
|
||||
"name": "隨歌曲色調變更主題"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "將影片內容的淺色畫面投放至螢幕背景, 讓觀眾在觀賞影片時更有臨場感。",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "模糊等級",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} 像素"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "緩衝",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "不透明度",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "品質",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} 像素"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "大小",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "微光轉換時長",
|
||||
"submenu": {
|
||||
"during": "{{interpolationTime}} 秒"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "使用全螢幕"
|
||||
}
|
||||
},
|
||||
"name": "微光效果"
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "使用音效壓縮 (大聲部份的音量降低, 柔和部份的音量提高)",
|
||||
"name": "音效壓縮器"
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "使導覽列透明及模糊",
|
||||
"name": "模糊導覽列"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "繞過Youtube年齡驗證",
|
||||
"name": "繞過年齡驗證"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "音軌標題選擇",
|
||||
"menu": {
|
||||
"autoload": "自動選擇最後使用的標題",
|
||||
"disable-captions": "預設無標題"
|
||||
},
|
||||
"name": "標題選擇器",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "目前標題語言: {{language}}",
|
||||
"none": "無",
|
||||
"title": "選擇標題語言"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "打開標題選擇器"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "永遠讓側邊欄保持收合狀態",
|
||||
"name": "收合側邊欄"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "在歌曲之間使用交叉淡化",
|
||||
"menu": {
|
||||
"advanced": "進階"
|
||||
},
|
||||
"name": "交叉淡化 [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "淡入時間(毫秒)",
|
||||
"fade-out-duration": "淡出時間(毫秒)",
|
||||
"fade-scaling": {
|
||||
"label": "淡化計算方式",
|
||||
"linear": "線性",
|
||||
"logarithmic": "對數"
|
||||
},
|
||||
"seconds-before-end": "交叉淡化持續時間 (秒)"
|
||||
},
|
||||
"title": "交叉淡化選項"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "讓歌曲開始時為暫停模式",
|
||||
"menu": {
|
||||
"apply-once": "只在啟動程式時套用"
|
||||
},
|
||||
"name": "停用自動播放"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "已嘗試可用連接",
|
||||
"connected": "已連接至Discord",
|
||||
"disconnected": "與Discord斷開連接"
|
||||
},
|
||||
"description": "使用Discord狀態與你的好友分享你正在收聽的音樂",
|
||||
"menu": {
|
||||
"auto-reconnect": "自動重新連接",
|
||||
"clear-activity": "清除狀態",
|
||||
"clear-activity-after-timeout": "在音樂暫停後清除狀態",
|
||||
"connected": "已連接",
|
||||
"disconnected": "已斷開連接",
|
||||
"hide-duration-left": "隱藏音樂剩餘時間狀態",
|
||||
"hide-github-button": "隱藏Github頁面按鈕",
|
||||
"play-on-youtube-music": "顯示Play on YouTube Music按鈕",
|
||||
"set-inactivity-timeout": "設定閒置狀態時長"
|
||||
},
|
||||
"name": "Discord狀態",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "設定多少秒後清除狀態:",
|
||||
"title": "設定閒置狀態時長"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "完成"
|
||||
},
|
||||
"message": "啊!抱歉,下載失敗了…",
|
||||
"title": "下載出現錯誤!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "完成"
|
||||
},
|
||||
"detail": "({{playlistSize}} 首歌曲)",
|
||||
"message": "正在下載播放清單 {{playlistTitle}}",
|
||||
"title": "開始下載"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "轉檔進度: {{percent}}%",
|
||||
"converting": "轉檔中…",
|
||||
"done": "完成下載: {{filePath}}",
|
||||
"download-info": "正在下載 {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "下載進度: {{percent}}%",
|
||||
"downloading": "下載中…",
|
||||
"downloading-counter": "正在下載第 {{current}}/{{total}}…",
|
||||
"downloading-playlist": "正在下載播放清單 \"{{playlistTitle}}\" - 共 {{playlistSize}} 首歌 ({{playlistId}})",
|
||||
"error-while-downloading": "無法下載 \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "資料夾 {{playlistFolder}} 已經存在",
|
||||
"getting-playlist-info": "正在獲取播放清單資訊…",
|
||||
"loading": "載入中…",
|
||||
"playlist-has-only-one-song": "播放清單內只有一首歌曲, 將直接下載",
|
||||
"playlist-id-not-found": "沒有找到播放清單 ID",
|
||||
"playlist-is-empty": "播放清單是空的",
|
||||
"playlist-is-mix-or-private": "獲取播放清單資訊時發生錯誤: 請確認非私人播放清單或是\"為你推薦的合輯\"\n\n{{error}}",
|
||||
"preparing-file": "正在準備檔案…",
|
||||
"saving": "儲存中…",
|
||||
"trying-to-get-playlist-id": "正在嘗試獲取播放清單 ID: {{playlistId}}",
|
||||
"video-id-not-found": "未能找到該影片",
|
||||
"writing-id3": "正在寫入 ID3 標籤…"
|
||||
}
|
||||
},
|
||||
"description": "在應用程式內下載 MP3/原始音樂檔",
|
||||
"menu": {
|
||||
"choose-download-folder": "選擇下載位置",
|
||||
"download-playlist": "下載播放清單",
|
||||
"presets": "預設格式",
|
||||
"skip-existing": "跳過已存在的檔案"
|
||||
},
|
||||
"name": "歌曲下載",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "無法更新進度"
|
||||
},
|
||||
"templates": {
|
||||
"button": "下載"
|
||||
}
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "使音量滑桿指數化,以便更容易選擇較低的音量。",
|
||||
"name": "指數化音量調整"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "使選單列變更為黑色或隨主題變色",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "隱藏DOM視窗控制"
|
||||
},
|
||||
"name": "程式內選單列"
|
||||
},
|
||||
"last-fm": {
|
||||
"description": "新增對Last.fm的scrobbling支援",
|
||||
"name": "Last.fm"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "新增對Lumia Stream的支援",
|
||||
"name": "Lumia Stream [Beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "為更多歌曲新增字幕支援",
|
||||
"menu": {
|
||||
"romanized-lyrics": "羅馬拼音字幕"
|
||||
},
|
||||
"name": "第三方字幕",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "為Genius獲取字幕"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "將上一頁/下一頁按鈕新增至應用程式上方, 就像你最熟悉的瀏覽器",
|
||||
"name": "導覽列"
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "移除Google登入按鈕及連結",
|
||||
"name": "停用Google登入"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "在歌曲播放時發送一個系統通知 (可互動通知僅限Windows)",
|
||||
"menu": {
|
||||
"interactive": "可互動通知",
|
||||
"interactive-settings": {
|
||||
"label": "通知互動設定",
|
||||
"submenu": {
|
||||
"hide-button-text": "隱藏按鈕文字",
|
||||
"refresh-on-play-pause": "在播放/暫停時刷新",
|
||||
"tray-controls": "點擊系統閘圖示時打開/關閉"
|
||||
}
|
||||
},
|
||||
"priority": "通知優先權",
|
||||
"toast-style": "通知樣式",
|
||||
"unpause-notification": "在取消暫停時發送通知"
|
||||
},
|
||||
"name": "歌曲播放通知"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "允許應用程式切換至子母畫面模式",
|
||||
"menu": {
|
||||
"always-on-top": "永遠顯示在最上層",
|
||||
"hotkey": {
|
||||
"label": "快捷鍵",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "快捷鍵"
|
||||
},
|
||||
"label": "選擇一個快捷鍵來切換子母畫面模式",
|
||||
"title": "子母畫面模式快捷鍵"
|
||||
}
|
||||
},
|
||||
"save-window-position": "記住視窗位置",
|
||||
"save-window-size": "記住視窗大小",
|
||||
"use-native-pip": "使用瀏覽器原生子母畫面模式"
|
||||
},
|
||||
"name": "子母畫面",
|
||||
"templates": {
|
||||
"button": "子母畫面"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "傷心的人別聽慢歌, 新增一個滑桿控制歌曲速度",
|
||||
"name": "控制歌曲速度",
|
||||
"templates": {
|
||||
"button": "速度"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "讓你可使用滑鼠滾輪/快捷鍵控制音量,並顯示目前音量大小",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "方向鍵音量控制",
|
||||
"custom-volume-steps": "自訂音量調整時層級",
|
||||
"global-shortcuts": "全域快捷鍵"
|
||||
},
|
||||
"name": "進階音量控制",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "降低音量",
|
||||
"increase": "增加音量"
|
||||
},
|
||||
"label": "選擇全域音量控制快捷鍵:",
|
||||
"title": "全域音量控制快捷鍵"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "設定音量每一次增加/降低的層級",
|
||||
"title": "自訂音量調整時層級"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "目前畫質: {{quality}}",
|
||||
"message": "選擇影片畫質:",
|
||||
"title": "選擇影片畫質"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "允許在影片內進行畫質更改",
|
||||
"name": "允許變更影片畫質"
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "使用全域快捷鍵控制音樂 (播放/暫停/下一首/上一首) + 透過覆寫媒體快捷鍵停用媒體OSD + 允許Ctrl/CMD + F來搜尋 + 支援Linux MPRIS媒體快捷鍵 + 更多自訂快捷鍵給進階使用者。",
|
||||
"menu": {
|
||||
"override-media-keys": "覆寫媒體快捷鍵",
|
||||
"set-keybinds": "設定全域歌曲控制"
|
||||
},
|
||||
"name": "Shortcuts (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "下一首",
|
||||
"play-pause": "播放/暫停",
|
||||
"previous": "上一首"
|
||||
},
|
||||
"label": "選擇全域音樂控制快捷鍵:",
|
||||
"title": "全域快捷鍵"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "自動跳過不喜歡的歌曲",
|
||||
"name": "自動跳過不喜歡的歌曲"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "自動跳過音樂無聲片段",
|
||||
"name": "自動跳過無聲片段"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "自動跳過贊助片段",
|
||||
"name": "贊助阻擋"
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "透過工作列應用程式圖式控制媒體播放",
|
||||
"name": "工作列媒體控制"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "為macOS使用者新增觸控列支援",
|
||||
"name": "觸控列 (Touchbar) 支援"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "與OBS外掛Tuna連接",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "新增一個按鈕可以控制影片/歌曲切換和完全移除整個影片頁面的功能",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "按鈕位置",
|
||||
"submenu": {
|
||||
"left": "靠左",
|
||||
"middle": "中間",
|
||||
"right": "靠右"
|
||||
}
|
||||
},
|
||||
"force-hide": "強制移除整個影片頁面",
|
||||
"mode": {
|
||||
"label": "樣式",
|
||||
"submenu": {
|
||||
"custom": "自訂樣式",
|
||||
"disabled": "停用",
|
||||
"native": "原生樣式"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "歌曲/影片切換",
|
||||
"templates": {
|
||||
"button": "歌曲"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "新增一個可視化音樂效果",
|
||||
"menu": {
|
||||
"visualizer-type": "樣式"
|
||||
},
|
||||
"name": "可視化音樂效果"
|
||||
}
|
||||
}
|
||||
}
|
||||
97
src/index.ts
97
src/index.ts
@ -1,7 +1,6 @@
|
||||
import path from 'node:path';
|
||||
import url from 'node:url';
|
||||
import fs from 'node:fs';
|
||||
import process from 'node:process';
|
||||
|
||||
import {
|
||||
BrowserWindow,
|
||||
@ -403,55 +402,16 @@ async function createMainWindow() {
|
||||
|
||||
removeContentSecurityPolicy();
|
||||
|
||||
win.webContents.on('dom-ready', async () => {
|
||||
if (useInlineMenu) {
|
||||
win.webContents.on('dom-ready', () => {
|
||||
if (useInlineMenu && is.windows()) {
|
||||
win.setTitleBarOverlay({
|
||||
...defaultTitleBarOverlayOptions,
|
||||
height: Math.floor(
|
||||
defaultTitleBarOverlayOptions.height! *
|
||||
win.webContents.getZoomFactor(),
|
||||
win.webContents.getZoomFactor(),
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
// Inject index.html file as string using insertAdjacentHTML
|
||||
// In dev mode, get string from process.env.VITE_DEV_SERVER_URL, else use fs.readFileSync
|
||||
if (is.dev() && process.env.ELECTRON_RENDERER_URL) {
|
||||
// HACK: to make vite work with electron renderer (supports hot reload)
|
||||
await win.webContents.executeJavaScript(`
|
||||
console.log('Loading vite from dev server');
|
||||
const viteScript = document.createElement('script');
|
||||
viteScript.type = 'module';
|
||||
viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client';
|
||||
const rendererScript = document.createElement('script');
|
||||
rendererScript.type = 'module';
|
||||
rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts';
|
||||
document.body.appendChild(viteScript);
|
||||
document.body.appendChild(rendererScript);
|
||||
0
|
||||
`);
|
||||
} else {
|
||||
const rendererPath = path.join(__dirname, '..', 'renderer');
|
||||
const indexHTML = parse(
|
||||
fs.readFileSync(path.join(rendererPath, 'index.html'), 'utf-8'),
|
||||
);
|
||||
const scriptSrc = indexHTML.querySelector('script')!;
|
||||
const scriptPath = path.join(
|
||||
rendererPath,
|
||||
scriptSrc.getAttribute('src')!,
|
||||
);
|
||||
const scriptString = fs.readFileSync(scriptPath, 'utf-8');
|
||||
await win.webContents.executeJavaScriptInIsolatedWorld(
|
||||
0,
|
||||
[
|
||||
{
|
||||
code: scriptString + ';0',
|
||||
url: url.pathToFileURL(scriptPath).toString(),
|
||||
},
|
||||
],
|
||||
true,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
win.webContents.loadURL(urlToLoad);
|
||||
@ -556,11 +516,14 @@ app.on('activate', async () => {
|
||||
});
|
||||
|
||||
const getDefaultLocale = (locale: string) =>
|
||||
Object.keys(languageResources).includes(locale) ? locale : 'en';
|
||||
Object.keys(languageResources).includes(locale) ? locale : null;
|
||||
|
||||
app.whenReady().then(async () => {
|
||||
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 () => {
|
||||
@ -627,6 +590,48 @@ app.whenReady().then(async () => {
|
||||
}
|
||||
}
|
||||
|
||||
ipcMain.on('get-renderer-script', (event) => {
|
||||
// Inject index.html file as string using insertAdjacentHTML
|
||||
// In dev mode, get string from process.env.VITE_DEV_SERVER_URL, else use fs.readFileSync
|
||||
if (is.dev() && process.env.ELECTRON_RENDERER_URL) {
|
||||
// HACK: to make vite work with electron renderer (supports hot reload)
|
||||
event.returnValue = [null, `
|
||||
console.log('${LoggerPrefix}', 'Loading vite from dev server');
|
||||
(async () => {
|
||||
await new Promise((resolve) => {
|
||||
if (document.readyState === 'loading') {
|
||||
console.log('${LoggerPrefix}', 'Waiting for DOM to load');
|
||||
document.addEventListener('DOMContentLoaded', () => resolve(), { once: true });
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
const viteScript = document.createElement('script');
|
||||
viteScript.type = 'module';
|
||||
viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client';
|
||||
const rendererScript = document.createElement('script');
|
||||
rendererScript.type = 'module';
|
||||
rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts';
|
||||
document.body.appendChild(viteScript);
|
||||
document.body.appendChild(rendererScript);
|
||||
})();
|
||||
0
|
||||
`];
|
||||
} else {
|
||||
const rendererPath = path.join(__dirname, '..', 'renderer');
|
||||
const indexHTML = parse(
|
||||
fs.readFileSync(path.join(rendererPath, 'index.html'), 'utf-8'),
|
||||
);
|
||||
const scriptSrc = indexHTML.querySelector('script')!;
|
||||
const scriptPath = path.join(
|
||||
rendererPath,
|
||||
scriptSrc.getAttribute('src')!,
|
||||
);
|
||||
const scriptString = fs.readFileSync(scriptPath, 'utf-8');
|
||||
event.returnValue = [url.pathToFileURL(scriptPath).toString(), scriptString + ';0'];
|
||||
}
|
||||
});
|
||||
|
||||
mainWindow = await createMainWindow();
|
||||
await setApplicationMenu(mainWindow);
|
||||
await refreshMenu(mainWindow);
|
||||
@ -683,7 +688,7 @@ app.whenReady().then(async () => {
|
||||
type: 'info',
|
||||
buttons: [
|
||||
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'),
|
||||
],
|
||||
title: t('main.dialog.update-available.title'),
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
import process from 'node:process';
|
||||
|
||||
import is from 'electron-is';
|
||||
import {
|
||||
app,
|
||||
@ -377,9 +375,9 @@ export const mainMenuTemplate = async (
|
||||
availableLanguages
|
||||
.map(
|
||||
(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',
|
||||
checked: config.get('options.language') === lang,
|
||||
checked: (config.get('options.language') ?? 'en') === lang,
|
||||
click() {
|
||||
config.setMenuOption('options.language', lang);
|
||||
refreshMenu(win);
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import { contextBridge, webFrame } from 'electron';
|
||||
|
||||
import { blockers } from './types';
|
||||
import { createPlugin } from '@/utils';
|
||||
import {
|
||||
@ -107,23 +109,24 @@ export default createPlugin({
|
||||
},
|
||||
},
|
||||
preload: {
|
||||
script: 'window.JSON = window._proxyJson; window._proxyJson = undefined; window.Response = window._proxyResponse; window._proxyResponse = undefined; 0',
|
||||
async start({ getConfig }) {
|
||||
const config = await getConfig();
|
||||
|
||||
if (config.blocker === blockers.WithBlocklists) {
|
||||
// Preload adblocker to inject scripts/styles
|
||||
await injectCliqzPreload();
|
||||
} else if (config.blocker === blockers.InPlayer) {
|
||||
inject();
|
||||
} else if (config.blocker === blockers.InPlayer && !isInjected()) {
|
||||
inject(contextBridge);
|
||||
await webFrame.executeJavaScript(this.script);
|
||||
}
|
||||
},
|
||||
async onConfigChange(newConfig) {
|
||||
if (newConfig.blocker === blockers.WithBlocklists) {
|
||||
await injectCliqzPreload();
|
||||
} else if (newConfig.blocker === blockers.InPlayer) {
|
||||
if (!isInjected()) {
|
||||
inject();
|
||||
}
|
||||
} else if (newConfig.blocker === blockers.InPlayer && !isInjected()) {
|
||||
inject(contextBridge);
|
||||
await webFrame.executeJavaScript(this.script);
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
4
src/plugins/adblocker/injectors/inject.d.ts
vendored
4
src/plugins/adblocker/injectors/inject.d.ts
vendored
@ -1,3 +1,5 @@
|
||||
export const inject: () => void;
|
||||
import type { ContextBridge } from 'electron';
|
||||
|
||||
export const inject: (contextBridge: ContextBridge) => void;
|
||||
|
||||
export const isInjected: () => boolean;
|
||||
|
||||
@ -10,9 +10,13 @@
|
||||
|
||||
let injected = false;
|
||||
|
||||
export const isInjected = () => isInjected;
|
||||
export const isInjected = () => injected;
|
||||
|
||||
export const inject = () => {
|
||||
/**
|
||||
* @param {Electron.ContextBridge} contextBridge
|
||||
* @returns {*}
|
||||
*/
|
||||
export const inject = (contextBridge) => {
|
||||
injected = true;
|
||||
{
|
||||
const pruner = function (o) {
|
||||
@ -28,17 +32,37 @@ export const inject = () => {
|
||||
return o;
|
||||
};
|
||||
|
||||
JSON.parse = new Proxy(JSON.parse, {
|
||||
apply() {
|
||||
return pruner(Reflect.apply(...arguments));
|
||||
},
|
||||
contextBridge.exposeInMainWorld('_proxyJson', {
|
||||
parse: new Proxy(JSON.parse, {
|
||||
apply() {
|
||||
return pruner(Reflect.apply(...arguments));
|
||||
},
|
||||
}),
|
||||
stringify: JSON.stringify,
|
||||
[Symbol.toStringTag]: JSON[Symbol.toStringTag],
|
||||
});
|
||||
|
||||
const withPrototype = (obj) => {
|
||||
const protos = Object.getPrototypeOf(obj);
|
||||
for (const [key, value] of Object.entries(protos)) {
|
||||
if (Object.prototype.hasOwnProperty.call(obj, key)) continue;
|
||||
if (typeof value === 'function') {
|
||||
obj[key] = function (...args) {
|
||||
return value.call(obj, ...args);
|
||||
}
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
|
||||
Response.prototype.json = new Proxy(Response.prototype.json, {
|
||||
apply() {
|
||||
return Reflect.apply(...arguments).then((o) => pruner(o));
|
||||
},
|
||||
});
|
||||
contextBridge.exposeInMainWorld('_proxyResponse', withPrototype(Response));
|
||||
}
|
||||
|
||||
(function () {
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import { inject } from 'simple-youtube-age-restriction-bypass';
|
||||
|
||||
import { createPlugin } from '@/utils';
|
||||
import { t } from '@/i18n';
|
||||
|
||||
@ -6,6 +8,6 @@ export default createPlugin({
|
||||
description: () => t('plugins.bypass-age-restrictions.description'),
|
||||
restartNeeded: true,
|
||||
|
||||
// See https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass#userscript
|
||||
renderer: () => import('simple-youtube-age-restriction-bypass'),
|
||||
// See https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass#userscript
|
||||
renderer: () => inject(),
|
||||
});
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
declare module 'simple-youtube-age-restriction-bypass' {
|
||||
const nothing: never;
|
||||
export default nothing;
|
||||
export const inject: () => void;
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ export const onRendererLoad = ({
|
||||
|
||||
ipc.on('downloader-feedback', (feedback: string) => {
|
||||
if (progress) {
|
||||
progress.innerHTML = feedback || 'Download';
|
||||
progress.innerHTML = feedback || t('plugins.downloader.templates.button');
|
||||
} else {
|
||||
console.warn(
|
||||
LoggerPrefix,
|
||||
|
||||
@ -15,7 +15,7 @@ export const onMenu = async ({
|
||||
if (is.linux()) {
|
||||
return [
|
||||
{
|
||||
label: t('plugins.in-app-menu.hide-dom-window-controls'),
|
||||
label: t('plugins.in-app-menu.menu.hide-dom-window-controls'),
|
||||
type: 'checkbox',
|
||||
checked: config.hideDOMWindowControls,
|
||||
click(item) {
|
||||
|
||||
@ -10,18 +10,21 @@ import backHTML from './templates/back.html?raw';
|
||||
export default createPlugin({
|
||||
name: () => t('plugins.navigation.name'),
|
||||
description: () => t('plugins.navigation.description'),
|
||||
restartNeeded: true,
|
||||
restartNeeded: false,
|
||||
config: {
|
||||
enabled: true,
|
||||
},
|
||||
stylesheets: [style],
|
||||
renderer() {
|
||||
const forwardButton = ElementFromHtml(forwardHTML);
|
||||
const backButton = ElementFromHtml(backHTML);
|
||||
const menu = document.querySelector('#right-content');
|
||||
|
||||
if (menu) {
|
||||
menu.prepend(backButton, forwardButton);
|
||||
}
|
||||
renderer: {
|
||||
start() {
|
||||
const forwardButton = ElementFromHtml(forwardHTML);
|
||||
const backButton = ElementFromHtml(backHTML);
|
||||
const menu = document.querySelector('#right-content');
|
||||
menu?.prepend(backButton, forwardButton);
|
||||
},
|
||||
stop() {
|
||||
document.querySelector('[tab-id=FEmusic_back]')?.remove();
|
||||
document.querySelector('[tab-id=FEmusic_next]')?.remove();
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@ -107,13 +107,15 @@ export const onMainLoad = async ({
|
||||
|
||||
window.on('move', () => {
|
||||
if (config.isInPiP && !config.useNativePiP) {
|
||||
setConfig({ 'pip-position': window.getPosition() as [number, number] });
|
||||
const [x, y] = window.getPosition();
|
||||
setConfig({ 'pip-position': [x, y] });
|
||||
}
|
||||
});
|
||||
|
||||
window.on('resize', () => {
|
||||
if (config.isInPiP && !config.useNativePiP) {
|
||||
setConfig({ 'pip-size': window.getSize() as [number, number] });
|
||||
const [width, height] = window.getSize();
|
||||
setConfig({ 'pip-size': [width, height] });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
41
src/plugins/skip-disliked-songs/index.ts
Normal file
41
src/plugins/skip-disliked-songs/index.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { t } from '@/i18n';
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
export default createPlugin({
|
||||
name: () => t('plugins.skip-disliked-songs.name'),
|
||||
description: () => t('plugins.skip-disliked-songs.description'),
|
||||
restartNeeded: false,
|
||||
renderer: {
|
||||
observer: null as MutationObserver | null,
|
||||
start() {
|
||||
this.waitForElem('#like-button-renderer').then((likeBtn) => {
|
||||
this.observer = new MutationObserver(() => {
|
||||
if (likeBtn?.getAttribute('like-status') == 'DISLIKE') {
|
||||
document
|
||||
.querySelector('tp-yt-paper-icon-button.next-button')
|
||||
?.click();
|
||||
}
|
||||
});
|
||||
this.observer.observe(likeBtn, {
|
||||
attributes: true,
|
||||
childList: false,
|
||||
subtree: false,
|
||||
});
|
||||
});
|
||||
},
|
||||
stop() {
|
||||
this.observer?.disconnect();
|
||||
},
|
||||
waitForElem(selector) {
|
||||
return new Promise((resolve) => {
|
||||
const interval = setInterval(() => {
|
||||
const elem = document.querySelector(selector);
|
||||
if (!elem) return;
|
||||
|
||||
clearInterval(interval);
|
||||
resolve(elem);
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
});
|
||||
@ -1,6 +1,4 @@
|
||||
import process from 'node:process';
|
||||
|
||||
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
|
||||
import { contextBridge, ipcRenderer, IpcRendererEvent, webFrame } from 'electron';
|
||||
import is from 'electron-is';
|
||||
|
||||
import config from './config';
|
||||
@ -55,3 +53,19 @@ contextBridge.exposeInMainWorld(
|
||||
'ELECTRON_RENDERER_URL',
|
||||
process.env.ELECTRON_RENDERER_URL,
|
||||
);
|
||||
|
||||
const [path, script] = ipcRenderer.sendSync('get-renderer-script') as [string | null, string];
|
||||
let blocked = true;
|
||||
if (path) {
|
||||
webFrame.executeJavaScriptInIsolatedWorld(0, [
|
||||
{
|
||||
code: script,
|
||||
url: path,
|
||||
},
|
||||
], true, () => blocked = false);
|
||||
} else {
|
||||
webFrame.executeJavaScript(script, true, () => blocked = false);
|
||||
}
|
||||
|
||||
// HACK: Wait for the script to be executed
|
||||
while (blocked);
|
||||
|
||||
@ -2,7 +2,7 @@ import { singleton } from './decorators';
|
||||
|
||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
||||
import type { GetState } from '@/types/datahost-get-state';
|
||||
import type { VideoDataChangeValue } from '@/types/player-api-events';
|
||||
import type { AlbumDetails, VideoDataChangeValue } from '@/types/player-api-events';
|
||||
|
||||
import type { SongInfo } from './song-info';
|
||||
import type { VideoDataChanged } from '@/types/video-data-changed';
|
||||
@ -155,7 +155,10 @@ export default (api: YoutubePlayer) => {
|
||||
const data = api.getPlayerResponse();
|
||||
|
||||
data.videoDetails.album =
|
||||
videoData?.Hd?.playerOverlays?.playerOverlayRenderer?.browserMediaSession?.browserMediaSessionRenderer?.album.runs?.at(
|
||||
(
|
||||
Object.entries(videoData)
|
||||
.find(([, value]) => value && Object.hasOwn(value, 'playerOverlays')) as [string, AlbumDetails | undefined]
|
||||
)?.[1]?.playerOverlays?.playerOverlayRenderer?.browserMediaSession?.browserMediaSessionRenderer?.album?.runs?.at(
|
||||
0,
|
||||
)?.text;
|
||||
data.videoDetails.elapsedSeconds = 0;
|
||||
|
||||
@ -21,37 +21,6 @@ let isPluginLoaded = false;
|
||||
let isApiLoaded = false;
|
||||
let firstDataLoaded = false;
|
||||
|
||||
const observer = new MutationObserver(() => {
|
||||
const playerApi = document.querySelector<Element & YoutubePlayer>(
|
||||
'#movie_player',
|
||||
);
|
||||
if (playerApi) {
|
||||
observer.disconnect();
|
||||
|
||||
// Inject song-info provider
|
||||
setupSongInfo(playerApi);
|
||||
const dataLoadedListener = (name: string) => {
|
||||
if (!firstDataLoaded && name === 'dataloaded') {
|
||||
firstDataLoaded = true;
|
||||
playerApi.removeEventListener('videodatachange', dataLoadedListener);
|
||||
}
|
||||
};
|
||||
playerApi.addEventListener('videodatachange', dataLoadedListener);
|
||||
|
||||
if (isPluginLoaded && !isApiLoaded) {
|
||||
api = playerApi;
|
||||
isApiLoaded = true;
|
||||
|
||||
onApiLoaded();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
observer.observe(document.documentElement, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
});
|
||||
|
||||
async function listenForApiLoad() {
|
||||
if (!isApiLoaded) {
|
||||
api = document.querySelector('#movie_player');
|
||||
@ -176,14 +145,16 @@ const defineYTMDTransElements = () => {
|
||||
);
|
||||
};
|
||||
|
||||
(async () => {
|
||||
const preload = async () => {
|
||||
await loadI18n();
|
||||
await setLanguage(window.mainConfig.get('options.language') ?? 'en');
|
||||
window.i18n = {
|
||||
t: i18t.bind(i18next),
|
||||
};
|
||||
defineYTMDTransElements();
|
||||
};
|
||||
|
||||
const main = async () => {
|
||||
await loadAllRendererPlugins();
|
||||
isPluginLoaded = true;
|
||||
|
||||
@ -226,4 +197,48 @@ const defineYTMDTransElements = () => {
|
||||
console.log(JSON.parse(log));
|
||||
});
|
||||
}
|
||||
})();
|
||||
};
|
||||
|
||||
const initObserver = async () => {
|
||||
// check document.documentElement is ready
|
||||
await new Promise<void>((resolve) => {
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', () => resolve(), { once: true });
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
|
||||
const observer = new MutationObserver(() => {
|
||||
const playerApi = document.querySelector<Element & YoutubePlayer>(
|
||||
'#movie_player',
|
||||
);
|
||||
if (playerApi) {
|
||||
observer.disconnect();
|
||||
|
||||
// Inject song-info provider
|
||||
setupSongInfo(playerApi);
|
||||
const dataLoadedListener = (name: string) => {
|
||||
if (!firstDataLoaded && name === 'dataloaded') {
|
||||
firstDataLoaded = true;
|
||||
playerApi.removeEventListener('videodatachange', dataLoadedListener);
|
||||
}
|
||||
};
|
||||
playerApi.addEventListener('videodatachange', dataLoadedListener);
|
||||
|
||||
if (isPluginLoaded && !isApiLoaded) {
|
||||
api = playerApi;
|
||||
isApiLoaded = true;
|
||||
|
||||
onApiLoaded();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
observer.observe(document.documentElement, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
});
|
||||
};
|
||||
|
||||
initObserver().then(preload).then(main);
|
||||
|
||||
@ -246,8 +246,6 @@ export type VideoDataChangeValue = Record<string, unknown> & {
|
||||
title: string;
|
||||
author: string;
|
||||
|
||||
Hd?: AlbumDetails;
|
||||
|
||||
playlistId: string;
|
||||
isUpcoming: boolean;
|
||||
loading: boolean;
|
||||
|
||||
@ -170,17 +170,13 @@ export interface YoutubePlayer {
|
||||
channelUnsubscribed: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
togglePictureInPicture: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
togglePictureInPicture: () => void;
|
||||
supportsGaplessAudio: () => boolean;
|
||||
supportsGaplessShorts: () => boolean;
|
||||
enqueueVideoByPlayerVars: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
clearQueue: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
clearQueue: () => void;
|
||||
getAudioTrack: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
@ -284,14 +280,10 @@ export interface YoutubePlayer {
|
||||
handleGlobalKeyDown: () => void;
|
||||
handleGlobalKeyUp: () => void;
|
||||
wakeUpControls: () => void;
|
||||
cueVideoById: (videoId: string) => void;
|
||||
loadVideoById: (videoId: string) => void;
|
||||
cueVideoByUrl: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
loadVideoByUrl: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
cueVideoById: (videoId: string, startSeconds: number, suggestedQuality: string) => void;
|
||||
loadVideoById: (videoId: string, startSeconds: number, suggestedQuality: string) => void;
|
||||
cueVideoByUrl: (mediaContentUrl: string, startSeconds: number, suggestedQuality: string, playerType: string) => void;
|
||||
loadVideoByUrl: (mediaContentUrl: string, startSeconds: number, suggestedQuality: string, playerType: string) => void;
|
||||
/**
|
||||
* Note: This doesn't resume playback, it plays from the start.
|
||||
*/
|
||||
@ -363,9 +355,7 @@ export interface YoutubePlayer {
|
||||
addCueRange: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
removeCueRange: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
removeCueRange: (range: unknown[]) => void;
|
||||
setSize: (size: { width: number; height: number }) => void;
|
||||
destroy: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
@ -383,12 +373,8 @@ export interface YoutubePlayer {
|
||||
getVideoUrl: () => string;
|
||||
getMediaReferenceTime: () => number;
|
||||
getSize: () => { width: number; height: number };
|
||||
logImaAdEvent: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
preloadVideoById: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
logImaAdEvent: (eventType: unknown, breakType: unknown) => void;
|
||||
preloadVideoById: (videoId: string, startSeconds: number, suggestedQuality: string) => void;
|
||||
setAccountLinkState: <Parameters extends unknown[], Return>(
|
||||
...params: Parameters
|
||||
) => Return;
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
{
|
||||
"extends": "@electron-toolkit/tsconfig/tsconfig.node.json",
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"target": "esnext",
|
||||
"lib": ["dom", "dom.iterable", "es2022"],
|
||||
"module": "CommonJS",
|
||||
"module": "esnext",
|
||||
"types": ["electron-vite/node"],
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"esModuleInterop": true,
|
||||
@ -21,5 +21,8 @@
|
||||
}
|
||||
},
|
||||
"exclude": ["./dist"],
|
||||
"include": ["electron.vite.config.ts", "./src/**/*"]
|
||||
"include": [
|
||||
"electron.vite.config.mts",
|
||||
"./src/**/*"
|
||||
]
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { basename, relative, resolve, extname } from 'node:path';
|
||||
import { basename, relative, resolve, extname, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import { globSync } from 'glob';
|
||||
import { Project } from 'ts-morph';
|
||||
@ -7,6 +8,7 @@ const snakeToCamel = (text: string) =>
|
||||
text.replace(/-(\w)/g, (_, letter: string) => letter.toUpperCase());
|
||||
|
||||
export const i18nImporter = () => {
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const project = new Project({
|
||||
tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'),
|
||||
skipAddingFilesFromTsConfig: true,
|
||||
@ -1,4 +1,5 @@
|
||||
import { basename, relative, resolve, extname } from 'node:path';
|
||||
import { basename, relative, resolve, extname, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import { globSync } from 'glob';
|
||||
import { Project } from 'ts-morph';
|
||||
@ -9,6 +10,7 @@ const snakeToCamel = (text: string) =>
|
||||
export const pluginVirtualModuleGenerator = (
|
||||
mode: 'main' | 'preload' | 'renderer',
|
||||
) => {
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const project = new Project({
|
||||
tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'),
|
||||
skipAddingFilesFromTsConfig: true,
|
||||
@ -1,5 +1,6 @@
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { resolve, basename } from 'node:path';
|
||||
import { resolve, basename, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import { createFilter } from 'vite';
|
||||
import { Project, ts, ObjectLiteralExpression, VariableDeclarationKind } from 'ts-morph';
|
||||
@ -17,6 +18,8 @@ export default function (mode: 'backend' | 'preload' | 'renderer' | 'none'): Plu
|
||||
async load(id) {
|
||||
if (!pluginFilter(id)) return null;
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const project = new Project({
|
||||
tsConfigFilePath: resolve(__dirname, '..', 'tsconfig.json'),
|
||||
skipAddingFilesFromTsConfig: true,
|
||||
@ -6,7 +6,7 @@ cask "youtube-music" do
|
||||
homepage "https://github.com/th-ch/youtube-music"
|
||||
|
||||
# Fetch the latest release version from GitHub API
|
||||
latest_release = JSON.parse(open("https://api.github.com/repos/th-ch/youtube-music/releases/latest").read)['tag_name']
|
||||
latest_release = JSON.parse(URI.open("https://api.github.com/repos/th-ch/youtube-music/releases/latest").read)['tag_name']
|
||||
version latest_release
|
||||
|
||||
base_url = "https://github.com/th-ch/youtube-music/releases/download/#{latest_release}/YouTube-Music-#{latest_release.delete_prefix('v')}"
|
||||
|
||||
Reference in New Issue
Block a user