55 Commits

Author SHA1 Message Date
Weblate (bot)
a5fb60b0f1 Merge c8a5fc63a6 into b0bb26f84b 2025-03-07 05:02:55 +00:00
தமிழ்நேரம்
c8a5fc63a6 Translated using Weblate (Tamil)
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Tamil)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ta/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
Kajiab
837b6b633b Translated using Weblate (Thai)
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Thai)

Co-authored-by: Kajiab <kajiab@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/th/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
Babel Nam
9d16a74073 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Chinese (Traditional Han script))

Co-authored-by: Babel Nam <babelman97@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/zh_Hant/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
Giuseppe Rimicci
3963d981f2 Translated using Weblate (Italian)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Giuseppe Rimicci <giuseppe.rimicci@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/it/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
Clyhtsuriva
9ca7a36ae7 Translated using Weblate (French)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Clyhtsuriva <aimeric@adjutor.xyz>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/fr/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
mechanlou
deab142b6c Translated using Weblate (French)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: mechanlou <loumechan@proton.me>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/fr/
Translation: Subtracks/subtracks
2025-03-07 06:02:49 +01:00
Zev Ross
7563cb78e0 Translated using Weblate (Japanese)
Currently translated at 32.9% (31 of 94 strings)

Co-authored-by: Zev Ross <zevross@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ja/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
josé m
ca5e186a97 Translated using Weblate (Galician)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: josé m <correoxm@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/gl/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
Porrumentzio
e56f84214f Translated using Weblate (Basque)
Currently translated at 59.5% (56 of 94 strings)

Added translation using Weblate (Basque)

Co-authored-by: Porrumentzio <porrumentzio@riseup.net>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/eu/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
William Andrade Pires
e0a9a9dc6a Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.3% (84 of 94 strings)

Added translation using Weblate (Portuguese (Brazil))

Co-authored-by: William Andrade Pires <williamapires88@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/pt_BR/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
Alexander Weimer
6d1de2fa3b Translated using Weblate (Swedish)
Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Danish)

Currently translated at 62.7% (59 of 94 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Swedish)

Co-authored-by: Alexander Weimer <alexskypie@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/da/
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/sv/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
Eryk Michalak
e0ae3721ee Translated using Weblate (Polish)
Currently translated at 87.2% (82 of 94 strings)

Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/pl/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
Joe Roe
91c4f3627d Translated using Weblate (Danish)
Currently translated at 60.6% (57 of 94 strings)

Co-authored-by: Joe Roe <jroeuk@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/da/
Translation: Subtracks/subtracks
2025-03-07 06:02:48 +01:00
Alex
6df671a92f Translated using Weblate (Italian)
Currently translated at 87.2% (82 of 94 strings)

Co-authored-by: Alex <alexbuffa22+github@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/it/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
Sargon-Isa
d2069440d4 Translated using Weblate (German)
Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (German)

Currently translated at 97.8% (92 of 94 strings)

Co-authored-by: Sargon-Isa <Sargon_isa@hotmail.de>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/de/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
juan
6cfb5bdce7 Translated using Weblate (Spanish)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: juan <elian.dylen@fixedfor.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/es/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
nullptr-0
e1886f1f92 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: nullptr-0 <959220793@qq.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/zh_Hans/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
Dan
af3cea9f6a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (94 of 94 strings)

Added translation using Weblate (Ukrainian)

Co-authored-by: Dan <jonweblin2205@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/uk/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
Matt
26e6171437 Translated using Weblate (Japanese)
Currently translated at 29.7% (28 of 94 strings)

Co-authored-by: Matt <ermacaz@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ja/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
Hosted Weblate
cff7aa14a5 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
mechanlou
8242ffa8ee Translated using Weblate (French)
Currently translated at 86.1% (81 of 94 strings)

Co-authored-by: mechanlou <loumechan@proton.me>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/fr/
Translation: Subtracks/subtracks
2025-03-07 06:02:47 +01:00
István Varga
5c492751f7 Translated using Weblate (Hungarian)
Currently translated at 86.1% (81 of 94 strings)

Added translation using Weblate (Hungarian)

Co-authored-by: István Varga <istvan82@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/hu/
Translation: Subtracks/subtracks
2025-03-07 06:02:46 +01:00
Max Smith
84443d89a1 Translated using Weblate (Russian)
Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Max Smith <sevinfolds@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ru/
Translation: Subtracks/subtracks
2025-03-07 06:02:46 +01:00
austinried
b0bb26f84b Fix initial server ping/feature tests always using token auth 2023-05-18 06:42:29 +09:00
austinried
e94fcf3128 bump version 2023-05-16 18:59:16 +09:00
josé m
bd6e818f36 Translated using Weblate (Galician)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: josé m <correoxm@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/gl/
Translation: Subtracks/subtracks
2023-05-16 18:57:04 +09:00
Max Smith
96d0c35c31 Translated using Weblate (Russian)
Currently translated at 100.0% (94 of 94 strings)

Co-authored-by: Max Smith <sevinfolds@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/ru/
Translation: Subtracks/subtracks
2023-05-16 18:57:04 +09:00
Tim Schneeberger
4ef3281a0b Translated using Weblate (German)
Currently translated at 100.0% (92 of 92 strings)

Co-authored-by: Tim Schneeberger <thebone.main@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/de/
Translation: Subtracks/subtracks
2023-05-16 18:57:04 +09:00
austinried
c56e3dba0f remove todo 2023-05-16 09:34:39 +09:00
austinried
53d284ace4 redact error too
create log file if it doesn't exist first
2023-05-16 09:34:39 +09:00
austinried
c2733482e5 show snackbar error for sync
log http errors
log sync errors
2023-05-16 09:34:39 +09:00
austinried
67f0c926c4 add snackbar method for errors
test (ping) server before saving source
display error message when saving source
2023-05-16 09:34:39 +09:00
Joel Calado
889be2ff2c return null 2023-05-15 07:11:58 +09:00
Joel Calado
52b51954aa improve url validation in settings 2023-05-15 07:11:58 +09:00
austinried
1c76293559 default force plaintext password off 2023-05-14 14:35:19 +09:00
austinried
250d6793a2 wording 2023-05-14 14:29:04 +09:00
austinried
121af2bca3 audio playback error logging
subsonic error logging
source save error logging
2023-05-14 14:29:04 +09:00
austinried
e410dcb2eb log sql exceptions 2023-05-14 14:29:04 +09:00
austinried
63ff9772e5 initial console/file logging framework 2023-05-14 14:29:04 +09:00
Vojtěch Fošnár
1ae29c5ade Translated using Weblate (Czech)
Currently translated at 85.8% (79 of 92 strings)

Co-authored-by: Vojtěch Fošnár <vfosnar@fosny.eu>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/cs/
Translation: Subtracks/subtracks
2023-05-11 10:07:23 +09:00
Joel Calado
fedd6a71bb Translated using Weblate (Portuguese)
Currently translated at 88.0% (81 of 92 strings)

Co-authored-by: Joel Calado <joelcalado@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/pt/
Translation: Subtracks/subtracks
2023-05-11 10:07:23 +09:00
austinried
8f64cfcbca bump version 2023-05-08 06:39:17 +09:00
austinried
1edb2c13da update todo 2023-05-08 06:37:10 +09:00
austinried
7f83204b24 don't pass all ids as params
instead, only pass ids to delete and chunk those by the param limit
2023-05-07 13:56:05 +09:00
austinried
0fe52494d0 update todo 2023-05-07 13:54:56 +09:00
Daniel Playfair Cal
56dbcde3b4 add autofill hints for source page 2023-05-07 13:54:26 +09:00
austinried
8fbc5e6ce4 add artist radio 2023-05-07 13:28:15 +09:00
austinried
979a4b7c73 add plaintext password option
fixes #161
2023-05-06 17:56:03 +09:00
josé m
7b1da24748 Translated using Weblate (Galician)
Currently translated at 100.0% (92 of 92 strings)

Co-authored-by: josé m <correoxm@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/gl/
Translation: Subtracks/subtracks
2023-05-06 09:11:25 +09:00
Sacelo
7014aa85d1 Translated using Weblate (Spanish)
Currently translated at 77.1% (71 of 92 strings)

Co-authored-by: Sacelo <rion020806@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/es/
Translation: Subtracks/subtracks
2023-05-06 09:11:25 +09:00
雨杉叶
abab674322 Translated using Weblate (Chinese (Simplified))
Currently translated at 88.0% (81 of 92 strings)

Co-authored-by: 雨杉叶 <yushaye@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/zh_Hans/
Translation: Subtracks/subtracks
2023-05-06 09:11:25 +09:00
daniel-225
498bb22a69 Translated using Weblate (German)
Currently translated at 75.0% (69 of 92 strings)

Co-authored-by: daniel-225 <dsoukup@outlook.de>
Translate-URL: https://hosted.weblate.org/projects/subtracks/subtracks/de/
Translation: Subtracks/subtracks
2023-05-06 09:11:25 +09:00
austinried
11fe43a750 add server info fields 2023-04-28 21:59:33 +09:00
austinried
2a60a7306c use english as last fallback locale
fixes #160
2023-04-28 21:45:59 +09:00
50 changed files with 6081 additions and 2683 deletions

View File

@@ -23,10 +23,14 @@ A clear and concise description of what you expected to happen.
**Screenshots** **Screenshots**
If applicable, add screenshots to help explain your problem. If applicable, add screenshots to help explain your problem.
**Smartphone (please complete the following information):** **Device**
- Device: [e.g. Pixel 4] - Model: [e.g. Pixel 4]
- OS: [e.g. Android 12] - OS: [e.g. Android 12]
- Subtracks version [e.g. 1.2.0] - Subtracks version [e.g. 1.2.0]
**Server**
- Software: [e.g. Navidrome]
- Version: [e.g. 0.49.3]
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

View File

@@ -22,6 +22,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -53,6 +55,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -62,32 +66,12 @@
], ],
"cs": [ "cs": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount", "resourcesAlbumCount",
"resourcesArtistCount", "resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount", "resourcesPlaylistCount",
"resourcesSongCount", "resourcesSongCount",
"resourcesSongListDeleteAllContent", "settingsAboutShareLogs",
"resourcesSongListDeleteAllTitle", "settingsAboutChooseLog",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated",
"settingsAboutActionsLicenses",
"settingsAboutActionsProjectHomepage",
"settingsAboutActionsSupport",
"settingsAboutName",
"settingsAboutVersion",
"settingsMusicName", "settingsMusicName",
"settingsMusicOptionsScrobbleDescriptionOff", "settingsMusicOptionsScrobbleDescriptionOff",
"settingsMusicOptionsScrobbleDescriptionOn", "settingsMusicOptionsScrobbleDescriptionOn",
@@ -96,12 +80,7 @@
"settingsNetworkOptionsMinBufferTitle", "settingsNetworkOptionsMinBufferTitle",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn"
"settingsNetworkOptionsStreamFormat",
"settingsNetworkOptionsStreamFormatServerDefault",
"settingsResetActionsClearImageCache",
"settingsResetName",
"settingsServersFieldsName"
], ],
"da": [ "da": [
@@ -133,6 +112,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsMusicOptionsScrobbleDescriptionOff", "settingsMusicOptionsScrobbleDescriptionOff",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
@@ -146,44 +127,11 @@
], ],
"de": [ "de": [
"actionsCancel", "settingsAboutShareLogs",
"actionsDelete", "settingsAboutChooseLog"
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount",
"resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount",
"resourcesSongCount",
"resourcesSongListDeleteAllContent",
"resourcesSongListDeleteAllTitle",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated",
"settingsAboutActionsSupport",
"settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn",
"settingsNetworkOptionsStreamFormat",
"settingsNetworkOptionsStreamFormatServerDefault",
"settingsServersFieldsName"
], ],
"es": [ "es": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount", "resourcesAlbumCount",
"resourcesArtistCount", "resourcesArtistCount",
"resourcesFilterAlbum", "resourcesFilterAlbum",
@@ -199,6 +147,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -230,37 +180,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsNetworkOptionsOfflineMode", "settingsAboutShareLogs",
"settingsNetworkOptionsOfflineModeOff", "settingsAboutChooseLog",
"settingsNetworkOptionsOfflineModeOn",
"settingsNetworkOptionsStreamFormat",
"settingsNetworkOptionsStreamFormatServerDefault",
"settingsServersFieldsName"
],
"gl": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount",
"resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount",
"resourcesSongCount",
"resourcesSongListDeleteAllContent",
"resourcesSongListDeleteAllTitle",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated",
"settingsAboutActionsSupport",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -292,6 +213,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -343,6 +266,8 @@
"settingsAboutActionsLicenses", "settingsAboutActionsLicenses",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutName", "settingsAboutName",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsAboutVersion", "settingsAboutVersion",
"settingsMusicOptionsScrobbleDescriptionOff", "settingsMusicOptionsScrobbleDescriptionOff",
"settingsMusicOptionsScrobbleDescriptionOn", "settingsMusicOptionsScrobbleDescriptionOn",
@@ -399,6 +324,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -430,6 +357,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -461,6 +390,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -470,63 +401,17 @@
], ],
"pt": [ "pt": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount", "resourcesAlbumCount",
"resourcesArtistCount", "resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner", "resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount", "resourcesPlaylistCount",
"resourcesSongCount", "resourcesSongCount",
"resourcesSongListDeleteAllContent", "resourcesSongListDeleteAllContent",
"resourcesSongListDeleteAllTitle", "resourcesSongListDeleteAllTitle",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount", "resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutShareLogs",
"settingsNetworkOptionsOfflineMode", "settingsAboutChooseLog",
"settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn",
"settingsNetworkOptionsStreamFormat",
"settingsNetworkOptionsStreamFormatServerDefault",
"settingsServersFieldsName"
],
"ru": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle",
"resourcesAlbumCount",
"resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount",
"resourcesSongCount",
"resourcesSongListDeleteAllContent",
"resourcesSongListDeleteAllTitle",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated",
"settingsAboutActionsSupport",
"settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn",
"settingsNetworkOptionsStreamFormat",
"settingsNetworkOptionsStreamFormatServerDefault", "settingsNetworkOptionsStreamFormatServerDefault",
"settingsServersFieldsName" "settingsServersFieldsName"
], ],
@@ -554,6 +439,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -585,6 +472,8 @@
"resourcesSortByTitle", "resourcesSortByTitle",
"resourcesSortByUpdated", "resourcesSortByUpdated",
"settingsAboutActionsSupport", "settingsAboutActionsSupport",
"settingsAboutShareLogs",
"settingsAboutChooseLog",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",
@@ -594,28 +483,13 @@
], ],
"zh": [ "zh": [
"actionsCancel",
"actionsDelete",
"actionsDownload",
"actionsDownloadCancel",
"actionsDownloadDelete",
"actionsOk",
"controlsShuffle", "controlsShuffle",
"resourcesAlbumCount", "resourcesAlbumCount",
"resourcesArtistCount", "resourcesArtistCount",
"resourcesFilterAlbum",
"resourcesFilterArtist",
"resourcesFilterOwner",
"resourcesFilterYear",
"resourcesPlaylistCount", "resourcesPlaylistCount",
"resourcesSongCount", "resourcesSongCount",
"resourcesSongListDeleteAllContent", "settingsAboutShareLogs",
"resourcesSongListDeleteAllTitle", "settingsAboutChooseLog",
"resourcesSortByAlbum",
"resourcesSortByAlbumCount",
"resourcesSortByTitle",
"resourcesSortByUpdated",
"settingsAboutActionsSupport",
"settingsNetworkOptionsOfflineMode", "settingsNetworkOptionsOfflineMode",
"settingsNetworkOptionsOfflineModeOff", "settingsNetworkOptionsOfflineModeOff",
"settingsNetworkOptionsOfflineModeOn", "settingsNetworkOptionsOfflineModeOn",

62
TODO.md
View File

@@ -1,34 +1,30 @@
## To-do ## To-do
- [ ] Star/unstar - Star/unstar
- [ ] Context menus - Context menus
- [ ] Download actions for song - Download actions for song
- [ ] Playlist management - Playlist management
- [ ] Add to playlist (from context) - Add to playlist (from context)
- [ ] Queue management - Queue management
- [ ] View playing queue - View playing queue
- [ ] Re-order queue - Re-order queue
- [ ] Add to queue (from context) - Add to queue (from context)
- [ ] Remove from queue - Remove from queue
- [ ] Scrobbling - Scrobbling
- [ ] Library filters (year/genre/etc) - Library filters (year/genre/etc)
- [ ] Library list display modes - Library list display modes
- [ ] Search - Search
- [ ] Individual "more" results pages - Individual "more" results pages
- [ ] Radio modes - Now playing gestures
- [ ] Artist - Swipe bar/album to skip
- [ ] Now playing gestures - Double-tap to seek forward/back (bar only)
- [ ] Swipe bar/album to skip - Settings
- [ ] Double-tap to seek forward/back (bar only) - Music
- [ ] Settings - Scrobble
- [ ] Sources - Downloads
- [ ] Use plaintext password - Used/available space
- [ ] Music - Clear downloads
- [ ] Scrobble - Clear images
- [ ] Downloads - About
- [ ] Used/available space - Licenses
- [ ] Clear downloads - Welcome/setup flow
- [ ] Clear images - Proper loading screen/animation
- [ ] About
- [ ] Licenses
- [ ] Welcome/setup flow
- [ ] Proper loading screen/animation

View File

@@ -1,3 +1,4 @@
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
@@ -77,7 +78,8 @@ class App extends HookConsumerWidget {
), ),
routeInformationParser: appRouter.defaultRouteParser(), routeInformationParser: appRouter.defaultRouteParser(),
localizationsDelegates: AppLocalizations.localizationsDelegates, localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales, supportedLocales: [...AppLocalizations.supportedLocales]
..moveToTheFront(const Locale('en')),
); );
} }
} }

View File

@@ -4,6 +4,7 @@ import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
import '../services/sync_service.dart'; import '../services/sync_service.dart';
import 'items.dart'; import 'items.dart';
import 'snackbars.dart';
class PagedListQueryView<T> extends HookConsumerWidget { class PagedListQueryView<T> extends HookConsumerWidget {
final PagingController<int, T> pagingController; final PagingController<int, T> pagingController;
@@ -122,7 +123,13 @@ class SyncAllRefresh extends HookConsumerWidget {
@override @override
Widget build(BuildContext context, WidgetRef ref) { Widget build(BuildContext context, WidgetRef ref) {
return RefreshIndicator( return RefreshIndicator(
onRefresh: () => ref.read(syncServiceProvider.notifier).syncAll(), onRefresh: () async {
try {
await ref.read(syncServiceProvider.notifier).syncAll();
} catch (e) {
showErrorSnackbar(context, e.toString());
}
},
child: child, child: child,
); );
} }

View File

@@ -1,13 +1,19 @@
import 'dart:math'; import 'dart:math';
import 'package:auto_route/auto_route.dart'; import 'package:auto_route/auto_route.dart';
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../../database/database.dart';
import '../../models/query.dart';
import '../../models/support.dart';
import '../../services/audio_service.dart';
import '../../state/music.dart'; import '../../state/music.dart';
import '../../state/settings.dart'; import '../../state/settings.dart';
import '../app_router.dart'; import '../app_router.dart';
import '../buttons.dart';
import '../images.dart'; import '../images.dart';
import '../items.dart'; import '../items.dart';
@@ -27,6 +33,26 @@ class ArtistPage extends HookConsumerWidget {
final albums = ref.watch(albumsByArtistIdProvider(id)); final albums = ref.watch(albumsByArtistIdProvider(id));
return Scaffold( return Scaffold(
floatingActionButton: RadioPlayFab(
onPressed: () => artist.hasValue
? ref.read(audioControlProvider).playRadio(
context: QueueContextType.artist,
contextId: artist.valueOrNull!.id,
query: ListQuery(
filters: IList([
FilterWith.equals(
column: 'artist_id',
value: artist.valueOrNull!.id,
)
]),
),
getSongs: (query) => ref
.read(databaseProvider)
.songsList(ref.read(sourceIdProvider), query)
.get(),
)
: null,
),
body: CustomScrollView( body: CustomScrollView(
slivers: [ slivers: [
SliverToBoxAdapter( SliverToBoxAdapter(

View File

@@ -1,11 +1,16 @@
import 'dart:math';
import 'package:auto_route/auto_route.dart'; import 'package:auto_route/auto_route.dart';
import 'package:fast_immutable_collections/fast_immutable_collections.dart'; import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:path/path.dart' as p;
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../../log.dart';
import '../../models/support.dart'; import '../../models/support.dart';
import '../../services/settings_service.dart'; import '../../services/settings_service.dart';
import '../../state/init.dart'; import '../../state/init.dart';
@@ -162,6 +167,54 @@ class _About extends HookConsumerWidget {
mode: LaunchMode.externalApplication, mode: LaunchMode.externalApplication,
), ),
), ),
const SizedBox(height: 12),
const _ShareLogsButton(),
],
);
}
}
class _ShareLogsButton extends StatelessWidget {
const _ShareLogsButton();
@override
Widget build(BuildContext context) {
final l = AppLocalizations.of(context);
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
OutlinedButton.icon(
icon: const Icon(Icons.share),
label: Text(l.settingsAboutShareLogs),
onPressed: () async {
final files = await logFiles();
if (files.isEmpty) return;
// ignore: use_build_context_synchronously
final value = await showDialog<String>(
context: context,
builder: (context) => MultipleChoiceDialog<String>(
title: l.settingsAboutChooseLog,
current: files.first.path,
options: files
.map((e) => MultiChoiceOption.string(
title: p.basename(e.path),
option: e.path,
))
.toIList(),
),
);
if (value == null) return;
Share.shareXFiles(
[XFile(value, mimeType: 'text/plain')],
subject: 'Logs from subtracks: ${String.fromCharCodes(
List.generate(8, (_) => Random().nextInt(26) + 65),
)}',
);
},
),
], ],
); );
} }

View File

@@ -8,9 +8,11 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../../database/database.dart'; import '../../database/database.dart';
import '../../log.dart';
import '../../models/settings.dart'; import '../../models/settings.dart';
import '../../services/settings_service.dart'; import '../../services/settings_service.dart';
import '../items.dart'; import '../items.dart';
import '../snackbars.dart';
class SourcePage extends HookConsumerWidget { class SourcePage extends HookConsumerWidget {
final int? id; final int? id;
@@ -41,9 +43,10 @@ class SourcePage extends HookConsumerWidget {
label: l.settingsServersFieldsAddress, label: l.settingsServersFieldsAddress,
initialValue: source?.address.toString(), initialValue: source?.address.toString(),
keyboardType: TextInputType.url, keyboardType: TextInputType.url,
autofillHints: const [AutofillHints.url],
required: true, required: true,
validator: (value, label) { validator: (value, label) {
if (Uri.tryParse(value!) == null) { if (!value!.contains(RegExp(r'https?:\/\/'))) {
return '$label must be a valid URL'; return '$label must be a valid URL';
} }
return null; return null;
@@ -52,15 +55,27 @@ class SourcePage extends HookConsumerWidget {
final username = LabeledTextField( final username = LabeledTextField(
label: l.settingsServersFieldsUsername, label: l.settingsServersFieldsUsername,
initialValue: source?.username, initialValue: source?.username,
autofillHints: const [AutofillHints.username],
required: true, required: true,
); );
final password = LabeledTextField( final password = LabeledTextField(
label: l.settingsServersFieldsPassword, label: l.settingsServersFieldsPassword,
initialValue: source?.password, initialValue: source?.password,
obscureText: true, obscureText: true,
autofillHints: const [AutofillHints.password],
required: true, required: true,
); );
final forcePlaintextPassword = useState(!(source?.useTokenAuth ?? true));
final forcePlaintextSwitch = SwitchListTile(
value: forcePlaintextPassword.value,
title: Text(l.settingsServersOptionsForcePlaintextPasswordTitle),
subtitle: forcePlaintextPassword.value
? Text(l.settingsServersOptionsForcePlaintextPasswordDescriptionOn)
: Text(l.settingsServersOptionsForcePlaintextPasswordDescriptionOff),
onChanged: (value) => forcePlaintextPassword.value = value,
);
return WillPopScope( return WillPopScope(
onWillPop: () async => !isSaving.value && !isDeleting.value, onWillPop: () async => !isSaving.value && !isDeleting.value,
child: Scaffold( child: Scaffold(
@@ -128,6 +143,7 @@ class SourcePage extends HookConsumerWidget {
address: Uri.parse(address.value), address: Uri.parse(address.value),
username: username.value, username: username.value,
password: password.value, password: password.value,
useTokenAuth: !forcePlaintextPassword.value,
), ),
); );
} else { } else {
@@ -142,12 +158,14 @@ class SourcePage extends HookConsumerWidget {
features: IList(), features: IList(),
username: username.value, username: username.value,
password: password.value, password: password.value,
useTokenAuth: const Value(true), useTokenAuth:
Value(!forcePlaintextPassword.value),
), ),
); );
} }
} catch (err) { } catch (e, st) {
// TOOD: toast the error or whatever showErrorSnackbar(context, e.toString());
log.severe('Saving source', e, st);
error = true; error = true;
} finally { } finally {
isSaving.value = false; isSaving.value = false;
@@ -163,21 +181,25 @@ class SourcePage extends HookConsumerWidget {
), ),
body: Form( body: Form(
key: form, key: form,
child: Padding( child: AutofillGroup(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: ListView( child: ListView(
children: [ children: [
const SizedBox(height: 96 - kToolbarHeight), const SizedBox(height: 96 - kToolbarHeight),
Text( Padding(
source == null padding: const EdgeInsets.symmetric(horizontal: 16),
? l.settingsServersActionsAdd child: Text(
: l.settingsServersActionsEdit, source == null
style: theme.textTheme.displaySmall, ? l.settingsServersActionsAdd
: l.settingsServersActionsEdit,
style: theme.textTheme.displaySmall,
),
), ),
name, name,
address, address,
username, username,
password, password,
const SizedBox(height: 24),
forcePlaintextSwitch,
const FabPadding(), const FabPadding(),
], ],
), ),
@@ -194,6 +216,7 @@ class LabeledTextField extends HookConsumerWidget {
final bool obscureText; final bool obscureText;
final bool required; final bool required;
final TextInputType? keyboardType; final TextInputType? keyboardType;
final Iterable<String>? autofillHints;
final String? Function(String? value, String label)? validator; final String? Function(String? value, String label)? validator;
// ignore: prefer_const_constructors_in_immutables // ignore: prefer_const_constructors_in_immutables
@@ -204,6 +227,7 @@ class LabeledTextField extends HookConsumerWidget {
this.obscureText = false, this.obscureText = false,
this.keyboardType, this.keyboardType,
this.validator, this.validator,
this.autofillHints,
this.required = false, this.required = false,
}); });
@@ -224,35 +248,36 @@ class LabeledTextField extends HookConsumerWidget {
final theme = Theme.of(context); final theme = Theme.of(context);
_controller = useTextEditingController(text: initialValue); _controller = useTextEditingController(text: initialValue);
return Column( return Padding(
crossAxisAlignment: CrossAxisAlignment.stretch, padding: const EdgeInsets.symmetric(horizontal: 16),
children: [ child: Column(
const SizedBox(height: 24), crossAxisAlignment: CrossAxisAlignment.stretch,
Text( children: [
label, const SizedBox(height: 24),
style: theme.textTheme.titleMedium, Text(label, style: theme.textTheme.titleMedium),
), TextFormField(
TextFormField( controller: _controller,
controller: _controller, obscureText: obscureText,
obscureText: obscureText, keyboardType: keyboardType,
keyboardType: keyboardType, autofillHints: autofillHints,
validator: (value) { validator: (value) {
String? error; String? error;
if (required) { if (required) {
error = _requiredValidator(value); error = _requiredValidator(value);
if (error != null) { if (error != null) {
return error; return error;
}
} }
}
if (validator != null) { if (validator != null) {
return validator!(value, label); return validator!(value, label);
} }
return null; return null;
}, },
), ),
], ],
),
); );
} }
} }

