Compare commits

...

42 Commits

Author SHA1 Message Date
0acb211383 chore(deps): update dependency typescript-eslint to v8.56.1 2026-03-05 17:44:38 +00:00
6907fad1c5 chore(i18n): Translated using Weblate (Greek)
Currently translated at 90.3% (431 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2026-03-03 13:09:59 +00:00
04ccad3e06 doc: installation instructions for Solus (#4352) 2026-03-02 23:27:32 +09:00
b367c98cc5 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2026-03-01 18:10:30 +00:00
93a95aac72 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:28 +00:00
4e6d9ba017 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:27 +00:00
11f5815539 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:26 +00:00
4ddd7cc399 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:25 +00:00
deddbec79a chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:24 +00:00
bef4050f08 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:23 +00:00
398d80808f chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:21 +00:00
b0388f2be7 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:20 +00:00
ae5e65ad32 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-03-01 18:10:19 +00:00
3c67778c1b chore(deps): update eslint monorepo to v9.39.3 (#4337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:31:20 +09:00
e9d8583e59 fix(deps): update dependency @hono/zod-openapi to v1.2.2 (#4338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:31:13 +09:00
fb2b8185ea chore(deps): update actions/checkout action to v6 (#4293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:28:12 +09:00
b9c84f4404 chore(deps): update actions/upload-artifact action to v6 (#4294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:28:00 +09:00
465a350890 chore(deps): update dependency @playwright/test to v1.58.2 (#4335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:12:33 +09:00
72886583e9 chore(deps): update dependency glob to v13.0.6 (#4298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:12:02 +09:00
82294be035 chore(deps): update dependency discord-api-types to v0.38.40 (#4336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 04:11:45 +09:00
af9d5aa21e chore(deps): update stefanzweifel/git-auto-commit-action action to v7 (#4302)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:44:10 +09:00
a90ec4aa6e fix(deps): update dependency conf to v15.1.0 (#4303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:43:55 +09:00
e3e9985924 fix(deps): update dependency semver to v7.7.4 (#4306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:43:41 +09:00
bac4c03e80 chore(deps): update dependency @electron-toolkit/tsconfig to v2 (#4301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:42:37 +09:00
9c8add02e4 fix(deps): update dependency i18next to v25.8.13 (#4290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:42:13 +09:00
7aaca810ff fix(deps): update dependency hono to v4.11.10 [security] (#4331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 03:42:05 +09:00
Bai
41f077b144 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2026-02-24 15:09:51 +01:00
520d111fe5 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2026-02-24 15:09:47 +01:00
658b3da7dd chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2026-02-21 15:09:48 +00:00
65e11c01b9 chore(i18n): Translated using Weblate (Telugu)
Currently translated at 4.8% (23 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/te/
2026-02-19 15:09:48 +01:00
4a4c0fe055 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2026-02-17 11:09:50 +01:00
fd9ae2c23d chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2026-02-17 11:09:47 +01:00
b6d2bcd42f chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2026-02-16 03:09:55 +01:00
021972520a chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2026-02-16 03:09:54 +01:00
90e949d4e9 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2026-02-14 18:09:56 +00:00
208e57bdd3 feat(synced-lyrics): Add Simplified/Traditional Chinese converter and improve Romanization to display tone (#4111)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2026-02-13 01:27:48 +09:00
e2f1ff50dd feat(synced-lyrics): Added Hindi & Bengali romanization support for lyrics (#3933)
Co-authored-by: pranjol <pranjol@pranjols-iMac-Pro.local>
2026-02-11 08:00:36 +09:00
3f1ceca39c chore(i18n): Translated using Weblate (Telugu)
Currently translated at 2.7% (13 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/te/
2026-02-10 10:09:44 +00:00
37277b2764 chore(i18n): Added translation using Weblate (Telugu) 2026-02-09 11:03:37 +01:00
ba89772b09 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2026-02-07 19:09:44 +00:00
13a0e8e2ab chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (468 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2026-02-05 18:01:49 +01:00
faddaea403 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2026-02-04 14:02:00 +00:00
26 changed files with 1211 additions and 486 deletions

View File

@ -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"

View File

@ -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

View File

@ -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/

View File

@ -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 }}

View File

@ -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)):

View File

@ -75,8 +75,9 @@
"@hono/node-server": "1.19.9",
"@hono/node-ws": "1.3.0",
"@hono/swagger-ui": "0.5.3",
"@hono/zod-openapi": "1.2.1",
"@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",
@ -88,8 +89,9 @@
"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": "15.0.2",
"conf": "15.1.0",
"custom-electron-prompt": "1.6.1",
"deepmerge-ts": "7.1.5",
"electron-debug": "4.1.0",
@ -105,10 +107,10 @@
"filenamify": "7.0.1",
"hanja": "1.1.5",
"happy-dom": "20.5.0",
"hono": "4.11.7",
"hono": "4.11.10",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "25.8.0",
"i18next": "25.8.13",
"jimp": "1.6.0",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
@ -120,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",
@ -128,7 +131,6 @@
"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",
@ -137,10 +139,10 @@
"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.1",
"@playwright/test": "1.58.2",
"@stylistic/eslint-plugin": "5.7.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/electron-localshortcut": "3.1.3",
@ -152,24 +154,24 @@
"builtin-modules": "5.0.0",
"cross-env": "10.1.0",
"del-cli": "7.0.0",
"discord-api-types": "0.38.38",
"discord-api-types": "0.38.40",
"electron": "40.1.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": "13.0.0",
"glob": "13.0.6",
"node-gyp": "12.2.0",
"ts-morph": "27.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.54.0",
"typescript-eslint": "8.56.1",
"utf-8-validate": "6.0.6",
"vite": "npm:rolldown-vite@7.3.1",
"vite-plugin-inspect": "11.3.3",

572
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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": {

View File

@ -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",

View File

@ -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"

View File

@ -842,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"

View File

@ -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"

View File

@ -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}}",

View File

@ -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": "24Valandų 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ėsti"
"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ą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": {

View File

@ -842,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"

View 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": "ఇప్పుడే రీస్టార్ట్ చేయండి"
}
}
}
}
}

View File

@ -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"

View File

@ -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"

View File

@ -842,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": "选择在歌词间隙期间默认显示的字符"

View File

@ -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": "選擇歌詞中間隔要使用的符號"

View File

@ -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'),

View File

@ -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

View File

@ -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(() => {

View File

@ -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;
};

View File

@ -10,6 +10,10 @@ export type SyncedLyricsPluginConfig = {
showLyricsEvenIfInexact: boolean;
lineEffect: LineEffect;
romanization: boolean;
convertChineseCharacter?:
| 'simplifiedToTraditional'
| 'traditionalToSimplified'
| 'disabled';
};
export type LineLyricsStatus = 'previous' | 'current' | 'upcoming';