mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-03-10 05:13:56 +00:00
Compare commits
54 Commits
b010180c0b
...
renovate/e
| Author | SHA1 | Date | |
|---|---|---|---|
| 30d9f5a075 | |||
| 3e1c9d0eb9 | |||
| 8d5c5f87db | |||
| 6907fad1c5 | |||
| 04ccad3e06 | |||
| b367c98cc5 | |||
| 93a95aac72 | |||
| 4e6d9ba017 | |||
| 11f5815539 | |||
| 4ddd7cc399 | |||
| deddbec79a | |||
| bef4050f08 | |||
| 398d80808f | |||
| b0388f2be7 | |||
| ae5e65ad32 | |||
| 3c67778c1b | |||
| e9d8583e59 | |||
| fb2b8185ea | |||
| b9c84f4404 | |||
| 465a350890 | |||
| 72886583e9 | |||
| 82294be035 | |||
| af9d5aa21e | |||
| a90ec4aa6e | |||
| e3e9985924 | |||
| bac4c03e80 | |||
| 9c8add02e4 | |||
| 7aaca810ff | |||
| 41f077b144 | |||
| 520d111fe5 | |||
| 658b3da7dd | |||
| 65e11c01b9 | |||
| 4a4c0fe055 | |||
| fd9ae2c23d | |||
| b6d2bcd42f | |||
| 021972520a | |||
| 90e949d4e9 | |||
| 208e57bdd3 | |||
| e2f1ff50dd | |||
| 3f1ceca39c | |||
| 37277b2764 | |||
| ba89772b09 | |||
| 13a0e8e2ab | |||
| faddaea403 | |||
| f50025f1f6 | |||
| 0f3a01718c | |||
| 3b4a1444f1 | |||
| f403700bf7 | |||
| eab9f8ebcb | |||
| 8a074a6f37 | |||
| 9426d141e6 | |||
| e41d053a38 | |||
| b43c8efb06 | |||
| f9afbba97a |
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
||||
os: [ macos-26, ubuntu-latest, windows-latest ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
@ -92,7 +92,7 @@ jobs:
|
||||
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
|
||||
needs: build
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@ -163,7 +163,7 @@ jobs:
|
||||
|
||||
- name: Commit changelog
|
||||
if: ${{ env.VERSION_HASH == '' }}
|
||||
uses: stefanzweifel/git-auto-commit-action@v6
|
||||
uses: stefanzweifel/git-auto-commit-action@v7
|
||||
with:
|
||||
commit_message: Update changelog for ${{ env.VERSION_TAG }}
|
||||
file_pattern: "changelog.md"
|
||||
|
||||
2
.github/workflows/dependency-review.yml
vendored
2
.github/workflows/dependency-review.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Checkout Repository"
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: "Dependency Review"
|
||||
uses: actions/dependency-review-action@v4
|
||||
|
||||
4
.github/workflows/pr-build-artifacts.yml
vendored
4
.github/workflows/pr-build-artifacts.yml
vendored
@ -33,7 +33,7 @@ jobs:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
@ -87,7 +87,7 @@ jobs:
|
||||
pnpm dist:win
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: build-artifacts-${{ matrix.os }}
|
||||
path: pack/
|
||||
|
||||
2
.github/workflows/reviewdog.yml
vendored
2
.github/workflows/reviewdog.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
pull-requests: write
|
||||
checks: write
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
|
||||
@ -51,6 +51,7 @@
|
||||
- [Translation](#translation)
|
||||
- [Download](#download)
|
||||
- [Arch Linux](#arch-linux)
|
||||
- [Solus](#solus)
|
||||
- [MacOS](#macos)
|
||||
- [Windows](#windows)
|
||||
- [How to install without a network connection? (in Windows)](#how-to-install-without-a-network-connection-in-windows)
|
||||
@ -84,6 +85,12 @@ latest version.
|
||||
Install the [`pear-desktop`](https://aur.archlinux.org/packages/pear-desktop) package from the AUR. For AUR installation instructions, take a look at
|
||||
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
|
||||
|
||||
### [Solus](https://getsol.us/)
|
||||
|
||||
```bash
|
||||
sudo eopkg install pear-desktop
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
You can install the app using Homebrew (see the [cask definition](https://github.com/pear-devs/homebrew-pear)):
|
||||
|
||||
59
package.json
59
package.json
@ -46,7 +46,7 @@
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"vite": "npm:rolldown-vite@7.3.1",
|
||||
"node-gyp": "11.5.0",
|
||||
"node-gyp": "12.2.0",
|
||||
"xml2js": "0.6.2",
|
||||
"node-fetch": "3.3.2",
|
||||
"@electron/universal": "3.0.2",
|
||||
@ -64,7 +64,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@dehoist/romanize-thai": "1.0.0",
|
||||
"@electron-toolkit/tsconfig": "1.0.1",
|
||||
"@electron-toolkit/tsconfig": "2.0.0",
|
||||
"@electron/remote": "2.1.3",
|
||||
"@ffmpeg.wasm/core-mt": "0.12.0",
|
||||
"@ffmpeg.wasm/main": "0.12.0",
|
||||
@ -75,41 +75,42 @@
|
||||
"@hono/node-server": "1.19.9",
|
||||
"@hono/node-ws": "1.3.0",
|
||||
"@hono/swagger-ui": "0.5.3",
|
||||
"@hono/zod-openapi": "1.2.0",
|
||||
"@hono/zod-openapi": "1.2.2",
|
||||
"@hono/zod-validator": "0.7.6",
|
||||
"@indic-transliteration/sanscript": "1.3.3",
|
||||
"@jellybrick/dbus-next": "0.10.3",
|
||||
"@jellybrick/electron-better-web-request": "2.0.0",
|
||||
"@jellybrick/mpris-service": "2.1.5",
|
||||
"@jimp/plugin-color": "1.6.0",
|
||||
"@mdui/icons": "^1.0.3",
|
||||
"@mdui/icons": "1.0.3",
|
||||
"@skyra/jaro-winkler": "1.1.1",
|
||||
"@xhayper/discord-rpc": "1.3.0",
|
||||
"async-mutex": "0.5.0",
|
||||
"bgutils-js": "3.2.0",
|
||||
"butterchurn": "3.0.0-beta.5",
|
||||
"butterchurn-presets": "3.0.0-beta.4",
|
||||
"chinese-conv": "^4.0.0",
|
||||
"color": "5.0.3",
|
||||
"conf": "14.0.0",
|
||||
"conf": "15.1.0",
|
||||
"custom-electron-prompt": "1.6.1",
|
||||
"deepmerge-ts": "7.1.5",
|
||||
"delay": "6.0.0",
|
||||
"electron-debug": "4.1.0",
|
||||
"electron-is": "3.0.0",
|
||||
"electron-localshortcut": "3.2.1",
|
||||
"electron-store": "10.1.0",
|
||||
"electron-store": "11.0.2",
|
||||
"electron-unhandled": "5.0.0",
|
||||
"electron-updater": "6.7.3",
|
||||
"es-hangul": "2.3.8",
|
||||
"fast-average-color": "9.5.0",
|
||||
"fast-equals": "5.4.0",
|
||||
"fast-equals": "6.0.0",
|
||||
"fflate": "0.8.2",
|
||||
"filenamify": "6.0.0",
|
||||
"filenamify": "7.0.1",
|
||||
"hanja": "1.1.5",
|
||||
"happy-dom": "20.4.0",
|
||||
"hono": "4.11.7",
|
||||
"happy-dom": "20.5.0",
|
||||
"hono": "4.11.10",
|
||||
"howler": "2.2.4",
|
||||
"html-to-text": "9.0.5",
|
||||
"i18next": "25.5.2",
|
||||
"i18next": "25.8.13",
|
||||
"jimp": "1.6.0",
|
||||
"keyboardevent-from-electron-accelerator": "2.0.0",
|
||||
"keyboardevents-areequal": "0.2.2",
|
||||
@ -121,7 +122,8 @@
|
||||
"node-html-parser": "7.0.2",
|
||||
"node-id3": "0.2.9",
|
||||
"peerjs": "1.5.5",
|
||||
"semver": "7.7.3",
|
||||
"pinyin-pro": "^3.27.0",
|
||||
"semver": "7.7.4",
|
||||
"serve": "14.2.5",
|
||||
"socks": "2.8.7",
|
||||
"solid-element": "1.9.1",
|
||||
@ -129,20 +131,19 @@
|
||||
"solid-js": "1.9.11",
|
||||
"solid-styled-components": "0.28.5",
|
||||
"solid-transition-group": "0.3.0",
|
||||
"tiny-pinyin": "1.3.2",
|
||||
"tinyld": "1.3.4",
|
||||
"virtua": "0.48.5",
|
||||
"vudio": "2.1.1",
|
||||
"x11": "2.3.0",
|
||||
"youtubei.js": "^16.0.1",
|
||||
"zod": "4.2.1"
|
||||
"youtubei.js": "16.0.1",
|
||||
"zod": "4.3.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron-toolkit/tsconfig": "1.0.1",
|
||||
"@eslint/js": "9.39.2",
|
||||
"@electron-toolkit/tsconfig": "2.0.0",
|
||||
"@eslint/js": "9.39.3",
|
||||
"@malept/flatpak-bundler": "0.4.0",
|
||||
"@playwright/test": "1.58.0",
|
||||
"@stylistic/eslint-plugin": "5.7.1",
|
||||
"@playwright/test": "1.58.2",
|
||||
"@stylistic/eslint-plugin": "5.10.0",
|
||||
"@total-typescript/ts-reset": "0.6.1",
|
||||
"@types/electron-localshortcut": "3.1.3",
|
||||
"@types/howler": "2.2.12",
|
||||
@ -152,25 +153,25 @@
|
||||
"bufferutil": "4.1.0",
|
||||
"builtin-modules": "5.0.0",
|
||||
"cross-env": "10.1.0",
|
||||
"del-cli": "6.0.0",
|
||||
"discord-api-types": "0.38.37",
|
||||
"del-cli": "7.0.0",
|
||||
"discord-api-types": "0.38.40",
|
||||
"electron": "40.1.0",
|
||||
"electron-builder": "26.4.0",
|
||||
"electron-builder-squirrel-windows": "26.4.0",
|
||||
"electron-builder": "26.7.0",
|
||||
"electron-builder-squirrel-windows": "26.7.0",
|
||||
"electron-devtools-installer": "4.0.0",
|
||||
"electron-vite": "5.0.0",
|
||||
"eslint": "9.39.2",
|
||||
"eslint": "9.39.3",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-import-resolver-exports": "1.0.0-beta.5",
|
||||
"eslint-import-resolver-typescript": "4.4.4",
|
||||
"eslint-plugin-import": "2.32.0",
|
||||
"eslint-plugin-prettier": "5.5.5",
|
||||
"eslint-plugin-solid": "0.14.5",
|
||||
"glob": "11.1.0",
|
||||
"node-gyp": "11.5.0",
|
||||
"glob": "13.0.6",
|
||||
"node-gyp": "12.2.0",
|
||||
"ts-morph": "27.0.2",
|
||||
"typescript": "5.9.3",
|
||||
"typescript-eslint": "8.53.1",
|
||||
"typescript-eslint": "8.54.0",
|
||||
"utf-8-validate": "6.0.6",
|
||||
"vite": "npm:rolldown-vite@7.3.1",
|
||||
"vite-plugin-inspect": "11.3.3",
|
||||
@ -184,4 +185,4 @@
|
||||
"unreleased": true,
|
||||
"output": "changelog.md"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1133
pnpm-lock.yaml
generated
1133
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -161,7 +161,8 @@
|
||||
"default": "Standard",
|
||||
"force-show": "Zeigen erzwungen",
|
||||
"hide": "Versteckt",
|
||||
"label": "Gefällt mir-Knopf"
|
||||
"label": "Gefällt mir-Knopf",
|
||||
"swap": "Gefällt mir-Knopf Reihenfolge ändern"
|
||||
},
|
||||
"remove-upgrade-button": "Upgrade-Schaltfläche entfernen",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Keine Untertitel für dieses Lied verfügbar"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Füge eine Uhr der Navigationsleiste hinzu",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24-Stunden Format",
|
||||
"display-seconds": "Sekunden anzeigen",
|
||||
"label": "Format"
|
||||
}
|
||||
},
|
||||
"name": "Uhr"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Seitenleiste immer in den kompakten Modus setzen",
|
||||
"name": "Kompakte Seitenleiste"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ Kein Text für diesen Song gefunden."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Chinesische Zeichen Umwandeln",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Deaktiviert",
|
||||
"tooltip": "Chinesische Zeichenkonvertierung deaktivieren"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Vereinfacht zu Traditionell",
|
||||
"tooltip": "Vereinfachtes Chinesisch in traditionelles Chinesisch umwandeln"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Traditionell zu Vereinfacht",
|
||||
"tooltip": "Traditionelles Chinesisch in vereinfachtes Chinesisch umwandeln"
|
||||
}
|
||||
},
|
||||
"tooltip": "Chinesische Zeichen in traditionell oder vereinfacht umwandeln"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Standardzeichen zwischen Texten",
|
||||
"tooltip": "Standardzeichen für die Lücke zwischen Songtexten auswählen"
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
"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}}\" καταργήθηκε"
|
||||
"execute-failed": "Απέτυχε η εκτέλεση του plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Το plugin {{pluginName}}::{{contextName}} εκτελέστηκε σε {{ms}}ms",
|
||||
"initialize-failed": "Απέτυχε η εκκίνηση του plugin \"{{pluginName}}\"",
|
||||
"load-all": "Φόρτωση όλων των plugin",
|
||||
"load-failed": "Απέτυχε η φόρτωση του plugin \"{{pluginName}}\"",
|
||||
"loaded": "Το plugin \"{{pluginName}}\" φορτώθηκε",
|
||||
"unload-failed": "Απέτυχε η εκφόρτωση του plugin \"{{pluginName}}\"",
|
||||
"unloaded": "Το plugin \"{{pluginName}}\" εκφορτώθηκε"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -30,7 +30,7 @@
|
||||
"receive-command": "Λήφθηκε εντολή μέσω πρωτοκόλλου: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνόηση"
|
||||
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, θα αγνοηθεί"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Σφάλμα απόκρισης!\n{{error}}"
|
||||
@ -44,7 +44,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εφαρμογής)",
|
||||
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εντός εφαρμογής)",
|
||||
"message": "Η απόκρυψη μενού είναι ενεργοποιημένη",
|
||||
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
|
||||
},
|
||||
@ -53,8 +53,8 @@
|
||||
"later": "Αργότερα",
|
||||
"restart-now": "Επανεκκίνηση τώρα"
|
||||
},
|
||||
"detail": "Το πρόσθετο \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ισχύσει",
|
||||
"message": "Το \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
|
||||
"detail": "Το plugin \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ενεργοποιηθεί",
|
||||
"message": "Το plugin \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
|
||||
"title": "Απαιτείται επανεκκίνηση"
|
||||
},
|
||||
"unresponsive": {
|
||||
@ -63,7 +63,7 @@
|
||||
"relaunch": "Επανεκκίνηση",
|
||||
"wait": "Αναμονή"
|
||||
},
|
||||
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να κάνετε:",
|
||||
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να συμβεί:",
|
||||
"message": "Η εφαρμογή δεν αποκρίνεται",
|
||||
"title": "Το παράθυρο δεν αποκρίνεται"
|
||||
},
|
||||
@ -71,11 +71,11 @@
|
||||
"buttons": {
|
||||
"disable": "Απενεργοποίηση ενημερώσεων",
|
||||
"download": "Λήψη",
|
||||
"ok": "OK"
|
||||
"ok": "Εντάξει"
|
||||
},
|
||||
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από το {{downloadLink}}",
|
||||
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από τον σύνδεσμο {{downloadLink}}",
|
||||
"message": "Μια νέα έκδοση είναι διαθέσιμη",
|
||||
"title": "Διατίθεται ενημέρωση"
|
||||
"title": "Υπάρχει διαθέσιμη ενημέρωση"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
@ -97,26 +97,26 @@
|
||||
"label": "Επιλογές για προχωρημένους",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Επαναφορά μνήμης cache εφαρμογής όταν η εφαρμογή ξεκινά",
|
||||
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης υλικού",
|
||||
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης από υπολογιστή",
|
||||
"edit-config-json": "Επεξεργασία του config.json",
|
||||
"override-user-agent": "Αντικατάσταση του User-Agent",
|
||||
"override-user-agent": "Παράκαμψη του User-Agent",
|
||||
"restart-on-config-changes": "Επανεκκίνηση σε αλλαγές του config",
|
||||
"set-proxy": {
|
||||
"label": "Ορισμός μεσολάβησης",
|
||||
"label": "Ορισμός μεσολβητή",
|
||||
"prompt": {
|
||||
"label": "Εισαγωγή διεύθυνσης μεσολάβησης: (αφήστε κενό για απενεργοποίηση)",
|
||||
"label": "Εισαγωγή διεύθυνσης μεσολαβητή: (αφήστε κενό για απενεργοποίηση)",
|
||||
"placeholder": "Παράδειγμα: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Ορισμός μεσολάβησης"
|
||||
"title": "Ρύθμιση μεσολαβητή"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Εναλλαγή DevTools"
|
||||
"toggle-dev-tools": "Ενεργοποίηση/Απενεργοποίηση DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Πάντα σε πρώτο πλάνο",
|
||||
"always-on-top": "Πάντα σε ανώτερο πλάνο",
|
||||
"auto-update": "Αυτόματη ενημέρωση",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εφαρμογής)",
|
||||
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εντός εφαρμογής)",
|
||||
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
|
||||
},
|
||||
"label": "Απόκρυψη μενού"
|
||||
@ -133,7 +133,7 @@
|
||||
},
|
||||
"resume-on-start": "Συνέχιση τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
|
||||
"single-instance-lock": "Κλείδωμα μοναδικής εκδοχής",
|
||||
"start-at-login": "Έναρξη κατά τη σύνδεση",
|
||||
"start-at-login": "Έναρξη κατά την είσοδο",
|
||||
"starting-page": {
|
||||
"label": "Αρχική σελίδα",
|
||||
"unset": "Κατάργηση ορισμού"
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Προεπιλογή",
|
||||
"force-show": "Επιβολή εμφάνισης",
|
||||
"hide": "Απόκρυψη",
|
||||
"label": "Κουμπιά Μου αρέσει"
|
||||
"label": "Κουμπιά like",
|
||||
"swap": "Εναλλαγή της σειράς των κουμπιών like"
|
||||
},
|
||||
"remove-upgrade-button": "Αφαίρεση κουμπιού αναβάθμισης",
|
||||
"theme": {
|
||||
|
||||
@ -891,6 +891,24 @@
|
||||
"show-time-codes": {
|
||||
"label": "Show time codes",
|
||||
"tooltip": "Show the time codes next to the lyrics"
|
||||
},
|
||||
"convert-chinese-character": {
|
||||
"label": "Convert Chinese character",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Disabled",
|
||||
"tooltip": "Disable Chinese character conversion"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Simplified to Traditional",
|
||||
"tooltip": "Convert Simplified Chinese to Traditional Chinese"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Traditional to Simplified",
|
||||
"tooltip": "Convert Traditional Chinese to Simplified Chinese"
|
||||
}
|
||||
},
|
||||
"tooltip": "Convert Chinese character to Traditional or Simplified"
|
||||
}
|
||||
},
|
||||
"name": "Synced Lyrics",
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Predeterminado",
|
||||
"force-show": "Forzar la visualización",
|
||||
"hide": "Ocultar",
|
||||
"label": "Botones de \"Me Gusta\""
|
||||
"label": "Botones de \"Me Gusta\"",
|
||||
"swap": "Intercambiar el orden de los botones de \"Me Gusta\""
|
||||
},
|
||||
"remove-upgrade-button": "Eliminar el botón de Actualización",
|
||||
"theme": {
|
||||
@ -322,10 +323,10 @@
|
||||
"label": "Nombre del host"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS & Certificados",
|
||||
"label": "HTTPS y Certificados",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "Selecciona el archivo de certificado HTTPS",
|
||||
"dialogTitle": "Seleccione el archivo de certificado HTTPS",
|
||||
"label": "Archivo de certificado (.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Sin subtítulos para ésta canción"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Añade un reloj a la barra de navegación",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Formato 24 horas",
|
||||
"display-seconds": "Mostrar segundos",
|
||||
"label": "Formato"
|
||||
}
|
||||
},
|
||||
"name": "Reloj"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Establecer siempre la barra lateral en modo compacto",
|
||||
"name": "Barra lateral compacta"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ No se han encontrado letras para esta canción."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Convertir carácter Chino",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Deshabilitado",
|
||||
"tooltip": "Deshabilitar conversión de caracteres Chinos"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Simplificar a Tradicional",
|
||||
"tooltip": "Convertir Chino Simplifcado en Chino Tradicional"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Tradicional a Simplificado",
|
||||
"tooltip": "Convertir Chino Tradicional a Chino Simplificado"
|
||||
}
|
||||
},
|
||||
"tooltip": "Convertir carácter Chino a Tradicional o Simplificado"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Carácter predeterminado entre letras",
|
||||
"tooltip": "Elige el carácter predeterminado que se utilizará para el espacio entre letras"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Par défaut",
|
||||
"force-show": "Forcer à apparaître",
|
||||
"hide": "Cacher",
|
||||
"label": "Boutons « J'aime »"
|
||||
"label": "Boutons « J'aime »",
|
||||
"swap": "Inverser l'order des boutons like"
|
||||
},
|
||||
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Aucun sous-titres disponibles pour cette chanson"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Ajoute une horloge a la barre de navigation",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Format 24 heures",
|
||||
"display-seconds": "Afficher les secondes",
|
||||
"label": "Format"
|
||||
}
|
||||
},
|
||||
"name": "Horloge"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Toujours définir la barre latérale en mode compact",
|
||||
"name": "Barre latérale compacte"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ Aucune paroles trouvées pour ce titre."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Convertir les caractères Chinois",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Désactivé",
|
||||
"tooltip": "Désactiver la conversion des caractères Chinois"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Simplifié a Traditionnel",
|
||||
"tooltip": "Convertir le Chinois Simplifié au Chinois Traditionnel"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Traditionnel a Simplifié",
|
||||
"tooltip": "Convertir le Chinois Traditionnel au Chinois Simplifié"
|
||||
}
|
||||
},
|
||||
"tooltip": "Convertir les caractères Chinois en Traditionnel ou Simplifié"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Caractère par défaut entre les paroles",
|
||||
"tooltip": "Choisi le caractère par défaut à utiliser pour les blancs entre les paroles"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "डिफॉल्ट",
|
||||
"force-show": "बल पूर्वक दिखाएं",
|
||||
"hide": "छुपाएं",
|
||||
"label": "लाइक बटंस"
|
||||
"label": "लाइक बटंस",
|
||||
"swap": "लाइक बटन का क्रम बदलें"
|
||||
},
|
||||
"remove-upgrade-button": "अपग्रेड बटन हटाएं",
|
||||
"theme": {
|
||||
@ -237,7 +238,8 @@
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"enable-seekbar": "सीकबार थीमिंग सक्षम करें"
|
||||
},
|
||||
"name": "एल्बम रंग थीम"
|
||||
},
|
||||
@ -320,6 +322,22 @@
|
||||
"hostname": {
|
||||
"label": "होस्टनेम"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS और प्रमाणपत्र",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "HTTPS प्रमाणपत्र फ़ाइल चुनें",
|
||||
"label": "प्रमाणपत्र फ़ाइल (.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
"label": "HTTPS सक्षम करें"
|
||||
},
|
||||
"key": {
|
||||
"dialogTitle": "HTTPS निजी कुंजी फ़ाइल चुनें",
|
||||
"label": "निजी कुंजी फ़ाइल (.key/.pem)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"label": "पोर्ट"
|
||||
}
|
||||
@ -395,6 +413,17 @@
|
||||
"no-captions": "इस गाने के लिए कोई कैप्शन उपलब्ध नहीं हैं"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "नेविगेशन बार में घड़ी जोड़ें",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24-घंटे का प्रारूप",
|
||||
"display-seconds": "सेकंड दिखाएं",
|
||||
"label": "प्रारूप"
|
||||
}
|
||||
},
|
||||
"name": "घड़ी"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "साइडबार को हमेशा कॉम्पैक्ट मोड में सेट करें",
|
||||
"name": "कॉम्पैक्ट साइडबार"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Standar",
|
||||
"force-show": "Pertunjukan paksa",
|
||||
"hide": "Sembunyikan",
|
||||
"label": "Tombol suka"
|
||||
"label": "Tombol suka",
|
||||
"swap": "Tukar urutan tombol suka"
|
||||
},
|
||||
"remove-upgrade-button": "Hapus tombol peningkatan",
|
||||
"theme": {
|
||||
@ -237,7 +238,8 @@
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"enable-seekbar": "Aktifkan tema seekbar"
|
||||
},
|
||||
"name": "Tema Warna Album"
|
||||
},
|
||||
@ -320,6 +322,22 @@
|
||||
"hostname": {
|
||||
"label": "Nama host"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS & Sertifikat",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "Pilih berkas sertifikat HTTPS",
|
||||
"label": "Berkas sertifikat (.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
"label": "Aktifkan HTTPS"
|
||||
},
|
||||
"key": {
|
||||
"dialogTitle": "Pilih berkas kunci privat HTTPS",
|
||||
"label": "Berkas kunci privat (.key/.pem)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
@ -395,6 +413,17 @@
|
||||
"no-captions": "tidak tersedia caption untuk lagu ini"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Tambahkan jam ke bilah navigasi",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Format 24 jam",
|
||||
"display-seconds": "Tampilkan detik",
|
||||
"label": "Format"
|
||||
}
|
||||
},
|
||||
"name": "Jam"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Selalu atur sidebar dalam mode kompak",
|
||||
"name": "Sidebar Ringkas"
|
||||
@ -461,9 +490,9 @@
|
||||
"set-status-display-type": {
|
||||
"label": "Teks status",
|
||||
"submenu": {
|
||||
"application": "Sedang mendengarkan {{applicationName}}",
|
||||
"artist": "Sedang mendengarkan {artist}",
|
||||
"title": "Sedang mendengarkan {song title}",
|
||||
"application": "Sedang mendengarkan {{applicationName}}"
|
||||
"title": "Sedang mendengarkan {song title}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -813,6 +842,24 @@
|
||||
"not-found": "⚠️ Tidak ada lirik yang ditemukan untuk lagu ini."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Konversi karakter Tionghoa",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Dinonaktifkan",
|
||||
"tooltip": "Nonaktifkan konversi karakter Tionghoa"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Sederhana ke Tradisional",
|
||||
"tooltip": "Konversi Tionghoa Sederhana ke Tionghoa Tradisional"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Tradisional ke Sederhana",
|
||||
"tooltip": "Konversi Tionghoa Tradisional ke Tionghoa Sederhana"
|
||||
}
|
||||
},
|
||||
"tooltip": "Konversi karakter Tionghoa ke Tradisional atau Sederhana"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Karakter default antara lirik",
|
||||
"tooltip": "Pilih karakter default yang akan digunakan untuk celah antar lirik"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Predefinito",
|
||||
"force-show": "Forza la visualizzazione",
|
||||
"hide": "Nascondi",
|
||||
"label": "Pulsanti Like"
|
||||
"label": "Pulsanti Like",
|
||||
"swap": "Scambia l'ordine dei pulsanti like"
|
||||
},
|
||||
"remove-upgrade-button": "Rimuovi il pulsante aggiorna",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Nessun sottotitolo disponibile per questa canzone"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Aggiungi un orologio alla barra di navigazione",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Formato in 24 ore",
|
||||
"display-seconds": "Mostra Secondi",
|
||||
"label": "Formato"
|
||||
}
|
||||
},
|
||||
"name": "Orologio"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Imposta sempre la barra laterale in modalità compatta",
|
||||
"name": "Barra laterale compatta"
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "확장 {{pluginName}}::{{contextName}}을(를) 실행하지 못했습니다",
|
||||
"execute-failed": "확장 {{pluginName}}::{{contextName}}을(를) 실행 실패함",
|
||||
"executed-at-ms": "확장 {{pluginName}}::{{contextName}}이 {{ms}}ms 만에 실행됨",
|
||||
"initialize-failed": "확장 \"{{pluginName}}\"을(를) 초기화하지 못했습니다",
|
||||
"initialize-failed": "확장 \"{{pluginName}}\"을(를) 초기화 실패함",
|
||||
"load-all": "모든 확장 로드 중",
|
||||
"load-failed": "확장 \"{{pluginName}}\"을(를) 로드하지 못했습니다",
|
||||
"loaded": "확장 \"{{pluginName}}\" 로드됨",
|
||||
"unload-failed": "확장 \"{{pluginName}}\"을(를) 언로드하지 못했습니다",
|
||||
"unload-failed": "확장 \"{{pluginName}}\"을(를) 언로드 실패함",
|
||||
"unloaded": "확장 \"{{pluginName}}\" 언로드 됨"
|
||||
}
|
||||
}
|
||||
@ -21,7 +21,7 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "로드가 완료되었습니다. 개발자 도구가 열렸습니다"
|
||||
"dev-tools": "로드 완료. 개발자 도구 실행됨"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "국제화 로드됨"
|
||||
@ -30,32 +30,32 @@
|
||||
"receive-command": "프로토콜을 통해 명령을 받았습니다: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS 파일 \"{{cssFile}}\"이(가) 존재하지 않습니다. 무시합니다"
|
||||
"css-file-not-found": "CSS 파일 \"{{cssFile}}\"이(가) 존재하지 않음. 무시됨"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "응답 없음 오류!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "앱 캐시 지우기"
|
||||
"clearing-cache-after-20s": "앱 캐시 지우는 중"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "창이 오프스크린 렌더링을 시도했습니다. windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
"tried-to-render-offscreen": "창이 오프스크린 렌더링을 시도했습니다, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "'Alt' 키를 눌러 숨겨진 메뉴를 표시할 수 있습니다 (인앱 메뉴를 사용하는 경우 'Esc' 키를 사용)",
|
||||
"message": "메뉴 숨기기가 활성화되어 있습니다",
|
||||
"message": "메뉴 숨기기가 활성화되어 있음",
|
||||
"title": "메뉴 숨기기 활성화됨"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "나중에 하기",
|
||||
"later": "나중에",
|
||||
"restart-now": "지금 재시작하기"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" 확장을 적용하려면 재시작해야 합니다",
|
||||
"message": "\"{{pluginName}}\"은(는) 재시작이 필요합니다",
|
||||
"title": "재시작 필요"
|
||||
"title": "재시작 필요함"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
@ -63,17 +63,17 @@
|
||||
"relaunch": "재시작",
|
||||
"wait": "기다리기"
|
||||
},
|
||||
"detail": "불편을 드려 죄송합니다! 방법을 선택해 주세요:",
|
||||
"detail": "불편을 드려 죄송합니다! 다음 중 하나를 선택해 주세요.",
|
||||
"message": "애플리케이션이 응답하지 않습니다",
|
||||
"title": "창이 응답하지 않음"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "업데이트 비활성화",
|
||||
"disable": "업데이트 비활성화하기",
|
||||
"download": "다운로드",
|
||||
"ok": "확인"
|
||||
},
|
||||
"detail": "새 버전이 출시되었습니다. {{downloadLink}}에서 다운로드할 수 있습니다",
|
||||
"detail": "새 버전을 {{downloadLink}}에서 설치할 수 있습니다",
|
||||
"message": "새 버전을 사용할 수 있습니다",
|
||||
"title": "업데이트 사용 가능"
|
||||
}
|
||||
@ -96,23 +96,23 @@
|
||||
"advanced-options": {
|
||||
"label": "고급 설정",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "앱 시작 시 앱 캐시 초기화",
|
||||
"auto-reset-app-cache": "앱 시작 시 앱 캐시 초기화하기",
|
||||
"disable-hardware-acceleration": "하드웨어 가속 비활성화",
|
||||
"edit-config-json": "config.json 편집",
|
||||
"override-user-agent": "User-Agent 재정의",
|
||||
"restart-on-config-changes": "설정 변경 시 재시작",
|
||||
"override-user-agent": "User-Agent 재정의하기",
|
||||
"restart-on-config-changes": "설정 변경 시 재시작하기",
|
||||
"set-proxy": {
|
||||
"label": "프록시 설정",
|
||||
"label": "프록시 설정하기",
|
||||
"prompt": {
|
||||
"label": "프록시 주소를 입력하세요: (비워두면 비활성화됨)",
|
||||
"label": "프록시 주소를 입력하세요: (비어있을 시 비활성화됨)",
|
||||
"placeholder": "예제: SOCKS5://127.0.0.1:9999",
|
||||
"title": "프록시 설정"
|
||||
"title": "프록시 설정하기"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "DevTools 열기"
|
||||
}
|
||||
},
|
||||
"always-on-top": "항상 최상단에 표시",
|
||||
"always-on-top": "항상 최상단에 표시하기",
|
||||
"auto-update": "자동 업데이트",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
@ -153,15 +153,16 @@
|
||||
"custom-window-title": {
|
||||
"label": "사용자 정의 앱 제목",
|
||||
"prompt": {
|
||||
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
|
||||
"label": "앱 제목으로 표시할 내용: (빈칸일 시 비활성화됨)",
|
||||
"placeholder": "예: {{applicationName}}"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "기본",
|
||||
"force-show": "강제로 표시",
|
||||
"force-show": "강제로 표시하기",
|
||||
"hide": "숨기기",
|
||||
"label": "좋아요 버튼"
|
||||
"label": "좋아요 버튼",
|
||||
"swap": "\"좋아요\" 버튼 순서 변경하기"
|
||||
},
|
||||
"remove-upgrade-button": "업그레이드 버튼 제거",
|
||||
"theme": {
|
||||
@ -186,7 +187,7 @@
|
||||
"plugins": {
|
||||
"enabled": "활성화",
|
||||
"label": "확장",
|
||||
"new": "NEW"
|
||||
"new": "새 플러그인"
|
||||
},
|
||||
"view": {
|
||||
"label": "보기",
|
||||
@ -215,7 +216,7 @@
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "광고가 재생될 때, 오디오가 음소거되고 재생 속도가 16배로 설정됩니다",
|
||||
"description": "광고가 재생될 때 소리를 음소거하고 재생 속도를 16배로 설정합니다",
|
||||
"name": "광고 배속"
|
||||
},
|
||||
"adblocker": {
|
||||
@ -243,7 +244,7 @@
|
||||
"name": "앨범 컬러 기반 테마"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "영상의 간접 조명을 화면 배경에 투사합니다",
|
||||
"description": "영상의 간접 조명을 화면 배경에 투사하여 조명 효과를 적용합니다",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "흐림 효과 강도",
|
||||
@ -252,7 +253,7 @@
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "버퍼링",
|
||||
"label": "버퍼",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
@ -289,7 +290,7 @@
|
||||
},
|
||||
"amuse": {
|
||||
"description": "6K Labs Amuse의 'now playing' 위젯에 {{applicationName}} 지원 추가",
|
||||
"name": "Amuseio AB",
|
||||
"name": "Amuse (어뮤즈)",
|
||||
"response": {
|
||||
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
|
||||
}
|
||||
@ -358,10 +359,10 @@
|
||||
"name": "오디오 컴프레서"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "아이디/패스워드가 필요한 프록시를 지원합니다",
|
||||
"description": "인증이 필요한 프록시를 지원합니다",
|
||||
"menu": {
|
||||
"disable": "프록시 어댑터 차단",
|
||||
"enable": "프록시 어댑터 허용",
|
||||
"disable": "프록시 어댑터 비활성화",
|
||||
"enable": "프록시 어댑터 활성화",
|
||||
"hostname": {
|
||||
"label": "호스트 명"
|
||||
},
|
||||
@ -372,11 +373,11 @@
|
||||
"name": "권한 프록시 어댑터",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "로컬 프록시 서버의 호스트명 을 입력 해주세요 (재시동이 필요합니다):",
|
||||
"label": "로컬 프록시 서버의 호스트명을 입력해주세요 (재시작이 필요합니다):",
|
||||
"title": "프록시 호스트명"
|
||||
},
|
||||
"port": {
|
||||
"label": "로컬 프록시 서버의 포트를 입력 해주세요 (재시동이 필요합니다):",
|
||||
"label": "로컬 프록시 서버의 포트를 입력 해주세요 (재시작이 필요합니다):",
|
||||
"title": "프록시 포트"
|
||||
}
|
||||
}
|
||||
@ -386,7 +387,7 @@
|
||||
"name": "탐색 바 흐림 효과"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "음악 플레이어의 연령 확인 우회합니다",
|
||||
"description": "플레이어의 연령 확인 인증 우회",
|
||||
"name": "나이 제한 우회"
|
||||
},
|
||||
"captions-selector": {
|
||||
@ -408,10 +409,21 @@
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "자막 언어가 {{language}}(으)로 변경되었습니다",
|
||||
"caption-disabled": "자막이 비활성화 되었습니다",
|
||||
"caption-disabled": "자막 비활성화됨",
|
||||
"no-captions": "이 곡에는 자막이 없습니다"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "네비게이션 바 옆 시계 추가하기",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24시간 형식",
|
||||
"display-seconds": "초 표시하기",
|
||||
"label": "형식"
|
||||
}
|
||||
},
|
||||
"name": "시계"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "사이드바를 항상 컴팩트 모드로 설정합니다",
|
||||
"name": "컴팩트 사이드바"
|
||||
@ -439,9 +451,9 @@
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "미디어 출력 장치 구성",
|
||||
"description": "미디어를 출력할 장치 구성하기",
|
||||
"menu": {
|
||||
"device-selector": "장치 선택"
|
||||
"device-selector": "장치를 선택하세요"
|
||||
},
|
||||
"name": "출력 장치 커스텀",
|
||||
"prompt": {
|
||||
@ -461,16 +473,16 @@
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "활성화 된 연결에 연결을 시도했습니다",
|
||||
"connected": "디스코드에 연결됨",
|
||||
"disconnected": "디스코드에서 연결이 끊김"
|
||||
"connected": "Discord에 연결됨",
|
||||
"disconnected": "Discord에서 연결이 끊김"
|
||||
},
|
||||
"description": "활동 상태를 사용하여 친구들에게 내가 듣는 음악을 보여주세요",
|
||||
"description": "Rich Presence를 사용하여 친구들에게 내가 듣는 음악을 보여주세요",
|
||||
"menu": {
|
||||
"auto-reconnect": "자동 연결",
|
||||
"auto-reconnect": "자동 재연결",
|
||||
"clear-activity": "활동 제거",
|
||||
"clear-activity-after-timeout": "시간 초과 시 활동 제거",
|
||||
"connected": "연결 됨",
|
||||
"disconnected": "연결 해제 됨",
|
||||
"connected": "연결됨",
|
||||
"disconnected": "연결 해제됨",
|
||||
"hide-duration-left": "남은 재생 시간 숨기기",
|
||||
"hide-github-button": "GitHub 링크 버튼 숨기기",
|
||||
"play-on-application": "{{applicationName}} 에서 재생",
|
||||
@ -484,7 +496,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "디스코드 활동 상태",
|
||||
"name": "Discord 활동 상태",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "비활성 시간 제한을 초 단위로 입력하세요:",
|
||||
@ -499,7 +511,7 @@
|
||||
"buttons": {
|
||||
"ok": "확인"
|
||||
},
|
||||
"message": "죄송합니다. 다운로드가 실패했습니다…",
|
||||
"message": "앗! 죄송합니다. 다운로드가 실패했습니다…",
|
||||
"title": "다운로드 중 오류 발생!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
@ -512,7 +524,7 @@
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "변환: {{percent}}%",
|
||||
"conversion-progress": "변환율: {{percent}}%",
|
||||
"converting": "변환 중…",
|
||||
"done": "완료: {{filePath}}",
|
||||
"download-info": "{{artist}} - {{title}} [{{videoId}} 다운로드 중",
|
||||
@ -527,7 +539,7 @@
|
||||
"playlist-has-only-one-song": "재생목록에 한 항목만 존재합니다. 직접 다운로드합니다",
|
||||
"playlist-id-not-found": "재생목록 ID를 찾을 수 없습니다",
|
||||
"playlist-is-empty": "재생목록이 비어있습니다",
|
||||
"playlist-is-mix-or-private": "재생목록 정보 가져오는 중 오류 발생: 비공개 재생목록 또는 '유튜브 Mix' 재생목록이 아닌지 확인하세요\n\n{{error}}",
|
||||
"playlist-is-mix-or-private": "재생목록 정보 가져오는 중 오류 발생: 비공개 재생목록 또는 \"나만을 위한 맞춤 믹스\" 재생목록이 아닌지 확인하세요\n\n{{error}}",
|
||||
"preparing-file": "파일 준비 중…",
|
||||
"saving": "저장 중…",
|
||||
"trying-to-get-playlist-id": "재생목록 ID를 가져오는 중: {{playlistId}}",
|
||||
|
||||
@ -21,19 +21,19 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Baigta krauti. \"DevTools\" atidaryta"
|
||||
"dev-tools": "Baigta krauti. „DevTools“ atidaryta"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "\"i18n\" užkrauta"
|
||||
"loaded": "„i18n“ užkrauta"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Gauta komanda per protokolą: \"{{command}}\""
|
||||
"receive-command": "Gauta komanda per protokolą: „{{command}}“"
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS failas \"{{cssFile}}\" neegzistuoja, ignoruojama"
|
||||
"css-file-not-found": "CSS failas „{{cssFile}}“ neegzistuoja, ignoruojama"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Nereguojanti paklaida\n{{error}}"
|
||||
"details": "Nereguojanti klaida!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Išvaloma programos talpykla"
|
||||
@ -45,25 +45,25 @@
|
||||
"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\""
|
||||
"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",
|
||||
"detail": "„{{pluginName}}“ įskiepis reikalauja perkrovimą, kad veiktų",
|
||||
"message": "„{{pluginName}}“ reikia perkrovimo",
|
||||
"title": "Reikiamas perkrovimas"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Išeiti",
|
||||
"quit": "Baigti",
|
||||
"relaunch": "Perleisti",
|
||||
"wait": "Palaukti"
|
||||
},
|
||||
"detail": "Mes apgailestaujame dėl nepatogumų! prašau pasirinkti ką daryti:",
|
||||
"detail": "Mes apgailestaujame dėl nepatogumų! Prašome pasirinkti ką daryti:",
|
||||
"message": "Programa Neatsako",
|
||||
"title": "Langas Neatsako"
|
||||
},
|
||||
@ -84,7 +84,7 @@
|
||||
"label": "Navigacija",
|
||||
"submenu": {
|
||||
"copy-current-url": "Nukopijuoti dabartinį URL",
|
||||
"go-back": "Grįžti Atgal",
|
||||
"go-back": "Grįžti atgal",
|
||||
"go-forward": "Eiti į priekį",
|
||||
"quit": "Išeiti",
|
||||
"restart": "Perkrauti programą"
|
||||
@ -97,19 +97,19 @@
|
||||
"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",
|
||||
"disable-hardware-acceleration": "Išjungti aparatūros spartinimą",
|
||||
"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į",
|
||||
"label": "Nustatyti ‚proxy‘ serverį",
|
||||
"prompt": {
|
||||
"label": "Įvesti Įgaliotojo serverio adresą: (palikti tuščią, kad išjungti)",
|
||||
"label": "Įvesti ‚proxy‘ serverio adresą: (palikti tuščią, kad išjungti)",
|
||||
"placeholder": "Pavyzdys: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Nustatyti įgaliotajį serverį"
|
||||
"title": "Nustatyti ‚proxy‘ serverį"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Įjungti/Išjungti DevTools"
|
||||
"toggle-dev-tools": "Įjungti/Išjungti „DevTools“"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Visada viršuje",
|
||||
@ -117,7 +117,7 @@
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Meniu bus paslėpta per kitą paleidimą, naudokite [Alt], kad ją parodyti (arba kairinio kirčio ženklą [`] jei naudojama programos meniu)",
|
||||
"title": "\"Paslėpti Meniu\" įjungtas"
|
||||
"title": "„Paslėpti Meniu“ įjungtas"
|
||||
},
|
||||
"label": "Paslėpti Meniu"
|
||||
},
|
||||
@ -131,7 +131,7 @@
|
||||
"to-help-translate": "Norite padėti išversti? Paspauskite čia"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Tęsti paskutinę dainą, kai programa bus paleista",
|
||||
"resume-on-start": "Programai pasileidus, tęsti paskutinę dainą",
|
||||
"single-instance-lock": "Vienkartinis užraktas",
|
||||
"start-at-login": "Pradėti nuo prisijungimo",
|
||||
"starting-page": {
|
||||
@ -153,7 +153,7 @@
|
||||
"custom-window-title": {
|
||||
"label": "Pasirinktinis lango pavadinimas",
|
||||
"prompt": {
|
||||
"label": "Įveskite pasirinktinį lango pavadinimą: (palikite tuščią, jei norite išjungti)",
|
||||
"label": "Įveskite pasirinktiną lango pavadinimą: (palikite tuščią kad išjungti)",
|
||||
"placeholder": "Pavyzdys: {{applicationName}}"
|
||||
}
|
||||
},
|
||||
@ -161,9 +161,10 @@
|
||||
"default": "Numatytasis",
|
||||
"force-show": "Priversti rodyti",
|
||||
"hide": "Slėpti",
|
||||
"label": "\"Patinka\" mygtukai"
|
||||
"label": "„Patinka“ mygtukai",
|
||||
"swap": "Sukeisti „Patinka“ mygtukų vietas"
|
||||
},
|
||||
"remove-upgrade-button": "Nerodyti \"Patobulinti\" mygtuko",
|
||||
"remove-upgrade-button": "Nerodyti „Patobulinti“ mygtuko",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
@ -215,7 +216,7 @@
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Jeigu gros reklama, bus įrašo garsas išjungtas ir pagreitintas 16x",
|
||||
"description": "Jeigu gros reklama, įrašo garsas bus išjungtas ir pagreitintas 16x",
|
||||
"name": "Reklamos Pagreitinimas"
|
||||
},
|
||||
"adblocker": {
|
||||
@ -226,7 +227,7 @@
|
||||
"name": "Reklamų blokuotojas"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Prideda Nepatinka, Patinka bei atžymėti Nepatika ir Patinka visoms dainoms grojaraštyje arba albume.",
|
||||
"description": "Prideda mygtukus pažymėti „Nepatinka“, „Patinka“, „Atžymėti Nepatinka“ bei „Atžymėti Patinka“ visas dainas grojaraštyje arba albume",
|
||||
"name": "Albumo Veiksmai"
|
||||
},
|
||||
"album-color-theme": {
|
||||
@ -237,12 +238,13 @@
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"enable-seekbar": "Įjungti paieškos juostos temavimą"
|
||||
},
|
||||
"name": "Albumo Spalvų Tema"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Pritaiko apšvietimo efektą, perteikdamas švelnias vaizdo įrašo spalvas į ekrano foną.",
|
||||
"description": "Pritaiko apšvietimo efektą, perteikdamas švelnias vaizdo įrašo spalvas į ekrano foną",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Suliejimo kiekis",
|
||||
@ -287,10 +289,10 @@
|
||||
"name": "Aplinkos rėžimas"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Prideda {{applicationName}} palaikyma Amuse grojimo valdikliui pagal 6K Labs",
|
||||
"name": "Amuse (Platforma Dainininkams)",
|
||||
"description": "Prideda {{applicationName}} palaikyma „Amuse“ grojimo valdikliui pagal „6K Labs“",
|
||||
"name": "„Amuse“ (Platforma Dainininkams)",
|
||||
"response": {
|
||||
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
|
||||
"query": "„Amuse“ API serveris veikia. Parašykite GET /query kad gautumėte dainos informacija."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
@ -320,6 +322,22 @@
|
||||
"hostname": {
|
||||
"label": "Serverio Pavadinimas"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS ir sertifikatai",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "Pasirinkti HTTPS sertifikato failą",
|
||||
"label": "Sertifikato failas (.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
"label": "Įjungti HTTPS"
|
||||
},
|
||||
"key": {
|
||||
"dialogTitle": "Pasirinkti HTTPS privataus rakto failą",
|
||||
"label": "Privataus rakto failas (.key/.pem)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"label": "Prievadas"
|
||||
}
|
||||
@ -340,19 +358,43 @@
|
||||
"description": "Pritaikyti garso kompresiją (sumažina garsiausių signalo dalių garsumą ir padidina švelniausių dalių garsumą)",
|
||||
"name": "Garso Kompresorius"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "autentifikavimo „proxy“ paslaugų naudojimo palaikymas",
|
||||
"menu": {
|
||||
"disable": "Išjungti „Proxy“ adapterį",
|
||||
"enable": "Įjungti „Proxy“ adapterį",
|
||||
"hostname": {
|
||||
"label": "Sistemos pavadinimas"
|
||||
},
|
||||
"port": {
|
||||
"label": "Prievadas"
|
||||
}
|
||||
},
|
||||
"name": "Autentifikavimo „Proxy“ adapteris",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Įveskite sistemos vardą vietiniui „Proxy“ serveriui (reikalingas perkrovimas):",
|
||||
"title": "„Proxy“ Sistemos pavadinimas"
|
||||
},
|
||||
"port": {
|
||||
"label": "Įveskite vietinio „Proxy“ serverio prievadą (reikalingas perkrovimas):",
|
||||
"title": "„Proxy“ Prievadas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Padaro navigacijos lentą permatomą ir susiliejusią",
|
||||
"name": "Sulieti Navigacijos Lentą"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Apeiti \"Music Player\" amžiaus patikrinimą",
|
||||
"description": "Apeiti muzikos grotuvo amžiaus patikrinimą",
|
||||
"name": "Apeiti Amžiaus Apribojimus"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "„{{applicationName}}“ Garso takelių antraščių parinkiklis",
|
||||
"menu": {
|
||||
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
|
||||
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
|
||||
"disable-captions": "Antraštės išjungtos pagal numatytuosius nustatymus"
|
||||
},
|
||||
"name": "Antraščių parinkiklis",
|
||||
"prompt": {
|
||||
@ -366,10 +408,22 @@
|
||||
"title": "Atidaryti antraščių parinkiklį"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Subtitrai pakeisti į {{language}}",
|
||||
"caption-disabled": "Subtitrai išjungti"
|
||||
"caption-changed": "Antraštės pakeistos į {{language}}",
|
||||
"caption-disabled": "Antraštės išjungtos",
|
||||
"no-captions": "Šiai dainai antraštė nepasiekiama"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Pridėti laikrodį prie navigacijos lentos",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24‐Valandų Formatas",
|
||||
"display-seconds": "Rodyti Sekundes",
|
||||
"label": "Formatas"
|
||||
}
|
||||
},
|
||||
"name": "Laikrodis"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Visada nustatyti šoninę juostą kompaktiniame rėžime",
|
||||
"name": "Kompaktinė šoninė juosta"
|
||||
@ -377,13 +431,13 @@
|
||||
"crossfade": {
|
||||
"description": "Perliejimas tarp dainų",
|
||||
"menu": {
|
||||
"advanced": "Išplėstinė"
|
||||
"advanced": "Išplėsti Nustatymai"
|
||||
},
|
||||
"name": "Perliejimas [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Išblukimo trukmė (ms)",
|
||||
"fade-in-duration": "Pasirodymo trukmė (ms)",
|
||||
"fade-out-duration": "Išnykimo trukmė (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Išblukimo stiprumas",
|
||||
@ -397,30 +451,32 @@
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Konfigūruoti pasirinktiną medijos išvesties įrenginį dainoms",
|
||||
"menu": {
|
||||
"device-selector": "Pasirinkti įrenginį"
|
||||
},
|
||||
"name": "Pasirinktinas išvesties įrenginys",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Pasirinkti naudotiną medijos išvesties įrenginį",
|
||||
"title": "Pasirinkite išvesties įrenginį"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Pradeda dainą pristabdytame rėžime",
|
||||
"description": "Pradeda dainą „pristabdytame“ rėžime",
|
||||
"menu": {
|
||||
"apply-once": "Pritaiko tik per programos paleidimą"
|
||||
},
|
||||
"name": "Išjungti Automatinį leidimą"
|
||||
"name": "Išjungti automatinį leidimą"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Bandyta prisijungti naudojant aktyvų ryšį",
|
||||
"connected": "Prisijungta prie \"Discord\"",
|
||||
"disconnected": "Atsijungta nuo \"Discord\""
|
||||
"connected": "Prisijungta prie „Discord“",
|
||||
"disconnected": "Atsijungta nuo „Discord“"
|
||||
},
|
||||
"description": "Parodyk savo draugams ko tu klausaisi su \"Turtingas Buvimas\" (Rich Presence)",
|
||||
"description": "Parodyk savo draugams ko tu klausaisi su „Rich Presence“",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatiškai prisijungti",
|
||||
"clear-activity": "Išvalyti veiklą",
|
||||
@ -428,10 +484,11 @@
|
||||
"connected": "Prisijungta",
|
||||
"disconnected": "Atsijungta",
|
||||
"hide-duration-left": "Slėpti kiek liko laiko",
|
||||
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
||||
"play-on-application": "Leisti ant \"{{applicationName}}\"",
|
||||
"hide-github-button": "Slėpti „GitHub“ nuorodos mygtuką",
|
||||
"play-on-application": "Leisti naudojant „{{applicationName}}“",
|
||||
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
|
||||
"set-status-display-type": {
|
||||
"label": "Būsenos tekstas",
|
||||
"submenu": {
|
||||
"application": "Klausosi {{applicationName}}",
|
||||
"artist": "Klausosi {artist]",
|
||||
@ -439,7 +496,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "\"Discord\" Turtingas Buvimas (Rich Presence)",
|
||||
"name": "„Discord“ Turtingas Buvimas (Rich Presence)",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Įveskite neveiklumo skirtąjį laiką sekundėmis:",
|
||||
@ -455,13 +512,13 @@
|
||||
"ok": "Gerai"
|
||||
},
|
||||
"message": "Aaa! Apgailestaujame, nepavyko atsisiųsti…",
|
||||
"title": "Paklaida atsisiunčiant!"
|
||||
"title": "Klaida atsisiunčiant!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "Gerai"
|
||||
},
|
||||
"detail": "({{playlistSize}} dainos)",
|
||||
"detail": "({{playlistSize}} dainų)",
|
||||
"message": "Atsisiunčiama {{playlistTitle}} grojaraštį",
|
||||
"title": "Prasidėjo atsisiuntimas"
|
||||
}
|
||||
@ -474,32 +531,34 @@
|
||||
"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}}",
|
||||
"downloading-playlist": "Atsisiunčiamas grojaraštis „{{playlistTitle}}“ - {{playlistSize}} dainų {{playlistId}}",
|
||||
"error-while-downloading": "Klaida 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ą elementą, 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 jis nėra privatus ar \"Surinkta specialiai jums\" grojaraštis\n\n{{error}}",
|
||||
"preparing-file": "Failas paruošiamas…",
|
||||
"saving": "Išsaugojama…",
|
||||
"playlist-is-mix-or-private": "Klaida gaunant grojaraščio informaciją: Pasitikrink, ar jis nėra privatus ar \"Surinkta specialiai jums\" grojaraštis\n\n{{error}}",
|
||||
"preparing-file": "Failas ruošiamas…",
|
||||
"saving": "Išsaugoma…",
|
||||
"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",
|
||||
"description": "Atsisiunčia MP3 / „šaltinio“ garsą tiesiogiai iš sąsajos",
|
||||
"menu": {
|
||||
"choose-download-folder": "Pasirinkti atsisiuntimų aplanką",
|
||||
"download-finish-settings": {
|
||||
"label": "Atsisiųsti pabaigus dainą",
|
||||
"prompt": {
|
||||
"last-percent": "Po x procentų",
|
||||
"last-seconds": "Paskutinės x sekundės",
|
||||
"title": "Nustatyti kada atsisiųsti"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Išplėsti Nustatymai",
|
||||
"enabled": "Įjungtas",
|
||||
"mode": "Laiko rėžimas",
|
||||
"percent": "Procentai",
|
||||
@ -507,7 +566,7 @@
|
||||
}
|
||||
},
|
||||
"download-playlist": "Atsisiųsti grojaraštį",
|
||||
"presets": "Iš anksto nustatyti nustatymai",
|
||||
"presets": "Išankstiniai nustatymai",
|
||||
"skip-existing": "Praleisti egzistuojančius failus"
|
||||
},
|
||||
"name": "Atsiuntėjas",
|
||||
@ -519,11 +578,16 @@
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Prideda vienodintuvą į grotuvą",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Išankstiniai nustatymai"
|
||||
"label": "Išankstiniai nustatymai",
|
||||
"list": {
|
||||
"bass-booster": "Žemų dažnių stiprintuvas"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Vienodintuvas"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Padaro garsumo slankiklį eksponentinį, kad būtų lengviau pasirinkti mažesnį garsumą.",
|
||||
@ -532,20 +596,20 @@
|
||||
"in-app-menu": {
|
||||
"description": "Duoda meniu lentoms įmantrią, tamsią ar albumo spalvos išvaizdą",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Slėpti DOM lango kontroles"
|
||||
"hide-dom-window-controls": "Slėpti „DOM“ lango kontroles"
|
||||
},
|
||||
"name": "Programos Meniu"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Prideda \"Lumia Stream\" palaikymą",
|
||||
"name": "Lumia Stream [Beta]"
|
||||
"description": "Prideda „Lumia Stream“ palaikymą",
|
||||
"name": "„Lumia Stream“ [Beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Prideda daugumai dainių žodžių tekstus",
|
||||
"description": "Daugumai dainų prideda jų dainų žodžius",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanizuoti dainų tekstai"
|
||||
},
|
||||
"name": "\"Genius\" Žodžių tekstai",
|
||||
"name": "„Lyrics Genius“ dainų žodžiai",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Gauti žodžiai iš „Genius“"
|
||||
}
|
||||
@ -557,54 +621,85 @@
|
||||
},
|
||||
"internal": {
|
||||
"save": "Išsaugoti",
|
||||
"track-source": "Dainos kilmė",
|
||||
"track-source": "Dainos Šaltinis",
|
||||
"unknown-user": "Nežinomas Naudotojas"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "Kopijuoti Vedėjo ID",
|
||||
"close": "Uždaryti „Muzika Kartu“",
|
||||
"connected-users": "Prisijungę vartotojai",
|
||||
"disconnect": "Išjungti „Muzika Kartu“",
|
||||
"empty-user": "Nėra prisijungusių vartotojų",
|
||||
"host": "„Muzika Kartu“ Vedėjas",
|
||||
"join": "Prisijungti prie „Muzika Kartu“",
|
||||
"permission": {
|
||||
"all": "Leisti svečiams valdyti grojaraštį ir grotuvą",
|
||||
"host-only": "Tik vedėjas gali valdyti grojaraštį ir grotuvą",
|
||||
"playlist": "Leisti svečiams valdyti grojaraštį"
|
||||
},
|
||||
"set-permission": "Keisti valdymo leidimus",
|
||||
"status": {
|
||||
"disconnected": "Atsijungta",
|
||||
"guest": "Prisijungta kaip svečias"
|
||||
"guest": "Prisijungta kaip Svečias",
|
||||
"host": "Prisijungta kaip Vedėjas"
|
||||
}
|
||||
},
|
||||
"name": "„Muzika Kartu“ [Beta]",
|
||||
"toast": {
|
||||
"add-song-failed": "Nepavyko pridėti dainos",
|
||||
"remove-song-failed": "Nepavyko pašalinti dainos"
|
||||
"closed": "„Muzika Kartu“ uždaryta",
|
||||
"disconnected": "„Muzika Kartu“ atsijungė",
|
||||
"host-failed": "Nepavyko surengti „Muzika Kartu“",
|
||||
"id-copied": "Vedėjo ID nukopijuota į iškarpinę",
|
||||
"id-copy-failed": "Nepavyko nukopijuoti vedėjo ID į iškarpinę",
|
||||
"join-failed": "Nepavyko prisijungti prie „Muzika Kartu“",
|
||||
"joined": "Prisijungta prie „Muzika Kartu“",
|
||||
"permission-changed": "„Muzika Kartu“ leidimas pakeistas į „{{permission}}“",
|
||||
"remove-song-failed": "Nepavyko pašalinti dainos",
|
||||
"user-connected": "{{name}} prisijungė prie „Muzika Kartu“",
|
||||
"user-disconnected": "{{name}} išėjo iš „Muzika Kartu“"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Kitas/Ankstenis navigacijos rodyklės tiesiogiai integruotos sąsajoje, kaip tavo mėgstamiausioje naršyklėje",
|
||||
"name": "Navigacija"
|
||||
"name": "Navigacija",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Eiti į praeitą puslapį"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Eiti į kitą puslapį"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Pašalinti \"Google\" prisijungimo mygtukus ir nuorodas iš sąsjos",
|
||||
"name": "Be \"Google\" Prisijungimo"
|
||||
"description": "Pašalinti „Google“ prisijungimo mygtukus ir nuorodas iš sąsajos",
|
||||
"name": "Be „Google“ Prisijungimo"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Rodyti pranešimą, kai pradeda groti daina (interaktyvūs pranešimai pasiekiami sistemoje \"Windows\")",
|
||||
"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 Paleidimo/Pristabdymo",
|
||||
"tray-controls": "Atidaryti/Uždaryti ant padėklo paspaudimo"
|
||||
"refresh-on-play-pause": "Perkrauti po Paleidimo/Pristabdymo",
|
||||
"tray-controls": "Atidaryti/Uždaryti po paspaudimo ant padėklo"
|
||||
}
|
||||
},
|
||||
"priority": "Pranešimų pirminybė",
|
||||
"toast-style": "Skrudintas stilius",
|
||||
"unpause-notification": "Rodyti pranešimus po dainos paleidimo"
|
||||
"priority": "Pranešimų pirmenybė",
|
||||
"toast-style": "įspėjimo pranešimų stilius",
|
||||
"unpause-notification": "Rodyti pranešimą po dainos paleidimo"
|
||||
},
|
||||
"name": "Pranešimai"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Pagerinkite našumą įjungdami eksperimentinius scenarijus",
|
||||
"name": "Našumo patobulinimas [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Leidžia pakeisti programą į \"picture-in-picture\" rėžimą",
|
||||
"description": "Leidžia pakeisti programą į „nuotrauka-nuotraukoje“ rėžimą",
|
||||
"menu": {
|
||||
"always-on-top": "Visada ant viršaus",
|
||||
"hotkey": {
|
||||
@ -613,17 +708,17 @@
|
||||
"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"
|
||||
"label": "Pasirinkti spartųjį klavišą, kad įjungti/išjungti „nuotrauka-nuotraukoje“ rėžimą",
|
||||
"title": "„Nuotrauka-Nuotraukoje“ 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"
|
||||
"use-native-pip": "Naudoti naršyklės savąjį „PiP“"
|
||||
},
|
||||
"name": "Picture-in-picture",
|
||||
"name": "Nuotrauka-nuotraukoje",
|
||||
"templates": {
|
||||
"button": "Picture-in-picture"
|
||||
"button": "Nuotrauka-nuotraukoje"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
@ -634,10 +729,10 @@
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Tiksliai valdykite garsumą naudodami pelės ratuką / sparčiuosius klavišus, naudodami pritaikytą HUD ir pritaikomus garsumo žingsnius",
|
||||
"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",
|
||||
"arrows-shortcuts": "Vietiniai rodyklių klavišų valdikliai",
|
||||
"custom-volume-steps": "Nustatykite Pasirinktinius Garsumo Laiptus",
|
||||
"global-shortcuts": "Pasauliniai spartieji klavišai"
|
||||
},
|
||||
"name": "Tikslus Garsas",
|
||||
@ -651,8 +746,8 @@
|
||||
"title": "Pasauliniai Garso Klavišai"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Pasirinkti Garso Didinimo/Mažinimo Žingsnius",
|
||||
"title": "Garso Žingsniai"
|
||||
"label": "Pasirinkti Garso Didinimo/Mažinimo Laipsnius",
|
||||
"title": "Garso Laipsniai"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -667,21 +762,50 @@
|
||||
}
|
||||
},
|
||||
"description": "Leidžia pakeisti vaizdo kokybę su mygtuku ant vaizdo perdangos",
|
||||
"name": "Vaizdo Kokybės Pakeitėjas"
|
||||
"name": "Vaizdo Kokybės Keitėjas",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Atidaryti grotuvo kokybės keistuvą"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"menu": {
|
||||
"scrobble-alternative-artist": "Naudoti alternatyvius atlikėjus",
|
||||
"scrobble-alternative-title": "Naudoti alternatyvius pavadinimus"
|
||||
"description": "Pridėti „scrobbling“ palaikymą (pvz., last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Nepavyko autentifikuotis su Last.fm\nPaslėpkite iššokantį langą iki kito paleidimo.",
|
||||
"title": "Autentifikacija nepavyko"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Last.fm API nustatymai"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "Įvesti „ListenBrainz“ vartotojo žetoną"
|
||||
},
|
||||
"scrobble-alternative-artist": "Naudoti alternatyvius atlikėjus",
|
||||
"scrobble-alternative-title": "Naudoti alternatyvius pavadinimus",
|
||||
"scrobble-other-media": "„Scrobble“ kitas medijas"
|
||||
},
|
||||
"name": "„Scrobbler“",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API raktas"
|
||||
"api-key": "Last.fm API raktas",
|
||||
"api-secret": "Last.fm API paslaptis"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "Įveskite savo „ListenBrainz“ vartotojo žetoną:",
|
||||
"title": "„ListenBrainz“ žetonas"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
"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"
|
||||
@ -712,11 +836,82 @@
|
||||
"name": "Rėmėjų blokuotojas"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "Teikia sinchronizuotus dainų žodžius, naudojantis tiekėjais kaip LRClib.",
|
||||
"description": "Teikia sinchronizuotus dainų žodžius, naudojantis tiekėjais kaip „LRClib“.",
|
||||
"errors": {
|
||||
"fetch": "⚠️\t\tĮvyko klaida gaunant dainos žodžius.\n\tPabandykite dar karta vėliau.",
|
||||
"not-found": "⚠️ Šiai dainai nerasti dainos tekstai."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Konvertuoti Kinietišką ženklą",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Išjungtas",
|
||||
"tooltip": "Išjungti Kinietiškų ženklų konvertavimą"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Supaprastintą į Tradicinę",
|
||||
"tooltip": "Konvertuoti Supaprastintą Kinų kalbą į Tradicinę Kinų kalbą"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Tradicionalią į Supaprastintą",
|
||||
"tooltip": "Konvertuoti Tradicionalią Kinų kalbą į Supaprastintą Kinų kalbą"
|
||||
}
|
||||
},
|
||||
"tooltip": "Konvertuoti Kinietiškus ženklus į Tradicinę arba Supaprastintą"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Numatyti simboliai tarp dainos žodžių",
|
||||
"tooltip": "Pasirinkite numatytąjį simbolį kurį naudoti tarpui tarp dainos žodžių"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Teksto linijos efektas",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Prašmatnus",
|
||||
"tooltip": "Naudoti didelius, panašius į programos efektus dabartinei eilutei"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Sutelkti dėmesį",
|
||||
"tooltip": "Padaryti tik dabartinę eilutę baltą"
|
||||
},
|
||||
"offset": {
|
||||
"label": "Nuokrypis",
|
||||
"tooltip": "Dabartinę eilutę pastumti iš dešinės"
|
||||
},
|
||||
"scale": {
|
||||
"label": "Skalė",
|
||||
"tooltip": "Padidinti dabartinę eilutę"
|
||||
}
|
||||
},
|
||||
"tooltip": "Pasirinkti efektą, kurį pritaikyti dabartinei linijai"
|
||||
},
|
||||
"precise-timing": {
|
||||
"label": "Tobulai sinchronizuoti dainos žodžius",
|
||||
"tooltip": "Apskaičiuoti kitos eilutės rodymą milisekundės tikslumu (gali turėti nedidelę įtaką našumui)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Pageidaujamas tiekėjas",
|
||||
"none": {
|
||||
"label": "Jokio",
|
||||
"tooltip": "Jokio pageidaujamo tiekėjo"
|
||||
},
|
||||
"tooltip": "Pasirinkti numatytąjį tiekėją kurį naudoti"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanizuoti dainos žodžius",
|
||||
"tooltip": "jei dainos žodžiai yra kita kalba, bandyti pateikti lotyniškų ženklų versiją."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Rodyti dainos žodžius, net jei jie netikslūs",
|
||||
"tooltip": "Jeigu daina nerasta, įskiepis bando iš naujo su skirtinga paieškos užklausa.\nAntro bandymo rezultatas gali būti netikslus."
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "Rodyti laiko žymes",
|
||||
"tooltip": "Rodyti laiko žymes kartu su dainos žodžiais"
|
||||
}
|
||||
},
|
||||
"name": "„Synced Lyrics“",
|
||||
"refetch-btn": {
|
||||
"fetching": "Gaunama...",
|
||||
"normal": "Atgauti dainos žodžius"
|
||||
@ -732,15 +927,40 @@
|
||||
"name": "Užduočių juostos medijos valdymas"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Pridedamas jutiklinės juostos valdiklis MacOS vartotojams",
|
||||
"name": "TouchBar"
|
||||
"description": "Pridedamas jutiklinės juostos valdiklis „MacOS“ vartotojams",
|
||||
"name": "„TouchBar“"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Padaro programos langą skaidrų",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Skaidrumas",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tipas",
|
||||
"submenu": {
|
||||
"acrylic": "Akrilas",
|
||||
"mica": "Žėrutis",
|
||||
"none": "Joks",
|
||||
"tabbed": "Atskirtas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Skaidrus Grotuvas"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integracija su OBS papildiniu \"Tuna\"",
|
||||
"name": "Tuna OBS"
|
||||
"description": "Integracija su OBS papildiniu „Tuna“",
|
||||
"name": "„Tuna OBS“"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Trukdo grotuvo atsidarymui grojant dainą",
|
||||
"name": "Netrukdantis Grotuvas"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Pridedamas mygtukas, skirtas perjungti vaizdo įrašo/dainos režimą. taip pat galite pasirinktinai pašalinti visą vaizdo įrašo skirtuką",
|
||||
"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",
|
||||
@ -762,7 +982,8 @@
|
||||
},
|
||||
"name": "Vaizdo įrašo perjungimas",
|
||||
"templates": {
|
||||
"button-song": "Daina"
|
||||
"button-song": "Daina",
|
||||
"button-video": "Vaizdo įrašas"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Padrão",
|
||||
"force-show": "Forçar exibir",
|
||||
"hide": "Ocultar",
|
||||
"label": "Botões de 'Curtir'"
|
||||
"label": "Botões de 'Curtir'",
|
||||
"swap": "Inverter ordem dos botões de curtir"
|
||||
},
|
||||
"remove-upgrade-button": "Remover botão de atualização",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Sem legendas disponíveis para essa música"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Adicionar relógio na barra de navegação",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Formato 24 horas",
|
||||
"display-seconds": "Mostrar segundos",
|
||||
"label": "Formato"
|
||||
}
|
||||
},
|
||||
"name": "Relógio"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Sempre definir a barra lateral no modo compacto",
|
||||
"name": "Barra lateral compacta"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ Nenhuma letra encontrada para esta música."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Converter caracteres Chineses",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Desativado",
|
||||
"tooltip": "Desativar conversão de caracteres Chineses"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Simplificado para Tradicional",
|
||||
"tooltip": "Converter Chinês Simplificado para Chinês Tradicional"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Tradicional para Simplificado",
|
||||
"tooltip": "Converter Chinês Tradicional para Chinês Simplificado"
|
||||
}
|
||||
},
|
||||
"tooltip": "Converter caractere Chinês para Tradicional ou Simplificado"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Caractere padrão entre letras",
|
||||
"tooltip": "Escolha o caractere padrão a ser usado para o intervalo entre as letras"
|
||||
|
||||
12
src/i18n/resources/sah.json
Normal file
12
src/i18n/resources/sah.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Плагины толорор кыаҕа суох {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} толоруллубут {{ms}}мс",
|
||||
"initialize-failed": "\"{{pluginName}}\" плагины инициализациялааһын кыаллыбата",
|
||||
"load-all": "Плагиннары загрузкалыбыт"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -396,6 +396,17 @@
|
||||
"no-captions": "Pre túto skladbu nie sú dostupné žiadne titulky"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Pridať hodiny do navigačnej lišty",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24-hodinový formát",
|
||||
"display-seconds": "Zobraz sekundy",
|
||||
"label": "Formát"
|
||||
}
|
||||
},
|
||||
"name": "Hodiny"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Vždy nastaviť bočný panel do kompaktného režimu",
|
||||
"name": "Kompaktný bočný panel"
|
||||
@ -462,8 +473,8 @@
|
||||
"set-status-display-type": {
|
||||
"label": "Text stavu",
|
||||
"submenu": {
|
||||
"artist": "Aktuálne si prehráva {artist}",
|
||||
"application": "Počúvať {{applicationName}}",
|
||||
"artist": "Aktuálne si prehráva {artist}",
|
||||
"title": "Aktuálne si prehráva {song title}"
|
||||
}
|
||||
}
|
||||
|
||||
59
src/i18n/resources/te.json
Normal file
59
src/i18n/resources/te.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"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": "te",
|
||||
"local-name": "తెలుగు",
|
||||
"name": "Telugu"
|
||||
},
|
||||
"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' ఉపయోగించండి (లేదా ఒకవేళ In-App Menu ఉపయోగిస్తుంటే 'Escape' ఉపయోగించండి)",
|
||||
"message": "Hide Menu ఎనేబుల్ చేయబడింది",
|
||||
"title": "Hide Menu ఎనేబుల్ అయిపోయింది"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "తర్వాత",
|
||||
"restart-now": "ఇప్పుడే రీస్టార్ట్ చేయండి"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -53,9 +53,9 @@
|
||||
"later": "Daha Sonra",
|
||||
"restart-now": "Şimdi yeniden başlat"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" eklentisinin çalışabilmesi için yeniden başlatman gerekiyor",
|
||||
"message": "\"{{pluginName}}\" için yeniden başlatman gerekiyor",
|
||||
"title": "Uygulamayı yeniden başlatman gerekiyor"
|
||||
"detail": "\"{{pluginName}}\" eklentisinin çalışması için uygulamanın yeniden başlatılması gerekiyor",
|
||||
"message": "\"{{pluginName}}\" eklentisi için uygulamanın yeniden başlatılması gerekiyor",
|
||||
"title": "Uygulamanın yeniden başlatılması gerekiyor"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Varsayılan",
|
||||
"force-show": "Zorla göster",
|
||||
"hide": "Gizle",
|
||||
"label": "Beğenme düğmeleri"
|
||||
"label": "Beğenme düğmeleri",
|
||||
"swap": "Beğenme butonlarının sıralamasını değiştir"
|
||||
},
|
||||
"remove-upgrade-button": "Yükseltme düğmesini kaldır",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "Bu şarkı için altyazı mevcut değil"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Navigasyon barına bir saat ekle",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24-Saat Formatı, Biçimi",
|
||||
"display-seconds": "Saniyeleri göster",
|
||||
"label": "Format, Biçim"
|
||||
}
|
||||
},
|
||||
"name": "Saat"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Her zaman kompakt kenar çubugu",
|
||||
"name": "Kompakt Kenar Çubuğu"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ Bu şarkı için şarkı sözleri bulunamadı."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Çince karakterleri çevir",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Devre dışı bırak",
|
||||
"tooltip": "Çince karakterleri çevirmeyi devre dışı bırak"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Basitleştirilmişten Geleneksele",
|
||||
"tooltip": "Basitleştirilmiş Ç*nceyi Geleneksel Ç*nceye Çevir"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Gelenekselden Basitleştirilmişe",
|
||||
"tooltip": "Geleneksel Çince'yi Basitleştirilmiş Çince'ye dönüştür"
|
||||
}
|
||||
},
|
||||
"tooltip": "Çince karakterleri Geleneksel veya Basitleştirilmiş Çinceye dönüştür"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Şarkı sözleri arasında varsayılan karakter",
|
||||
"tooltip": "Şarkı sözleri arasındaki boşluk için kullanılacak varsayılan karakteri seçin"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "Mặc định",
|
||||
"force-show": "Tập trung hiển thị",
|
||||
"hide": "Ẩn",
|
||||
"label": "Nút thích"
|
||||
"label": "Nút thích",
|
||||
"swap": "Hoán đổi thứ tự nút Thích"
|
||||
},
|
||||
"remove-upgrade-button": "Xóa nút nâng cấp",
|
||||
"theme": {
|
||||
@ -237,7 +238,8 @@
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"enable-seekbar": "Bật tùy chỉnh giao diện cho thanh trượt"
|
||||
},
|
||||
"name": "Màu nền album"
|
||||
},
|
||||
@ -321,9 +323,18 @@
|
||||
"label": "Tên máy chủ"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS & Chứng chỉ",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "Chọn tệp chứng chỉ HTTPS",
|
||||
"label": "Tệp chứng chỉ (.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
"label": "Bật HTTPS"
|
||||
},
|
||||
"key": {
|
||||
"dialogTitle": "Chọn tệp khóa riêng HTTPS",
|
||||
"label": "Tệp khóa riêng (.key/.pem)"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -402,6 +413,17 @@
|
||||
"no-captions": "Không có phụ đề nào cho bài hát này"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "Thêm đồng hồ vào thanh điều hướng",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "Định dạng 24h",
|
||||
"display-seconds": "Hiển thị giây",
|
||||
"label": "Định dạng"
|
||||
}
|
||||
},
|
||||
"name": "Đồng hồ"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Luôn đặt thanh bên ở chế độ thu gọn",
|
||||
"name": "Thanh bên thu gọn"
|
||||
@ -820,6 +842,24 @@
|
||||
"not-found": "⚠️ Không tìm thấy lời cho bài hát này."
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "Chuyển đổi kí tự tiếng Trung",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "Vô hiệu hóa",
|
||||
"tooltip": "Vô hiệu hóa chuyển đổi kí tự tiếng Trung"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "Giản thể sang Phồn thể",
|
||||
"tooltip": "Chuyển đổi tiếng Trung Giản thể sang tiếng Trung Phồn thể"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "Phồn thể sang Giản thể",
|
||||
"tooltip": "Chuyển đổi tiếng Trung Phồn thể sang tiếng Trung Giản thể"
|
||||
}
|
||||
},
|
||||
"tooltip": "Chuyển đổi kí tự tiếng Trung sang Phồn thể hoặc Giản thể"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Kí tự giữa các lời bài hát",
|
||||
"tooltip": "Chọn kí tự mặc định cho khoảng trống giữa các lời bài hát"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "默认",
|
||||
"force-show": "强制显示",
|
||||
"hide": "隐藏",
|
||||
"label": "点赞按钮"
|
||||
"label": "点赞按钮",
|
||||
"swap": "交换“点赞”按钮顺序"
|
||||
},
|
||||
"remove-upgrade-button": "移除升级按钮",
|
||||
"theme": {
|
||||
@ -412,6 +413,17 @@
|
||||
"no-captions": "这首歌没有字幕"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "添加时钟到导航栏",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24 小时格式",
|
||||
"display-seconds": "显示秒数",
|
||||
"label": "格式"
|
||||
}
|
||||
},
|
||||
"name": "时钟"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "始终将侧边栏设为紧凑模式",
|
||||
"name": "紧凑式侧边栏"
|
||||
@ -830,6 +842,24 @@
|
||||
"not-found": "⚠️ 未找到此歌曲的歌词。"
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "转换中文字符",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "已停用",
|
||||
"tooltip": "禁用中文字符转换"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "简体到繁体",
|
||||
"tooltip": "转换简体中文到繁体中文"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "繁体到简体",
|
||||
"tooltip": "转换繁体中文到简体中文"
|
||||
}
|
||||
},
|
||||
"tooltip": "转换简繁体中文字符"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "默认的歌词行间字符",
|
||||
"tooltip": "选择在歌词间隙期间默认显示的字符"
|
||||
|
||||
@ -161,7 +161,8 @@
|
||||
"default": "預設",
|
||||
"force-show": "強制顯示",
|
||||
"hide": "隱藏",
|
||||
"label": "按讚按鈕"
|
||||
"label": "按讚按鈕",
|
||||
"swap": "交換讚及倒讚的按鈕位置"
|
||||
},
|
||||
"remove-upgrade-button": "移除升級按鈕",
|
||||
"theme": {
|
||||
@ -321,6 +322,22 @@
|
||||
"hostname": {
|
||||
"label": "主機名稱"
|
||||
},
|
||||
"https": {
|
||||
"label": "HTTPS 及 憑證",
|
||||
"submenu": {
|
||||
"cert": {
|
||||
"dialogTitle": "選擇憑證檔案",
|
||||
"label": "憑證檔案(.crt/.pem)"
|
||||
},
|
||||
"enable-https": {
|
||||
"label": "啟用 HTTPS"
|
||||
},
|
||||
"key": {
|
||||
"dialogTitle": "選擇私人金鑰檔案",
|
||||
"label": "私人金鑰檔案(.key/.pem)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"label": "連接埠"
|
||||
}
|
||||
@ -396,6 +413,17 @@
|
||||
"no-captions": "該首歌曲無可用的字幕"
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"description": "新增時鐘至應用程式上方",
|
||||
"menu": {
|
||||
"format": {
|
||||
"24-hour-format": "24 小時制",
|
||||
"display-seconds": "顯示秒數",
|
||||
"label": "時間格式"
|
||||
}
|
||||
},
|
||||
"name": "時鐘"
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "永遠讓側邊欄保持收合狀態",
|
||||
"name": "收合側邊欄"
|
||||
@ -462,8 +490,8 @@
|
||||
"set-status-display-type": {
|
||||
"label": "狀態樣式",
|
||||
"submenu": {
|
||||
"artist": "正在聆聽 {artist} 的歌曲",
|
||||
"application": "正在聆聽 {{applicationName}}",
|
||||
"artist": "正在聆聽 {artist} 的歌曲",
|
||||
"title": "正在聆聽 {song title}"
|
||||
}
|
||||
}
|
||||
@ -814,6 +842,24 @@
|
||||
"not-found": "⚠️未找到該首歌曲的歌詞。"
|
||||
},
|
||||
"menu": {
|
||||
"convert-chinese-character": {
|
||||
"label": "繁簡轉換",
|
||||
"submenu": {
|
||||
"disabled": {
|
||||
"label": "已停用",
|
||||
"tooltip": "停用繁簡轉換"
|
||||
},
|
||||
"simplified-to-traditional": {
|
||||
"label": "簡體轉繁體",
|
||||
"tooltip": "轉換簡體中文至繁體中文"
|
||||
},
|
||||
"traditional-to-simplified": {
|
||||
"label": "繁體轉簡體",
|
||||
"tooltip": "轉換繁體中文至簡體中文"
|
||||
}
|
||||
},
|
||||
"tooltip": "轉換中文字符至繁體或簡體"
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "預設歌詞中間隔的符號",
|
||||
"tooltip": "選擇歌詞中間隔要使用的符號"
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
import {
|
||||
type DataConnection,
|
||||
Peer,
|
||||
type PeerError,
|
||||
PeerErrorType,
|
||||
} from 'peerjs';
|
||||
import delay from 'delay';
|
||||
import { type DataConnection, Peer, type PeerError } from 'peerjs';
|
||||
|
||||
import type { Permission, Profile, VideoData } from './types';
|
||||
|
||||
export type ConnectionEventMap = {
|
||||
CLEAR_QUEUE: {};
|
||||
CLEAR_QUEUE: null;
|
||||
ADD_SONGS: { videoList: VideoData[]; index?: number };
|
||||
REMOVE_SONG: { index: number };
|
||||
MOVE_SONG: { fromIndex: number; toIndex: number };
|
||||
@ -104,16 +98,14 @@ export class Connection {
|
||||
this.peer.disconnect();
|
||||
this.peer.destroy();
|
||||
});
|
||||
this.peer.on('error', async (err) => {
|
||||
if (err.type === PeerErrorType.Network) {
|
||||
// retrying after 10 seconds
|
||||
await delay(10000);
|
||||
try {
|
||||
this.peer.reconnect();
|
||||
return;
|
||||
} catch {
|
||||
//ignored
|
||||
}
|
||||
this.peer.on('error', (err) => {
|
||||
if (err.type === 'network') {
|
||||
setTimeout(() => {
|
||||
try {
|
||||
this.peer.reconnect();
|
||||
} catch {}
|
||||
}, 10000);
|
||||
return;
|
||||
}
|
||||
|
||||
this.waitOpen.reject(err);
|
||||
@ -176,7 +168,9 @@ export class Connection {
|
||||
after?: ConnectionEventUnion[],
|
||||
) {
|
||||
await Promise.all(
|
||||
this.getConnections().map((conn) => conn.send({ type, payload, after })),
|
||||
this.getConnections().map(
|
||||
(conn) => conn.send({ type, payload, after }) ?? Promise.resolve(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -224,7 +224,7 @@ export default createPlugin<
|
||||
}
|
||||
|
||||
this.queue?.clear();
|
||||
await this.connection?.broadcast('CLEAR_QUEUE', {});
|
||||
await this.connection?.broadcast('CLEAR_QUEUE', null);
|
||||
break;
|
||||
}
|
||||
case 'SET_INDEX': {
|
||||
@ -413,7 +413,7 @@ export default createPlugin<
|
||||
this.ignoreChange = true;
|
||||
switch (event.type) {
|
||||
case 'CLEAR_QUEUE': {
|
||||
await this.connection?.broadcast('CLEAR_QUEUE', {});
|
||||
await this.connection?.broadcast('CLEAR_QUEUE', null);
|
||||
break;
|
||||
}
|
||||
case 'SET_INDEX': {
|
||||
|
||||
@ -316,7 +316,7 @@ export class Queue {
|
||||
this.ignoreFlag = true;
|
||||
this.broadcast({
|
||||
type: 'CLEAR_QUEUE',
|
||||
payload: {},
|
||||
payload: null,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
@ -153,6 +153,62 @@ export const menu = async (
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t('plugins.synced-lyrics.menu.convert-chinese-character.label'),
|
||||
toolTip: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.tooltip',
|
||||
),
|
||||
type: 'submenu',
|
||||
submenu: [
|
||||
{
|
||||
label: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.disabled.label',
|
||||
),
|
||||
toolTip: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.disabled.tooltip',
|
||||
),
|
||||
type: 'radio',
|
||||
checked:
|
||||
config.convertChineseCharacter === 'disabled' ||
|
||||
config.convertChineseCharacter === undefined,
|
||||
click() {
|
||||
ctx.setConfig({
|
||||
convertChineseCharacter: 'disabled',
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.simplified-to-traditional.label',
|
||||
),
|
||||
toolTip: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.simplified-to-traditional.tooltip',
|
||||
),
|
||||
type: 'radio',
|
||||
checked: config.convertChineseCharacter === 'simplifiedToTraditional',
|
||||
click() {
|
||||
ctx.setConfig({
|
||||
convertChineseCharacter: 'simplifiedToTraditional',
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.traditional-to-simplified.label',
|
||||
),
|
||||
toolTip: t(
|
||||
'plugins.synced-lyrics.menu.convert-chinese-character.submenu.traditional-to-simplified.tooltip',
|
||||
),
|
||||
type: 'radio',
|
||||
checked: config.convertChineseCharacter === 'traditionalToSimplified',
|
||||
click() {
|
||||
ctx.setConfig({
|
||||
convertChineseCharacter: 'traditionalToSimplified',
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: t('plugins.synced-lyrics.menu.show-time-codes.label'),
|
||||
toolTip: t('plugins.synced-lyrics.menu.show-time-codes.tooltip'),
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
import { createEffect, createSignal, Show } from 'solid-js';
|
||||
import { createEffect, createMemo, createSignal, Show } from 'solid-js';
|
||||
|
||||
import { canonicalize, romanize, simplifyUnicode } from '../utils';
|
||||
import {
|
||||
canonicalize,
|
||||
convertChineseCharacter,
|
||||
romanize,
|
||||
simplifyUnicode,
|
||||
} from '../utils';
|
||||
import { config } from '../renderer';
|
||||
|
||||
interface PlainLyricsProps {
|
||||
@ -9,11 +14,19 @@ interface PlainLyricsProps {
|
||||
|
||||
export const PlainLyrics = (props: PlainLyricsProps) => {
|
||||
const [romanization, setRomanization] = createSignal('');
|
||||
const text = createMemo(() => {
|
||||
let line = props.line;
|
||||
const convertChineseText = config()?.convertChineseCharacter;
|
||||
if (convertChineseText && convertChineseText !== 'disabled') {
|
||||
line = convertChineseCharacter(line, convertChineseText);
|
||||
}
|
||||
return line;
|
||||
});
|
||||
|
||||
createEffect(() => {
|
||||
if (!config()?.romanization) return;
|
||||
|
||||
const input = canonicalize(props.line);
|
||||
const input = canonicalize(text());
|
||||
romanize(input).then((result) => {
|
||||
setRomanization(canonicalize(result));
|
||||
});
|
||||
@ -31,13 +44,13 @@ export const PlainLyrics = (props: PlainLyricsProps) => {
|
||||
>
|
||||
<yt-formatted-string
|
||||
text={{
|
||||
runs: [{ text: props.line }],
|
||||
runs: [{ text: text() }],
|
||||
}}
|
||||
/>
|
||||
<Show
|
||||
when={
|
||||
config()?.romanization &&
|
||||
simplifyUnicode(props.line) !== simplifyUnicode(romanization())
|
||||
simplifyUnicode(text()) !== simplifyUnicode(romanization())
|
||||
}
|
||||
>
|
||||
<yt-formatted-string
|
||||
|
||||
@ -7,7 +7,12 @@ import { type LineLyrics } from '@/plugins/synced-lyrics/types';
|
||||
import { config, currentTime } from '../renderer';
|
||||
import { _ytAPI } from '..';
|
||||
|
||||
import { canonicalize, romanize, simplifyUnicode } from '../utils';
|
||||
import {
|
||||
canonicalize,
|
||||
convertChineseCharacter,
|
||||
romanize,
|
||||
simplifyUnicode,
|
||||
} from '../utils';
|
||||
|
||||
interface SyncedLineProps {
|
||||
scroller: VirtualizerHandle;
|
||||
@ -81,7 +86,14 @@ const EmptyLine = (props: SyncedLineProps) => {
|
||||
};
|
||||
|
||||
export const SyncedLine = (props: SyncedLineProps) => {
|
||||
const text = createMemo(() => props.line.text.trim());
|
||||
const text = createMemo(() => {
|
||||
let line = props.line.text;
|
||||
const convertChineseText = config()?.convertChineseCharacter;
|
||||
if (convertChineseText && convertChineseText !== 'disabled') {
|
||||
line = convertChineseCharacter(line, convertChineseText);
|
||||
}
|
||||
return line.trim();
|
||||
});
|
||||
|
||||
const [romanization, setRomanization] = createSignal('');
|
||||
createEffect(() => {
|
||||
|
||||
@ -3,10 +3,12 @@ import KuromojiAnalyzer from 'kuroshiro-analyzer-kuromoji';
|
||||
import Kuroshiro from 'kuroshiro';
|
||||
import { romanize as esHangulRomanize } from 'es-hangul';
|
||||
import hanja from 'hanja';
|
||||
import * as pinyin from 'tiny-pinyin';
|
||||
import { pinyin } from 'pinyin-pro';
|
||||
import { romanize as romanizeThaiFrag } from '@dehoist/romanize-thai';
|
||||
import { lazy } from 'lazy-var';
|
||||
import { detect } from 'tinyld';
|
||||
import { sify, tify } from 'chinese-conv';
|
||||
import Sanscript from '@indic-transliteration/sanscript';
|
||||
|
||||
import { waitForElement } from '@/utils/wait-for-element';
|
||||
import { LyricsRenderer, setIsVisible } from './renderer';
|
||||
@ -84,6 +86,20 @@ export const canonicalize = (text: string) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const convertChineseCharacter = (
|
||||
text: string,
|
||||
mode: 'simplifiedToTraditional' | 'traditionalToSimplified',
|
||||
) => {
|
||||
if (!hasChinese([text])) return text;
|
||||
|
||||
switch (mode) {
|
||||
case 'simplifiedToTraditional':
|
||||
return tify(text);
|
||||
case 'traditionalToSimplified':
|
||||
return sify(text);
|
||||
}
|
||||
};
|
||||
|
||||
export const simplifyUnicode = (text?: string) =>
|
||||
text
|
||||
? text
|
||||
@ -155,6 +171,12 @@ const hasChinese = (lines: string[]) =>
|
||||
const hasThai = (lines: string[]) =>
|
||||
lines.some((line) => /[\u0E00-\u0E7F]+/.test(line));
|
||||
|
||||
const hasBengali = (lines: string[]) =>
|
||||
lines.some((line) => /[\u0980-\u09FF]+/.test(line));
|
||||
|
||||
const hasHindi = (lines: string[]) =>
|
||||
lines.some((line) => /[\u0900-\u097F]+/.test(line));
|
||||
|
||||
export const romanizeJapanese = async (line: string) =>
|
||||
(await kuroshiro.get()).convert(line, {
|
||||
to: 'romaji',
|
||||
@ -165,9 +187,9 @@ export const romanizeHangul = (line: string) =>
|
||||
esHangulRomanize(hanja.translate(line, 'SUBSTITUTION'));
|
||||
|
||||
export const romanizeChinese = (line: string) => {
|
||||
return line.replaceAll(/[\u4E00-\u9FFF]+/g, (match) =>
|
||||
pinyin.convertToPinyin(match, ' ', true),
|
||||
);
|
||||
return line.replaceAll(/[\u4E00-\u9FFF]+/g, (match) => {
|
||||
return pinyin(match, { separator: ' ' });
|
||||
});
|
||||
};
|
||||
|
||||
const thaiSegmenter = Intl.Segmenter.supportedLocalesOf('th').includes('th')
|
||||
@ -190,11 +212,35 @@ export const romanizeThai = (line: string) => {
|
||||
return latin;
|
||||
};
|
||||
|
||||
export const romanizeBengali = (line: string) => {
|
||||
try {
|
||||
let out = Sanscript.t(line, 'bengali', 'iast');
|
||||
out = out.normalize('NFD');
|
||||
out = out.replace(/[\u0300-\u036f]/g, '');
|
||||
out = out.replace(/[\u09BC\u09BE-\u09CD]/g, '');
|
||||
return out.toLowerCase();
|
||||
} catch {
|
||||
return line;
|
||||
}
|
||||
};
|
||||
|
||||
export const romanizeHindi = (line: string) => {
|
||||
try {
|
||||
let out = Sanscript.t(line, 'devanagari', 'iast');
|
||||
out = out.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); // strip accents
|
||||
return out.replace(/[^a-zA-Z\s]/g, '') || line; // remove any remaining symbols
|
||||
} catch {
|
||||
return line;
|
||||
}
|
||||
};
|
||||
|
||||
const handlers: Record<string, (line: string) => Promise<string> | string> = {
|
||||
ja: romanizeJapanese,
|
||||
ko: romanizeHangul,
|
||||
zh: romanizeChinese,
|
||||
th: romanizeThai,
|
||||
bn: romanizeBengali,
|
||||
hi: romanizeHindi,
|
||||
};
|
||||
|
||||
export const romanize = async (line: string) => {
|
||||
@ -210,6 +256,8 @@ export const romanize = async (line: string) => {
|
||||
if (hasKorean([line])) line = romanizeHangul(line);
|
||||
if (hasChinese([line])) line = romanizeChinese(line);
|
||||
if (hasThai([line])) line = romanizeThai(line);
|
||||
if (hasBengali([line])) line = romanizeBengali(line);
|
||||
if (hasHindi([line])) line = romanizeHindi(line);
|
||||
|
||||
return line;
|
||||
};
|
||||
|
||||
@ -10,6 +10,10 @@ export type SyncedLyricsPluginConfig = {
|
||||
showLyricsEvenIfInexact: boolean;
|
||||
lineEffect: LineEffect;
|
||||
romanization: boolean;
|
||||
convertChineseCharacter?:
|
||||
| 'simplifiedToTraditional'
|
||||
| 'traditionalToSimplified'
|
||||
| 'disabled';
|
||||
};
|
||||
|
||||
export type LineLyricsStatus = 'previous' | 'current' | 'upcoming';
|
||||
|
||||
Reference in New Issue
Block a user