14
lib/app/snackbars.dart Normal file
View File

@@ -0,0 +1,14 @@
import 'package:flutter/material.dart';
void showErrorSnackbar(BuildContext context, String message) {
final colors = Theme.of(context).colorScheme;
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(message, style: TextStyle(color: colors.onErrorContainer)),
backgroundColor: colors.errorContainer,
showCloseIcon: true,
closeIconColor: colors.onErrorContainer,
behavior: SnackBarBehavior.floating,
duration: const Duration(seconds: 10),
));
}

View File

@@ -9,14 +9,20 @@ import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../log.dart';
import '../models/music.dart'; import '../models/music.dart';
import '../models/query.dart'; import '../models/query.dart';
import '../models/settings.dart'; import '../models/settings.dart';
import '../models/support.dart'; import '../models/support.dart';
import 'converters.dart'; import 'converters.dart';
import 'error_logging_database.dart';
part 'database.g.dart'; part 'database.g.dart';
// don't exceed SQLITE_MAX_VARIABLE_NUMBER (32766 for version >= 3.32.0)
// https://www.sqlite.org/limits.html
const kSqliteMaxVariableNumber = 32766;
@DriftDatabase(include: {'tables.drift'}) @DriftDatabase(include: {'tables.drift'})
class SubtracksDatabase extends _$SubtracksDatabase { class SubtracksDatabase extends _$SubtracksDatabase {
SubtracksDatabase() : super(_openConnection()); SubtracksDatabase() : super(_openConnection());
@@ -169,12 +175,27 @@ class SubtracksDatabase extends _$SubtracksDatabase {
}); });
} }
Future<void> deleteArtistsNotIn(int sourceId, Iterable<String> ids) async { Future<void> deleteArtistsNotIn(int sourceId, Set<String> ids) {
await (delete(artists) return transaction(() async {
..where( final allIds = (await (selectOnly(artists)
(tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isNotIn(ids), ..addColumns([artists.id])
)) ..where(artists.sourceId.equals(sourceId)))
.go(); .map((row) => row.read(artists.id))
.get())
.whereNotNull()
.toSet();
final downloadIds = (await artistIdsWithDownloadStatus(sourceId).get())
.whereNotNull()
.toSet();
final diff = allIds.difference(downloadIds).difference(ids);
for (var slice in diff.slices(kSqliteMaxVariableNumber)) {
await (delete(artists)
..where(
(tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isIn(slice)))
.go();
}
});
} }
Future<void> saveAlbums(Iterable<AlbumsCompanion> albums) async { Future<void> saveAlbums(Iterable<AlbumsCompanion> albums) async {
@@ -183,15 +204,27 @@ class SubtracksDatabase extends _$SubtracksDatabase {
}); });
} }
Future<void> deleteAlbumsNotIn(int sourceId, Iterable<String> ids) async { Future<void> deleteAlbumsNotIn(int sourceId, Set<String> ids) {
final alsoKeep = (await albumIdsWithDownloaded(sourceId).get()).toSet(); return transaction(() async {
final allIds = (await (selectOnly(albums)
..addColumns([albums.id])
..where(albums.sourceId.equals(sourceId)))
.map((row) => row.read(albums.id))
.get())
.whereNotNull()
.toSet();
final downloadIds = (await albumIdsWithDownloadStatus(sourceId).get())
.whereNotNull()
.toSet();
ids = ids.toList()..addAll(alsoKeep); final diff = allIds.difference(downloadIds).difference(ids);
await (delete(albums) for (var slice in diff.slices(kSqliteMaxVariableNumber)) {
..where( await (delete(albums)
(tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isNotIn(ids), ..where(
)) (tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isIn(slice)))
.go(); .go();
}
});
} }
Future<void> savePlaylists( Future<void> savePlaylists(
@@ -215,18 +248,31 @@ class SubtracksDatabase extends _$SubtracksDatabase {
}); });
} }
Future<void> deletePlaylistsNotIn(int sourceId, Iterable<String> ids) async { Future<void> deletePlaylistsNotIn(int sourceId, Set<String> ids) {
await (delete(playlists) return transaction(() async {
..where( final allIds = (await (selectOnly(playlists)
(tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isNotIn(ids), ..addColumns([playlists.id])
)) ..where(playlists.sourceId.equals(sourceId)))
.go(); .map((row) => row.read(playlists.id))
await (delete(playlistSongs) .get())
..where( .whereNotNull()
(tbl) => .toSet();
tbl.sourceId.equals(sourceId) & tbl.playlistId.isNotIn(ids), final downloadIds = (await playlistIdsWithDownloadStatus(sourceId).get())
)) .whereNotNull()
.go(); .toSet();
final diff = allIds.difference(downloadIds).difference(ids);
for (var slice in diff.slices(kSqliteMaxVariableNumber)) {
await (delete(playlists)
..where(
(tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isIn(slice)))
.go();
await (delete(playlistSongs)
..where((tbl) =>
tbl.sourceId.equals(sourceId) & tbl.playlistId.isIn(slice)))
.go();
}
});
} }
Future<void> savePlaylistSongs( Future<void> savePlaylistSongs(
@@ -250,29 +296,33 @@ class SubtracksDatabase extends _$SubtracksDatabase {
}); });
} }
Future<void> deleteSongsNotIn(int sourceId, Iterable<String> ids) async { Future<void> deleteSongsNotIn(int sourceId, Set<String> ids) {
await (delete(songs) return transaction(() async {
..where( final allIds = (await (selectOnly(songs)
(tbl) => ..addColumns([songs.id])
tbl.sourceId.equals(sourceId) & ..where(
tbl.id.isNotIn(ids) & songs.sourceId.equals(sourceId) &
tbl.downloadFilePath.isNull() & songs.downloadFilePath.isNull() &
tbl.downloadTaskId.isNull(), songs.downloadTaskId.isNull(),
)) ))
.go(); .map((row) => row.read(songs.id))
final remainingIds = (await (selectOnly(songs) .get())
..addColumns([songs.id]) .whereNotNull()
..where(songs.sourceId.equals(sourceId))) .toSet();
.map((row) => row.read(songs.id))
.get()) final diff = allIds.difference(ids);
.whereNotNull(); for (var slice in diff.slices(kSqliteMaxVariableNumber)) {
await (delete(playlistSongs) await (delete(songs)
..where( ..where(
(tbl) => (tbl) => tbl.sourceId.equals(sourceId) & tbl.id.isIn(slice)))
tbl.sourceId.equals(sourceId) & .go();
tbl.songId.isNotIn(remainingIds), await (delete(playlistSongs)
)) ..where(
.go(); (tbl) => tbl.sourceId.equals(sourceId) & tbl.songId.isIn(slice),
))
.go();
}
});
} }
Selectable<LastBottomNavStateData> getLastBottomNavState() { Selectable<LastBottomNavStateData> getLastBottomNavState() {
@@ -387,7 +437,11 @@ LazyDatabase _openConnection() {
final dbFolder = await getApplicationDocumentsDirectory(); final dbFolder = await getApplicationDocumentsDirectory();
final file = File(p.join(dbFolder.path, 'subtracks.sqlite')); final file = File(p.join(dbFolder.path, 'subtracks.sqlite'));
// return NativeDatabase.createInBackground(file, logStatements: true); // return NativeDatabase.createInBackground(file, logStatements: true);
return NativeDatabase.createInBackground(file);
return ErrorLoggingDatabase(
NativeDatabase.createInBackground(file),
(e, s) => log.severe('SQL error', e, s),
);
}); });
} }

View File

@@ -4596,7 +4596,7 @@ abstract class _$SubtracksDatabase extends GeneratedDatabase {
)); ));
} }
Selectable<String> albumIdsWithDownloaded(int sourceId) { Selectable<String> albumIdsWithDownloadStatus(int sourceId) {
return customSelect( return customSelect(
'SELECT albums.id FROM albums JOIN songs ON songs.source_id = albums.source_id AND songs.album_id = albums.id WHERE albums.source_id = ?1 AND(songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)GROUP BY albums.id', 'SELECT albums.id FROM albums JOIN songs ON songs.source_id = albums.source_id AND songs.album_id = albums.id WHERE albums.source_id = ?1 AND(songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)GROUP BY albums.id',
variables: [ variables: [
@@ -4608,6 +4608,32 @@ abstract class _$SubtracksDatabase extends GeneratedDatabase {
}).map((QueryRow row) => row.read<String>('id')); }).map((QueryRow row) => row.read<String>('id'));
} }
Selectable<String> artistIdsWithDownloadStatus(int sourceId) {
return customSelect(
'SELECT artists.id FROM artists LEFT JOIN albums ON artists.source_id = albums.source_id AND artists.id = albums.artist_id LEFT JOIN songs ON albums.source_id = songs.source_id AND albums.id = songs.album_id WHERE artists.source_id = ?1 AND(songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)GROUP BY artists.id',
variables: [
Variable<int>(sourceId)
],
readsFrom: {
artists,
albums,
songs,
}).map((QueryRow row) => row.read<String>('id'));
}
Selectable<String> playlistIdsWithDownloadStatus(int sourceId) {
return customSelect(
'SELECT playlists.id FROM playlists LEFT JOIN playlist_songs ON playlist_songs.source_id = playlists.source_id AND playlist_songs.playlist_id = playlists.id LEFT JOIN songs ON playlist_songs.source_id = songs.source_id AND playlist_songs.song_id = songs.id WHERE playlists.source_id = ?1 AND(songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)GROUP BY playlists.id',
variables: [
Variable<int>(sourceId)
],
readsFrom: {
playlists,
playlistSongs,
songs,
}).map((QueryRow row) => row.read<String>('id'));
}
Selectable<int> searchArtists(String query, int limit, int offset) { Selectable<int> searchArtists(String query, int limit, int offset) {
return customSelect( return customSelect(
'SELECT "rowid" FROM artists_fts WHERE artists_fts MATCH ?1 ORDER BY rank LIMIT ?2 OFFSET ?3', 'SELECT "rowid" FROM artists_fts WHERE artists_fts MATCH ?1 ORDER BY rank LIMIT ?2 OFFSET ?3',

View File

@@ -0,0 +1,94 @@
import 'dart:async';
import 'package:drift/drift.dart';
import 'package:drift/isolate.dart';
/// https://github.com/simolus3/drift/issues/2326#issuecomment-1445138730
class ErrorLoggingDatabase implements QueryExecutor {
final QueryExecutor inner;
final void Function(Object, StackTrace) onError;
ErrorLoggingDatabase(this.inner, this.onError);
Future<T> _handleErrors<T>(Future<T> Function() body) {
return Future.sync(body)
.onError<DriftWrappedException>((error, stackTrace) {
onError(error, error.trace ?? stackTrace);
throw error;
}).onError<DriftRemoteException>((error, stackTrace) {
onError(error, error.remoteStackTrace ?? stackTrace);
throw error;
});
}
@override
TransactionExecutor beginTransaction() {
return _ErrorLoggingTransactionExecutor(inner.beginTransaction(), onError);
}
@override
Future<void> close() {
return _handleErrors(inner.close);
}
@override
SqlDialect get dialect => inner.dialect;
@override
Future<bool> ensureOpen(QueryExecutorUser user) {
return _handleErrors(() => inner.ensureOpen(user));
}
@override
Future<void> runBatched(BatchedStatements statements) {
return _handleErrors(() => inner.runBatched(statements));
}
@override
Future<void> runCustom(String statement, [List<Object?>? args]) {
return _handleErrors(() => inner.runCustom(statement, args));
}
@override
Future<int> runDelete(String statement, List<Object?> args) {
return _handleErrors(() => inner.runDelete(statement, args));
}
@override
Future<int> runInsert(String statement, List<Object?> args) {
return _handleErrors(() => inner.runInsert(statement, args));
}
@override
Future<List<Map<String, Object?>>> runSelect(
String statement, List<Object?> args) {
return _handleErrors(() => inner.runSelect(statement, args));
}
@override
Future<int> runUpdate(String statement, List<Object?> args) {
return _handleErrors(() => inner.runUpdate(statement, args));
}
}
class _ErrorLoggingTransactionExecutor extends ErrorLoggingDatabase
implements TransactionExecutor {
final TransactionExecutor transaction;
_ErrorLoggingTransactionExecutor(
this.transaction, void Function(Object, StackTrace) onError)
: super(transaction, onError);
@override
Future<void> rollback() {
return _handleErrors(transaction.rollback);
}
@override
Future<void> send() {
return _handleErrors(transaction.send);
}
@override
bool get supportsNestedTransactions => transaction.supportsNestedTransactions;
}

View File

@@ -244,7 +244,7 @@ allSubsonicSources WITH SubsonicSettings:
FROM sources FROM sources
JOIN subsonic_sources ON subsonic_sources.source_id = sources.id; JOIN subsonic_sources ON subsonic_sources.source_id = sources.id;
albumIdsWithDownloaded: albumIdsWithDownloadStatus:
SELECT albums.id SELECT albums.id
FROM albums FROM albums
JOIN songs on songs.source_id = albums.source_id AND songs.album_id = albums.id JOIN songs on songs.source_id = albums.source_id AND songs.album_id = albums.id
@@ -253,6 +253,26 @@ albumIdsWithDownloaded:
AND (songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL) AND (songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)
GROUP BY albums.id; GROUP BY albums.id;
artistIdsWithDownloadStatus:
SELECT artists.id
FROM artists
LEFT JOIN albums ON artists.source_id = albums.source_id AND artists.id = albums.artist_id
LEFT JOIN songs ON albums.source_id = songs.source_id AND albums.id = songs.album_id
WHERE
artists.source_id = :source_id
AND (songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)
GROUP BY artists.id;
playlistIdsWithDownloadStatus:
SELECT playlists.id
FROM playlists
LEFT JOIN playlist_songs ON playlist_songs.source_id = playlists.source_id AND playlist_songs.playlist_id = playlists.id
LEFT JOIN songs ON playlist_songs.source_id = songs.source_id AND playlist_songs.song_id = songs.id
WHERE
playlists.source_id = :source_id
AND (songs.download_file_path IS NOT NULL OR songs.download_task_id IS NOT NULL)
GROUP BY playlists.id;
searchArtists: searchArtists:
SELECT rowid SELECT rowid
FROM artists_fts FROM artists_fts

View File

@@ -1,7 +1,8 @@
import 'package:flutter/foundation.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../log.dart';
part 'client.g.dart'; part 'client.g.dart';
const Map<String, String> subtracksHeaders = { const Map<String, String> subtracksHeaders = {
@@ -14,8 +15,14 @@ class SubtracksHttpClient extends BaseClient {
@override @override
Future<StreamedResponse> send(BaseRequest request) { Future<StreamedResponse> send(BaseRequest request) {
request.headers.addAll(subtracksHeaders); request.headers.addAll(subtracksHeaders);
if (kDebugMode) print('${request.method} ${request.url}'); log.info('${request.method} ${request.url}');
return request.send();
try {
return request.send();
} catch (e, st) {
log.severe('HTTP client: ${request.method} ${request.url}', e, st);
rethrow;
}
} }
} }

View File

@@ -1,166 +1,226 @@
{ {
"actionsStar": "Ohodnotit", "actionsStar": "Ohodnotit",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Zrušit hodnocení", "actionsUnstar": "Zrušit hodnocení",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Zde nic není…", "messagesNothingHere": "Zde nic není…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Domů", "navigationTabsHome": "Domů",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Knihovna", "navigationTabsLibrary": "Knihovna",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Hledat", "navigationTabsSearch": "Hledat",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Nastavení", "navigationTabsSettings": "Nastavení",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Přehrát album", "resourcesAlbumActionsPlay": "Přehrát album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Zobrazit album", "resourcesAlbumActionsView": "Zobrazit album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Seřadit alba", "resourcesAlbumListsSort": "Seřadit alba",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} few{Alba} many{Alba} other{Alba}}", "resourcesAlbumName": "{count,plural, =1{Album} few{Alba} many{Alba} other{Alba}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Zobrazit umělce", "resourcesArtistActionsView": "Zobrazit umělce",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Seřadit umělce", "resourcesArtistListsSort": "Seřadit umělce",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Umělec} few{Umělci} many{Umělci} other{Umělci}}", "resourcesArtistName": "{count,plural, =1{Umělec} few{Umělci} many{Umělci} other{Umělci}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Podle žánru", "resourcesFilterGenre": "Podle žánru",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Ohodnocené", "resourcesFilterStarred": "Ohodnocené",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Přehrát seznam skladeb", "resourcesPlaylistActionsPlay": "Přehrát seznam skladeb",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Seznam skladeb} few{Seznamy skladeb} many{Seznamy skladeb} other{Seznamy skladeb}}", "resourcesPlaylistName": "{count,plural, =1{Seznam skladeb} few{Seznamy skladeb} many{Seznamy skladeb} other{Seznamy skladeb}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Fronta} few{Fronty} many{Fronty} other{Fronty}}", "resourcesQueueName": "{count,plural, =1{Fronta} few{Fronty} many{Fronty} other{Fronty}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Top skladby", "resourcesSongListsArtistTopSongs": "Top skladby",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Skladba} few{Skladby} many{Skladby} other{Skladby}}", "resourcesSongName": "{count,plural, =1{Skladba} few{Skladby} many{Skladby} other{Skladby}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Nedávno přidané", "resourcesSortByAdded": "Nedávno přidané",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Podle umělce", "resourcesSortByArtist": "Umělce",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Často přehrávané", "resourcesSortByFrequentlyPlayed": "Často přehrávané",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Podle názvu", "resourcesSortByName": "Názvu",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Náhodně", "resourcesSortByRandom": "Náhodně",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Často přehrávané", "resourcesSortByRecentlyPlayed": "Často přehrávané",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Podle roku", "resourcesSortByYear": "Roku",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Hledat: {query}", "searchHeaderTitle": "Hledat: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Hledat", "searchInputPlaceholder": "Hledat",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Více…", "searchMoreResults": "Více…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Výsledky hledání", "searchNowPlayingContext": "Výsledky hledání",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsNetworkName": "Síť", "settingsNetworkName": "Síť",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maximální datový tok (mobil)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Maximální datový tok (mobil)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maximální datový tok (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Maximální datový tok (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} sekund", "settingsNetworkValuesSeconds": "{value} sekund",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Neomezeno", "settingsNetworkValuesUnlimitedKbps": "Neomezeno",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsServersActionsAdd": "Přidat server", "settingsServersActionsAdd": "Přidat server",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Odstranit", "settingsServersActionsDelete": "Odstranit",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Upravit server", "settingsServersActionsEdit": "Upravit server",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Uložit", "settingsServersActionsSave": "Uložit",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Otestovat spojení", "settingsServersActionsTestConnection": "Otestovat spojení",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adresa", "settingsServersFieldsAddress": "Adresa",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Heslo", "settingsServersFieldsPassword": "Heslo",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Uživ. jméno", "settingsServersFieldsUsername": "Uživ. jméno",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Připojení k {address} selhalo, zkontrolujte nastavení nebo server", "settingsServersMessagesConnectionFailed": "Připojení k {address} selhalo, zkontrolujte nastavení nebo server",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Připojení k {address} je OK!", "settingsServersMessagesConnectionOk": "Připojení k {address} je OK!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Servery", "settingsServersName": "Servery",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Posílat heslo jako token + salt", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Posílat heslo jako token + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Posílat heslo v prostém textu (zastaralé, ujistěte se, že je vaše připojení zabezpečené!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Posílat heslo v prostém textu (zastaralé, ujistěte se, že je vaše připojení zabezpečené!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Vynutit heslo ve formátu prostého textu", "settingsServersOptionsForcePlaintextPasswordTitle": "Vynutit heslo ve formátu prostého textu",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDownloadDelete": "Smazat stažené",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"actionsCancel": "Zrušit",
"@actionsCancel": {},
"actionsDownload": "Stáhnout",
"@actionsDownload": {},
"controlsShuffle": "Náhodně",
"@controlsShuffle": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Umělec",
"@resourcesFilterArtist": {},
"resourcesFilterYear": "Rok",
"@resourcesFilterYear": {},
"resourcesFilterOwner": "Majitele",
"@resourcesFilterOwner": {},
"resourcesSongListDeleteAllTitle": "Smazat stažené?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongListDeleteAllContent": "Toto odstraní všechny stažené soubory s hudbou.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSortByUpdated": "Naposledy upravené",
"@resourcesSortByUpdated": {},
"resourcesSortByAlbum": "Alba",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Počtu alb",
"@resourcesSortByAlbumCount": {},
"resourcesSortByTitle": "Názvu",
"@resourcesSortByTitle": {},
"settingsAboutActionsLicenses": "Licence",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Stránka projektu",
"@settingsAboutActionsProjectHomepage": {},
"settingsAboutActionsSupport": "Podpořit vývojáře 💜",
"@settingsAboutActionsSupport": {},
"settingsAboutVersion": "verze {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsNetworkOptionsStreamFormat": "Preferovaný formát pro streamování",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Použít nastavení serveru",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsResetActionsClearImageCache": "Smazat mezipaměť obrázků",
"@settingsResetActionsClearImageCache": {},
"settingsResetName": "Resetovat",
"@settingsResetName": {},
"settingsServersFieldsName": "Jméno",
"@settingsServersFieldsName": {},
"settingsAboutName": "O aplikaci",
"@settingsAboutName": {},
"actionsDownloadCancel": "Zrušit stahování",
"@actionsDownloadCancel": {},
"actionsDelete": "Smazat",
"@actionsDelete": {}
}

View File

@@ -1,176 +1,186 @@
{ {
"messagesNothingHere": "Intet her…", "messagesNothingHere": "Intet her…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Hjem", "navigationTabsHome": "Hjem",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Bibliotek", "navigationTabsLibrary": "Bibliotek",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Søg", "navigationTabsSearch": "Søg",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Indstillinger", "navigationTabsSettings": "Indstillinger",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Afspil album", "resourcesAlbumActionsPlay": "Afspil album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Se album", "resourcesAlbumActionsView": "Se album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Sortér albums", "resourcesAlbumListsSort": "Sortér albums",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Albums}}", "resourcesAlbumName": "{count,plural, =1{Album} other{Albums}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Se kunstnere", "resourcesArtistActionsView": "Se kunstnere",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Sortér kunstnere", "resourcesArtistListsSort": "Sortér kunstnere",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Kunstner} other{Kunstnere}}", "resourcesArtistName": "{count,plural, =1{Kunstner} other{Kunstnere}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Efter genre", "resourcesFilterGenre": "Efter genre",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesPlaylistActionsPlay": "Afspil spilleliste", "resourcesPlaylistActionsPlay": "Afspil spilleliste",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Spilleliste} other{Spillelister}}", "resourcesPlaylistName": "{count,plural, =1{Spilleliste} other{Spillelister}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Kø} other{Køer}}", "resourcesQueueName": "{count,plural, =1{Kø} other{Køer}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Top sange", "resourcesSongListsArtistTopSongs": "Top sange",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Sang} other{Sange}}", "resourcesSongName": "{count,plural, =1{Sang} other{Sange}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByArtist": "Efter kunstner", "resourcesSortByArtist": "Efter kunstner",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByName": "Efter navn", "resourcesSortByName": "Efter navn",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Tilfældig", "resourcesSortByRandom": "Tilfældig",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByYear": "Efter år", "resourcesSortByYear": "Efter år",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Søg: {query}", "searchHeaderTitle": "Søg: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Søg", "searchInputPlaceholder": "Søg",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Mere…", "searchMoreResults": "Mere…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Søgeresultater", "searchNowPlayingContext": "Søgeresultater",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licenser", "settingsAboutActionsLicenses": "Licenser",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Projekt hjemmeside", "settingsAboutActionsProjectHomepage": "Projekt hjemmeside",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Omkring", "settingsAboutName": "Omkring",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "version {version}", "settingsAboutVersion": "version {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Musik", "settingsMusicName": "Musik",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobble afspilningshistorik", "settingsMusicOptionsScrobbleDescriptionOn": "Scrobble afspilningshistorik",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobble afspilninger", "settingsMusicOptionsScrobbleTitle": "Scrobble afspilninger",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Netværk", "settingsNetworkName": "Netværk",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maksimum bitrate (mobil)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Maksimum bitrate (mobil)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maksimum bitrate (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Maksimum bitrate (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Maksimum buffertid", "settingsNetworkOptionsMaxBufferTitle": "Maksimum buffertid",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Minimum buffertid", "settingsNetworkOptionsMinBufferTitle": "Minimum buffertid",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} sekunder", "settingsNetworkValuesSeconds": "{value} sekunder",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Ubegrænset", "settingsNetworkValuesUnlimitedKbps": "Ubegrænset",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Ryd billede cache", "settingsResetActionsClearImageCache": "Ryd billede cache",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Nulstil", "settingsResetName": "Nulstil",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Tilføj server", "settingsServersActionsAdd": "Tilføj server",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Slet", "settingsServersActionsDelete": "Slet",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Redigér server", "settingsServersActionsEdit": "Redigér server",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Gem", "settingsServersActionsSave": "Gem",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Test forbindelse", "settingsServersActionsTestConnection": "Test forbindelse",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adresse", "settingsServersFieldsAddress": "Adresse",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Adgangskode", "settingsServersFieldsPassword": "Adgangskode",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Brugernavn", "settingsServersFieldsUsername": "Brugernavn",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Forbindelse til {address} mislykkedes, tjek indstillinger eller server", "settingsServersMessagesConnectionFailed": "Forbindelse til {address} mislykkedes, tjek indstillinger eller server",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Forbindelse til {address} OK!", "settingsServersMessagesConnectionOk": "Forbindelse til {address} OK!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Servere", "settingsServersName": "Servere",
"@settingsServersName": {} "@settingsServersName": {},
} "actionsDownload": "Hent",
"@actionsDownload": {},
"actionsOk": "OK",
"@actionsOk": {},
"actionsDelete": "Slet",
"@actionsDelete": {},
"actionsCancel": "Afbryd",
"@actionsCancel": {},
"actionsDownloadCancel": "Afbryd download",
"@actionsDownloadCancel": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Markieren", "actionsStar": "Markieren",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Markierung entfernen", "actionsUnstar": "Markierung entfernen",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Hier ist nichts…", "messagesNothingHere": "Hier ist nichts…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Startseite", "navigationTabsHome": "Startseite",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Bibliothek", "navigationTabsLibrary": "Bibliothek",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Suche", "navigationTabsSearch": "Suche",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Einstellungen", "navigationTabsSettings": "Einstellungen",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Album abspielen", "resourcesAlbumActionsPlay": "Album abspielen",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Album anzeigen", "resourcesAlbumActionsView": "Album anzeigen",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Alben sortieren", "resourcesAlbumListsSort": "Alben sortieren",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Alben}}", "resourcesAlbumName": "{count,plural, =1{Album} other{Alben}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Interpret anzeigen", "resourcesArtistActionsView": "Interpret anzeigen",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Interpreten sortieren", "resourcesArtistListsSort": "Interpreten sortieren",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Interpret} other{Interpreten}}", "resourcesArtistName": "{count,plural, =1{Interpret} other{Interpreten}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Nach Genre", "resourcesFilterGenre": "Nach Genre",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Favoriten", "resourcesFilterStarred": "Favoriten",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Wiedergabeliste abspielen", "resourcesPlaylistActionsPlay": "Wiedergabeliste abspielen",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Wiedergabeliste} other{Wiedergabelisten}}", "resourcesPlaylistName": "{count,plural, =1{Wiedergabeliste} other{Wiedergabelisten}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Warteschlange} other{Warteschlangen}}", "resourcesQueueName": "{count,plural, =1{Warteschlange} other{Warteschlangen}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Top Lieder", "resourcesSongListsArtistTopSongs": "Top Lieder",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Lied} other{Lieder}}", "resourcesSongName": "{count,plural, =1{Lied} other{Lieder}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Kürzlich hinzugefügt", "resourcesSortByAdded": "Kürzlich hinzugefügt",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Nach Interpreten", "resourcesSortByArtist": "Nach Interpreten",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Häufig abgespielt", "resourcesSortByFrequentlyPlayed": "Häufig abgespielt",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Nach Name", "resourcesSortByName": "Nach Name",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Zufällig", "resourcesSortByRandom": "Zufällig",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Kürzlich abgespielt", "resourcesSortByRecentlyPlayed": "Kürzlich abgespielt",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Nach Jahr", "resourcesSortByYear": "Nach Jahr",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Suche: {query}", "searchHeaderTitle": "Suche: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Suche", "searchInputPlaceholder": "Suche",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Mehr…", "searchMoreResults": "Mehr…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Suchergebnis", "searchNowPlayingContext": "Suchergebnis",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Lizenzen", "settingsAboutActionsLicenses": "Lizenzen",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Projektseite", "settingsAboutActionsProjectHomepage": "Projektseite",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Über", "settingsAboutName": "Über",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "Version {version}", "settingsAboutVersion": "Version {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Musik", "settingsMusicName": "Musik",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Kein Scrobble für Wiedergabeverlauf", "settingsMusicOptionsScrobbleDescriptionOff": "Kein Scrobble für Wiedergabeverlauf",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobble Wiedergabeverlauf", "settingsMusicOptionsScrobbleDescriptionOn": "Scrobble Wiedergabeverlauf",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobble Wiedergabe", "settingsMusicOptionsScrobbleTitle": "Scrobble Wiedergabe",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Netzwerk", "settingsNetworkName": "Netzwerk",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maximale Bitrate (Mobil)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Maximale Bitrate (Mobil)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maximale Bitrate (WLAN)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Maximale Bitrate (WLAN)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Maximale Pufferzeit", "settingsNetworkOptionsMaxBufferTitle": "Maximale Pufferzeit",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Minimale Pufferzeit", "settingsNetworkOptionsMinBufferTitle": "Minimale Pufferzeit",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} Sekunden", "settingsNetworkValuesSeconds": "{value} Sekunden",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Unbegrenzt", "settingsNetworkValuesUnlimitedKbps": "Unbegrenzt",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Bildzwischenspeicher löschen", "settingsResetActionsClearImageCache": "Bildzwischenspeicher löschen",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Zurücksetzen", "settingsResetName": "Zurücksetzen",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Server hinzufügen", "settingsServersActionsAdd": "Server hinzufügen",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Löschen", "settingsServersActionsDelete": "Löschen",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Server bearbeiten", "settingsServersActionsEdit": "Server bearbeiten",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Speichern", "settingsServersActionsSave": "Speichern",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Verbindung testen", "settingsServersActionsTestConnection": "Verbindung testen",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adresse", "settingsServersFieldsAddress": "Adresse",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Passwort", "settingsServersFieldsPassword": "Passwort",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nutzername", "settingsServersFieldsUsername": "Nutzername",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Verbindung zu {address} fehlgeschlagen, überprüfe Einstellungen oder Server", "settingsServersMessagesConnectionFailed": "Verbindung zu {address} fehlgeschlagen, überprüfe Einstellungen oder Server",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Verbindung zu {address} ist OK!", "settingsServersMessagesConnectionOk": "Verbindung zu {address} ist OK!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Server", "settingsServersName": "Server",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Sende Passwort als Token + Salt", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Sende Passwort als Token + Salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Passwort als Klartext senden (Veraltet, stellen Sie sicher, dass Ihre Verbindung sicher ist!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Passwort als Klartext senden (Veraltet, stellen Sie sicher, dass Ihre Verbindung sicher ist!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Erzwinge Klartextpasswort", "settingsServersOptionsForcePlaintextPasswordTitle": "Erzwinge Klartextpasswort",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDelete": "Löschen",
"@actionsDelete": {},
"actionsDownload": "Herunterladen",
"@actionsDownload": {},
"actionsDownloadCancel": "Download abbrechen",
"@actionsDownloadCancel": {},
"controlsShuffle": "Zufall",
"@controlsShuffle": {},
"actionsCancel": "Abbrechen",
"@actionsCancel": {},
"actionsDownloadDelete": "Heruntergeladene Inhalte löschen",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"resourcesAlbumCount": "{count,plural, =1{{count} Album} other{{count} Alben}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesArtistCount": "{count,plural, =1{{count} Künstler} other{{count} Künstler}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterArtist": "Künstler",
"@resourcesFilterArtist": {},
"resourcesFilterOwner": "Besitzer",
"@resourcesFilterOwner": {},
"resourcesFilterYear": "Jahr",
"@resourcesFilterYear": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} Playlist} other{{count} Playlists}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} Song} other{{count} Songs}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Hierdurch werden alle heruntergeladenen Inhalte entfernt.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Albenanzahl",
"@resourcesSortByAlbumCount": {},
"resourcesSortByTitle": "Titel",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "Kürzlich aktualisiert",
"@resourcesSortByUpdated": {},
"settingsAboutActionsSupport": "Den Entwickler unterstützen",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Offline Modus",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Nutze das Internet um Musik zu synchronisieren.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "Nutze nicht das Internet um Musik zu synchronisieren.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormat": "Bevorzugtes Streaming-Format",
"@settingsNetworkOptionsStreamFormat": {},
"settingsServersFieldsName": "Name",
"@settingsServersFieldsName": {},
"resourcesSongListDeleteAllTitle": "Downloads löschen?",
"@resourcesSongListDeleteAllTitle": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Standardserver verwenden",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsAboutShareLogs": "Protokolle teilen",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Wählen Sie eine Protokolldatei",
"@settingsAboutChooseLog": {}
}

View File

@@ -173,6 +173,10 @@
"@settingsAboutActionsSupport": {}, "@settingsAboutActionsSupport": {},
"settingsAboutName": "About", "settingsAboutName": "About",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutShareLogs": "Share logs",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Choose a log file",
"@settingsAboutChooseLog": {},
"settingsAboutVersion": "version {version}", "settingsAboutVersion": "version {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Estrella", "actionsStar": "Favorito",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Retirar estrella", "actionsUnstar": "Retirar favorito",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Nada aquí…", "messagesNothingHere": "Nada aquí…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Casa", "navigationTabsHome": "Inicio",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Biblioteca", "navigationTabsLibrary": "Biblioteca",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Buscar", "navigationTabsSearch": "Buscar",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Entorno", "navigationTabsSettings": "Configuración",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Reproducir Álbum", "resourcesAlbumActionsPlay": "Reproducir Álbum",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Ver Álbum", "resourcesAlbumActionsView": "Ver Álbum",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Ordenar Álbumes", "resourcesAlbumListsSort": "Ordenar Álbumes",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbumes}}", "resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbumes}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Ver Artista", "resourcesArtistActionsView": "Ver Artista",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Oredenar Artistas", "resourcesArtistListsSort": "Oredenar Artistas",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}", "resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Por Género", "resourcesFilterGenre": "Género",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Estrellas", "resourcesFilterStarred": "Estrellas",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Reproducir Lista de reproducción", "resourcesPlaylistActionsPlay": "Reproducir lista de reproducción",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Lista de reproducción} other{Listas de reproducción}}", "resourcesPlaylistName": "{count,plural, =1{Lista de reproducción} other{Listas de reproducción}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Cola} other{Colas}}", "resourcesQueueName": "{count,plural, =1{Cola} other{Colas}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Mejores Canciones", "resourcesSongListsArtistTopSongs": "Mejores Canciones",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Cancion} other{Canciones}}", "resourcesSongName": "{count,plural, =1{Cancion} other{Canciones}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Recientemente Añadido", "resourcesSortByAdded": "Recientemente Añadido",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Por Artista", "resourcesSortByArtist": "Por Artista",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Jugado Frecuentemente", "resourcesSortByFrequentlyPlayed": "Escuchado frecuentemente",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Por Nombre", "resourcesSortByName": "Por Nombre",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Aleatorio", "resourcesSortByRandom": "Aleatorio",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Recientemente Jugado", "resourcesSortByRecentlyPlayed": "Escuchado recientemente",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Por Año", "resourcesSortByYear": "Por Año",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Buscar: {query}", "searchHeaderTitle": "Buscar: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Buscar", "searchInputPlaceholder": "Buscar",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Más…", "searchMoreResults": "Más…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Resultados de la búsqueda", "searchNowPlayingContext": "Resultados de la búsqueda",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licencias", "settingsAboutActionsLicenses": "Licencias",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Página de inicio del proyecto", "settingsAboutActionsProjectHomepage": "Página de inicio del proyecto",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Información", "settingsAboutName": "Información",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "versión {version}", "settingsAboutVersion": "versión {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Música", "settingsMusicName": "Música",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "No hagas historial de reproducción de scrobble", "settingsMusicOptionsScrobbleDescriptionOff": "No hacer historial de reproducción de scrobble",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Historial de reproducción de scrobble", "settingsMusicOptionsScrobbleDescriptionOn": "Historial de reproducción de scrobble",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Obras de teatro de Scrobble", "settingsMusicOptionsScrobbleTitle": "Obras de teatro de Scrobble",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Sitio", "settingsNetworkName": "Sitio",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Tasa de bits máxima (mobile)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Tasa de bits máxima (mobile)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Tasa de bits máxima (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Tasa de bits máxima (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Máxima de buffer tiempo", "settingsNetworkOptionsMaxBufferTitle": "Máxima de buffer tiempo",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Mínimo de buffer tiempo", "settingsNetworkOptionsMinBufferTitle": "Mínimo de buffer tiempo",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value} kilobytes por segundo", "settingsNetworkValuesKbps": "{value} kilobytes por segundo",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} segundos", "settingsNetworkValuesSeconds": "{value} segundos",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Ilimitados", "settingsNetworkValuesUnlimitedKbps": "Ilimitados",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Caché de imágenes claras", "settingsResetActionsClearImageCache": "Caché de imágenes claras",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Reinicializar", "settingsResetName": "Reinicializar",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Agregar Servidor", "settingsServersActionsAdd": "Agregar Servidor",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Supr", "settingsServersActionsDelete": "Eliminar",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Editar Servidor", "settingsServersActionsEdit": "Editar Servidor",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Enviar", "settingsServersActionsSave": "Guardar",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Conexión de prueba", "settingsServersActionsTestConnection": "Probar conexión",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Alocución", "settingsServersFieldsAddress": "Dirección",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "La contraseña", "settingsServersFieldsPassword": "Contraseña",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nombre de usuario", "settingsServersFieldsUsername": "Nombre de usuario",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "La conexión a {address} falló, verifique la configuracón o el servidor", "settingsServersMessagesConnectionFailed": "La conexión a {address} falló, verifique la configuracón o el servidor",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "¡Conexión con {address} Ok!", "settingsServersMessagesConnectionOk": "¡Conexión con {address} Ok!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Servidores", "settingsServersName": "Servidores",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar contraseña como token + sal", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar contraseña como token + sal",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar contraseña en texto plano (¡legado, asegúrese de que su conexión sea segura!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar contraseña en texto plano (¡legado, asegúrese de que su conexión sea segura!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forzar contraseña de texto sin formato", "settingsServersOptionsForcePlaintextPasswordTitle": "Forzar contraseña como texto sin formato",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDelete": "Borrar",
"@actionsDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"actionsDownload": "Descargar",
"@actionsDownload": {},
"actionsDownloadCancel": "Anular descarga",
"@actionsDownloadCancel": {},
"controlsShuffle": "Reproducir aleatoriamente",
"@controlsShuffle": {},
"actionsCancel": "Cancelar",
"@actionsCancel": {},
"actionsDownloadDelete": "Eliminar descargado",
"@actionsDownloadDelete": {},
"settingsNetworkOptionsOfflineModeOn": "No se usa internet para sincronizar o reproducir música.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Utilizar predeterminado del servidor",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsAboutShareLogs": "Compartir registros",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Escoger un archivo de registro",
"@settingsAboutChooseLog": {},
"resourcesAlbumCount": "{count,plural, =1{{count} Álbum} other{{count} Álbumes}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "Álbum",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Artista",
"@resourcesFilterArtist": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} Lista de reproducción} other{{count} Listas de reproducción}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} Canción} other{{count} Canciones}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Esto eliminará todos los archivos de las canciones descargadas.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "¿Eliminar descargas?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSortByAlbum": "Álbum",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Número de álbumes",
"@resourcesSortByAlbumCount": {},
"resourcesSortByTitle": "Título",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "Actualizado recientemente",
"@resourcesSortByUpdated": {},
"settingsAboutActionsSupport": "Apoya al desarrollador 💜",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Modo sin conexión",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Se usa internet para sincronizar música.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsStreamFormat": "Formato de reproducción favorito",
"@settingsNetworkOptionsStreamFormat": {},
"settingsServersFieldsName": "Nombre",
"@settingsServersFieldsName": {},
"resourcesFilterOwner": "Dueño",
"@resourcesFilterOwner": {},
"resourcesFilterYear": "Año",
"@resourcesFilterYear": {},
"resourcesArtistCount": "{count,plural, =1{{count} artista} other{{count} artistas}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

200
lib/l10n/app_eu.arb Normal file
View File

@@ -0,0 +1,200 @@
{
"actionsCancel": "Utzi",
"@actionsCancel": {},
"actionsDelete": "Ezabatu",
"@actionsDelete": {},
"actionsDownload": "Deskargatu",
"@actionsDownload": {},
"actionsDownloadCancel": "Utzi deskargatzeari",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Ezabatu deskargak",
"@actionsDownloadDelete": {},
"actionsOk": "Ados",
"@actionsOk": {},
"actionsStar": "Gogokoetan sartu",
"@actionsStar": {},
"actionsUnstar": "Gogokoetatik kendu",
"@actionsUnstar": {},
"controlsShuffle": "Nahastu",
"@controlsShuffle": {},
"messagesNothingHere": "Kilkerrak besterik ez hemen…",
"@messagesNothingHere": {},
"navigationTabsHome": "Hasiera",
"@navigationTabsHome": {},
"navigationTabsLibrary": "Liburutegia",
"@navigationTabsLibrary": {},
"navigationTabsSearch": "Bilatu",
"@navigationTabsSearch": {},
"resourcesAlbumActionsPlay": "Jarri albuma",
"@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Ikusi albuma",
"@resourcesAlbumActionsView": {},
"resourcesAlbumCount": "{count,plural, =1{Album bat} other{{count} album}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumName": "{count,plural, =1{Albuma} other{Albumak}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistListsSort": "Ordenatu musikariak",
"@resourcesArtistListsSort": {},
"resourcesAlbumListsSort": "Ordenatu albumak",
"@resourcesAlbumListsSort": {},
"resourcesArtistName": "{count,plural, =1{Musikaria} other{Musikariak}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "Albuma",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Musikaria",
"@resourcesFilterArtist": {},
"resourcesFilterGenre": "Generoa",
"@resourcesFilterGenre": {},
"resourcesFilterOwner": "Jabea",
"@resourcesFilterOwner": {},
"resourcesFilterStarred": "Gogokoak",
"@resourcesFilterStarred": {},
"resourcesFilterYear": "Urtea",
"@resourcesFilterYear": {},
"resourcesPlaylistActionsPlay": "Jarri zerrenda",
"@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistCount": "{count,plural, =1{Zerrenda bat} other{{count} zerrenda}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{count,plural, =1{Zerrenda} other{Zerrendak}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesQueueName": "{count,plural, =1{Ilara} other{Ilarak}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{Kanta bat} other{{count} kanta}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Deskargatutako musika-fitxategi guztiak ezabatuko dira.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "Deskargak ezabatu nahi?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongListsArtistTopSongs": "Kanta onenak",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Kanta} other{Kantak}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAdded": "Berriki gehituak",
"@resourcesSortByAdded": {},
"resourcesSortByAlbum": "Albuma",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Album kopurua",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "Musikaria",
"@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Askotan jarritakoak",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByRandom": "Ausaz",
"@resourcesSortByRandom": {},
"resourcesSortByName": "Alfabetikoki",
"@resourcesSortByName": {},
"resourcesSortByRecentlyPlayed": "Duela gutxi jarritakoak",
"@resourcesSortByRecentlyPlayed": {},
"searchHeaderTitle": "Bilatu... {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchInputPlaceholder": "Bilatu",
"@searchInputPlaceholder": {},
"searchMoreResults": "Gehiago ikusi",
"@searchMoreResults": {},
"searchNowPlayingContext": "Bilaketaren emaitzak",
"@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Lizentziak",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Proiektuaren webgunea",
"@settingsAboutActionsProjectHomepage": {},
"settingsAboutActionsSupport": "Lagundu garatzaileari 💜",
"@settingsAboutActionsSupport": {},
"settingsAboutShareLogs": "Partekatu erregistroak",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Aukeratu erregistro-fitxategi bat",
"@settingsAboutChooseLog": {},
"settingsMusicName": "Musika",
"@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Ez igo internetera erreprodukzio-erregistroa",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Igo internetera erreprodukzio-erregistroa",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Igo internetera erreprodukzio-erregistroa",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Sarea",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Gehienezko bitrate-a (wifiz)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Gehienezko bitrate-a (datu mugikorretan)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"navigationTabsSettings": "Ezarpenak",
"@navigationTabsSettings": {},
"resourcesArtistActionsView": "Ikusi musikaria",
"@resourcesArtistActionsView": {},
"resourcesArtistCount": "{count,plural, =1{Musikari bat} other{{count} musikari}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByUpdated": "Duela gutxi gehituak",
"@resourcesSortByUpdated": {},
"resourcesSortByYear": "Urtearen arabera",
"@resourcesSortByYear": {},
"settingsAboutName": "Honi buruz",
"@settingsAboutName": {},
"settingsAboutVersion": "{version} bertsioa",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Mettre en favoris", "actionsStar": "Ajouter aux favoris",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Enlever des favoris", "actionsUnstar": "Enlever des favoris",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Rien ici…", "messagesNothingHere": "Rien ici…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Accueil", "navigationTabsHome": "Accueil",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Bibliothèque", "navigationTabsLibrary": "Bibliothèque",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Recherche", "navigationTabsSearch": "Recherche",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Paramètres", "navigationTabsSettings": "Paramètres",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Jouer l'album", "resourcesAlbumActionsPlay": "Jouer l'album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Voir l'album", "resourcesAlbumActionsView": "Voir l'album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Trier les albums", "resourcesAlbumListsSort": "Trier les albums",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Albums}}", "resourcesAlbumName": "{count,plural, =1{Album} other{Albums}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Voir l'artiste", "resourcesArtistActionsView": "Voir l'artiste",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Trier les artistes", "resourcesArtistListsSort": "Trier les artistes",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artiste} other{Artistes}}", "resourcesArtistName": "{count,plural, =1{Artiste} other{Artistes}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Par Genre", "resourcesFilterGenre": "Par Genre",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Favoris", "resourcesFilterStarred": "Favoris",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Lire la playlist", "resourcesPlaylistActionsPlay": "Lire la playlist",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Playlist} other{Playlists}}", "resourcesPlaylistName": "{count,plural, =1{Playlist} other{Playlists}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{File d'attente} other{Files d'attente}}", "resourcesQueueName": "{count,plural, =1{File d'attente} other{Files d'attente}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Meilleures Chansons", "resourcesSongListsArtistTopSongs": "Meilleures Chansons",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Chanson} other{Chansons}}", "resourcesSongName": "{count,plural, =1{Chanson} other{Chansons}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Récemment Ajouté", "resourcesSortByAdded": "Récemment Ajouté",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Par Artiste", "resourcesSortByArtist": "Artiste",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Fréquemment Joué", "resourcesSortByFrequentlyPlayed": "Fréquemment Joué",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Par Nom", "resourcesSortByName": "Nom",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Aléatoire", "resourcesSortByRandom": "Aléatoire",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Récemment Joué", "resourcesSortByRecentlyPlayed": "Récemment Joué",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Par Année", "resourcesSortByYear": "Année",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Recherche : {query}", "searchHeaderTitle": "Recherche : {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Recherche", "searchInputPlaceholder": "Recherche",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Plus…", "searchMoreResults": "Plus…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Résultats de recherche", "searchNowPlayingContext": "Résultats de recherche",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licences", "settingsAboutActionsLicenses": "Licences",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Page d'accueil du projet", "settingsAboutActionsProjectHomepage": "Page d'accueil du projet",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "À propos", "settingsAboutName": "À propos",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "version {version}", "settingsAboutVersion": "version {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Musique", "settingsMusicName": "Musique",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Ne pas scrobbler l'historique de lecture", "settingsMusicOptionsScrobbleDescriptionOff": "Ne pas scrobbler l'historique de lecture",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobbler l'historique de lecture", "settingsMusicOptionsScrobbleDescriptionOn": "Scrobbler l'historique de lecture",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobbler la lecture", "settingsMusicOptionsScrobbleTitle": "Scrobbler la lecture",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Réseau", "settingsNetworkName": "Réseau",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Débit binaire maximum (mobile)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Débit binaire maximum (mobile)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Débit binaire maximum (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Débit binaire maximum (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Temps maximum en mémoire tampon", "settingsNetworkOptionsMaxBufferTitle": "Temps maximum en mémoire tampon",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Temps minimum en mémoire tampon", "settingsNetworkOptionsMinBufferTitle": "Temps minimum en mémoire tampon",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbit/s", "settingsNetworkValuesKbps": "{value}kbit/s",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} secondes", "settingsNetworkValuesSeconds": "{value} secondes",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Illimité", "settingsNetworkValuesUnlimitedKbps": "Illimité",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Vider le cache d'images", "settingsResetActionsClearImageCache": "Vider le cache d'images",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Réinitialiser", "settingsResetName": "Réinitialiser",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Ajouter un serveur", "settingsServersActionsAdd": "Ajouter un serveur",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Supprimer", "settingsServersActionsDelete": "Supprimer",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Modifier le serveur", "settingsServersActionsEdit": "Modifier le serveur",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Sauvegarder", "settingsServersActionsSave": "Sauvegarder",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Tester la connexion", "settingsServersActionsTestConnection": "Tester la connexion",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adresse", "settingsServersFieldsAddress": "Adresse",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Mot de passe", "settingsServersFieldsPassword": "Mot de passe",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nom d'utilisateur", "settingsServersFieldsUsername": "Nom d'utilisateur",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Échec de la connexion à {address}, vérifiez les paramètres ou le serveur", "settingsServersMessagesConnectionFailed": "Échec de la connexion à {address}, vérifiez les paramètres ou le serveur",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Connexion à {address} OK !", "settingsServersMessagesConnectionOk": "Connexion à {address} OK !",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Serveurs", "settingsServersName": "Serveurs",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Envoyer le mot de passe sous forme de jeton + salage", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Envoyer le mot de passe sous forme de jeton + salage",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Envoyer le mot de passe en test clair (héritage, assurez-vous que la connexion est sécurisée !)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Envoyer le mot de passe en test clair (héritage, assurez-vous que la connexion est sécurisée !)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forcer le mot de passe en texte clair", "settingsServersOptionsForcePlaintextPasswordTitle": "Forcer le mot de passe en texte clair",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "settingsAboutShareLogs": "Partager les logs",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Choisir un fichier de logs",
"@settingsAboutChooseLog": {},
"actionsCancel": "Annuler",
"@actionsCancel": {},
"actionsDownloadCancel": "Annuler le téléchargement",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Supprimer le(s) téléchargement(s)",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Artiste",
"@resourcesFilterArtist": {},
"resourcesFilterYear": "Année",
"@resourcesFilterYear": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"resourcesSortByTitle": "Titre",
"@resourcesSortByTitle": {},
"settingsAboutActionsSupport": "Soutenir le développeur 💜",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Mode hors-ligne",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Se connecter à internet pour synchroniser la musique.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsStreamFormat": "Format de stream préféré",
"@settingsNetworkOptionsStreamFormat": {},
"settingsServersFieldsName": "Nom",
"@settingsServersFieldsName": {},
"actionsDelete": "Supprimer",
"@actionsDelete": {},
"actionsDownload": "Télécharger",
"@actionsDownload": {},
"resourcesSongListDeleteAllContent": "Tous les fichiers de musique téléchargés vont être supprimés.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "Supprimer les téléchargements?",
"@resourcesSongListDeleteAllTitle": {},
"controlsShuffle": "Aléatoire",
"@controlsShuffle": {},
"resourcesSortByUpdated": "Récemment mis à jour",
"@resourcesSortByUpdated": {},
"settingsNetworkOptionsOfflineModeOn": "Ne pas se connecter à internet pour synchroniser ou jouer de la musique.",
"@settingsNetworkOptionsOfflineModeOn": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} albums}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, =1{{count} artiste} other{{count} artistes}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterOwner": "Propriétaire",
"@resourcesFilterOwner": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} playlist} other{{count} playlists}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} chanson} other{{count} chansons}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsNetworkOptionsStreamFormatServerDefault": "Utiliser les paramètres par défaut du serveur",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"resourcesSortByAlbumCount": "Nombre d'albums",
"@resourcesSortByAlbumCount": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Estrela", "actionsStar": "Estrela",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Retirar", "actionsUnstar": "Retirar",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Nada por aquí…", "messagesNothingHere": "Nada por aquí…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Inicio", "navigationTabsHome": "Inicio",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Biblioteca", "navigationTabsLibrary": "Biblioteca",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Buscar", "navigationTabsSearch": "Buscar",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Axustes", "navigationTabsSettings": "Axustes",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Reproducir", "resourcesAlbumActionsPlay": "Reproducir",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Ver Álbum", "resourcesAlbumActionsView": "Ver Álbum",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Ordenar Álbums", "resourcesAlbumListsSort": "Ordenar Álbums",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbums}}", "resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbums}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Ver Artista", "resourcesArtistActionsView": "Ver Artista",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Ordenar Artistas", "resourcesArtistListsSort": "Ordenar Artistas",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}", "resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Por xénero", "resourcesFilterGenre": "Por xénero",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Favoritas", "resourcesFilterStarred": "Favoritas",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Reproducir lista", "resourcesPlaylistActionsPlay": "Reproducir lista",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Listaxe} other{Listaxes}}", "resourcesPlaylistName": "{count,plural, =1{Listaxe} other{Listaxes}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Fila} other{Filas}}", "resourcesQueueName": "{count,plural, =1{Fila} other{Filas}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Máis reproducidas", "resourcesSongListsArtistTopSongs": "Máis reproducidas",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Canción} other{Cancións}}", "resourcesSongName": "{count,plural, =1{Canción} other{Cancións}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Últimas engadidas", "resourcesSortByAdded": "Últimas engadidas",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Por artista", "resourcesSortByArtist": "Por artista",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Reproducidas a miúdo", "resourcesSortByFrequentlyPlayed": "Reproducidas a miúdo",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Por nome", "resourcesSortByName": "Por nome",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Ao chou", "resourcesSortByRandom": "Ao chou",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Reproducidas a miúdo", "resourcesSortByRecentlyPlayed": "Reproducidas recente",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Por ano", "resourcesSortByYear": "Por ano",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Buscar: {query}", "searchHeaderTitle": "Buscar: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Buscar", "searchInputPlaceholder": "Buscar",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Máis…", "searchMoreResults": "Máis…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Resultados", "searchNowPlayingContext": "Resultados",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licenzas", "settingsAboutActionsLicenses": "Licenzas",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Web do Proxecto", "settingsAboutActionsProjectHomepage": "Web do Proxecto",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Acerca de", "settingsAboutName": "Acerca de",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "versión {version}", "settingsAboutVersion": "versión {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Música", "settingsMusicName": "Música",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Non rexistrar o historial de reprodución", "settingsMusicOptionsScrobbleDescriptionOff": "Non rexistrar o historial de reprodución",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Rexistrar o historial de reprodución", "settingsMusicOptionsScrobbleDescriptionOn": "Rexistrar o historial de reprodución",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Rexistrar reprodución", "settingsMusicOptionsScrobbleTitle": "Rexistrar reprodución",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Rede", "settingsNetworkName": "Rede",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate máx. (móbil)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate máx. (móbil)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate máx. (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate máx. (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Tempo máximo na memoria", "settingsNetworkOptionsMaxBufferTitle": "Tempo máximo na memoria",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Tempo mínimo na memoria", "settingsNetworkOptionsMinBufferTitle": "Tempo mínimo na memoria",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} segundos", "settingsNetworkValuesSeconds": "{value} segundos",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Sen límite", "settingsNetworkValuesUnlimitedKbps": "Sen límite",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Limpar a caché de imaxes", "settingsResetActionsClearImageCache": "Limpar a caché de imaxes",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Restablecer", "settingsResetName": "Restablecer",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Engadir Servidor", "settingsServersActionsAdd": "Engadir Servidor",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Eliminar", "settingsServersActionsDelete": "Eliminar",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Editar Servidor", "settingsServersActionsEdit": "Editar Servidor",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Gardar", "settingsServersActionsSave": "Gardar",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Comprobar Conexión", "settingsServersActionsTestConnection": "Comprobar Conexión",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Enderezo", "settingsServersFieldsAddress": "Enderezo",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Contrasinal", "settingsServersFieldsPassword": "Contrasinal",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Identificador", "settingsServersFieldsUsername": "Identificador",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Fallou a conexión a {address}, comproba os axustes", "settingsServersMessagesConnectionFailed": "Fallou a conexión a {address}, comproba os axustes",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Conexión con {address} OK!", "settingsServersMessagesConnectionOk": "Conexión con {address} OK!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Servidores", "settingsServersName": "Servidores",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar contrasinal como token + salt", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar contrasinal como token + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar contrasinal en texto plano (herdado, pon coidado en que a conexión sexa segura!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar contrasinal en texto plano (herdado, pon coidado en que a conexión sexa segura!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forzar contrasinal en texto plano", "settingsServersOptionsForcePlaintextPasswordTitle": "Forzar contrasinal en texto plano",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsCancel": "Cancelar",
"@actionsCancel": {},
"actionsDelete": "Eliminar",
"@actionsDelete": {},
"actionsDownload": "Descargar",
"@actionsDownload": {},
"actionsDownloadCancel": "Cancelar a descarga",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Eliminar o descargado",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"controlsShuffle": "Barallar",
"@controlsShuffle": {},
"resourcesAlbumCount": "{count,plural, =1{{count} álbum} other{{count} álbums}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, =1{{count} artista} other{{count} artistas}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "Álbum",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Artista",
"@resourcesFilterArtist": {},
"resourcesFilterOwner": "Dono",
"@resourcesFilterOwner": {},
"resourcesFilterYear": "Ano",
"@resourcesFilterYear": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} lista} other{{count} listas}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} canción} other{{count} cancións}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Vas eliminar todas as cancións descargadas.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "Eliminar descargas?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSortByAlbum": "Álbum",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Número de álbums",
"@resourcesSortByAlbumCount": {},
"settingsAboutActionsSupport": "Axuda ao desenvolvemento 💜",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Modo sen conexión",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Usa internet para sincr. música.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "Non usar internet para sincr. ou reproducir música.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormat": "Modo de reprodución preferido",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Usar por defecto do servidor",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsServersFieldsName": "Nome",
"@settingsServersFieldsName": {},
"resourcesSortByTitle": "Título",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "Actualizado recentemente",
"@resourcesSortByUpdated": {},
"settingsAboutShareLogs": "Compartir rexistros",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Escolle un ficheiro de rexistro",
"@settingsAboutChooseLog": {}
}

224
lib/l10n/app_hu.arb Normal file
View File

@@ -0,0 +1,224 @@
{
"settingsServersActionsEdit": "Forrás szerkesztése",
"@settingsServersActionsEdit": {},
"actionsCancel": "Mégsem",
"@actionsCancel": {},
"actionsDelete": "Törlés",
"@actionsDelete": {},
"actionsDownload": "Letöltés",
"@actionsDownload": {},
"actionsDownloadCancel": "Letöltés visszavonása",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Letöltések törlése",
"@actionsDownloadDelete": {},
"actionsOk": "Rendben",
"@actionsOk": {},
"actionsStar": "Kedvencekhez adás",
"@actionsStar": {},
"resourcesAlbumActionsView": "Album megtekintése",
"@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Albumok rendezése",
"@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Album}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"actionsUnstar": "Kedvencekből törlés",
"@actionsUnstar": {},
"navigationTabsHome": "Kezdőoldal",
"@navigationTabsHome": {},
"messagesNothingHere": "Nincs itt semmi…",
"@messagesNothingHere": {},
"controlsShuffle": "Véletlen sorrend",
"@controlsShuffle": {},
"resourcesArtistActionsView": "Előadó megtekintése",
"@resourcesArtistActionsView": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Előadó",
"@resourcesFilterArtist": {},
"resourcesArtistName": "{count,plural, =1{Előadó} other{Előadó}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, =1{{count} előadó} other{{count} előadó}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterYear": "Év",
"@resourcesFilterYear": {},
"resourcesFilterStarred": "Kedvencek között",
"@resourcesFilterStarred": {},
"resourcesSongListDeleteAllContent": "Ezzel törlöd az összes letöltött zenefájlt.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSortByAdded": "Legutóbb hozzáadva",
"@resourcesSortByAdded": {},
"resourcesSortByArtist": "Előadó",
"@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Gyakran játszott",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByRandom": "Véletlenszerű",
"@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Legutóbb játszott",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByUpdated": "Legutóbb frissült",
"@resourcesSortByUpdated": {},
"searchNowPlayingContext": "Keresés eredménye",
"@searchNowPlayingContext": {},
"searchMoreResults": "Tovább…",
"@searchMoreResults": {},
"settingsAboutActionsLicenses": "Licenszek",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsSupport": "Támogasd a fejlesztőt 💜",
"@settingsAboutActionsSupport": {},
"settingsAboutVersion": "{version} verzió",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsAboutName": "Az alkalmazásról",
"@settingsAboutName": {},
"settingsAboutShareLogs": "Logfájlok megosztása",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Logfájl kiválasztása",
"@settingsAboutChooseLog": {},
"settingsMusicName": "Zene",
"@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Ne scrobble-ozza a lejátszási előzményeket",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsNetworkOptionsOfflineMode": "Offline mód",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maximum bitráta (mobil adattal)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maximum bitráta (Wi-Fi-n)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Minimum bufferelési idő",
"@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Maximum bufferelési idő",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Szerver alapértelmezés használata",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Lejátszási előzmények scrobble-ozása",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobble lejátszások",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Hálózat",
"@settingsNetworkName": {},
"settingsServersActionsSave": "Mentés",
"@settingsServersActionsSave": {},
"settingsNetworkValuesSeconds": "{value} másodperc",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesUnlimitedKbps": "Korlátlan",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Kép Gyorsítótár Ürítése",
"@settingsResetActionsClearImageCache": {},
"settingsResetName": "Alaphelyzet",
"@settingsResetName": {},
"settingsServersFieldsAddress": "Cím",
"@settingsServersFieldsAddress": {},
"settingsServersMessagesConnectionOk": "Csatlakozás a {address} címhez rendben!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersName": "Források",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Jelszó küldése egyszerű szövegként (elavult, győződj meg róla hogy a kapcsolat biztonságos!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Egyszerű szöveges jelszó kényszerítése",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"resourcesFilterGenre": "Stílus",
"@resourcesFilterGenre": {},
"navigationTabsSearch": "Keresés",
"@navigationTabsSearch": {},
"navigationTabsSettings": "Beállítások",
"@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Album lejátszása",
"@resourcesAlbumActionsPlay": {},
"resourcesSortByName": "Név",
"@resourcesSortByName": {},
"resourcesSortByTitle": "Cím",
"@resourcesSortByTitle": {},
"resourcesSortByYear": "Év",
"@resourcesSortByYear": {},
"settingsAboutActionsProjectHomepage": "Projekt weboldal",
"@settingsAboutActionsProjectHomepage": {},
"searchHeaderTitle": "Keresés erre: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchInputPlaceholder": "Keresés",
"@searchInputPlaceholder": {},
"settingsServersActionsDelete": "Törlés",
"@settingsServersActionsDelete": {},
"settingsServersActionsTestConnection": "Kapcsolat tesztelése",
"@settingsServersActionsTestConnection": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Albumok száma",
"@resourcesSortByAlbumCount": {},
"settingsServersActionsAdd": "Forrás hozzáadása",
"@settingsServersActionsAdd": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} album}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsServersFieldsName": "Név",
"@settingsServersFieldsName": {},
"settingsServersFieldsPassword": "Jelszó",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Felhasználónév",
"@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Csatlakozás a {address} címhez sikertelen, ellenőrizd a beállításokat vagy a szervert",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"resourcesArtistListsSort": "Előadók rendezése",
"@resourcesArtistListsSort": {},
"resourcesSongListDeleteAllTitle": "Törlöd a letöltéseket?",
"@resourcesSongListDeleteAllTitle": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Aggiungi ai preferiti", "actionsStar": "Aggiungi ai preferiti",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Rimuovi dai preferiti", "actionsUnstar": "Rimuovi dai preferiti",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Non c'è niente qui…", "messagesNothingHere": "Non c'è niente qui…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Home", "navigationTabsHome": "Home",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Libreria", "navigationTabsLibrary": "Libreria",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Cerca", "navigationTabsSearch": "Cerca",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Impostazioni", "navigationTabsSettings": "Impostazioni",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Riproduci album", "resourcesAlbumActionsPlay": "Riproduci album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Vedi album", "resourcesAlbumActionsView": "Vedi album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Ordina album", "resourcesAlbumListsSort": "Ordina album",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Album}}", "resourcesAlbumName": "{count,plural, =1{Album} other{Album}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Vedi artista", "resourcesArtistActionsView": "Vedi artista",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Ordina artisti", "resourcesArtistListsSort": "Ordina artisti",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artista} other{Artisti}}", "resourcesArtistName": "{count,plural, =1{Artista} other{Artisti}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Per genere", "resourcesFilterGenre": "Per genere",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Preferiti", "resourcesFilterStarred": "Preferiti",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Riproduci playlist", "resourcesPlaylistActionsPlay": "Riproduci playlist",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Playlist} other{Playlist}}", "resourcesPlaylistName": "{count,plural, =1{Playlist} other{Playlist}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Coda} other{Code}}", "resourcesQueueName": "{count,plural, =1{Coda} other{Code}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Brani più popolari", "resourcesSongListsArtistTopSongs": "Brani più popolari",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Brano} other{Brani}}", "resourcesSongName": "{count,plural, =1{Brano} other{Brani}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Aggiunti di recente", "resourcesSortByAdded": "Aggiunti di recente",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Per artista", "resourcesSortByArtist": "Per artista",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Ascoltati frequentemente", "resourcesSortByFrequentlyPlayed": "Ascoltati frequentemente",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Per nome", "resourcesSortByName": "Per nome",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Casuale", "resourcesSortByRandom": "Casuale",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Ascoltati di recente", "resourcesSortByRecentlyPlayed": "Ascoltati di recente",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Per anno", "resourcesSortByYear": "Per anno",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Ricerca: {query}", "searchHeaderTitle": "Ricerca: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Ricerca", "searchInputPlaceholder": "Ricerca",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Mostra di più…", "searchMoreResults": "Mostra di più…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Risultati della ricerca", "searchNowPlayingContext": "Risultati della ricerca",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licenze", "settingsAboutActionsLicenses": "Licenze",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Pagina principale del progetto", "settingsAboutActionsProjectHomepage": "Pagina principale del progetto",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Informazioni", "settingsAboutName": "Informazioni",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "versione {version}", "settingsAboutVersion": "versione {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Musica", "settingsMusicName": "Musica",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Non eseguire lo scrobbling della cronologia d'ascolto", "settingsMusicOptionsScrobbleDescriptionOff": "Non eseguire lo scrobbling della cronologia d'ascolto",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobbling della cronologia di ascolto", "settingsMusicOptionsScrobbleDescriptionOn": "Scrobbling della cronologia di ascolto",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobbling delle riproduzioni", "settingsMusicOptionsScrobbleTitle": "Scrobbling delle riproduzioni",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Rete", "settingsNetworkName": "Rete",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate massimo (rete dati)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate massimo (rete dati)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate massimo (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate massimo (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Tempo di buffer massimo", "settingsNetworkOptionsMaxBufferTitle": "Tempo di buffer massimo",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Tempo di buffer minimo", "settingsNetworkOptionsMinBufferTitle": "Tempo di buffer minimo",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} secondi", "settingsNetworkValuesSeconds": "{value} secondi",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Illimitato", "settingsNetworkValuesUnlimitedKbps": "Illimitato",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Pulisci la cache delle immagini", "settingsResetActionsClearImageCache": "Pulisci la cache delle immagini",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Reimposta", "settingsResetName": "Reimposta",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Aggiungi server", "settingsServersActionsAdd": "Aggiungi server",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Rimuovi", "settingsServersActionsDelete": "Rimuovi",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Modifica server", "settingsServersActionsEdit": "Modifica server",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Salva", "settingsServersActionsSave": "Salva",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Prova connessione", "settingsServersActionsTestConnection": "Prova connessione",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Indirizzo", "settingsServersFieldsAddress": "Indirizzo",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Password", "settingsServersFieldsPassword": "Password",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nome utente", "settingsServersFieldsUsername": "Nome utente",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Connessione a {address} fallita, controlla le impostazioni o il server", "settingsServersMessagesConnectionFailed": "Connessione a {address} fallita, controlla le impostazioni o il server",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Connesso a {address} con successo!", "settingsServersMessagesConnectionOk": "Connesso a {address} con successo!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Server", "settingsServersName": "Server",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Invia la password come token + salt", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Invia la password come token + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Invia password in chiaro (deprecato, assicurati che la tua connessione sia sicura!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Invia password in chiaro (deprecato, assicurati che la tua connessione sia sicura!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forza password in chiaro", "settingsServersOptionsForcePlaintextPasswordTitle": "Forza password in chiaro",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "resourcesFilterYear": "Anno",
"@resourcesFilterYear": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"actionsCancel": "Annulla",
"@actionsCancel": {},
"actionsDelete": "Elimina",
"@actionsDelete": {},
"actionsDownload": "Scarica",
"@actionsDownload": {},
"actionsDownloadCancel": "Annulla download",
"@actionsDownloadCancel": {},
"controlsShuffle": "Casuale",
"@controlsShuffle": {},
"actionsDownloadDelete": "Elimina download",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} album}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, =1{{count} artista} other{{count} artisti}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Artista",
"@resourcesFilterArtist": {},
"resourcesFilterOwner": "Proprietario",
"@resourcesFilterOwner": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} playlist} other{{count} playlist}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} brano} other{{count} brani}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Questo rimuoverà tutti i file musicali scaricati.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "Eliminare i download?",
"@resourcesSongListDeleteAllTitle": {},
"settingsNetworkOptionsOfflineMode": "Modalità Offline",
"@settingsNetworkOptionsOfflineMode": {},
"resourcesSortByAlbumCount": "Numero di Album",
"@resourcesSortByAlbumCount": {},
"settingsNetworkOptionsStreamFormat": "Formato di streaming preferito",
"@settingsNetworkOptionsStreamFormat": {},
"resourcesSortByUpdated": "Aggiornato di recente",
"@resourcesSortByUpdated": {},
"resourcesSortByTitle": "Titolo",
"@resourcesSortByTitle": {},
"settingsAboutActionsSupport": "Sostieni lo sviluppatore 💜",
"@settingsAboutActionsSupport": {},
"settingsAboutShareLogs": "Condividi i log",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Scegli un file log",
"@settingsAboutChooseLog": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Usa il server predefinito",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkOptionsOfflineModeOff": "Usa internet per sincronizzare la musica.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "Non usare internet per sincronizzare o riprodurre la musica.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsServersFieldsName": "Nome",
"@settingsServersFieldsName": {}
}

View File

@@ -1,64 +1,88 @@
{ {
"navigationTabsHome": "ホーム", "navigationTabsHome": "ホーム",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "ライブラリ", "navigationTabsLibrary": "ライブラリ",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "検索", "navigationTabsSearch": "検索",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "設定", "navigationTabsSettings": "設定",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumName": "{count,plural, other{アルバム}}", "resourcesAlbumName": "{count,plural, other{アルバム}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistName": "{count,plural, other{アーティスト}}", "resourcesArtistName": "{count,plural, other{アーティスト}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterStarred": "星付きアルバム", "resourcesFilterStarred": "星付きアルバム",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistName": "{count,plural, other{プレイリスト}}", "resourcesPlaylistName": "{count,plural, other{プレイリスト}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "人気曲", "resourcesSongListsArtistTopSongs": "人気曲",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, other{歌}}", "resourcesSongName": "{count,plural, other{歌}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByFrequentlyPlayed": "よく聴くアルバム", "resourcesSortByFrequentlyPlayed": "よく聴くアルバム",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByRandom": "ランダムアルバム", "resourcesSortByRandom": "ランダムアルバム",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "最近再生した", "resourcesSortByRecentlyPlayed": "最近再生した",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"searchInputPlaceholder": "検索", "searchInputPlaceholder": "検索",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"settingsAboutActionsProjectHomepage": "ホームページ", "settingsAboutActionsProjectHomepage": "ホームページ",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsMusicName": "音楽", "settingsMusicName": "音楽",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsNetworkName": "ネット", "settingsNetworkName": "ネット",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsResetName": "リセット", "settingsResetName": "リセット",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersName": "サーバ", "settingsServersName": "サーバ",
"@settingsServersName": {} "@settingsServersName": {},
} "settingsServersFieldsPassword": "パスワルド",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "ウーザ名",
"@settingsServersFieldsUsername": {},
"actionsDelete": "削除",
"@actionsDelete": {},
"actionsCancel": "キャンセル",
"@actionsCancel": {},
"actionsOk": "はい",
"@actionsOk": {},
"resourcesFilterYear": "年",
"@resourcesFilterYear": {},
"resourcesFilterAlbum": "アルブム",
"@resourcesFilterAlbum": {},
"settingsServersActionsDelete": "削除",
"@settingsServersActionsDelete": {},
"settingsServersFieldsName": "名前",
"@settingsServersFieldsName": {},
"actionsDownloadCancel": "ダウンロードをキャンセル",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "ダウンロード削除",
"@actionsDownloadDelete": {},
"actionsDownload": "ダウンロード",
"@actionsDownload": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Stjernemerk", "actionsStar": "Stjernemerk",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Fjern stjernemerking", "actionsUnstar": "Fjern stjernemerking",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Ingenting her …", "messagesNothingHere": "Ingenting her …",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Hjem", "navigationTabsHome": "Hjem",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Bibliotek", "navigationTabsLibrary": "Bibliotek",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Søk", "navigationTabsSearch": "Søk",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Innstillinger", "navigationTabsSettings": "Innstillinger",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Spill album", "resourcesAlbumActionsPlay": "Spill album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Vis album", "resourcesAlbumActionsView": "Vis album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Sorter album", "resourcesAlbumListsSort": "Sorter album",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Album}}", "resourcesAlbumName": "{count,plural, =1{Album} other{Album}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Vis artist", "resourcesArtistActionsView": "Vis artist",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Sorter artister", "resourcesArtistListsSort": "Sorter artister",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artist} other{Artister}}", "resourcesArtistName": "{count,plural, =1{Artist} other{Artister}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Etter sjanger", "resourcesFilterGenre": "Etter sjanger",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Stjernemerket", "resourcesFilterStarred": "Stjernemerket",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Spill av spilleliste", "resourcesPlaylistActionsPlay": "Spill av spilleliste",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Spilleliste} other{Spillelister}}", "resourcesPlaylistName": "{count,plural, =1{Spilleliste} other{Spillelister}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Kø} other{Køer}}", "resourcesQueueName": "{count,plural, =1{Kø} other{Køer}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Toppspor", "resourcesSongListsArtistTopSongs": "Toppspor",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Spor} other{Spor}}", "resourcesSongName": "{count,plural, =1{Spor} other{Spor}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Nylig tillagt", "resourcesSortByAdded": "Nylig tillagt",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Etter artist", "resourcesSortByArtist": "Etter artist",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Ofte spilt", "resourcesSortByFrequentlyPlayed": "Ofte spilt",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Etter navn", "resourcesSortByName": "Etter navn",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Tilfeldig", "resourcesSortByRandom": "Tilfeldig",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Nylig spilt", "resourcesSortByRecentlyPlayed": "Nylig spilt",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Etter år", "resourcesSortByYear": "Etter år",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Søk: {query}", "searchHeaderTitle": "Søk: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Søk", "searchInputPlaceholder": "Søk",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Mer …", "searchMoreResults": "Mer …",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Søkeresultater", "searchNowPlayingContext": "Søkeresultater",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Lisenser", "settingsAboutActionsLicenses": "Lisenser",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Prosjekthjemmeside", "settingsAboutActionsProjectHomepage": "Prosjekthjemmeside",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Om", "settingsAboutName": "Om",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "versjon {version}", "settingsAboutVersion": "versjon {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Musikk", "settingsMusicName": "Musikk",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Ikke utfør sporinfodeling av avspillingshistorikk", "settingsMusicOptionsScrobbleDescriptionOff": "Ikke utfør sporinfodeling av avspillingshistorikk",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Sporinfodelings-avspillinghistorikk", "settingsMusicOptionsScrobbleDescriptionOn": "Sporinfodelings-avspillinghistorikk",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Sporinfodelingsavspillinger", "settingsMusicOptionsScrobbleTitle": "Sporinfodelingsavspillinger",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Nettverk", "settingsNetworkName": "Nettverk",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maksimal bitrate (mobil)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Maksimal bitrate (mobil)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maksimal bitrate (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Maksimal bitrate (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Maksimal mellomlagringstid", "settingsNetworkOptionsMaxBufferTitle": "Maksimal mellomlagringstid",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Minimal mellomlagringstid", "settingsNetworkOptionsMinBufferTitle": "Minimal mellomlagringstid",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value} kbps", "settingsNetworkValuesKbps": "{value} kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} sekunder", "settingsNetworkValuesSeconds": "{value} sekunder",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Ubegrenset", "settingsNetworkValuesUnlimitedKbps": "Ubegrenset",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Tøm bildehurtiglager", "settingsResetActionsClearImageCache": "Tøm bildehurtiglager",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Tilbakestill", "settingsResetName": "Tilbakestill",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Legg til tjener", "settingsServersActionsAdd": "Legg til tjener",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Slett", "settingsServersActionsDelete": "Slett",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Rediger tjener", "settingsServersActionsEdit": "Rediger tjener",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Lagre", "settingsServersActionsSave": "Lagre",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Test tilkobling", "settingsServersActionsTestConnection": "Test tilkobling",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adresse", "settingsServersFieldsAddress": "Adresse",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Passord", "settingsServersFieldsPassword": "Passord",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Brukernavn", "settingsServersFieldsUsername": "Brukernavn",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Tilkobling til {address} mislyktes. Sjekk innstillingene eller tjeneren.", "settingsServersMessagesConnectionFailed": "Tilkobling til {address} mislyktes. Sjekk innstillingene eller tjeneren.",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Tilkobling til {address} OK.", "settingsServersMessagesConnectionOk": "Tilkobling til {address} OK.",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Tjenere", "settingsServersName": "Tjenere",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Send passord som symbol + salt", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Send passord som symbol + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Send passord i klartekst (Foreldet. Forsikre deg om at tilkoblingen er sikker.)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Send passord i klartekst (Foreldet. Forsikre deg om at tilkoblingen er sikker.)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Påtving klartekstspassord", "settingsServersOptionsForcePlaintextPasswordTitle": "Påtving klartekstspassord",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDownload": "Last ned",
"@actionsDownload": {},
"actionsOk": "OK",
"@actionsOk": {},
"actionsDelete": "Slett",
"@actionsDelete": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterOwner": "Eier",
"@resourcesFilterOwner": {},
"resourcesSongListDeleteAllTitle": "Slette nedlastinger?",
"@resourcesSongListDeleteAllTitle": {},
"actionsDownloadDelete": "Slett nedlastet",
"@actionsDownloadDelete": {},
"actionsCancel": "Avbryt",
"@actionsCancel": {},
"resourcesFilterArtist": "Artist",
"@resourcesFilterArtist": {},
"resourcesSortByUpdated": "Nylig oppdatert",
"@resourcesSortByUpdated": {},
"settingsNetworkOptionsOfflineModeOn": "Bruk ikke Internett til å synkronisere eller spille av musikk.",
"@settingsNetworkOptionsOfflineModeOn": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} spilleliste} other{{count} spillelister}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByTitle": "Tittel",
"@resourcesSortByTitle": {},
"actionsDownloadCancel": "Avbryt nedlasting",
"@actionsDownloadCancel": {},
"settingsServersFieldsName": "Navn",
"@settingsServersFieldsName": {},
"controlsShuffle": "Miks",
"@controlsShuffle": {},
"settingsNetworkOptionsStreamFormat": "Foretrukket streamingformat",
"@settingsNetworkOptionsStreamFormat": {},
"settingsAboutActionsSupport": "Støtt utvikleren 💜",
"@settingsAboutActionsSupport": {},
"resourcesArtistCount": "{count,plural, =1{{count} artist} other{{count} artister}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterYear": "År",
"@resourcesFilterYear": {},
"settingsNetworkOptionsOfflineModeOff": "Bruk Internett til å synkronisere musikk.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsAboutChooseLog": "Velg en loggfil",
"@settingsAboutChooseLog": {},
"settingsAboutShareLogs": "Dele logger",
"@settingsAboutShareLogs": {},
"resourcesSortByAlbumCount": "Albumantall",
"@resourcesSortByAlbumCount": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Bruk serverens standardinnstilling",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"settingsNetworkOptionsOfflineMode": "Offline-modus",
"@settingsNetworkOptionsOfflineMode": {},
"resourcesSongListDeleteAllContent": "Dette fjerner alle nedlastede sangfiler.",
"@resourcesSongListDeleteAllContent": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} album}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} sang} other{{count} sanger}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

View File

@@ -1,196 +1,232 @@
{ {
"actionsStar": "Ulubione", "actionsStar": "Ulubione",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Usuń ulubione", "actionsUnstar": "Usuń ulubione",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Pusto tu…", "messagesNothingHere": "Pusto tu…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Strona główna", "navigationTabsHome": "Strona główna",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Kolekcja", "navigationTabsLibrary": "Kolekcja",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Wyszukaj", "navigationTabsSearch": "Wyszukaj",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Ustawienia", "navigationTabsSettings": "Ustawienia",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Otwarzaj album", "resourcesAlbumActionsPlay": "Otwarzaj album",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Zobacz album", "resourcesAlbumActionsView": "Zobacz album",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Sortowanie albumów", "resourcesAlbumListsSort": "Sortowanie albumów",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Album} few{Albumy} many{Albumów} other{Albumów}}", "resourcesAlbumName": "{count,plural, =1{Album} few{Albumy} many{Albumów} other{Albumów}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Zobacz wykonawcę", "resourcesArtistActionsView": "Zobacz wykonawcę",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Sortowanie wykonawców", "resourcesArtistListsSort": "Sortowanie wykonawców",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Wykonawca} few{Wykonawcy} many{Wykonawców} other{Wykonawców}}", "resourcesArtistName": "{count,plural, =1{Wykonawca} few{Wykonawcy} many{Wykonawców} other{Wykonawców}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Wg gatunku", "resourcesFilterGenre": "Wg gatunku",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Ulubione", "resourcesFilterStarred": "Ulubione",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Odtwarzaj playlistę", "resourcesPlaylistActionsPlay": "Odtwarzaj playlistę",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Playlista} few{Playlisty} many{Playlist} other{Playlist}}", "resourcesPlaylistName": "{count,plural, =1{Playlista} few{Playlisty} many{Playlist} other{Playlist}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Kolejka} few{Kolejki} many{Kolejek} other{Kolejek}}", "resourcesQueueName": "{count,plural, =1{Kolejka} few{Kolejki} many{Kolejek} other{Kolejek}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Najpopularniejsze utwory", "resourcesSongListsArtistTopSongs": "Najpopularniejsze utwory",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Utwór} few{Utwory} many{Utworów} other{Utworów}}", "resourcesSongName": "{count,plural, =1{Utwór} few{Utwory} many{Utworów} other{Utworów}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Ostatnio dodane", "resourcesSortByAdded": "Ostatnio dodane",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Wg wykonawcy", "resourcesSortByArtist": "Wg wykonawcy",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Często odtwarzane", "resourcesSortByFrequentlyPlayed": "Często odtwarzane",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Wg nazwy", "resourcesSortByName": "Wg nazwy",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Losowo", "resourcesSortByRandom": "Losowo",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Ostatnio odtwarzane", "resourcesSortByRecentlyPlayed": "Ostatnio odtwarzane",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Wg roku", "resourcesSortByYear": "Wg roku",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Szukaj: {query}", "searchHeaderTitle": "Szukaj: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Szukaj", "searchInputPlaceholder": "Szukaj",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Więcej…", "searchMoreResults": "Więcej…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Wyniki wyszukiwania", "searchNowPlayingContext": "Wyniki wyszukiwania",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licencje", "settingsAboutActionsLicenses": "Licencje",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Strona główna projektu", "settingsAboutActionsProjectHomepage": "Strona główna projektu",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Informacje o projekcie", "settingsAboutName": "Informacje o projekcie",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "wersja {version}", "settingsAboutVersion": "wersja {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Muzyka", "settingsMusicName": "Muzyka",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Nie śledź swojej historii odtwarzania", "settingsMusicOptionsScrobbleDescriptionOff": "Nie śledź swojej historii odtwarzania",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Śledź swoją histrorię odtwarzania", "settingsMusicOptionsScrobbleDescriptionOn": "Śledź swoją histrorię odtwarzania",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Śledzenie odtworzeń", "settingsMusicOptionsScrobbleTitle": "Śledzenie odtworzeń",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Sieć", "settingsNetworkName": "Sieć",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maksymalny bitrate (sieć komórkowa)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Maksymalny bitrate (sieć komórkowa)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maksymalny bitrate (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Maksymalny bitrate (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Maksymalny czas buforowania", "settingsNetworkOptionsMaxBufferTitle": "Maksymalny czas buforowania",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Minimalny czas buforowania", "settingsNetworkOptionsMinBufferTitle": "Minimalny czas buforowania",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} sekund", "settingsNetworkValuesSeconds": "{value} sekund",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Bez ograniczeń", "settingsNetworkValuesUnlimitedKbps": "Bez ograniczeń",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Wyczyść pamięć podręczną obrazów", "settingsResetActionsClearImageCache": "Wyczyść pamięć podręczną obrazów",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Przywracanie", "settingsResetName": "Przywracanie",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Dodaj serwer", "settingsServersActionsAdd": "Dodaj serwer",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Usuń", "settingsServersActionsDelete": "Usuń",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Edytuj serwer", "settingsServersActionsEdit": "Edytuj serwer",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Zapisz", "settingsServersActionsSave": "Zapisz",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Przetestuj połączenie", "settingsServersActionsTestConnection": "Przetestuj połączenie",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Adres serwera", "settingsServersFieldsAddress": "Adres serwera",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Hasło", "settingsServersFieldsPassword": "Hasło",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nazwa użytkownika", "settingsServersFieldsUsername": "Nazwa użytkownika",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Błąd połączenia z {address}, sprawdź ustawienia lub serwer", "settingsServersMessagesConnectionFailed": "Błąd połączenia z {address}, sprawdź ustawienia lub serwer",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Połączeno poprawnie z {address}!", "settingsServersMessagesConnectionOk": "Połączeno poprawnie z {address}!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Serwery", "settingsServersName": "Serwery",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Wyślij hasło jako token i ciąg zaburzający", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Wyślij hasło jako token i ciąg zaburzający",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Wyślij hasło jako tekst (przestarzałe, upewnij się, że Twoje połączenie jest zabezpieczone)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Wyślij hasło jako tekst (przestarzałe, upewnij się, że Twoje połączenie jest zabezpieczone)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Wymuś hasło jako tekst (plaintext)", "settingsServersOptionsForcePlaintextPasswordTitle": "Wymuś hasło jako tekst (plaintext)",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDownload": "Pobierz",
"@actionsDownload": {},
"actionsOk": "Ok",
"@actionsOk": {},
"actionsDelete": "Usuń",
"@actionsDelete": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterOwner": "Posiadacz",
"@resourcesFilterOwner": {},
"resourcesSongListDeleteAllTitle": "Usunąć pobrane?",
"@resourcesSongListDeleteAllTitle": {},
"actionsDownloadDelete": "Usuń pobrane",
"@actionsDownloadDelete": {},
"actionsCancel": "Anuluj",
"@actionsCancel": {},
"resourcesFilterArtist": "Artysta",
"@resourcesFilterArtist": {},
"resourcesSortByUpdated": "Ostatnio zaktualizowane",
"@resourcesSortByUpdated": {},
"resourcesSortByTitle": "Tytuł",
"@resourcesSortByTitle": {},
"actionsDownloadCancel": "Anuluj pobieranie",
"@actionsDownloadCancel": {},
"settingsServersFieldsName": "Nazwa",
"@settingsServersFieldsName": {},
"controlsShuffle": "Losowo",
"@controlsShuffle": {},
"settingsNetworkOptionsStreamFormat": "Preferowany format streamów",
"@settingsNetworkOptionsStreamFormat": {},
"resourcesFilterYear": "Rok",
"@resourcesFilterYear": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"settingsNetworkOptionsOfflineMode": "Tryb offline",
"@settingsNetworkOptionsOfflineMode": {}
}

280
lib/l10n/app_pt-BR.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"actionsDelete": "Deletar",
"@actionsDelete": {},
"actionsDownload": "Download",
"@actionsDownload": {},
"actionsDownloadCancel": "Cancelar download",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Excluir arquivos baixados",
"@actionsDownloadDelete": {},
"actionsOk": "OK",
"@actionsOk": {},
"actionsStar": "Estrela",
"@actionsStar": {},
"controlsShuffle": "Misturar",
"@controlsShuffle": {},
"messagesNothingHere": "Nada aqui…",
"@messagesNothingHere": {},
"navigationTabsHome": "Home",
"@navigationTabsHome": {},
"navigationTabsSearch": "Procurar",
"@navigationTabsSearch": {},
"navigationTabsSettings": "Configurações",
"@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Tocar álbum",
"@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Ver álbum",
"@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Classificar álbuns",
"@resourcesAlbumListsSort": {},
"resourcesArtistActionsView": "Ver artistas",
"@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Classificar artistas",
"@resourcesArtistListsSort": {},
"resourcesFilterArtist": "Artista",
"@resourcesFilterArtist": {},
"resourcesFilterGenre": "Gênero",
"@resourcesFilterGenre": {},
"resourcesFilterOwner": "Proprietário",
"@resourcesFilterOwner": {},
"resourcesFilterStarred": "Estrelado por",
"@resourcesFilterStarred": {},
"resourcesFilterYear": "Ano",
"@resourcesFilterYear": {},
"resourcesPlaylistActionsPlay": "Tocar lista",
"@resourcesPlaylistActionsPlay": {},
"resourcesSongListDeleteAllTitle": "Deletar arquivos baixados?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongListsArtistTopSongs": "Melhores músicas",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSortByAdded": "Adicionado recentemente",
"@resourcesSortByAdded": {},
"resourcesSortByAlbum": "Álbum",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "Contagem de álbuns",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "Artista",
"@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Mais tocados",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByRandom": "Aleatório",
"@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Tocado recentemente",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByTitle": "Título",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "Atualizado recentemente",
"@resourcesSortByUpdated": {},
"actionsUnstar": "Sem estrela",
"@actionsUnstar": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} albums}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongName": "{count,plural, =1{Song} other{Songs}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"searchInputPlaceholder": "Pesquisar",
"@searchInputPlaceholder": {},
"searchMoreResults": "Mais…",
"@searchMoreResults": {},
"searchNowPlayingContext": "Resultado da pesquisa",
"@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licenças",
"@settingsAboutActionsLicenses": {},
"settingsAboutName": "Sobre",
"@settingsAboutName": {},
"settingsAboutShareLogs": "Compartilhar logs",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Escolha um arquivo de log",
"@settingsAboutChooseLog": {},
"settingsNetworkName": "Rede",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Qualidade máxima (rede móvel)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Qualidade máxima (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Tempo máximo de buffer",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Tempo mínimo de buffer",
"@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkOptionsOfflineMode": "Modo off-line",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Usar a internet para sincronizar as músicas.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsStreamFormat": "Formato preferido para stream",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Usar servidor padrão",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkValuesUnlimitedKbps": "Ilimitado",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Limpar cache de imagens",
"@settingsResetActionsClearImageCache": {},
"settingsResetName": "Resetar",
"@settingsResetName": {},
"settingsServersActionsAdd": "Adicionar fonte",
"@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Deletar",
"@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Editar fonte",
"@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Salvar",
"@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Testar conexão",
"@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Endereço",
"@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Senha",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Usuário",
"@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "A conexão com {address} falhou, verifique as configurações ou servidor",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersMessagesConnectionOk": "Conexãocom {address} feita com sucesso!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersName": "Fontes",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar senha como token + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"searchHeaderTitle": "Pesquisa: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"settingsAboutActionsProjectHomepage": "Página do projeto",
"@settingsAboutActionsProjectHomepage": {},
"settingsAboutVersion": "Versão {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsMusicOptionsScrobbleDescriptionOff": "Não fazer scrobble do histórico de reproduções",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobble do histórico de reproduções",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Fazer scrobble das reproduções",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesSeconds": "{value} segundos",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"actionsCancel": "Cancelar",
"@actionsCancel": {},
"navigationTabsLibrary": "Biblioteca",
"@navigationTabsLibrary": {},
"resourcesFilterAlbum": "Álbum",
"@resourcesFilterAlbum": {},
"resourcesSongListDeleteAllContent": "Isso irá remover todos os arquivos de músicas baixados.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSortByName": "Nome",
"@resourcesSortByName": {},
"resourcesSortByYear": "Ano",
"@resourcesSortByYear": {},
"settingsAboutActionsSupport": "Apoie o desenvolvedor 💜",
"@settingsAboutActionsSupport": {},
"settingsMusicName": "Música",
"@settingsMusicName": {},
"settingsServersFieldsName": "Nome",
"@settingsServersFieldsName": {},
"settingsNetworkOptionsOfflineModeOn": "Não usar a Internet para sincronizar ou tocar músicas.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forçar senha em texto simples",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar senha em texto simples (tenha certeza que sua conexão é segura!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Albums}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, =1{{count} artist} other{{count} artists}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistCount": "{count,plural, =1{{count} playlist} other{{count} playlists}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesQueueName": "{count,plural, =1{Queue} other{Queues}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistName": "{count,plural, =1{Artist} other{Artists}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{count,plural, =1{Playlist} other{Playlists}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} song} other{{count} songs}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

View File

@@ -1,196 +1,230 @@
{ {
"actionsStar": "Favorito", "actionsStar": "Favorito",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Remover favorito", "actionsUnstar": "Remover favorito",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Não existe nada…", "messagesNothingHere": "Não existe nada…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Início", "navigationTabsHome": "Início",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Biblioteca", "navigationTabsLibrary": "Biblioteca",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Procurar", "navigationTabsSearch": "Procurar",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Definições", "navigationTabsSettings": "Definições",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Tocar Álbum", "resourcesAlbumActionsPlay": "Tocar Álbum",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Ver Álbum", "resourcesAlbumActionsView": "Ver Álbum",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Ordenar Álbuns", "resourcesAlbumListsSort": "Ordenar Álbuns",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbuns}}", "resourcesAlbumName": "{count,plural, =1{Álbum} other{Álbuns}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Ver Artista", "resourcesArtistActionsView": "Ver Artista",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Ordenar Artistas", "resourcesArtistListsSort": "Ordenar Artistas",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}", "resourcesArtistName": "{count,plural, =1{Artista} other{Artistas}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "Por Género", "resourcesFilterGenre": "Por Género",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Favoritos", "resourcesFilterStarred": "Favoritos",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Tocar Playlist", "resourcesPlaylistActionsPlay": "Tocar Playlist",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Lista} other{Listas}}", "resourcesPlaylistName": "{count,plural, =1{Lista} other{Listas}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Fila} other{Filas}}", "resourcesQueueName": "{count,plural, =1{Fila} other{Filas}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Top Músicas", "resourcesSongListsArtistTopSongs": "Top Músicas",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Música} other{Músicas}}", "resourcesSongName": "{count,plural, =1{Música} other{Músicas}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Adicionado recentemente", "resourcesSortByAdded": "Adicionado recentemente",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "Por Artista", "resourcesSortByArtist": "Por Artista",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Mais Tocado", "resourcesSortByFrequentlyPlayed": "Mais Tocado",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "Por Nome", "resourcesSortByName": "Por Nome",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Aleatório", "resourcesSortByRandom": "Aleatório",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Ouviu recentemente", "resourcesSortByRecentlyPlayed": "Ouviu recentemente",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "Por Ano", "resourcesSortByYear": "Por Ano",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Procurar: {query}", "searchHeaderTitle": "Procurar: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Procurar", "searchInputPlaceholder": "Procurar",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Mais…", "searchMoreResults": "Mais…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Resultados da Pesquisa", "searchNowPlayingContext": "Resultados da Pesquisa",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Licenças", "settingsAboutActionsLicenses": "Licenças",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Página do Projeto", "settingsAboutActionsProjectHomepage": "Página do Projeto",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "Acerca", "settingsAboutName": "Acerca",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "versão {version}", "settingsAboutVersion": "versão {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Música", "settingsMusicName": "Música",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Não enviar histórico de reproduções por scrobble", "settingsMusicOptionsScrobbleDescriptionOff": "Não enviar histórico de reproduções por scrobble",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Enviar histórico de reproduções por scrobble", "settingsMusicOptionsScrobbleDescriptionOn": "Enviar histórico de reproduções por scrobble",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Enviar reproduções por scrobble", "settingsMusicOptionsScrobbleTitle": "Enviar reproduções por scrobble",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Rede", "settingsNetworkName": "Rede",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate Máximo (móvel)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Bitrate Máximo (móvel)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate Máximo (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Bitrate Máximo (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Tempo de buffer máximo", "settingsNetworkOptionsMaxBufferTitle": "Tempo de buffer máximo",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Tempo de buffer mínimo", "settingsNetworkOptionsMinBufferTitle": "Tempo de buffer mínimo",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} segundos", "settingsNetworkValuesSeconds": "{value} segundos",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Ilimitado", "settingsNetworkValuesUnlimitedKbps": "Ilimitado",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Limpar cache de Imagens", "settingsResetActionsClearImageCache": "Limpar cache de Imagens",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Redefinir", "settingsResetName": "Redefinir",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Adicionar Servidor", "settingsServersActionsAdd": "Adicionar Servidor",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Apagar", "settingsServersActionsDelete": "Apagar",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Editar Servidor", "settingsServersActionsEdit": "Editar Servidor",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Guardar", "settingsServersActionsSave": "Guardar",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Testar Ligação", "settingsServersActionsTestConnection": "Testar Ligação",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Endereço", "settingsServersFieldsAddress": "Endereço",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Senha", "settingsServersFieldsPassword": "Senha",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Nome de utilizador", "settingsServersFieldsUsername": "Nome de utilizador",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Ligação a {address} falhou, verifique definições ou servidor", "settingsServersMessagesConnectionFailed": "Ligação a {address} falhou, verifique definições ou servidor",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Ligação a {address} OK!", "settingsServersMessagesConnectionOk": "Ligação a {address} OK!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Servidores", "settingsServersName": "Servidores",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar senha como token + sal", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Enviar senha como token + sal",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar senha em texto simples (antigo, certifique-se que a sua ligação é segura!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Enviar senha em texto simples (antigo, certifique-se que a sua ligação é segura!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Forçar password em texto simples", "settingsServersOptionsForcePlaintextPasswordTitle": "Forçar password em texto simples",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsCancel": "Cancelar",
"@actionsCancel": {},
"actionsDelete": "Apagar",
"@actionsDelete": {},
"actionsDownload": "Descarregar",
"@actionsDownload": {},
"actionsDownloadCancel": "Cancelar descarga",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "Apagar descarga",
"@actionsDownloadDelete": {},
"resourcesFilterAlbum": "Álbum",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Artista",
"@resourcesFilterArtist": {},
"resourcesFilterYear": "Ano",
"@resourcesFilterYear": {},
"resourcesSortByAlbum": "Álbum",
"@resourcesSortByAlbum": {},
"settingsAboutActionsSupport": "Apoie o programador 💜",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Modo offline",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Usar a internet para sincronizar música.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "Não usar a internet para sincronizar ou tocar música.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormat": "Formato preferido de streaming",
"@settingsNetworkOptionsStreamFormat": {},
"resourcesSortByTitle": "Título",
"@resourcesSortByTitle": {},
"actionsOk": "OK",
"@actionsOk": {},
"controlsShuffle": "Aleatório",
"@controlsShuffle": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "Избранное", "actionsStar": "Избранное",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "Убрать из избранного", "actionsUnstar": "Убрать из избранного",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "Здесь ничего нет…", "messagesNothingHere": "Здесь ничего нет…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "Главная", "navigationTabsHome": "Главная",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "Библиотека", "navigationTabsLibrary": "Библиотека",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "Поиск", "navigationTabsSearch": "Поиск",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "Настройки", "navigationTabsSettings": "Настройки",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Воспроизвести альбом", "resourcesAlbumActionsPlay": "Воспроизвести альбом",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "Посмотреть альбом", "resourcesAlbumActionsView": "Посмотреть альбом",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "Сортировка альбомов", "resourcesAlbumListsSort": "Сортировка альбомов",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, =1{Альбом} few{Альбомы} many{Альбомов} other{Альбомов}}", "resourcesAlbumName": "{count,plural, =1{Альбом} few{Альбомов} many{Альбомов} other{Альбомы}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "Посмотреть исполнителя", "resourcesArtistActionsView": "Посмотреть исполнителя",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Сортировать исполнителей", "resourcesArtistListsSort": "Сортировать исполнителей",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, =1{Исполнитель} few{Исполнители} many{Исполнителей} other{Исполнителей}}", "resourcesArtistName": "{count,plural, =1{Исполнитель} few{Исполнителей} many{Исполнителей} other{Исполнители}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "По жанру", "resourcesFilterGenre": "По жанру",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "Избранные", "resourcesFilterStarred": "Избранные",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "Воспроизвести плейлист", "resourcesPlaylistActionsPlay": "Воспроизвести плейлист",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, =1{Плейлист} few{Плейлисты} many{Плейлистов} other{Плейлистов}}", "resourcesPlaylistName": "{count,plural, =1{Плейлист} few{Плейлистов} many{Плейлистов} other{Плейлисты}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, =1{Очередь} few{Очереди} many{Очередей} other{Очередей}}", "resourcesQueueName": "{count,plural, =1{Очередь} few{Очередей} many{Очередей} other{Очереди}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "Лучшие треки", "resourcesSongListsArtistTopSongs": "Лучшие треки",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, =1{Трек} few{Трека} many{Треков} other{Треков}}", "resourcesSongName": "{count,plural, =1{Трек} few{Треков} many{Треков} other{Треки}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "Недавно добавленные", "resourcesSortByAdded": "Недавно добавленные",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "По исполнителю", "resourcesSortByArtist": "По исполнителям",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "Часто проигрываемые", "resourcesSortByFrequentlyPlayed": "Часто проигрываемые",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "По имени", "resourcesSortByName": "По имени",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "Случайно", "resourcesSortByRandom": "Случайно",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "Недавно проигранные", "resourcesSortByRecentlyPlayed": "Недавно проигранные",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "По году", "resourcesSortByYear": "По году",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "Поиск: {query}", "searchHeaderTitle": "Поиск: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "Поиск", "searchInputPlaceholder": "Поиск",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "Больше…", "searchMoreResults": "Больше…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "Результаты поиска", "searchNowPlayingContext": "Результаты поиска",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Лицензии", "settingsAboutActionsLicenses": "Лицензии",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "Сайт проекта", "settingsAboutActionsProjectHomepage": "Сайт проекта",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "О Subtracks", "settingsAboutName": "О Subtracks",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "версия {version}", "settingsAboutVersion": "версия {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "Музыка", "settingsMusicName": "Музыка",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Не отправлять историю воспроизведений", "settingsMusicOptionsScrobbleDescriptionOff": "Не отправлять историю воспроизведений",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Скробблинг истории воспроизведения", "settingsMusicOptionsScrobbleDescriptionOn": "Скробблинг истории воспроизведения",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Скробблинг", "settingsMusicOptionsScrobbleTitle": "Скробблинг",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "Сеть", "settingsNetworkName": "Сеть",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Максимальный битрейт (мобильный интернет)", "settingsNetworkOptionsMaxBitrateMobileTitle": "Максимальный битрейт (мобильный интернет)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Максимальный битрейт (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "Максимальный битрейт (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "Максимальное время буферизации", "settingsNetworkOptionsMaxBufferTitle": "Максимальное время буферизации",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Минимальное время буферизации", "settingsNetworkOptionsMinBufferTitle": "Минимальное время буферизации",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value} кбит/с", "settingsNetworkValuesKbps": "{value} кбит/с",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} секунд", "settingsNetworkValuesSeconds": "{value} секунд",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "Без ограничений", "settingsNetworkValuesUnlimitedKbps": "Без ограничений",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "Очистить кэш изображения", "settingsResetActionsClearImageCache": "Очистить кэш изображения",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "Сброс", "settingsResetName": "Сброс",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "Добавить сервер", "settingsServersActionsAdd": "Добавить сервер",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "Удалить", "settingsServersActionsDelete": "Удалить",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "Редактировать сервер", "settingsServersActionsEdit": "Редактировать сервер",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "Сохранить", "settingsServersActionsSave": "Сохранить",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Проверить подключение", "settingsServersActionsTestConnection": "Проверить подключение",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "Адрес", "settingsServersFieldsAddress": "Адрес",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "Пароль", "settingsServersFieldsPassword": "Пароль",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Имя пользователя", "settingsServersFieldsUsername": "Имя пользователя",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Не удалось подключиться к {address}, проверьте настройки или сервер", "settingsServersMessagesConnectionFailed": "Не удалось подключиться к {address}, проверьте настройки или сервер",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "Подключение к {address} установлено!", "settingsServersMessagesConnectionOk": "Подключение к {address} установлено!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "Серверы", "settingsServersName": "Серверы",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Отправить пароль в виде токена", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Отправить пароль в виде токена",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Отправить пароль в виде текста (устарело, убедитесь, что ваше соединение безопасно!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Отправить пароль в виде текста (устарело, убедитесь, что ваше соединение безопасно!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Принудительно использовать текстовой пароль", "settingsServersOptionsForcePlaintextPasswordTitle": "Принудительно использовать текстовой пароль",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "settingsAboutShareLogs": "Поделиться журналами",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "Выбрать файл журнала",
"@settingsAboutChooseLog": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Использовать сервер по умолчанию",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"actionsDownload": "Скачать",
"@actionsDownload": {},
"actionsDownloadCancel": "Отменить загрузку",
"@actionsDownloadCancel": {},
"actionsCancel": "Отменить",
"@actionsCancel": {},
"resourcesSongCount": "{count,plural, =1{{count} трек} few{{count} треков} many{{count} треков} other{{count} треки}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAlbum": "По альбомам",
"@resourcesSortByAlbum": {},
"resourcesSortByTitle": "По заголовку",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "По недавно обновленному",
"@resourcesSortByUpdated": {},
"resourcesSortByAlbumCount": "По количеству альбомов",
"@resourcesSortByAlbumCount": {},
"settingsNetworkOptionsOfflineMode": "Автономный режим",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "Использовать интернет для синхронизации музыки.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsServersFieldsName": "Имя",
"@settingsServersFieldsName": {},
"actionsDelete": "Удалить",
"@actionsDelete": {},
"actionsDownloadDelete": "Удалить загруженное",
"@actionsDownloadDelete": {},
"actionsOk": "ОК",
"@actionsOk": {},
"controlsShuffle": "Перемешать",
"@controlsShuffle": {},
"resourcesFilterArtist": "По исполнителю",
"@resourcesFilterArtist": {},
"resourcesFilterAlbum": "По альбомам",
"@resourcesFilterAlbum": {},
"resourcesFilterYear": "По годам",
"@resourcesFilterYear": {},
"resourcesFilterOwner": "По владельцу",
"@resourcesFilterOwner": {},
"resourcesSongListDeleteAllContent": "Это удалит все загруженные файлы песен.",
"@resourcesSongListDeleteAllContent": {},
"settingsNetworkOptionsStreamFormat": "Предпочтительный формат потока",
"@settingsNetworkOptionsStreamFormat": {},
"resourcesSongListDeleteAllTitle": "Удалить загрузки?",
"@resourcesSongListDeleteAllTitle": {},
"settingsNetworkOptionsOfflineModeOn": "Не использовать интернет для синхронизации или воспроизведения музыки.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsAboutActionsSupport": "Поддержать разработчика",
"@settingsAboutActionsSupport": {},
"resourcesArtistCount": "{count,plural, =1{{count} исполнитель} other{{count} исполнители}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistCount": "{count,plural, =1{{count} плейлист} other{{count} плейлисты}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumCount": "{count,plural, =1{{count} альбом} other{{count} альбомы}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

280
lib/l10n/app_sv.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"actionsDownload": "Ladda ned",
"@actionsDownload": {},
"actionsOk": "OK",
"@actionsOk": {},
"resourcesQueueName": "{count,plural, =1{Kö} other{Köer}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsMusicOptionsScrobbleDescriptionOff": "Skrobbla ej spelhistorik",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsNetworkValuesSeconds": "{value} sekunder",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"resourcesSongListsArtistTopSongs": "Topplåtar",
"@resourcesSongListsArtistTopSongs": {},
"navigationTabsSettings": "Inställningar",
"@navigationTabsSettings": {},
"actionsStar": "Markera",
"@actionsStar": {},
"resourcesSortByName": "Namn",
"@resourcesSortByName": {},
"settingsServersActionsAdd": "Lägg till källa",
"@settingsServersActionsAdd": {},
"resourcesArtistActionsView": "Visa artist",
"@resourcesArtistActionsView": {},
"resourcesFilterStarred": "Markerad",
"@resourcesFilterStarred": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Maximal bitrate (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"actionsDelete": "Radera",
"@actionsDelete": {},
"settingsAboutName": "Om",
"@settingsAboutName": {},
"resourcesFilterAlbum": "Album",
"@resourcesFilterAlbum": {},
"resourcesFilterOwner": "Ägare",
"@resourcesFilterOwner": {},
"navigationTabsSearch": "Sök",
"@navigationTabsSearch": {},
"resourcesSongListDeleteAllTitle": "Radera nedladdningar?",
"@resourcesSongListDeleteAllTitle": {},
"settingsServersMessagesConnectionFailed": "Anslutning till {adress} misslyckades, kontrollera inställningar eller server",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"actionsDownloadDelete": "Radera nedladdat",
"@actionsDownloadDelete": {},
"actionsCancel": "Avbryt",
"@actionsCancel": {},
"settingsAboutActionsProjectHomepage": "Projekthemsida",
"@settingsAboutActionsProjectHomepage": {},
"resourcesFilterArtist": "Artist",
"@resourcesFilterArtist": {},
"resourcesAlbumListsSort": "Sortera album",
"@resourcesAlbumListsSort": {},
"settingsNetworkOptionsMaxBufferTitle": "Maximal bufferttid",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsServersActionsSave": "Spara",
"@settingsServersActionsSave": {},
"settingsNetworkOptionsMinBufferTitle": "Minimum buffertid",
"@settingsNetworkOptionsMinBufferTitle": {},
"resourcesSortByFrequentlyPlayed": "Spelas oftast",
"@resourcesSortByFrequentlyPlayed": {},
"settingsResetName": "Återställ",
"@settingsResetName": {},
"searchMoreResults": "Mer …",
"@searchMoreResults": {},
"navigationTabsHome": "Hem",
"@navigationTabsHome": {},
"resourcesArtistName": "{count,plural, =1{Artist} other{Artister}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByUpdated": "Nyligen uppdaterade",
"@resourcesSortByUpdated": {},
"settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkOptionsOfflineModeOn": "Använd inte internet för att uppdatera eller spela upp musik.",
"@settingsNetworkOptionsOfflineModeOn": {},
"resourcesAlbumName": "{count,plural, =1{Album} other{Album}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsResetActionsClearImageCache": "Rensa bildcache",
"@settingsResetActionsClearImageCache": {},
"searchInputPlaceholder": "Sök",
"@searchInputPlaceholder": {},
"settingsAboutVersion": "version {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"resourcesSortByAdded": "Nyligen tillagda",
"@resourcesSortByAdded": {},
"settingsNetworkValuesUnlimitedKbps": "Obegränsad",
"@settingsNetworkValuesUnlimitedKbps": {},
"resourcesFilterGenre": "Genre",
"@resourcesFilterGenre": {},
"settingsServersFieldsPassword": "Lösenord",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Användarnamn",
"@settingsServersFieldsUsername": {},
"searchHeaderTitle": "Sök: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"actionsUnstar": "Omarkera",
"@actionsUnstar": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} spellista} other{{count} spellistor}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByYear": "Efter år",
"@resourcesSortByYear": {},
"resourcesSortByTitle": "Titel",
"@resourcesSortByTitle": {},
"actionsDownloadCancel": "Avbryt Nedladdning",
"@actionsDownloadCancel": {},
"settingsServersActionsDelete": "Radera",
"@settingsServersActionsDelete": {},
"settingsServersFieldsName": "Namn",
"@settingsServersFieldsName": {},
"resourcesPlaylistName": "{count,plural, =1{Spellista} other{Spellistor}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Skicka lösenord som token + salt",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"resourcesArtistListsSort": "Sortera artister",
"@resourcesArtistListsSort": {},
"controlsShuffle": "Blanda",
"@controlsShuffle": {},
"searchNowPlayingContext": "Sökresultat",
"@searchNowPlayingContext": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Skicka lösenord i klartext (Föråldrat. Se till att din uppkoppling är säker!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"messagesNothingHere": "Inget här…",
"@messagesNothingHere": {},
"settingsNetworkOptionsStreamFormat": "Föredraget streamformat",
"@settingsNetworkOptionsStreamFormat": {},
"settingsAboutActionsSupport": "Stöd utvecklaren 💜",
"@settingsAboutActionsSupport": {},
"resourcesArtistCount": "{count,plural, =1{{count} artist} other{{count} artister}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumActionsPlay": "Spela album",
"@resourcesAlbumActionsPlay": {},
"resourcesSortByRandom": "Slumpmässig",
"@resourcesSortByRandom": {},
"navigationTabsLibrary": "Bibliotek",
"@navigationTabsLibrary": {},
"resourcesFilterYear": "År",
"@resourcesFilterYear": {},
"settingsNetworkOptionsOfflineModeOff": "Använd internet för att uppdatera musik.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsServersFieldsAddress": "Adress",
"@settingsServersFieldsAddress": {},
"settingsMusicName": "Musik",
"@settingsMusicName": {},
"settingsAboutChooseLog": "Välj en loggfil",
"@settingsAboutChooseLog": {},
"resourcesSortByArtist": "Konstnär",
"@resourcesSortByArtist": {},
"settingsServersMessagesConnectionOk": "Anslutning till {adress} OK!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsAboutShareLogs": "Dela loggarna",
"@settingsAboutShareLogs": {},
"settingsServersActionsEdit": "Redigera källa",
"@settingsServersActionsEdit": {},
"resourcesPlaylistActionsPlay": "Spela upp spellista",
"@resourcesPlaylistActionsPlay": {},
"resourcesSortByRecentlyPlayed": "Senast spelade",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSongName": "{count,plural, =1{Låt} other{Låtar}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAlbumCount": "Albumantal",
"@resourcesSortByAlbumCount": {},
"settingsMusicOptionsScrobbleTitle": "Skrobbla uppspelningar",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsAboutActionsLicenses": "Licenser",
"@settingsAboutActionsLicenses": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Använd serverns standardinställning",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Skrobbla spelhistorik",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"resourcesSortByAlbum": "Album",
"@resourcesSortByAlbum": {},
"settingsNetworkOptionsOfflineMode": "Offline-läge",
"@settingsNetworkOptionsOfflineMode": {},
"resourcesSongListDeleteAllContent": "Detta tar bort alla nedladdade låtfiler.",
"@resourcesSongListDeleteAllContent": {},
"resourcesAlbumActionsView": "Visa album",
"@resourcesAlbumActionsView": {},
"resourcesAlbumCount": "{count,plural, =1{{count} album} other{{count} album}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Maximal bitrate (mobilnätverk)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkName": "Nätverk",
"@settingsNetworkName": {},
"settingsServersActionsTestConnection": "Testanslutning",
"@settingsServersActionsTestConnection": {},
"settingsServersName": "Källor",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Tvinga lösenord i klartext",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"resourcesSongCount": "{count,plural, =1{{count} låt} other{{count} låtar}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

280
lib/l10n/app_ta.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"resourcesAlbumActionsPlay": "ஆல்பம்",
"@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "ஆல்பத்தைக் காண்க",
"@resourcesAlbumActionsView": {},
"resourcesSortByFrequentlyPlayed": "அடிக்கடி விளையாடியது",
"@resourcesSortByFrequentlyPlayed": {},
"settingsAboutActionsProjectHomepage": "திட்ட முகப்புப்பக்கம்",
"@settingsAboutActionsProjectHomepage": {},
"settingsMusicName": "இசை",
"@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "நாடக வரலாற்றை வெல்ல வேண்டாம்",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsServersName": "மூலங்கள்",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "கடவுச்சொல்லை எளிய உரையில் அனுப்பவும் (மரபு, உங்கள் இணைப்பு பாதுகாப்பானது என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"actionsOk": "சரி",
"@actionsOk": {},
"actionsStar": "விண்மீன்",
"@actionsStar": {},
"actionsUnstar": "ச்டார்",
"@actionsUnstar": {},
"controlsShuffle": "கலக்கு",
"@controlsShuffle": {},
"messagesNothingHere": "இங்கே எதுவும் இல்லை…",
"@messagesNothingHere": {},
"navigationTabsHome": "வீடு",
"@navigationTabsHome": {},
"navigationTabsLibrary": "நூலகம்",
"@navigationTabsLibrary": {},
"navigationTabsSearch": "தேடல்",
"@navigationTabsSearch": {},
"navigationTabsSettings": "அமைப்புகள்",
"@navigationTabsSettings": {},
"resourcesAlbumCount": "{எண்ணிக்கை, பன்மை, = 1 {{count} ஆல்பம்} பிற {{count} ஆல்பங்கள்}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumListsSort": "ஆல்பங்களை வரிசைப்படுத்துங்கள்",
"@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{எண்ணிக்கை, பன்மை, = 1 {Album} பிற {Albums}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistActionsView": "கலைஞரைக் காண்க",
"@resourcesArtistActionsView": {},
"resourcesArtistCount": "{எண்ணிக்கை, பன்மை, = 1 {{count} கலைஞர்} பிற {{count} கலைஞர்கள்}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistListsSort": "கலைஞர்களை வரிசைப்படுத்துங்கள்",
"@resourcesArtistListsSort": {},
"resourcesArtistName": "{எண்ணிக்கை, பன்மை, = 1 {Artist} பிற {Artists}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "ஆல்பம்",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "கலைஞர்",
"@resourcesFilterArtist": {},
"resourcesFilterGenre": "வகை",
"@resourcesFilterGenre": {},
"resourcesFilterOwner": "உரிமையாளர்",
"@resourcesFilterOwner": {},
"resourcesFilterStarred": "நடித்தார்",
"@resourcesFilterStarred": {},
"resourcesFilterYear": "ஆண்டு",
"@resourcesFilterYear": {},
"resourcesPlaylistActionsPlay": "பிளேலிச்ட்டை விளையாடுங்கள்",
"@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistCount": "{எண்ணிக்கை, பன்மை, = 1 {{count} பிளேலிச்ட்} பிற {{count} பிளேலிச்ட்கள்}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{எண்ணிக்கை, பன்மை, = 1 {Playlist} பிற {Playlists}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesQueueName": "{எண்ணிக்கை, பன்மை, = 1 {Queue} பிற {Queues}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "இது பதிவிறக்கம் செய்யப்பட்ட அனைத்து பாடல் கோப்புகளையும் அகற்றும்.",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "பதிவிறக்கங்களை நீக்கவா?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongCount": "{எண்ணிக்கை, பன்மை, = 1 {{count} பாடல்} பிற {{count} பாடல்கள்}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListsArtistTopSongs": "சிறந்த பாடல்கள்",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{எண்ணிக்கை, பன்மை, = 1 {Song} பிற {Songs}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAdded": "அண்மைக் காலத்தில் சேர்க்கப்பட்டது",
"@resourcesSortByAdded": {},
"resourcesSortByAlbum": "ஆல்பம்",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "ஆல்பம் எண்ணிக்கை",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "கலைஞர்",
"@resourcesSortByArtist": {},
"resourcesSortByName": "பெயர்",
"@resourcesSortByName": {},
"resourcesSortByRandom": "சீரற்ற",
"@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "அண்மைக் காலத்தில் விளையாடியது",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByTitle": "தலைப்பு",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "அண்மைக் காலத்தில் புதுப்பிக்கப்பட்டது",
"@resourcesSortByUpdated": {},
"resourcesSortByYear": "ஆண்டு",
"@resourcesSortByYear": {},
"searchHeaderTitle": "தேடல்: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchInputPlaceholder": "தேடல்",
"@searchInputPlaceholder": {},
"searchMoreResults": "மேலும்…",
"@searchMoreResults": {},
"searchNowPlayingContext": "தேடல் முடிவுகள்",
"@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "உரிமங்கள்",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsSupport": "டெவலப்பரை ஆதரிக்கவும்",
"@settingsAboutActionsSupport": {},
"settingsAboutName": "பற்றி",
"@settingsAboutName": {},
"settingsAboutShareLogs": "பதிவுகளைப் பகிரவும்",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "பதிவு கோப்பைத் தேர்வுசெய்க",
"@settingsAboutChooseLog": {},
"settingsAboutVersion": "பதிப்பு {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsMusicOptionsScrobbleDescriptionOn": "ச்க்ரோபல் ப்ளே வரலாறு",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "ச்க்ரோபில் நாடகங்கள்",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "பிணையம்",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "அதிகபட்ச பிட்ரேட் (மொபைல் தரவு)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "அதிகபட்ச பிட்ரேட் (வைஃபை)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMinBufferTitle": "குறைந்தபட்ச இடையக நேரம்",
"@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "அதிகபட்ச இடையக நேரம்",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsOfflineMode": "இணைப்பில்லாத பயன்முறை",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "இசையை ஒத்திசைக்க இணையத்தைப் பயன்படுத்தவும்.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "இசையை ஒத்திசைக்க அல்லது இசைக்க இணையத்தைப் பயன்படுத்த வேண்டாம்.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormat": "விருப்பமான ச்ட்ரீம் வடிவம்",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "சேவையக இயல்புநிலையைப் பயன்படுத்தவும்",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkValuesKbps": "{value} kbps",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesSeconds": "{value} விநாடிகள்",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesUnlimitedKbps": "வரம்பற்றது",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "தெளிவான பட தற்காலிக சேமிப்பு",
"@settingsResetActionsClearImageCache": {},
"settingsResetName": "மீட்டமை",
"@settingsResetName": {},
"settingsServersActionsAdd": "மூலத்தைச் சேர்க்கவும்",
"@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "நீக்கு",
"@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "மூலத்தைத் திருத்து",
"@settingsServersActionsEdit": {},
"settingsServersActionsSave": "சேமி",
"@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "சோதனை இணைப்பு",
"@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "முகவரி",
"@settingsServersFieldsAddress": {},
"settingsServersFieldsName": "பெயர்",
"@settingsServersFieldsName": {},
"settingsServersFieldsPassword": "கடவுச்சொல்",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "பயனர்பெயர்",
"@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "{address} தோல்வியுற்றது, அமைப்புகள் அல்லது சேவையகத்தை சரிபார்க்கவும்",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersMessagesConnectionOk": "{address} சரி!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "கடவுச்சொல்லை கிள்ளாக்கு + உப்பு என அனுப்பவும்",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "எளிய கடவுச்சொல்லை கட்டாயப்படுத்துங்கள்",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"actionsCancel": "ரத்துசெய்",
"@actionsCancel": {},
"actionsDelete": "நீக்கு",
"@actionsDelete": {},
"actionsDownload": "பதிவிறக்கம்",
"@actionsDownload": {},
"actionsDownloadCancel": "பதிவிறக்கத்தை ரத்துசெய்",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "பதிவிறக்கம் செய்யப்பட்டதை நீக்கு",
"@actionsDownloadDelete": {}
}

280
lib/l10n/app_th.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"actionsStar": "ดาว",
"@actionsStar": {},
"settingsNetworkValuesKbps": "{value}{value}กิโลบิตต่อวินาที (kbps)",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"actionsDelete": "ลบ",
"@actionsDelete": {},
"resourcesAlbumCount": "{count,plural, other{{count} อัลบั้ม}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"actionsDownload": "ดาวน์โหลด",
"@actionsDownload": {},
"actionsDownloadCancel": "ยกเลิกการดาวน์โหลด",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "ลบรายการที่ดาวน์โหลดเสร็จแล้ว",
"@actionsDownloadDelete": {},
"actionsOk": "ตกลง",
"@actionsOk": {},
"actionsUnstar": "ยกเลิกดาว",
"@actionsUnstar": {},
"controlsShuffle": "เล่นแบบสุ่ม",
"@controlsShuffle": {},
"navigationTabsHome": "หน้าหลัก",
"@navigationTabsHome": {},
"navigationTabsLibrary": "ห้องสมุด",
"@navigationTabsLibrary": {},
"navigationTabsSearch": "ค้นหา",
"@navigationTabsSearch": {},
"navigationTabsSettings": "การตั้งค่า",
"@navigationTabsSettings": {},
"resourcesAlbumActionsView": "ดูอัลบั้ม",
"@resourcesAlbumActionsView": {},
"resourcesArtistActionsView": "ดูศิลปิน",
"@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "จัดเรียงศิลปิน",
"@resourcesArtistListsSort": {},
"resourcesAlbumName": "{count,plural, other{อัลบั้ม}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterAlbum": "อัลบั้ม",
"@resourcesFilterAlbum": {},
"resourcesFilterOwner": "เจ้าของ",
"@resourcesFilterOwner": {},
"resourcesFilterStarred": "ให้ดาว",
"@resourcesFilterStarred": {},
"resourcesFilterYear": "ปี",
"@resourcesFilterYear": {},
"resourcesPlaylistActionsPlay": "เล่นเพลย์ลิส",
"@resourcesPlaylistActionsPlay": {},
"resourcesQueueName": "{count,plural, =1{คิว} other{คิว}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, =1{{count} เพลง} other{{count} เพลง}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllTitle": "ต้องการลบดาวน์โหลด?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongListsArtistTopSongs": "เพลงยอดนิยม",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSortByAdded": "เพลงที่เพิ่มล่าสุด",
"@resourcesSortByAdded": {},
"resourcesSortByAlbum": "อัลบั้ม",
"@resourcesSortByAlbum": {},
"resourcesSortByName": "ชื่อเพลง",
"@resourcesSortByName": {},
"resourcesSortByRandom": "สุ่มเพลง",
"@resourcesSortByRandom": {},
"resourcesSortByYear": "ปี",
"@resourcesSortByYear": {},
"searchHeaderTitle": "ค้นหา: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchInputPlaceholder": "ค้นหา",
"@searchInputPlaceholder": {},
"searchMoreResults": "เพิ่มเติม…",
"@searchMoreResults": {},
"settingsAboutActionsLicenses": "ใบอนุญาต",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "โฮมเพจของโครงการ",
"@settingsAboutActionsProjectHomepage": {},
"settingsAboutActionsSupport": "ให้การสนับสนุนผู้พัฒนา 💜",
"@settingsAboutActionsSupport": {},
"settingsAboutName": "เกี่ยวกับ",
"@settingsAboutName": {},
"settingsAboutShareLogs": "แบ่งปันล็อกไฟล์",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "เลือก log ไฟล์",
"@settingsAboutChooseLog": {},
"settingsAboutVersion": "เวอร์ชั่น {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsMusicOptionsScrobbleDescriptionOn": "เปิด scrobble การเล่นเพลงในอดีต",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "เล่น scrobble",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "เคลือข่าย",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "บิทเรตสูงสุด (ไวไฟ)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMinBufferTitle": "บัฟเฟอร์เวลาต่ำสุด",
"@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkOptionsOfflineModeOn": "ปิดใช้อินเตอร์เน็ตเพื่อให้ข้อมูลเพลงเหมือนกันหรือเล่นเพลง",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsStreamFormat": "รูปแบบการสตรีมเพลงที่ต้องการ",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "ใช้ค่าเริ่มต้นของเซิร์ฟเวอร์",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkValuesSeconds": "{value} วินาที",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesUnlimitedKbps": "ไม่จำกัด",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetName": "เริ่มใหม่",
"@settingsResetName": {},
"settingsServersActionsAdd": "เพิ่มเซิร์ฟเวอร์",
"@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "ลบ",
"@settingsServersActionsDelete": {},
"settingsServersActionsSave": "บันทึก",
"@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "ทดสอบการเชื่อมต่อ",
"@settingsServersActionsTestConnection": {},
"settingsServersFieldsName": "ชื่อ",
"@settingsServersFieldsName": {},
"settingsServersFieldsPassword": "รหัสผ่าน",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "ชื่อผู้ใช้",
"@settingsServersFieldsUsername": {},
"settingsServersName": "เซิร์ฟเวอร์",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "บังคับใช้รหัสผ่านแบบข้อความ",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"actionsCancel": "ยกเลิก",
"@actionsCancel": {},
"resourcesAlbumListsSort": "จัดเรียงอัลบั้ม",
"@resourcesAlbumListsSort": {},
"settingsServersActionsEdit": "แก้ไขเซิร์ฟเวอร์",
"@settingsServersActionsEdit": {},
"resourcesSongListDeleteAllContent": "นำเพลงที่ดาวน์โหลดมาทั้งหมดออก",
"@resourcesSongListDeleteAllContent": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "บิทเรตสูงสุด (อินเตอร์เน็ตมือถือ)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"resourcesArtistCount": "{count,plural, other{{count} ศิลปิน}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{count,plural, =1{เพลย์ลิส} other{เพลย์ลิส}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistName": "{count,plural, other{ศิลปิน}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterArtist": "ศิลปิน",
"@resourcesFilterArtist": {},
"resourcesFilterGenre": "ประเภท",
"@resourcesFilterGenre": {},
"resourcesSortByRecentlyPlayed": "เล่นล่าสุด",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByTitle": "ชื่อเพลง",
"@resourcesSortByTitle": {},
"settingsServersFieldsAddress": "ที่อยู่ไอพี",
"@settingsServersFieldsAddress": {},
"settingsNetworkOptionsOfflineMode": "โหมดอ๊อฟไลน์",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsMaxBufferTitle": "บัฟเฟอร์เวลาสูงสุด",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsServersMessagesConnectionOk": "เชื่อต่อกับ {address} สำเร็จ!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "ส่งรหัสผ่านเป็นโทเคน",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"messagesNothingHere": "ไม่มีอะไรที่นี่…",
"@messagesNothingHere": {},
"resourcesSortByFrequentlyPlayed": "เพลงที่เล่นบ่อย",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByAlbumCount": "จำนวนอัลบัม",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "ศิลปิน",
"@resourcesSortByArtist": {},
"resourcesSortByUpdated": "อัพเดทล่าสุด",
"@resourcesSortByUpdated": {},
"settingsMusicName": "ดนตรี",
"@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "ปิดการ scrobble การเล่นเพลงในอดีต",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsServersMessagesConnectionFailed": "เชื่อต่อกับ {address} ล้มเหลว, ตรวจสอบการตั้งค่าหรือเซิร์ฟเวอร์",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"searchNowPlayingContext": "ผลการค้นหา",
"@searchNowPlayingContext": {},
"settingsResetActionsClearImageCache": "ลบแคชของรูปภาพ",
"@settingsResetActionsClearImageCache": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "ส่งรหัสผ่านเป็นข้อความ (ล้าสมัย ต้องแน่ใจว่าการเชื่อมต่อของคุณปลอดภัย)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"resourcesAlbumActionsPlay": "เล่นอัลบั้ม",
"@resourcesAlbumActionsPlay": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} เพลย์ลิส} other{{count} เพลย์ลิส}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongName": "{count,plural, =1{เพลง} other{เพลง}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsNetworkOptionsOfflineModeOff": "เปิดใช้อินเตอร์เน็ตเพื่อให้ข้อมูลเพลงเหมือนกัน",
"@settingsNetworkOptionsOfflineModeOff": {}
}

280
lib/l10n/app_uk.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"actionsStar": "Зірка",
"@actionsStar": {},
"navigationTabsSearch": "Пошук",
"@navigationTabsSearch": {},
"settingsServersFieldsPassword": "Пароль",
"@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "Ім'я користувача",
"@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "Не вдалося підключитися до {address}, перевірте налаштування або сервер",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersMessagesConnectionOk": "Підключення до {address} вдале!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersName": "Джерела",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "Надішліть пароль як токен + сіль",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "Надішліть пароль у відкритому тексті (застарілий, переконайтеся, що ваше з'єднання захищене!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "Примусове введення простого текстового пароля",
"@settingsServersOptionsForcePlaintextPasswordTitle": {},
"navigationTabsSettings": "Налаштування",
"@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "Відтворити альбом",
"@resourcesAlbumActionsPlay": {},
"searchHeaderTitle": "Пошук: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"settingsMusicOptionsScrobbleTitle": "Відстеження відтворення",
"@settingsMusicOptionsScrobbleTitle": {},
"actionsCancel": "Скасувати",
"@actionsCancel": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Слідкувати за історією відтворення",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"resourcesArtistCount": "{count,plural, =1{{count} виконавець} other{{count} виконавці}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByUpdated": "Нещодавно оновлені",
"@resourcesSortByUpdated": {},
"actionsDelete": "Видалити",
"@actionsDelete": {},
"resourcesSortByAlbum": "Альбом",
"@resourcesSortByAlbum": {},
"resourcesSortByName": "Ім'я",
"@resourcesSortByName": {},
"resourcesSortByRecentlyPlayed": "Нещодавно відворені",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByFrequentlyPlayed": "Часто відтворювані",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSongListsArtistTopSongs": "Найкращі пісні",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSortByYear": "Рік",
"@resourcesSortByYear": {},
"resourcesFilterStarred": "Улюблене",
"@resourcesFilterStarred": {},
"resourcesFilterYear": "Рік",
"@resourcesFilterYear": {},
"actionsDownloadDelete": "Видалити завантажене",
"@actionsDownloadDelete": {},
"resourcesAlbumName": "{count,plural, =1{Альбом} other{Альбоми}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"actionsOk": "OK",
"@actionsOk": {},
"actionsDownload": "Завантажити",
"@actionsDownload": {},
"controlsShuffle": "Перемішати",
"@controlsShuffle": {},
"actionsDownloadCancel": "Скасувати завантаження",
"@actionsDownloadCancel": {},
"actionsUnstar": "Зняти зірку",
"@actionsUnstar": {},
"navigationTabsLibrary": "Бібліотека",
"@navigationTabsLibrary": {},
"messagesNothingHere": "Тут нічого немає…",
"@messagesNothingHere": {},
"navigationTabsHome": "Головна",
"@navigationTabsHome": {},
"resourcesArtistName": "{count,plural, =1{Виконавець} other{Виконавці}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumActionsView": "Переглянути альбом",
"@resourcesAlbumActionsView": {},
"resourcesAlbumCount": "{count,plural, =1{{count} альбом} other{{count} альбоми}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumListsSort": "Сортувати альбоми",
"@resourcesAlbumListsSort": {},
"resourcesFilterGenre": "Жанр",
"@resourcesFilterGenre": {},
"resourcesArtistActionsView": "Переглянути виконавця",
"@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "Сортувати виконавців",
"@resourcesArtistListsSort": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "Максимальний бітрейт (мобільні дані)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"resourcesSongCount": "{count,plural, =1{{count} пісня} other{{count} пісні}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "Це призведе до видалення всіх завантажених файлів пісень.",
"@resourcesSongListDeleteAllContent": {},
"settingsNetworkName": "Мережа",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBufferTitle": "Максимальний час буферизації",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "Мінімальний час буферизації",
"@settingsNetworkOptionsMinBufferTitle": {},
"resourcesFilterAlbum": "Альбом",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "Виконавець",
"@resourcesFilterArtist": {},
"resourcesFilterOwner": "Власник",
"@resourcesFilterOwner": {},
"resourcesPlaylistActionsPlay": "Відтворити плейлист",
"@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistCount": "{count,plural, =1{{count} плейлист} other{{count} плейлисти}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{count,plural, =1{Плейлист} other{Плейлисти}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllTitle": "Видалити завантаження?",
"@resourcesSongListDeleteAllTitle": {},
"settingsAboutName": "Про застосунок",
"@settingsAboutName": {},
"settingsAboutShareLogs": "Поділитися журналами",
"@settingsAboutShareLogs": {},
"resourcesQueueName": "{count,plural, =1{Черга} other{Черги}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongName": "{count,plural, =1{Пісня} other{Пісні}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAdded": "Нещодавно додані",
"@resourcesSortByAdded": {},
"resourcesSortByAlbumCount": "Кількість альбомів",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "Виконавець",
"@resourcesSortByArtist": {},
"resourcesSortByRandom": "Випадково",
"@resourcesSortByRandom": {},
"resourcesSortByTitle": "Назва",
"@resourcesSortByTitle": {},
"searchInputPlaceholder": "Введіть заголовок/опис",
"@searchInputPlaceholder": {},
"searchMoreResults": "Більше…",
"@searchMoreResults": {},
"settingsAboutActionsProjectHomepage": "Головна сторінка проєкту",
"@settingsAboutActionsProjectHomepage": {},
"settingsMusicOptionsScrobbleDescriptionOff": "Не слідкувати за історією відтворення",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"searchNowPlayingContext": "Результати пошуку",
"@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "Ліцензії",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsSupport": "Підтримайте розробника 💜",
"@settingsAboutActionsSupport": {},
"settingsNetworkOptionsOfflineMode": "Автономний режим",
"@settingsNetworkOptionsOfflineMode": {},
"settingsAboutChooseLog": "Виберіть файл журналу",
"@settingsAboutChooseLog": {},
"settingsAboutVersion": "версія {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsMusicName": "Музика",
"@settingsMusicName": {},
"settingsNetworkOptionsOfflineModeOn": "Не використовувати інтернет для синхронізації або відтворення музики.",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "Максимальний бітрейт (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsOfflineModeOff": "Використовувати інтернет для синхронізації музики.",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsStreamFormatServerDefault": "Використовувати сервер за замовчуванням",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkOptionsStreamFormat": "Бажаний формат потоку",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkValuesKbps": "{value}кбіт/с",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesSeconds": "{value} секунд",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesUnlimitedKbps": "Необмежено",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsServersActionsAdd": "Додати джерело",
"@settingsServersActionsAdd": {},
"settingsResetActionsClearImageCache": "Очистити кеш зображень",
"@settingsResetActionsClearImageCache": {},
"settingsServersActionsSave": "Зберегти",
"@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "Тестове підключення",
"@settingsServersActionsTestConnection": {},
"settingsServersActionsEdit": "Редагувати джерело",
"@settingsServersActionsEdit": {},
"settingsServersFieldsAddress": "Адреса",
"@settingsServersFieldsAddress": {},
"settingsResetName": "Скинути",
"@settingsResetName": {},
"settingsServersActionsDelete": "Видалити",
"@settingsServersActionsDelete": {},
"settingsServersFieldsName": "Ім'я",
"@settingsServersFieldsName": {}
}

280
lib/l10n/app_zh-Hant.arb Normal file
View File

@@ -0,0 +1,280 @@
{
"messagesNothingHere": "什麼都沒有…",
"@messagesNothingHere": {},
"resourcesFilterYear": "年份",
"@resourcesFilterYear": {},
"settingsServersFieldsPassword": "密碼",
"@settingsServersFieldsPassword": {},
"actionsDownloadDelete": "刪除已下載",
"@actionsDownloadDelete": {},
"actionsOk": "確定",
"@actionsOk": {},
"actionsStar": "收藏",
"@actionsStar": {},
"actionsCancel": "取消",
"@actionsCancel": {},
"actionsDelete": "刪除",
"@actionsDelete": {},
"actionsDownload": "下載",
"@actionsDownload": {},
"actionsDownloadCancel": "取消下載",
"@actionsDownloadCancel": {},
"actionsUnstar": "移除收藏",
"@actionsUnstar": {},
"controlsShuffle": "隨機播放",
"@controlsShuffle": {},
"navigationTabsHome": "首頁",
"@navigationTabsHome": {},
"navigationTabsLibrary": "所有",
"@navigationTabsLibrary": {},
"navigationTabsSearch": "搜尋",
"@navigationTabsSearch": {},
"navigationTabsSettings": "設定",
"@navigationTabsSettings": {},
"resourcesArtistActionsView": "查看歌手",
"@resourcesArtistActionsView": {},
"resourcesAlbumActionsPlay": "播放專輯",
"@resourcesAlbumActionsPlay": {},
"resourcesArtistCount": "{count,plural, other{{count} 位歌手}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumActionsView": "查看專輯",
"@resourcesAlbumActionsView": {},
"resourcesAlbumCount": "{count,plural, other{{count} 張專輯}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesAlbumListsSort": "專輯排序",
"@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, other{專輯}}",
"@resourcesAlbumName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistListsSort": "歌手排序",
"@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, other{歌手}}",
"@resourcesArtistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesFilterOwner": "所有者",
"@resourcesFilterOwner": {},
"resourcesFilterStarred": "已收藏",
"@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "全部播放",
"@resourcesPlaylistActionsPlay": {},
"resourcesFilterAlbum": "專輯",
"@resourcesFilterAlbum": {},
"resourcesFilterArtist": "歌手",
"@resourcesFilterArtist": {},
"resourcesFilterGenre": "根據類型",
"@resourcesFilterGenre": {},
"resourcesPlaylistCount": "{count,plural, other{{count} 張播放清單}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesPlaylistName": "{count,plural, other{播放清單}}",
"@resourcesPlaylistName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesQueueName": "{count,plural, other{佇列}}",
"@resourcesQueueName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListsArtistTopSongs": "熱門歌曲",
"@resourcesSongListsArtistTopSongs": {},
"resourcesSongCount": "{count,plural, other{{count} 首歌曲}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongListDeleteAllContent": "此操作會刪除所有已下載的歌曲檔。",
"@resourcesSongListDeleteAllContent": {},
"resourcesSongListDeleteAllTitle": "刪除下載的內容?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSongName": "{count,plural, other{歌曲}}",
"@resourcesSongName": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSortByAdded": "最近新增",
"@resourcesSortByAdded": {},
"resourcesSortByAlbum": "專輯",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "專輯數量",
"@resourcesSortByAlbumCount": {},
"resourcesSortByArtist": "根據歌手",
"@resourcesSortByArtist": {},
"resourcesSortByName": "根據名稱",
"@resourcesSortByName": {},
"resourcesSortByRandom": "隨機",
"@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "最近播放",
"@resourcesSortByRecentlyPlayed": {},
"resourcesSortByFrequentlyPlayed": "最常播放",
"@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByTitle": "標題",
"@resourcesSortByTitle": {},
"resourcesSortByUpdated": "最近新增",
"@resourcesSortByUpdated": {},
"resourcesSortByYear": "根據年份",
"@resourcesSortByYear": {},
"searchHeaderTitle": "搜尋: {query}",
"@searchHeaderTitle": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchInputPlaceholder": "搜尋",
"@searchInputPlaceholder": {},
"searchMoreResults": "更多…",
"@searchMoreResults": {},
"searchNowPlayingContext": "搜尋結果",
"@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "許可",
"@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "專案首頁",
"@settingsAboutActionsProjectHomepage": {},
"settingsAboutActionsSupport": "支援開發者",
"@settingsAboutActionsSupport": {},
"settingsAboutName": "關於",
"@settingsAboutName": {},
"settingsAboutShareLogs": "分享日誌",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "選擇一份日誌檔",
"@settingsAboutChooseLog": {},
"settingsAboutVersion": "版本 {version}",
"@settingsAboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settingsMusicName": "音樂",
"@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "不記錄您的播放歷史",
"@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "記錄您的播放歷史",
"@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "記錄播放歷史",
"@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "網路",
"@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "最大位元速率 (行動流量)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "最大位元速率 (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "最大緩衝時間",
"@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "最小緩衝時間",
"@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkOptionsOfflineMode": "離線模式",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsOfflineModeOff": "使用網際網路同步音樂。",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsStreamFormat": "偏好的串流媒體格式",
"@settingsNetworkOptionsStreamFormat": {},
"settingsNetworkOptionsStreamFormatServerDefault": "使用伺服器預設設定",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkOptionsOfflineModeOn": "不使用網際網路同步或播放音樂。",
"@settingsNetworkOptionsOfflineModeOn": {},
"settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesSeconds": "{value} 秒",
"@settingsNetworkValuesSeconds": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"settingsNetworkValuesUnlimitedKbps": "不限制",
"@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "清除圖片暫存",
"@settingsResetActionsClearImageCache": {},
"settingsResetName": "重置",
"@settingsResetName": {},
"settingsServersActionsAdd": "新增伺服器",
"@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "刪除",
"@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "編輯伺服器",
"@settingsServersActionsEdit": {},
"settingsServersActionsSave": "保存",
"@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "測試連線",
"@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "地址",
"@settingsServersFieldsAddress": {},
"settingsServersFieldsName": "名稱",
"@settingsServersFieldsName": {},
"settingsServersFieldsUsername": "用戶名稱",
"@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "連接到 {address} 失敗,檢查設定或伺服器",
"@settingsServersMessagesConnectionFailed": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersMessagesConnectionOk": "連接到 {address} 正常!",
"@settingsServersMessagesConnectionOk": {
"placeholders": {
"address": {
"type": "String"
}
}
},
"settingsServersName": "伺服器",
"@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "密碼以 token + salt 加密發送",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "密碼以明文發送(不推薦,注意網路連線安全!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "強制使用純文字密碼",
"@settingsServersOptionsForcePlaintextPasswordTitle": {}
}

View File

@@ -1,196 +1,280 @@
{ {
"actionsStar": "收藏", "actionsStar": "收藏",
"@actionsStar": {}, "@actionsStar": {},
"actionsUnstar": "移除收藏", "actionsUnstar": "移除收藏",
"@actionsUnstar": {}, "@actionsUnstar": {},
"messagesNothingHere": "什么都没有…", "messagesNothingHere": "什么都没有…",
"@messagesNothingHere": {}, "@messagesNothingHere": {},
"navigationTabsHome": "首页", "navigationTabsHome": "首页",
"@navigationTabsHome": {}, "@navigationTabsHome": {},
"navigationTabsLibrary": "所有", "navigationTabsLibrary": "所有",
"@navigationTabsLibrary": {}, "@navigationTabsLibrary": {},
"navigationTabsSearch": "搜索", "navigationTabsSearch": "搜索",
"@navigationTabsSearch": {}, "@navigationTabsSearch": {},
"navigationTabsSettings": "设置", "navigationTabsSettings": "设置",
"@navigationTabsSettings": {}, "@navigationTabsSettings": {},
"resourcesAlbumActionsPlay": "播放专辑", "resourcesAlbumActionsPlay": "播放专辑",
"@resourcesAlbumActionsPlay": {}, "@resourcesAlbumActionsPlay": {},
"resourcesAlbumActionsView": "查看专辑", "resourcesAlbumActionsView": "查看专辑",
"@resourcesAlbumActionsView": {}, "@resourcesAlbumActionsView": {},
"resourcesAlbumListsSort": "专辑排序", "resourcesAlbumListsSort": "专辑排序",
"@resourcesAlbumListsSort": {}, "@resourcesAlbumListsSort": {},
"resourcesAlbumName": "{count,plural, other{专辑}}", "resourcesAlbumName": "{count,plural, other{专辑}}",
"@resourcesAlbumName": { "@resourcesAlbumName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesArtistActionsView": "查看歌手", "resourcesArtistActionsView": "查看歌手",
"@resourcesArtistActionsView": {}, "@resourcesArtistActionsView": {},
"resourcesArtistListsSort": "歌手排序", "resourcesArtistListsSort": "歌手排序",
"@resourcesArtistListsSort": {}, "@resourcesArtistListsSort": {},
"resourcesArtistName": "{count,plural, other{歌手}}", "resourcesArtistName": "{count,plural, other{歌手}}",
"@resourcesArtistName": { "@resourcesArtistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesFilterGenre": "根据类型", "resourcesFilterGenre": "根据类型",
"@resourcesFilterGenre": {}, "@resourcesFilterGenre": {},
"resourcesFilterStarred": "已收藏", "resourcesFilterStarred": "已收藏",
"@resourcesFilterStarred": {}, "@resourcesFilterStarred": {},
"resourcesPlaylistActionsPlay": "全部播放", "resourcesPlaylistActionsPlay": "全部播放",
"@resourcesPlaylistActionsPlay": {}, "@resourcesPlaylistActionsPlay": {},
"resourcesPlaylistName": "{count,plural, other{播放列表}}", "resourcesPlaylistName": "{count,plural, other{播放列表}}",
"@resourcesPlaylistName": { "@resourcesPlaylistName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesQueueName": "{count,plural, other{队列}}", "resourcesQueueName": "{count,plural, other{队列}}",
"@resourcesQueueName": { "@resourcesQueueName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSongListsArtistTopSongs": "热门歌曲", "resourcesSongListsArtistTopSongs": "热门歌曲",
"@resourcesSongListsArtistTopSongs": {}, "@resourcesSongListsArtistTopSongs": {},
"resourcesSongName": "{count,plural, other{歌曲}}", "resourcesSongName": "{count,plural, other{歌曲}}",
"@resourcesSongName": { "@resourcesSongName": {
"placeholders": { "placeholders": {
"count": { "count": {
"type": "int" "type": "int"
} }
} }
}, },
"resourcesSortByAdded": "最近添加", "resourcesSortByAdded": "最近添加",
"@resourcesSortByAdded": {}, "@resourcesSortByAdded": {},
"resourcesSortByArtist": "根据歌手", "resourcesSortByArtist": "根据歌手",
"@resourcesSortByArtist": {}, "@resourcesSortByArtist": {},
"resourcesSortByFrequentlyPlayed": "播放最多", "resourcesSortByFrequentlyPlayed": "播放最多",
"@resourcesSortByFrequentlyPlayed": {}, "@resourcesSortByFrequentlyPlayed": {},
"resourcesSortByName": "根据名称", "resourcesSortByName": "根据名称",
"@resourcesSortByName": {}, "@resourcesSortByName": {},
"resourcesSortByRandom": "随机", "resourcesSortByRandom": "随机",
"@resourcesSortByRandom": {}, "@resourcesSortByRandom": {},
"resourcesSortByRecentlyPlayed": "最近播放", "resourcesSortByRecentlyPlayed": "最近播放",
"@resourcesSortByRecentlyPlayed": {}, "@resourcesSortByRecentlyPlayed": {},
"resourcesSortByYear": "根据年份", "resourcesSortByYear": "根据年份",
"@resourcesSortByYear": {}, "@resourcesSortByYear": {},
"searchHeaderTitle": "搜索: {query}", "searchHeaderTitle": "搜索: {query}",
"@searchHeaderTitle": { "@searchHeaderTitle": {
"placeholders": { "placeholders": {
"query": { "query": {
"type": "String" "type": "String"
} }
} }
}, },
"searchInputPlaceholder": "搜索", "searchInputPlaceholder": "搜索",
"@searchInputPlaceholder": {}, "@searchInputPlaceholder": {},
"searchMoreResults": "更多…", "searchMoreResults": "更多…",
"@searchMoreResults": {}, "@searchMoreResults": {},
"searchNowPlayingContext": "搜索结果", "searchNowPlayingContext": "搜索结果",
"@searchNowPlayingContext": {}, "@searchNowPlayingContext": {},
"settingsAboutActionsLicenses": "许可", "settingsAboutActionsLicenses": "许可",
"@settingsAboutActionsLicenses": {}, "@settingsAboutActionsLicenses": {},
"settingsAboutActionsProjectHomepage": "项目地址", "settingsAboutActionsProjectHomepage": "项目地址",
"@settingsAboutActionsProjectHomepage": {}, "@settingsAboutActionsProjectHomepage": {},
"settingsAboutName": "关于", "settingsAboutName": "关于",
"@settingsAboutName": {}, "@settingsAboutName": {},
"settingsAboutVersion": "版本 {version}", "settingsAboutVersion": "版本 {version}",
"@settingsAboutVersion": { "@settingsAboutVersion": {
"placeholders": { "placeholders": {
"version": { "version": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsMusicName": "音乐", "settingsMusicName": "音乐",
"@settingsMusicName": {}, "@settingsMusicName": {},
"settingsMusicOptionsScrobbleDescriptionOff": "不记录scrobble历史", "settingsMusicOptionsScrobbleDescriptionOff": "不记录你的播放历史",
"@settingsMusicOptionsScrobbleDescriptionOff": {}, "@settingsMusicOptionsScrobbleDescriptionOff": {},
"settingsMusicOptionsScrobbleDescriptionOn": "Scrobble播放历史", "settingsMusicOptionsScrobbleDescriptionOn": "记录你的播放历史",
"@settingsMusicOptionsScrobbleDescriptionOn": {}, "@settingsMusicOptionsScrobbleDescriptionOn": {},
"settingsMusicOptionsScrobbleTitle": "Scrobble模式", "settingsMusicOptionsScrobbleTitle": "记录播放历史",
"@settingsMusicOptionsScrobbleTitle": {}, "@settingsMusicOptionsScrobbleTitle": {},
"settingsNetworkName": "网络", "settingsNetworkName": "网络",
"@settingsNetworkName": {}, "@settingsNetworkName": {},
"settingsNetworkOptionsMaxBitrateMobileTitle": "最大比特率 (3G/4G/5G)", "settingsNetworkOptionsMaxBitrateMobileTitle": "最大比特率 (移动数据/流量)",
"@settingsNetworkOptionsMaxBitrateMobileTitle": {}, "@settingsNetworkOptionsMaxBitrateMobileTitle": {},
"settingsNetworkOptionsMaxBitrateWifiTitle": "最大比特率 (Wi-Fi)", "settingsNetworkOptionsMaxBitrateWifiTitle": "最大比特率 (Wi-Fi)",
"@settingsNetworkOptionsMaxBitrateWifiTitle": {}, "@settingsNetworkOptionsMaxBitrateWifiTitle": {},
"settingsNetworkOptionsMaxBufferTitle": "最大缓冲时间", "settingsNetworkOptionsMaxBufferTitle": "最大缓冲时间",
"@settingsNetworkOptionsMaxBufferTitle": {}, "@settingsNetworkOptionsMaxBufferTitle": {},
"settingsNetworkOptionsMinBufferTitle": "最小缓冲时间", "settingsNetworkOptionsMinBufferTitle": "最小缓冲时间",
"@settingsNetworkOptionsMinBufferTitle": {}, "@settingsNetworkOptionsMinBufferTitle": {},
"settingsNetworkValuesKbps": "{value}kbps", "settingsNetworkValuesKbps": "{value}kbps",
"@settingsNetworkValuesKbps": { "@settingsNetworkValuesKbps": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesSeconds": "{value} 秒", "settingsNetworkValuesSeconds": "{value} 秒",
"@settingsNetworkValuesSeconds": { "@settingsNetworkValuesSeconds": {
"placeholders": { "placeholders": {
"value": { "value": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsNetworkValuesUnlimitedKbps": "不限制", "settingsNetworkValuesUnlimitedKbps": "不限制",
"@settingsNetworkValuesUnlimitedKbps": {}, "@settingsNetworkValuesUnlimitedKbps": {},
"settingsResetActionsClearImageCache": "清除图片缓存", "settingsResetActionsClearImageCache": "清除图片缓存",
"@settingsResetActionsClearImageCache": {}, "@settingsResetActionsClearImageCache": {},
"settingsResetName": "重置", "settingsResetName": "重置",
"@settingsResetName": {}, "@settingsResetName": {},
"settingsServersActionsAdd": "添加服务器", "settingsServersActionsAdd": "添加服务器",
"@settingsServersActionsAdd": {}, "@settingsServersActionsAdd": {},
"settingsServersActionsDelete": "删除", "settingsServersActionsDelete": "删除",
"@settingsServersActionsDelete": {}, "@settingsServersActionsDelete": {},
"settingsServersActionsEdit": "编辑服务器", "settingsServersActionsEdit": "编辑服务器",
"@settingsServersActionsEdit": {}, "@settingsServersActionsEdit": {},
"settingsServersActionsSave": "保存", "settingsServersActionsSave": "保存",
"@settingsServersActionsSave": {}, "@settingsServersActionsSave": {},
"settingsServersActionsTestConnection": "测试连接", "settingsServersActionsTestConnection": "测试连接",
"@settingsServersActionsTestConnection": {}, "@settingsServersActionsTestConnection": {},
"settingsServersFieldsAddress": "地址", "settingsServersFieldsAddress": "地址",
"@settingsServersFieldsAddress": {}, "@settingsServersFieldsAddress": {},
"settingsServersFieldsPassword": "密码", "settingsServersFieldsPassword": "密码",
"@settingsServersFieldsPassword": {}, "@settingsServersFieldsPassword": {},
"settingsServersFieldsUsername": "用户名", "settingsServersFieldsUsername": "用户名",
"@settingsServersFieldsUsername": {}, "@settingsServersFieldsUsername": {},
"settingsServersMessagesConnectionFailed": "连接到 {address} 失败,检查设置或服务器", "settingsServersMessagesConnectionFailed": "连接到 {address} 失败,检查设置或服务器",
"@settingsServersMessagesConnectionFailed": { "@settingsServersMessagesConnectionFailed": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersMessagesConnectionOk": "连接到 {address} 正常!", "settingsServersMessagesConnectionOk": "连接到 {address} 正常!",
"@settingsServersMessagesConnectionOk": { "@settingsServersMessagesConnectionOk": {
"placeholders": { "placeholders": {
"address": { "address": {
"type": "String" "type": "String"
} }
} }
}, },
"settingsServersName": "服务器", "settingsServersName": "服务器",
"@settingsServersName": {}, "@settingsServersName": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOff": "密码以 token + salt 加密发送", "settingsServersOptionsForcePlaintextPasswordDescriptionOff": "密码以 token + salt 加密发送",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOff": {},
"settingsServersOptionsForcePlaintextPasswordDescriptionOn": "密码以明文发送(不推荐,注意链接安全!)", "settingsServersOptionsForcePlaintextPasswordDescriptionOn": "密码以明文发送(不推荐,注意链接安全!)",
"@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {}, "@settingsServersOptionsForcePlaintextPasswordDescriptionOn": {},
"settingsServersOptionsForcePlaintextPasswordTitle": "强制使用明文密码", "settingsServersOptionsForcePlaintextPasswordTitle": "强制使用明文密码",
"@settingsServersOptionsForcePlaintextPasswordTitle": {} "@settingsServersOptionsForcePlaintextPasswordTitle": {},
} "actionsDownload": "下载",
"@actionsDownload": {},
"actionsDownloadCancel": "取消下载",
"@actionsDownloadCancel": {},
"actionsDownloadDelete": "删除已下载",
"@actionsDownloadDelete": {},
"actionsOk": "确定",
"@actionsOk": {},
"resourcesFilterArtist": "歌手",
"@resourcesFilterArtist": {},
"resourcesFilterOwner": "所有者",
"@resourcesFilterOwner": {},
"resourcesSongListDeleteAllTitle": "删除下载的内容?",
"@resourcesSongListDeleteAllTitle": {},
"resourcesSortByAlbum": "专辑",
"@resourcesSortByAlbum": {},
"resourcesSortByAlbumCount": "专辑数量",
"@resourcesSortByAlbumCount": {},
"resourcesSortByUpdated": "最近添加",
"@resourcesSortByUpdated": {},
"settingsAboutActionsSupport": "支持开发者",
"@settingsAboutActionsSupport": {},
"resourcesFilterAlbum": "专辑",
"@resourcesFilterAlbum": {},
"resourcesSortByTitle": "标题",
"@resourcesSortByTitle": {},
"actionsCancel": "取消",
"@actionsCancel": {},
"actionsDelete": "删除",
"@actionsDelete": {},
"resourcesFilterYear": "年份",
"@resourcesFilterYear": {},
"resourcesSongListDeleteAllContent": "该操作会删除所有已下载的歌曲文件。",
"@resourcesSongListDeleteAllContent": {},
"settingsAboutShareLogs": "分享日志",
"@settingsAboutShareLogs": {},
"settingsAboutChooseLog": "选择一份日志文件",
"@settingsAboutChooseLog": {},
"settingsNetworkOptionsOfflineModeOff": "使用互联网同步音乐。",
"@settingsNetworkOptionsOfflineModeOff": {},
"settingsNetworkOptionsOfflineModeOn": "不使用互联网同步或播放音乐。",
"@settingsNetworkOptionsOfflineModeOn": {},
"controlsShuffle": "随机播放",
"@controlsShuffle": {},
"resourcesAlbumCount": "{count,plural, other{{count} 张专辑}}",
"@resourcesAlbumCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesArtistCount": "{count,plural, other{{count} 位歌手}}",
"@resourcesArtistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"resourcesSongCount": "{count,plural, other{{count} 首歌曲}}",
"@resourcesSongCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"settingsNetworkOptionsOfflineMode": "离线模式",
"@settingsNetworkOptionsOfflineMode": {},
"settingsNetworkOptionsStreamFormatServerDefault": "使用服务器默认设置",
"@settingsNetworkOptionsStreamFormatServerDefault": {},
"settingsNetworkOptionsStreamFormat": "偏好的流媒体格式",
"@settingsNetworkOptionsStreamFormat": {},
"settingsServersFieldsName": "名称",
"@settingsServersFieldsName": {},
"resourcesPlaylistCount": "{count,plural, other{{count} 张播放列表}}",
"@resourcesPlaylistCount": {
"placeholders": {
"count": {
"type": "int"
}
}
}
}

209
lib/log.dart Normal file
View File

@@ -0,0 +1,209 @@
// import 'dart:convert';
import 'dart:io';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
class AnsiColor {
/// ANSI Control Sequence Introducer, signals the terminal for new settings.
static const ansiEsc = '\x1B[';
/// Reset all colors and options for current SGRs to terminal defaults.
static const ansiDefault = '${ansiEsc}0m';
final int? fg;
final int? bg;
final bool color;
AnsiColor.none()
: fg = null,
bg = null,
color = false;
AnsiColor.fg(this.fg)
: bg = null,
color = true;
AnsiColor.bg(this.bg)
: fg = null,
color = true;
@override
String toString() {
if (fg != null) {
return '${ansiEsc}38;5;${fg}m';
} else if (bg != null) {
return '${ansiEsc}48;5;${bg}m';
} else {
return '';
}
}
String call(String msg) {
if (color) {
// ignore: unnecessary_brace_in_string_interps
return '${this}$msg$ansiDefault';
} else {
return msg;
}
}
AnsiColor toFg() => AnsiColor.fg(bg);
AnsiColor toBg() => AnsiColor.bg(fg);
/// Defaults the terminal's foreground color without altering the background.
String get resetForeground => color ? '${ansiEsc}39m' : '';
/// Defaults the terminal's background color without altering the foreground.
String get resetBackground => color ? '${ansiEsc}49m' : '';
static int grey(double level) => 232 + (level.clamp(0.0, 1.0) * 23).round();
}
final levelColors = {
Level.FINEST: AnsiColor.fg(AnsiColor.grey(0.5)),
Level.FINER: AnsiColor.fg(AnsiColor.grey(0.5)),
Level.FINE: AnsiColor.fg(AnsiColor.grey(0.5)),
Level.CONFIG: AnsiColor.fg(81),
Level.INFO: AnsiColor.fg(12),
Level.WARNING: AnsiColor.fg(208),
Level.SEVERE: AnsiColor.fg(196),
Level.SHOUT: AnsiColor.fg(199),
};
class LogData {
final String? message;
final Object? data;
const LogData(this.message, this.data);
}
String _format(
LogRecord event, {
bool color = false,
bool time = true,
bool level = true,
bool redact = true,
}) {
var message = '';
if (time) message += '${event.time.toIso8601String()} ';
if (level) message += '${event.level.name} ';
final object = event.object;
if (object is LogData) {
message += '${object.message}';
message += '\n${object.data}';
} else if (object != null) {
message += 'Object';
message += '\n$object';
} else {
message += event.message;
}
if (event.error != null) {
message += '\n${event.error}';
}
if (redact) {
message = _redactUrl(message);
}
if (event.stackTrace != null) {
message += '\n${event.stackTrace}';
}
return color
? message.split('\n').map((e) => levelColors[event.level]!(e)).join('\n')
: message;
}
String _redactUrl(String message) {
if (!_queryReplace('u').hasMatch(message)) {
return message;
}
message = _redactParam(message, 'u');
message = _redactParam(message, 'p');
message = _redactParam(message, 's');
message = _redactParam(message, 't');
return message;
}
RegExp _queryReplace(String key) => RegExp('$key=([^&|\\n|\\t\\s]+)');
String _redactParam(String url, String key) =>
url.replaceAll(_queryReplace(key), '$key=REDACTED');
Future<Directory> logDirectory() async {
return Directory(
p.join((await getApplicationDocumentsDirectory()).path, 'logs'),
);
}
Future<List<File>> logFiles() async {
final dir = await logDirectory();
return dir.listSync().whereType<File>().toList()
..sort(
(a, b) => b.statSync().modified.compareTo(a.statSync().modified),
);
}
File _currentLogFile(String logDir) {
final now = DateTime.now();
return File(p.join(logDir, '${now.year}-${now.month}-${now.day}.txt'));
}
Future<void> _printFile(String event, String logDir) async {
final file = _currentLogFile(logDir);
if (!event.endsWith('\n')) {
event += '\n';
}
await file.writeAsString(event, mode: FileMode.writeOnlyAppend, flush: true);
}
void _printDebug(LogRecord event) {
// ignore: avoid_print
print(_format(event, color: true, time: false, level: false, redact: false));
}
Future<void> _printRelease(LogRecord event, String logDir) async {
await _printFile(
_format(event, color: false, time: true, level: true, redact: true),
logDir,
);
}
final log = Logger('default');
Future<void> initLogging() async {
final dir = (await logDirectory())..create();
final file = _currentLogFile(dir.path);
if (!(await file.exists())) {
await file.create();
}
final files = await logFiles();
if (files.length > 7) {
for (var file in files.slice(7)) {
await file.delete();
}
}
Logger.root.level = kDebugMode ? Level.ALL : Level.INFO;
Logger.root.onRecord.asyncMap((event) async {
if (kDebugMode) {
_printDebug(event);
} else {
await _printRelease(event, dir.path);
}
}).listen((_) {}, cancelOnError: false);
}

View File

@@ -4,6 +4,7 @@ import 'package:stack_trace/stack_trace.dart' as stack_trace;
import 'package:worker_manager/worker_manager.dart'; import 'package:worker_manager/worker_manager.dart';
import 'app/app.dart'; import 'app/app.dart';
import 'log.dart';
void main() async { void main() async {
// TOOD: probably remove before live // TOOD: probably remove before live
@@ -18,5 +19,8 @@ void main() async {
await Executor().warmUp(); await Executor().warmUp();
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
await initLogging();
runApp(const ProviderScope(child: MyApp())); runApp(const ProviderScope(child: MyApp()));
} }

View File

@@ -68,7 +68,8 @@ enum QueueContextType {
album('album'), album('album'),
playlist('playlist'), playlist('playlist'),
library('library'), library('library'),
genre('genre'); genre('genre'),
artist('artist');
const QueueContextType(this.value); const QueueContextType(this.value);
final String value; final String value;

View File

@@ -28,6 +28,7 @@ const _$QueueContextTypeEnumMap = {
QueueContextType.playlist: 'playlist', QueueContextType.playlist: 'playlist',
QueueContextType.library: 'library', QueueContextType.library: 'library',
QueueContextType.genre: 'genre', QueueContextType.genre: 'genre',
QueueContextType.artist: 'artist',
}; };
_$_MediaItemData _$$_MediaItemDataFromJson(Map<String, dynamic> json) => _$_MediaItemData _$$_MediaItemDataFromJson(Map<String, dynamic> json) =>

View File

@@ -4,7 +4,6 @@ import 'dart:math';
import 'package:audio_service/audio_service.dart'; import 'package:audio_service/audio_service.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:drift/drift.dart' show Value; import 'package:drift/drift.dart' show Value;
import 'package:flutter/foundation.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:just_audio/just_audio.dart'; import 'package:just_audio/just_audio.dart';
import 'package:pool/pool.dart'; import 'package:pool/pool.dart';
@@ -14,6 +13,7 @@ import 'package:synchronized/synchronized.dart';
import '../cache/image_cache.dart'; import '../cache/image_cache.dart';
import '../database/database.dart'; import '../database/database.dart';
import '../log.dart';
import '../models/music.dart'; import '../models/music.dart';
import '../models/query.dart'; import '../models/query.dart';
import '../models/support.dart'; import '../models/support.dart';
@@ -122,6 +122,10 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
)); ));
}); });
_player.playbackEventStream.doOnError((e, st) async {
log.warning('playbackEventStream', e, st);
});
shuffleIndicies.listen((value) { shuffleIndicies.listen((value) {
playbackState.add(playbackState.value.copyWith( playbackState.add(playbackState.value.copyWith(
shuffleMode: value != null shuffleMode: value != null
@@ -137,7 +141,7 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
_player.processingStateStream.listen((event) async { _player.processingStateStream.listen((event) async {
if (event == ProcessingState.completed) { if (event == ProcessingState.completed) {
if (_audioSource.length > 0) { if (_audioSource.length > 0) {
yell('completed'); log.fine('completed');
await stop(); await stop();
await seek(Duration.zero); await seek(Duration.zero);
} }
@@ -386,7 +390,7 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
mediaItem.add(slice.current!.mediaItem); mediaItem.add(slice.current!.mediaItem);
queue.add(list.map((e) => e.mediaItem).toList()); queue.add(list.map((e) => e.mediaItem).toList());
yell('addAll'); log.fine('addAll');
await _audioSource.addAll(list.map((e) => e.audioSource).toList()); await _audioSource.addAll(list.map((e) => e.audioSource).toList());
await _player.seek(Duration.zero, index: list.indexOf(slice.current!)); await _player.seek(Duration.zero, index: list.indexOf(slice.current!));
} }
@@ -410,7 +414,7 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
final sourceNeedsPrev = sourceIndex == 0; final sourceNeedsPrev = sourceIndex == 0;
if (sourceNeedsNext && slice.next != null) { if (sourceNeedsNext && slice.next != null) {
yell('add'); log.fine('add');
await _audioSource.add(slice.next!.audioSource); await _audioSource.add(slice.next!.audioSource);
} }
if (sourceNeedsPrev && slice.prev != null) { if (sourceNeedsPrev && slice.prev != null) {
@@ -497,7 +501,7 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
} }
Future<void> _insertFirstAudioSource(AudioSource source) { Future<void> _insertFirstAudioSource(AudioSource source) {
yell('insert'); log.fine('insert');
final wait = _audioSource.insert(0, source); final wait = _audioSource.insert(0, source);
_currentIndexIgnore.add(1); _currentIndexIgnore.add(1);
return wait; return wait;
@@ -505,20 +509,20 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
Future<void> _pruneAudioSources(int keepIndex) async { Future<void> _pruneAudioSources(int keepIndex) async {
if (keepIndex > 0) { if (keepIndex > 0) {
yell('removeRange 0'); log.fine('removeRange 0');
final wait = _audioSource.removeRange(0, keepIndex); final wait = _audioSource.removeRange(0, keepIndex);
_currentIndexIgnore.add(0); _currentIndexIgnore.add(0);
await wait; await wait;
} }
if (_audioSource.length > 1) { if (_audioSource.length > 1) {
yell('removeRange 1'); log.fine('removeRange 1');
await _audioSource.removeRange(1, _audioSource.length); await _audioSource.removeRange(1, _audioSource.length);
} }
} }
Future<void> _clearAudioSource([bool clearMetadata = false]) async { Future<void> _clearAudioSource([bool clearMetadata = false]) async {
// await _player.stop(); // await _player.stop();
yell('_clearAudioSource'); log.fine('_clearAudioSource');
await _audioSource.clear(); await _audioSource.clear();
if (clearMetadata) { if (clearMetadata) {
@@ -697,11 +701,3 @@ class AudioControl extends BaseAudioHandler with QueueHandler, SeekHandler {
} }
} }
} }
void yell(String msg) {
if (kDebugMode) {
print('=================================================================<');
print(msg);
print('=================================================================>');
}
}

View File

@@ -214,7 +214,7 @@ class DownloadService extends _$DownloadService {
Future<void> deleteAll(int sourceId) async { Future<void> deleteAll(int sourceId) async {
final db = ref.read(databaseProvider); final db = ref.read(databaseProvider);
final albumIds = await db.albumIdsWithDownloaded(sourceId).get(); final albumIds = await db.albumIdsWithDownloadStatus(sourceId).get();
for (var id in albumIds) { for (var id in albumIds) {
await deleteAlbum(await (db.albumById(sourceId, id)).getSingle()); await deleteAlbum(await (db.albumById(sourceId, id)).getSingle());
} }

View File

@@ -6,7 +6,7 @@ part of 'download_service.dart';
// RiverpodGenerator // RiverpodGenerator
// ************************************************************************** // **************************************************************************
String _$downloadServiceHash() => r'92e963b5c070f4d1edb0cd81899b16393c2b9a70'; String _$downloadServiceHash() => r'c72c49f980e307f3013467e76b6564d14a34a736';
/// See also [DownloadService]. /// See also [DownloadService].
@ProviderFor(DownloadService) @ProviderFor(DownloadService)

View File

@@ -46,13 +46,15 @@ class SettingsService extends _$SettingsService {
features: IList(), features: IList(),
username: subsonic.username.value, username: subsonic.username.value,
password: subsonic.password.value, password: subsonic.password.value,
useTokenAuth: true, useTokenAuth: subsonic.useTokenAuth.value,
isActive: true, isActive: true,
createdAt: DateTime.now(), createdAt: DateTime.now(),
), ),
ref.read(httpClientProvider), ref.read(httpClientProvider),
); );
await client.test();
final features = IList([ final features = IList([
if (await client.testFeature(SubsonicFeature.emptyQuerySearch)) if (await client.testFeature(SubsonicFeature.emptyQuerySearch))
SubsonicFeature.emptyQuerySearch, SubsonicFeature.emptyQuerySearch,
@@ -66,6 +68,10 @@ class SettingsService extends _$SettingsService {
} }
Future<void> updateSource(SubsonicSettings source) async { Future<void> updateSource(SubsonicSettings source) async {
final client = SubsonicClient(source, ref.read(httpClientProvider));
await client.test();
await _db.updateSource(source); await _db.updateSource(source);
await init(); await init();
} }

View File

@@ -31,7 +31,7 @@ class SyncService extends _$SyncService {
final source = ref.read(musicSourceProvider); final source = ref.read(musicSourceProvider);
final db = ref.read(databaseProvider); final db = ref.read(databaseProvider);
final ids = <String>[]; final ids = <String>{};
await for (var artists in source.allArtists()) { await for (var artists in source.allArtists()) {
ids.addAll(artists.map((e) => e.id.value)); ids.addAll(artists.map((e) => e.id.value));
await db.saveArtists(artists); await db.saveArtists(artists);
@@ -44,7 +44,7 @@ class SyncService extends _$SyncService {
final source = ref.read(musicSourceProvider); final source = ref.read(musicSourceProvider);
final db = ref.read(databaseProvider); final db = ref.read(databaseProvider);
final ids = <String>[]; final ids = <String>{};
await for (var albums in source.allAlbums()) { await for (var albums in source.allAlbums()) {
ids.addAll(albums.map((e) => e.id.value)); ids.addAll(albums.map((e) => e.id.value));
await db.saveAlbums(albums); await db.saveAlbums(albums);
@@ -57,7 +57,7 @@ class SyncService extends _$SyncService {
final source = ref.read(musicSourceProvider); final source = ref.read(musicSourceProvider);
final db = ref.read(databaseProvider); final db = ref.read(databaseProvider);
final ids = <String>[]; final ids = <String>{};
await for (var playlists in source.allPlaylists()) { await for (var playlists in source.allPlaylists()) {
ids.addAll(playlists.map((e) => e.playist.id.value)); ids.addAll(playlists.map((e) => e.playist.id.value));
await db.savePlaylists(playlists); await db.savePlaylists(playlists);
@@ -70,7 +70,7 @@ class SyncService extends _$SyncService {
final source = ref.read(musicSourceProvider); final source = ref.read(musicSourceProvider);
final db = ref.read(databaseProvider); final db = ref.read(databaseProvider);
final ids = <String>[]; final ids = <String>{};
await for (var songs in source.allSongs()) { await for (var songs in source.allSongs()) {
ids.addAll(songs.map((e) => e.id.value)); ids.addAll(songs.map((e) => e.id.value));
await db.saveSongs(songs); await db.saveSongs(songs);

View File

@@ -6,7 +6,7 @@ part of 'sync_service.dart';
// RiverpodGenerator // RiverpodGenerator
// ************************************************************************** // **************************************************************************
String _$syncServiceHash() => r'2b8da374c3143bc56f17115440d57bc70468a17e'; String _$syncServiceHash() => r'58ebee4e6f055b64ee6789ae43d63c0e15c679e0';
/// See also [SyncService]. /// See also [SyncService].
@ProviderFor(SyncService) @ProviderFor(SyncService)

View File

@@ -1,6 +1,8 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:rxdart/rxdart.dart';
import '../database/database.dart'; import '../database/database.dart';
import '../log.dart';
import '../state/settings.dart'; import '../state/settings.dart';
abstract class BaseMusicSource { abstract class BaseMusicSource {
@@ -40,25 +42,33 @@ class MusicSource implements BaseMusicSource {
@override @override
Stream<Iterable<AlbumsCompanion>> allAlbums() { Stream<Iterable<AlbumsCompanion>> allAlbums() {
_testOnline(); _testOnline();
return _source.allAlbums(); return _source
.allAlbums()
.doOnError((e, st) => log.severe('allAlbums', e, st));
} }
@override @override
Stream<Iterable<ArtistsCompanion>> allArtists() { Stream<Iterable<ArtistsCompanion>> allArtists() {
_testOnline(); _testOnline();
return _source.allArtists(); return _source
.allArtists()
.doOnError((e, st) => log.severe('allArtists', e, st));
} }
@override @override
Stream<Iterable<PlaylistWithSongsCompanion>> allPlaylists() { Stream<Iterable<PlaylistWithSongsCompanion>> allPlaylists() {
_testOnline(); _testOnline();
return _source.allPlaylists(); return _source
.allPlaylists()
.doOnError((e, st) => log.severe('allPlaylists', e, st));
} }
@override @override
Stream<Iterable<SongsCompanion>> allSongs() { Stream<Iterable<SongsCompanion>> allSongs() {
_testOnline(); _testOnline();
return _source.allSongs(); return _source
.allSongs()
.doOnError((e, st) => log.severe('allSongs', e, st));
} }
@override @override
@@ -82,10 +92,4 @@ class MusicSource implements BaseMusicSource {
@override @override
Uri streamUri(String songId) => _source.streamUri(songId); Uri streamUri(String songId) => _source.streamUri(songId);
@override
bool operator ==(other) => other is BaseMusicSource && (other.id == id);
@override
int get hashCode => id;
} }

View File

@@ -6,6 +6,7 @@ import 'package:crypto/crypto.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:xml/xml.dart'; import 'package:xml/xml.dart';
import '../../log.dart';
import '../../models/settings.dart'; import '../../models/settings.dart';
import 'xml.dart'; import 'xml.dart';
@@ -89,12 +90,16 @@ class SubsonicClient {
final subsonicResponse = final subsonicResponse =
SubsonicResponse(XmlDocument.parse(utf8.decode(res.bodyBytes))); SubsonicResponse(XmlDocument.parse(utf8.decode(res.bodyBytes)));
if (subsonicResponse.status == Status.failed) { if (subsonicResponse.status == Status.failed) {
throw SubsonicException(subsonicResponse.xml); final error = SubsonicException(subsonicResponse.xml);
log.severe('Subsonic error', error);
throw error;
} }
return subsonicResponse; return subsonicResponse;
} }
Future<void> test() => get('ping');
Future<bool> testFeature(SubsonicFeature feature) async { Future<bool> testFeature(SubsonicFeature feature) async {
switch (feature) { switch (feature) {
case SubsonicFeature.emptyQuerySearch: case SubsonicFeature.emptyQuerySearch:

View File

@@ -290,6 +290,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.6.3" version: "1.6.3"
cross_file:
dependency: transitive
description:
name: cross_file
sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9"
url: "https://pub.dev"
source: hosted
version: "0.3.3+4"
crypto: crypto:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -679,7 +687,7 @@ packages:
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
logging: logging:
dependency: transitive dependency: "direct main"
description: description:
name: logging name: logging
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
@@ -834,10 +842,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130 sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.5" version: "2.1.6"
pedantic: pedantic:
dependency: transitive dependency: transitive
description: description:
@@ -950,6 +958,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.27.7" version: "0.27.7"
share_plus:
dependency: "direct main"
description:
name: share_plus
sha256: "322a1ec9d9fe07e2e2252c098ce93d12dbd06133cc4c00ffe6a4ef505c295c17"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: "0c6e61471bd71b04a138b8b588fa388e66d8b005e6f2deda63371c5c505a0981"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
shelf: shelf:
dependency: transitive dependency: transitive
description: description:
@@ -1319,10 +1343,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4 sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.4" version: "4.1.4"
worker_manager: worker_manager:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@@ -4,7 +4,7 @@ homepage: https://github.com/austinried/subtracks
repository: https://github.com/austinried/subtracks repository: https://github.com/austinried/subtracks
issue_tracker: https://github.com/austinried/subtracks/issues issue_tracker: https://github.com/austinried/subtracks/issues
publish_to: 'none' publish_to: 'none'
version: 2.0.0-alpha.1+10 version: 2.0.0-alpha.3+12
environment: environment:
sdk: '>=2.19.2 <3.0.0' sdk: '>=2.19.2 <3.0.0'
@@ -57,6 +57,8 @@ dependencies:
connectivity_plus: ^3.0.4 connectivity_plus: ^3.0.4
package_info_plus: ^3.1.1 package_info_plus: ^3.1.1
url_launcher: ^6.1.10 url_launcher: ^6.1.10
logging: ^1.1.1
share_plus: ^7.0.0
# https://github.com/dart-lang/intl/issues/522#issuecomment-1469961807 # https://github.com/dart-lang/intl/issues/522#issuecomment-1469961807
dependency_overrides: dependency_overrides: