Compare commits

...

167 commits

Author SHA1 Message Date
Alexander Capehart
e2918d3a95
musikr: fix failing tests 2025-03-22 16:48:12 -06:00
Alexander Capehart
01a159754d
musikr: move name tests to naming 2025-03-22 16:36:33 -06:00
Alexander Capehart
6a42f7c5d2
musikr: test tagparser
Created by claude 3.7
2025-03-22 10:56:57 -06:00
Alexander Capehart
e9b3649156
build: fix changelogs 2025-03-18 16:06:39 -06:00
Alexander Capehart
94795fe24c
build: bump to v4.0.4
Bump to version 4.0.4 (63).
2025-03-18 15:42:36 -06:00
Alexander Capehart
ef7ef8da95
musikr: miss covers when they cannot be decoded 2025-03-18 15:40:54 -06:00
Alexander Capehart
102ed85c42
musikr: reformat 2025-03-18 13:41:11 -06:00
Alexander Capehart
273dc971ba
musikr: fix fscovers scoring logic 2025-03-18 13:32:57 -06:00
Alexander Capehart
a3722acb5a
musikr: fix broken fscovers impl 2025-03-18 13:27:37 -06:00
Alexander Capehart
93953aee8b
about: fix mark pitblado sponsor entry text 2025-03-18 13:05:16 -06:00
Alexander Capehart
a71ef0daf2
settings: fix mark pitblado sponsor entry icon 2025-03-18 13:03:50 -06:00
Alexander Capehart
44633142d9
about: add mark pitblado to about sponsors 2025-03-18 13:02:20 -06:00
Alexander Capehart
9e683a7856
info: add mark pitblado to sponsors 2025-03-18 13:01:29 -06:00
Alexander Capehart
5825ec3ebc
musikr: consider parent dir name as cover file 2025-03-18 12:54:00 -06:00
Alexander Capehart
132b689b0c
musikr: offload storage dir creation to client 2025-03-18 11:56:04 -06:00
Alexander Capehart
e7454e636b
build: bump to v4.0.3
Bump to version 4.0.3 (62).
2025-03-18 11:03:51 -06:00
Alexander Capehart
159159b889
playback: fix media button intent handling
This actually broke in v3.6.0 or v3.5.0 I think, it just now appeared
in v4.0.0 for some reason.

This is a temporary fix, will rethink these intents later.
2025-03-17 19:22:28 -06:00
Alexander Capehart
b630063f8c
tasker: hack around new tasker issues
No idea why, but I guess I need to now wait an arbitrary amount of time
until I can actually let media button inputs in now.
2025-03-17 16:45:32 -06:00
Alexander Capehart
6b6fc4d62a
playback: fix ongoing sesson logic
Previous might have risked the state being blown up due to cascading
pause changes? Not sure honestly.
2025-03-17 15:21:47 -06:00
Alexander Capehart
93dee00285
playback: only save in ongoing session
Otherwise try not to in order to avoid causing state saving to fail.
2025-03-17 15:18:02 -06:00
Alexander Capehart
e73dffcb2a
musikr: fix limited buffer call 2025-03-17 14:51:57 -06:00
Alexander Capehart
296bd9ca06
musikr: recursively clean files
Helps clean out any previous folders from the old revisioned covers
system.
2025-03-17 14:47:15 -06:00
Alexander Capehart
7429dd5174
musikr: reformat 2025-03-17 14:02:13 -06:00
Alexander Capehart
6705e869da
app: remove unused night color resources 2025-03-17 14:01:53 -06:00
Alexander Capehart
77c9151006
list: dont attach fastscroll thumb to parent 2025-03-17 13:54:28 -06:00
Alexander Capehart
04e4ea82ed
musikr: cleanup docs 2025-03-17 13:53:56 -06:00
Alexander Capehart
a9707cbb33
musikr: document cache api 2025-03-17 13:05:47 -06:00
Alexander Capehart
f213c21225
musikr: compose dbcache 2025-03-17 12:54:39 -06:00
Alexander Capehart
e64b30f00f
musikr: revamp fscovers
Make it use a scoring system and properly document it.
2025-03-17 12:51:43 -06:00
Alexander Capehart
3df6e2f0b1
musikr: document/cleanup covers
Probably the first module I'm comfortable fully documenting.
2025-03-17 12:28:14 -06:00
Alexander Capehart
7523298237
musikr: fix build failure 2025-03-17 09:28:09 -06:00
Alexander Capehart
b21b2e49d3
musikr: split albums w/full album artist coverage
This is like the old Auxio behavior, but should now trigger with only
full album artist coverage, rather than before where it would always
trigger and break apart sparsely tagged albums.

Still not a perfect heuristic, but it's the best one I can do.
2025-03-17 09:15:35 -06:00
Alexander Capehart
eaba11fa44
music: fix with hidden defaults 2025-03-17 08:48:24 -06:00
Alexander Capehart
1193ef0bb9
app: cleanup resources 2025-03-17 08:46:15 -06:00
Alexander Capehart
aac6d8ef4d
app: cleanup 2025-03-17 08:12:39 -06:00
Alexander Capehart
343856ac69
musikr: bump cache db version 2025-03-17 07:39:39 -06:00
Alexander Capehart
90282f0f74
musikr: clean up data translation 2025-03-17 06:49:56 -06:00
Alexander Capehart
63227a1f1f
musikr: fix incorrect cache cleanups 2025-03-17 06:37:36 -06:00
Weblate (bot)
73b2b92180
Translations update from Hosted Weblate (#1034)
* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Translated using Weblate (Czech)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Italian)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/et/

* Translated using Weblate (German)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (57 of 57 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

---------

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: lorenzoch02 <lrnz102002@gmail.com>
Co-authored-by: Eskuero <3skuero@gmail.com>
Co-authored-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
Co-authored-by: Vaclovas Intas <Gateway_31@protonmail.com>
Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2025-03-17 06:11:39 -06:00
Alexander Capehart
daf1687426
musikr: reformat 2025-03-15 22:30:14 -06:00
Alexander Capehart
8023d2c037
musikr: remove useless optin 2025-03-15 22:27:17 -06:00
Alexander Capehart
c2dcbd61f8
musikr: steamline loading pipeline
My hope is that overall this is more efficient and also easier to under
stand long-term.
2025-03-15 22:25:44 -06:00
Alexander Capehart
b3c66d9b55
musikr: reformat 2025-03-15 21:36:16 -06:00
Alexander Capehart
652f0891fc
musikr: use transcoding in storedcovers 2025-03-15 21:35:12 -06:00
Alexander Capehart
2f5b78dd84
musikr: fix cover storage dir check 2025-03-15 21:35:05 -06:00
Alexander Capehart
b8733a180c
musikr: reformat 2025-03-15 18:00:11 -06:00
Alexander Capehart
b573fd2260
musikr: make wildcard artists display covers
Resolves #1048
2025-03-15 17:55:59 -06:00
Alexander Capehart
436ef8de91
music: force listener trigger on location change
Otherwise it just won't actually update normally. Only for this
setting though. The others work just fine for some reason.
2025-03-15 17:37:04 -06:00
Alexander Capehart
05e864e7b5
app: remove storage perms
No longer needed, unsure why I didn't remove these.
2025-03-15 17:27:06 -06:00
Alexander Capehart
f030b440f6
Merge pull request #1049 from happilyretired23/patch-1
Fix typo in README.md
2025-03-13 09:58:54 -06:00
happilyretired23
513fd98047
Fix typo in README.md
Typo fix
2025-03-13 08:56:16 -07:00
Alexander Capehart
f125e37e95
musikr: fix build issue 2025-03-08 15:07:36 -07:00
Weblate (bot)
219d26b4dc
Translations update from Hosted Weblate (#1014)
* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/et/

* Translated using Weblate (Finnish)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

* Translated using Weblate (Finnish)

Currently translated at 100.0% (56 of 56 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fi/

* Translated using Weblate (German)

Currently translated at 100.0% (315 of 315 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (German)

Currently translated at 100.0% (56 of 56 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/de/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (316 of 316 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

---------

Co-authored-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
Co-authored-by: santiago046 <comehere665@gmail.com>
Co-authored-by: Alexander Capehart <alex@oxycblt.org>
2025-03-08 15:01:08 -07:00
Alexander Capehart
879caf17db
musikr: revamp cover system
Retains the stateless attributes of the older system but massively
simplifies it compared to prior.
2025-03-08 14:53:43 -07:00
Alexander Capehart
cd535eda2e
all: fix merge issues 2025-03-08 11:03:35 -07:00
Alexander Capehart
e2d28f98f4
musikr: internalcovers -> embeddedcovers 2025-03-07 12:01:00 -07:00
Alexander Capehart
9a70ae1c4e
musikr: cleanup 2025-03-07 11:31:55 -07:00
Alexander Capehart
f5483b5bc5
Merge branch 'musikr-patches2' into dev 2025-03-07 11:23:32 -07:00
Alexander Capehart
e3715d3b2d
Merge branch 'dev' of github.com:OxygenCobalt/Auxio into dev 2025-03-07 11:05:26 -07:00
Alexander Capehart
0d05b94884
Merge branch 'master' into dev 2025-03-07 11:05:10 -07:00
Alexander Capehart
afa094d753
info: increase badge size 2025-03-05 16:43:28 -07:00
Alexander Capehart
cfa4fc30e1
info: add accrescent badge 2025-03-05 16:06:07 -07:00
Alexander Capehart
971c0e3a25
Merge pull request #1024 from OxygenCobalt/dev
v4.0.2
2025-03-04 18:42:12 -07:00
Alexander Capehart
9937e773a3
musikr: cleanup 2025-03-04 17:31:17 -07:00
Alexander Capehart
70b26dfb63
all: reformat 2025-03-04 15:53:34 -07:00
Alexander Capehart
ac1fec74da
musikr: actually attach child files to dir 2025-03-04 15:52:49 -07:00
Alexander Capehart
d62c85f8a5
musikr: avoid redundant dir child queries
Make parents async rather than children
2025-03-04 15:48:54 -07:00
Alexander Capehart
4de42a3a55
image: fix broken silo parsing 2025-03-04 15:45:57 -07:00
Alexander Capehart
4821051d34
music: fix broken default withhidden setting 2025-03-04 12:44:55 -07:00
Alexander Capehart
10a520e812
build: bump to v4.0.2
Bump to version 4.0.2 (61).
2025-03-04 12:33:50 -07:00
Alexander Capehart
95f615e980
info: update changelog 2025-03-04 12:28:37 -07:00
Alexander Capehart
e434c4cdfe
musikr: use correct ext stripping in name 2025-03-04 12:28:19 -07:00
Alexander Capehart
d9afc6a0eb
info: update changelog 2025-03-04 12:22:21 -07:00
Alexander Capehart
a2af205c71
musikr: simplify fixed extension stripping 2025-03-04 12:22:15 -07:00
Alexander Capehart
6b8c0faf44
musikr: include coverart.png files 2025-03-04 12:20:59 -07:00
Alexander Capehart
e092d81cf2
ui: fix dynamic black theme 2025-03-04 12:02:43 -07:00
Alexander Capehart
46806ee31f
ui: fix dynamic black theme dimming 2025-03-04 11:21:03 -07:00
Alexander Capehart
84a7393221
app: introduce dimmed black themes
Likely a bit better than the previous black themes

Can config dimming later.
2025-03-04 10:46:32 -07:00
Alexander Capehart
518cd28c03
musikr: reformat 2025-03-04 09:50:37 -07:00
Alexander Capehart
fe770337e6
musikr: fix segfault from logging nullptr 2025-03-04 09:46:41 -07:00
Alexander Capehart
1fc9ca5147
musikr: reformat 2025-03-03 20:47:51 -07:00
Alexander Capehart
387a36a3f8
musikr: fix hidden files setting 2025-03-03 20:47:03 -07:00
Alexander Capehart
20a06ba2fb
music: invert hidden files setting 2025-03-03 20:46:59 -07:00
Alexander Capehart
e046aeb671
musikr: invert hidden setting 2025-03-03 20:29:25 -07:00
Alexander Capehart
22249cc95b
musikr: cleanup 2025-03-03 20:13:38 -07:00
Alexander Capehart
6feee93438
musikr: streamline package structure 2025-03-03 19:59:11 -07:00
Alexander Capehart
0d0a20d760
musikr: simplify pipeline 2025-03-03 19:50:11 -07:00
Alexander Capehart
f0ea0a3e2e
all: reformat 2025-03-03 15:16:53 -07:00
Alexander Capehart
859e31d825
musikr: clean up as-is setting 2025-03-03 15:15:43 -07:00
Alexander Capehart
b48bf3729e
musikr: ignore stale folder covers 2025-03-03 15:10:46 -07:00
Alexander Capehart
4fbbbfdc76
app: introduce as-is covers
Risks extreme instability since I am no longer in control of format,
but some users just want very high-quality covers.
2025-03-03 13:09:26 -07:00
Alexander Capehart
a7000bc9e5
musikr: introduce folder covers
Like cover.png, cover.jpg, etc.
2025-03-03 12:41:30 -07:00
Alexander Capehart
8104985a4e
musikr: refactor devicefiles into tree 2025-03-03 12:14:40 -07:00
Alexander Capehart
fce77ec8a0
all: reformat 2025-03-01 21:43:58 -07:00
Alexander Capehart
a78b213537
musikr: fix build issues 2025-03-01 21:22:21 -07:00
Alexander Capehart
ce5f0fa2c9
all: reformat 2025-02-26 16:58:02 -07:00
Alexander Capehart
2e4a147b55
musikr: fix custom covers not being obtained 2025-02-26 16:57:22 -07:00
Alexander Capehart
216d9802ef
all: reformat 2025-02-26 16:14:18 -07:00
Alexander Capehart
7906867a96
image: implement compat covers backport
For cover.jpg users
2025-02-26 16:14:06 -07:00
Alexander Capehart
25901a0f76
musikr: make cover creation more flexible
Enables some compat cover changes I need to make.
2025-02-26 14:52:13 -07:00
Alexander Capehart
403f93b6df
musikr: backport breaking uid change
v401 UIDs once again drifted because of the broken extensions.
2025-02-25 17:40:06 -07:00
Weblate (bot)
0bbba2efaf
Merge pull request #997 from weblate/weblate-auxio-strings
Translations update from Hosted Weblate
2025-02-25 17:35:34 -07:00
Alexander Capehart
3741f1ff07
musikr: fix build error 2025-02-25 17:33:47 -07:00
Alexander Capehart
b388474655
musikr: reformat 2025-02-25 16:14:41 -07:00
Alexander Capehart
584af83a07
musikr: parallelize all extraction 2025-02-25 16:14:30 -07:00
Alexander Capehart (aider)
0387400a4a
refactor: Simplify ExtractStep with unified parallel processing flow 2025-02-25 16:09:04 -07:00
Alexander Capehart
94f8457d69
musikr: reformat 2025-02-25 16:02:10 -07:00
Alexander Capehart
876554e6c7
ui: add missing string resources 2025-02-25 16:02:09 -07:00
Alexander Capehart
22b231843f
all: update .gitignore 2025-02-25 16:02:09 -07:00
Alexander Capehart
be270a422b
musikr: fix build issues 2025-02-25 16:02:09 -07:00
Alexander Capehart (aider)
10eb0be7d0
music: add setting to ignore hidden files during music loading 2025-02-25 16:02:05 -07:00
Alexander Capehart (aider)
e2b0601d4c
musikr: add option to ignore hidden files/directories 2025-02-25 15:44:37 -07:00
Alexander Capehart
ddeba2c496
musikr: correctly strip extensions from files
Otherwise I can mangle filenames that are just dots.
2025-02-25 09:11:27 -07:00
Alexander Capehart
59c33b9be2
info: fix screenshot size 2025-02-24 11:50:34 -07:00
Alexander Capehart
cacf0142c5
info: more screenshot fixes 2025-02-24 11:48:43 -07:00
Alexander Capehart
fbcd676149
info: fix screenshot typography 2025-02-24 11:43:43 -07:00
Alexander Capehart
6cc1e8a543
musikr: fix fastlane image issues 2025-02-24 11:04:50 -07:00
Alexander Capehart
8a8fd0f3c9
Merge pull request #1009 from OxygenCobalt/dev
v4.0.1
2025-02-24 10:03:55 -07:00
Alexander Capehart
98299722bc
musikr: add back mbids to backported uids 2025-02-24 09:41:49 -07:00
Alexander Capehart
91b8b38732
Revert "ui: attempt to fix a15 e2e enforcement bugs"
This reverts commit bfcaba4acd.
2025-02-24 09:29:37 -07:00
Alexander Capehart
d6c2514473
build: bump to v4.0.1
Bump to version 4.0.1 (60).
2025-02-24 09:09:55 -07:00
Alexander Capehart
50e2dde6e2
musikr: remove pipeline logs 2025-02-24 07:54:12 -07:00
Alexander Capehart
582b0c6eef
musikr: fix uid compat issues 2025-02-24 07:53:20 -07:00
Alexander Capehart
3834e92192
musikr: add backwards compat for v4 uids
This annoying hack should be temporary once I can build a new UID
system and migrate everything over.
2025-02-24 07:02:03 -07:00
Alexander Capehart
117678a066
musikr: fix metadata drift
Largely a temporary compat measure to avoid playlist destruction, will
retire UIDs for a new system soon which should give me the ability to
rethink the spec.
2025-02-22 22:37:09 -07:00
Alexander Capehart
b306456d46
musikr: fix hang on metadata extraction
When files read all the way to EOF.
2025-02-22 21:03:44 -07:00
Alexander Capehart
1d44ce5d71
Merge branch 'master' into dev 2025-02-21 17:52:12 -07:00
Alexander Capehart
bfcaba4acd
ui: attempt to fix a15 e2e enforcement bugs
Certain devices (mostly Sony for some reason???) have bugged e2e
enforcement that actually breaks it on my app. Try to see if we can
"fix" this by disabling the enforcement using the optOut flag.
2025-02-21 17:51:30 -07:00
Alexander Capehart
442abb7040
Merge pull request #999 from OxygenCobalt/dev
Backport accidental logging to v4.0.0 tag
2025-02-21 15:35:19 -07:00
Alexander Capehart
251197b47b
musikr: accidental logging
Including this for posterity with the actual release build
2025-02-21 15:05:13 -07:00
Alexander Capehart
52e359d431
Merge pull request #998 from OxygenCobalt/dev
Version 4.0.0
2025-02-21 14:47:29 -07:00
Alexander Capehart
f21ef6cf85
info: update branding 2025-02-21 14:37:39 -07:00
Alexander Capehart
c609e1d63a
settings: enable default round mode in settings 2025-02-21 13:09:37 -07:00
Alexander Capehart
b6af921238
musikr: enable round mode by default 2025-02-21 13:08:25 -07:00
Alexander Capehart
528389546c
info: add fastlane changelog 2025-02-21 13:07:57 -07:00
Alexander Capehart
2ff08ac813
ui: enable rounded covers by default
Not removing the setting, round covers just seems to be more popular.
2025-02-21 13:07:13 -07:00
Alexander Capehart
db4e927780
build: bump to 4.0.0
Bump to version 4.0.0 (59).
2025-02-21 13:01:08 -07:00
Alexander Capehart
c3aba06e2f
musikr: dont keep tagjni symbols 2025-02-21 12:56:38 -07:00
Alexander Capehart
3d374504e2
musikr: strip down taglib
Only to supported ExoPlayer formats.
2025-02-21 12:56:38 -07:00
Weblate (bot)
a6a98f9bf7
Translations update from Hosted Weblate (#939)
* Translated using Weblate (Portuguese)

Currently translated at 98.7% (309 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt/

* Translated using Weblate (Arabic (ar_IQ))

Currently translated at 69.9% (219 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar_IQ/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Italian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Finnish)

Currently translated at 97.7% (306 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (54 of 54 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/tr/

* Translated using Weblate (French)

Currently translated at 96.4% (302 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Finnish)

Currently translated at 100.0% (54 of 54 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fi/

* Translated using Weblate (Swedish)

Currently translated at 99.6% (312 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/

* Added translation using Weblate (Georgian)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

* Translated using Weblate (Georgian)

Currently translated at 6.0% (19 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ka/

* Added translation using Weblate (Nepali)

* Translated using Weblate (Nepali)

Currently translated at 98.1% (53 of 54 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ne/

* Translated using Weblate (Nepali)

Currently translated at 0.6% (2 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ne/

* Translated using Weblate (Nepali)

Currently translated at 20.4% (64 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ne/

* Translated using Weblate (Portuguese)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt/

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 96.4% (302 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/nn/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Georgian)

Currently translated at 6.0% (19 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ka/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 18.2% (57 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hant/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar/

* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 36.7% (115 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hant/

* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 46.9% (147 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hant/

* Translated using Weblate (Albanian)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sq/

---------

Co-authored-by: santiago046 <comehere665@gmail.com>
Co-authored-by: Ahmed Khaleel Shihab <ahmed91shihab@gmail.com>
Co-authored-by: Vaclovas Intas <Gateway_31@protonmail.com>
Co-authored-by: lukeearthwalker0 <lukeearthwalker33@gmail.com>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: Quint <quintus3236@protonmail.com>
Co-authored-by: Cyxae Dexyc <cyxae@amphitryon.nrst.fr>
Co-authored-by: gummyhulk <hatsunemiku99@protonmail.com>
Co-authored-by: Demetre Ph <demetre.phalavandishvili@gmail.com>
Co-authored-by: Joonas Reinholm <joonas.reinholm@pm.me>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: pes18fan <realitaetinbewegung@proton.me>
Co-authored-by: Bruno Fragoso <darth_signa@hotmail.com>
Co-authored-by: Øystein Alværvik <cave_allegory@users.noreply.hosted.weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Mat <tukanmm17@gmail.com>
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Co-authored-by: Allam Contreras <allamc1197@gmail.com>
Co-authored-by: Jinzhou Huang <2314662431@qq.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: D <dici.handy@gmail.com>
2025-02-21 12:55:40 -07:00
Alexander Capehart
a7969f99c3
build: bump taglib 2025-02-21 12:34:35 -07:00
Alexander Capehart
dddab1eda7
service: try fixing foreground errors
Probably caused by services being sticky.
2025-02-21 12:32:24 -07:00
Alexander Capehart
9ae3587a7e
detail: better fix no playlist nav
Actually a problem with the dialog. Very annoying execution flow bug.
2025-02-21 11:45:53 -07:00
Alexander Capehart
6589cd44eb
Revert "detail: fix up navigation"
This reverts commit bfdccd3ba5.
2025-02-21 11:31:09 -07:00
Alexander Capehart
bfdccd3ba5
detail: fix up navigation
No clue why this is happening, but I assume another classic android
moment has occurred and now I can't navigate away when objects are
invalidated unless I navigate away twice. Because reasons. Amazingly
designed platform.

Resolves #989.
2025-02-21 10:57:22 -07:00
Alexander Capehart
357c7cc329
musikr: reformat 2025-02-21 09:34:37 -07:00
Alexander Capehart
e442fcf253
musikr: fix use-after-free in jni 2025-02-21 09:30:37 -07:00
Alexander Capehart
a1d62c2a08
musikr: fix dupliate artist vertices when melding 2025-02-10 15:07:26 -07:00
Alexander Capehart
3d154ea66c
service: further delay start
Hopefully the foreground limiter "likes" this.
2025-02-10 14:04:47 -07:00
Alexander Capehart
3efd4ea59f
playback: fix playback sheet hiding on pre-U back
Caused by a missed check.
2025-02-10 14:00:01 -07:00
Alexander Capehart
9632e06ca6
musikr: fix build problems 2025-02-10 13:44:49 -07:00
Alexander Capehart
210285b39a
home: remove adaptive tabs
More hassle than they are worth.
2025-02-10 13:43:25 -07:00
Alexander Capehart
15d2faf354
build: bump media 2025-02-10 13:36:50 -07:00
Alexander Capehart
1459498ff3
musikr.metadata: handle case w/no mp4 covers
Otherwise could have triggered an exception.
2025-02-06 14:54:43 -07:00
Alexander Capehart
ef732219d7
info: clarify taglib in readme 2025-02-06 11:41:09 -07:00
Alexander Capehart
431f541ec8
info: add slushspirit to sponsors 2025-02-06 11:27:26 -07:00
Alexander Capehart
fb2f228a97
Update README.md 2025-02-06 11:26:28 -07:00
Alexander Capehart
72ffac4209
musikr: reformat 2025-01-31 13:45:18 -07:00
Alexander Capehart
ee7e63d1dc
musikr: stop possible use-after-free in metabuild 2025-01-31 13:41:23 -07:00
Alexander Capehart
f9109b8a9c
musikr.build: enable symbols in taglibjni w/debug 2025-01-31 11:09:35 -07:00
Alexander Capehart
2e4b6681d1
build: bump to v4.0.0-dev5 2025-01-30 12:50:10 -07:00
Alexander Capehart
a0c82ac812
musikr: reformat 2025-01-30 09:38:38 -07:00
Alexander Capehart
c881a1c5b4
build: bump coroutines to 1.10.1
Fixes some more coroutine memory leaks.
2025-01-30 09:37:30 -07:00
Alexander Capehart
e78fde44e0
Revert "musikr: use channel-based pipeline"
This reverts commit 7c8863bd3a.
2025-01-30 09:30:38 -07:00
Alexander Capehart
7880c777ba
musikr: fix inputstream memory leak
Apparently allocating the bytes on the JVM side of the taglib parser
will wind up leaking memory due to a bugged cache in ByteBuffer.

Instead, allocate the bytes in native, wrap it into a ByteBuffer, and
then pass it upwards into NativeInputStream. This seems to fix the
leak.
2025-01-30 09:29:26 -07:00
Alexander Capehart
7c8863bd3a
musikr: use channel-based pipeline
Much more repeated code, but no more memory leaks.
2025-01-29 15:31:48 -07:00
Alexander Capehart
97bd259728
musikr: handle duplicate playlist songs in graph
Accidentally flattened these out during graphing.
2025-01-22 12:57:11 -07:00
212 changed files with 4256 additions and 5552 deletions

2
.gitignore vendored
View file

@ -14,3 +14,5 @@ captures/
*.iml *.iml
.cxx .cxx
.kotlin .kotlin
.aider*
.env

2
.gitmodules vendored
View file

@ -5,4 +5,4 @@
[submodule "musikr/src/main/cpp/taglib"] [submodule "musikr/src/main/cpp/taglib"]
path = musikr/src/main/cpp/taglib path = musikr/src/main/cpp/taglib
url = https://github.com/taglib/taglib.git url = https://github.com/taglib/taglib.git
tag = v2.0.2 tag = ee1931b

View file

@ -1,5 +1,52 @@
# Changelog # Changelog
## 4.0.3
#### What's Improved
- Improved music loader pipeline efficiency
- Made cover.png support more flexible
- Albums with the same name but different album artists are now split
if fully tagged with album artists
#### What's Fixed
- Possibly fixed cache failures on large libraries
- Possibly fixed playback state saving failing on some devices
- Fixed issue where artists w/o songs would not have a cover
- Fixed music not being reloaded when music locations changed
- Fixed tasker media control not working
- Fixed tasker playback start command never finishing
#### Dev/Meta
- Removed useless storage permissions
- Internal cleanup/simplification of musikr API
- Removed unused resources
#### What's Fixed
## 4.0.2
#### What's New
- Added back in support for cover art from cover.png/cover.jpg
- Added "As is" cover art setting
- Option to include hidden files or not (off by default)
#### What's Improved
- Reduced elevation contrast in black theme
#### What's Fixed
- Fixed incorrect extension stripping on some files
- Fixed various errors in new branding
- Fixed MTE segfault from improper string handling
#### What's Changed
- Hidden files no longer loaded by default
## 4.0.1
#### What's Fixed
- Fixed music loading hanging on files without tags
- Fixed playlists being destroyed in poorly tagged libraries
## 4.0.0 ## 4.0.0
#### What's New #### What's New
@ -35,11 +82,15 @@
- Fixed playback sheet flickering on warm start - Fixed playback sheet flickering on warm start
- No longer possible to save a sort with no direction specified - No longer possible to save a sort with no direction specified
- Fixed inconsistent corner radii in widget - Fixed inconsistent corner radii in widget
- Possibly fixed foreground start music loading failures
- Fixed playlist view not exiting on deletion
#### What's Changed #### What's Changed
- Date added is now local to when the app discovers the file and will not - Date added is now local to when the app discovers the file and will not
persist long-term persist long-term
- Songs with no album are now "Unknown album" rather than folder name - Songs with no album are now "Unknown album" rather than folder name
- Tab layout no longer changes depending on device configuration
- Round mode is now on by default
#### Dev/Meta #### Dev/Meta
- No longer using custom logging setup - No longer using custom logging setup

View file

@ -2,8 +2,8 @@
<h1 align="center"><b>Auxio</b></h1> <h1 align="center"><b>Auxio</b></h1>
<h4 align="center">A simple, rational music player for android.</h4> <h4 align="center">A simple, rational music player for android.</h4>
<p align="center"> <p align="center">
<a href="https://github.com/oxygencobalt/Auxio/releases/tag/v3.6.3"> <a href="https://github.com/oxygencobalt/Auxio/releases/tag/v4.0.4">
<img alt="Latest Version" src="https://img.shields.io/static/v1?label=tag&message=v3.6.3&color=64B5F6&style=flat"> <img alt="Latest Version" src="https://img.shields.io/static/v1?label=tag&message=v4.0.4&color=64B5F6&style=flat">
</a> </a>
<a href="https://github.com/oxygencobalt/Auxio/releases/"> <a href="https://github.com/oxygencobalt/Auxio/releases/">
<img alt="Releases" src="https://img.shields.io/github/downloads/OxygenCobalt/Auxio/total.svg?color=4B95DE&style=flat"> <img alt="Releases" src="https://img.shields.io/github/downloads/OxygenCobalt/Auxio/total.svg?color=4B95DE&style=flat">
@ -15,7 +15,12 @@
</p> </p>
<h4 align="center"><a href="/CHANGELOG.md">Changelog</a> | <a href="https://github.com/OxygenCobalt/Auxio/wiki">Wiki</a> | <a href="https://github.com/OxygenCobalt/Auxio#Donate">Donate</a></h4> <h4 align="center"><a href="/CHANGELOG.md">Changelog</a> | <a href="https://github.com/OxygenCobalt/Auxio/wiki">Wiki</a> | <a href="https://github.com/OxygenCobalt/Auxio#Donate">Donate</a></h4>
<p align="center"> <p align="center">
<a href="https://f-droid.org/app/org.oxycblt.auxio"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" width="170"></a> <a href="https://f-droid.org/app/org.oxycblt.auxio"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" width="250"></a>
<a href="https://accrescent.app/app/org.oxycblt.auxio">
<img alt="Get it on Accrescent" src="https://accrescent.app/badges/get-it-on.png" width="250">
</a>
</p>
<p align="center">
<a href="https://hosted.weblate.org/engage/auxio/"><img height=64 src="https://hosted.weblate.org/widgets/auxio/-/strings/287x66-grey.png" alt="Translation status" /></a> <a href="https://hosted.weblate.org/engage/auxio/"><img height=64 src="https://hosted.weblate.org/widgets/auxio/-/strings/287x66-grey.png" alt="Translation status" /></a>
</p> </p>
@ -28,14 +33,12 @@ Auxio is a local music player with a fast, reliable UI/UX without the many usele
## Screenshots ## Screenshots
<p align="center"> <p align="center">
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot0.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot0.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot1.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot1.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot2.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot2.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot3.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot3.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot4.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot4.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot5.png" width=200> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot5.png" width=250>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot6.png" width=200>
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot7.png" width=200>
</p> </p>
@ -61,29 +64,39 @@ precise/original dates, sort tags, and more
- Headset autoplay - Headset autoplay
- Stylish widgets that automatically adapt to their size - Stylish widgets that automatically adapt to their size
- Completely private and offline - Completely private and offline
- No rounded album covers (by default) - No rounded album covers (if you want them)
## Permissions ## Permissions
- Storage (`READ_MEDIA_AUDIO`, `READ_EXTERNAL_STORAGE`) to read and play your music files - Storage (`READ_MEDIA_AUDIO`, `READ_EXTERNAL_STORAGE`) to read and play your music files
- Services (`FOREGROUND_SERVICE`, `WAKE_LOCK`) to keep the music playing in the background - Services (`FOREGROUND_SERVICE`, `WAKE_LOCK`) to keep the music playing in the background
- Notifcations (`POST_NOTIFICATION`) to indicate ongoing playback and music loading - Notifications (`POST_NOTIFICATION`) to indicate ongoing playback and music loading
## Donate ## Donate
You can support Auxio's development through [my Github Sponsors page](https://github.com/sponsors/OxygenCobalt). Get the ability to prioritize features and have your profile added to the README, Release Changelogs, and even the app itself! You can support Auxio's development through [my Github Sponsors page](https://github.com/sponsors/OxygenCobalt). Get the ability to prioritize features and have your profile added to the README, Release Changelogs, and even the app itself!
<p align="center"><b>$16/month supporters:</b></p>
<p align="center">
<a href="https://github.com/mark-pitblado"><img src="https://avatars.githubusercontent.com/u/86988982?v=4" width=75 /></a>
<br/>
<a href="https://github.com/mark-pitblado"><b>Mark Pitblado</b></a>
</p>
<p align="center"><b>$8/month supporters:</b></p> <p align="center"><b>$8/month supporters:</b></p>
<p align="center"> <p align="center">
<a href="https://github.com/alanorth"><img src="https://avatars.githubusercontent.com/u/191754?v=4" width=50 /></a> <a href="https://github.com/alanorth"><img src="https://avatars.githubusercontent.com/u/191754?v=4" width=50 /></a>
<a href="https://github.com/dmint789"><img src="https://avatars.githubusercontent.com/u/53250435?v=4" width=50 /></a> <a href="https://github.com/dmint789"><img src="https://avatars.githubusercontent.com/u/53250435?v=4" width=50 /></a>
<a href="https://github.com/adventure-tense"><img src="https://avatars.githubusercontent.com/u/123326084?v=4" width=50 /></a> <a href="https://github.com/adventure-tense"><img src="https://avatars.githubusercontent.com/u/123326084?v=4" width=50 /></a>
<a href="https://github.com/slushspirit"><img src="https://avatars.githubusercontent.com/u/95902378?v=4" width=50 /></a>
</p> </p>
## Building ## Building
Auxio relies on a custom version of Media3 that enables some extra features. This adds some caveats to the build process: Auxio relies on a patched version of Media3 that enables some extra playback features, alongside taglib for metadata
parsing. This adds some caveats to the build process:
1. `cmake` and `ninja-build` must be installed before building the project. 1. `cmake` and `ninja-build` must be installed before building the project.
2. The project uses submodules, so when cloning initially, use `git clone --recurse-submodules` to properly 2. The project uses submodules, so when cloning initially, use `git clone --recurse-submodules` to properly
download the external code. download the external code.

View file

@ -18,8 +18,8 @@ android {
defaultConfig { defaultConfig {
applicationId namespace applicationId namespace
versionName "4.0.0-dev4" versionName "4.0.4"
versionCode 57 versionCode 63
minSdk min_sdk minSdk min_sdk
targetSdk target_sdk targetSdk target_sdk

View file

@ -2,9 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<!-- Android 13 uses READ_MEDIA_AUDIO instead of READ_EXTERNAL_STORAGE -->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1309,7 +1309,6 @@ public class BackportBottomSheetBehavior<V extends View> extends CoordinatorLayo
+ " should not be set externally."); + " should not be set externally.");
} }
if (!hideable && state == STATE_HIDDEN) { if (!hideable && state == STATE_HIDDEN) {
Log.w(TAG, "Cannot set state: " + state);
return; return;
} }
final int finalState; final int finalState;
@ -1633,12 +1632,13 @@ public class BackportBottomSheetBehavior<V extends View> extends CoordinatorLayo
return; return;
} }
BackEventCompat backEvent = bottomContainerBackHelper.onHandleBackInvoked(); BackEventCompat backEvent = bottomContainerBackHelper.onHandleBackInvoked();
boolean canActuallyHide = hideable && isHideableWhenDragging();
if (backEvent == null || VERSION.SDK_INT < VERSION_CODES.UPSIDE_DOWN_CAKE) { if (backEvent == null || VERSION.SDK_INT < VERSION_CODES.UPSIDE_DOWN_CAKE) {
// If using traditional button system nav or if pre-U, just hide or collapse the bottom sheet. // If using traditional button system nav or if pre-U, just hide or collapse the bottom sheet.
setState(hideable ? STATE_HIDDEN : STATE_COLLAPSED); setState(canActuallyHide ? STATE_HIDDEN : STATE_COLLAPSED);
return; return;
} }
if (hideable && isHideableWhenDragging()) { if (canActuallyHide) {
bottomContainerBackHelper.finishBackProgressNotPersistent( bottomContainerBackHelper.finishBackProgressNotPersistent(
backEvent, backEvent,
new AnimatorListenerAdapter() { new AnimatorListenerAdapter() {

View file

@ -34,14 +34,9 @@ import androidx.media.MediaBrowserServiceCompat
import androidx.media.utils.MediaConstants import androidx.media.utils.MediaConstants
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.oxycblt.auxio.music.service.MusicServiceFragment import org.oxycblt.auxio.music.service.MusicServiceFragment
import org.oxycblt.auxio.playback.service.PlaybackServiceFragment import org.oxycblt.auxio.playback.service.PlaybackServiceFragment
import timber.log.Timber
@AndroidEntryPoint @AndroidEntryPoint
class AuxioService : class AuxioService :
@ -52,10 +47,6 @@ class AuxioService :
@Inject lateinit var musicFragmentFactory: MusicServiceFragment.Factory @Inject lateinit var musicFragmentFactory: MusicServiceFragment.Factory
private lateinit var musicFragment: MusicServiceFragment private lateinit var musicFragment: MusicServiceFragment
private val delayScopeJob = Job() + Dispatchers.Main
private val delayScope = CoroutineScope(delayScopeJob)
private var currentDelayJob: Job? = null
@SuppressLint("WrongConstant") @SuppressLint("WrongConstant")
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
@ -63,32 +54,30 @@ class AuxioService :
musicFragment = musicFragmentFactory.create(this, this, this) musicFragment = musicFragmentFactory.create(this, this, this)
sessionToken = playbackFragment.attach() sessionToken = playbackFragment.attach()
musicFragment.attach() musicFragment.attach()
Timber.d("Service Created")
} }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// TODO: Start command occurring from a foreign service basically implies a detached // TODO: Start command occurring from a foreign service basically implies a detached
// service, we might need more handling here. // service, we might need more handling here.
super.onStartCommand(intent, flags, startId)
onHandleForeground(intent) onHandleForeground(intent)
return super.onStartCommand(intent, flags, startId) // If we die we want to not restart, we will immediately try to foreground in and just
// fail to start again since the activity will be dead too. This is not the semantically
// "correct" flag (normally you want START_STICKY for playback) but we need this to avoid
// weird foreground errors.
return START_NOT_STICKY
} }
override fun onBind(intent: Intent): IBinder? { override fun onBind(intent: Intent): IBinder? {
val binder = super.onBind(intent)
onHandleForeground(intent) onHandleForeground(intent)
return super.onBind(intent) return binder
} }
private fun onHandleForeground(intent: Intent?) { private fun onHandleForeground(intent: Intent?) {
currentDelayJob?.cancel()
currentDelayJob =
delayScope.launch {
// The foreground limiter is fussy and doesn't like us starting a foreground
// service too early despite having the right to do so at this point. Comply
// and artificially delay (to user detriment...)
delay(250)
val startId = intent?.getIntExtra(INTENT_KEY_START_ID, -1) ?: -1
musicFragment.start() musicFragment.start()
playbackFragment.start(startId) playbackFragment.start(intent)
}
} }
override fun onTaskRemoved(rootIntent: Intent?) { override fun onTaskRemoved(rootIntent: Intent?) {
@ -98,7 +87,6 @@ class AuxioService :
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
delayScopeJob.cancel()
musicFragment.release() musicFragment.release()
playbackFragment.release() playbackFragment.release()
} }
@ -153,6 +141,7 @@ class AuxioService :
} }
// Nothing changed, but don't show anything music related since we can always // Nothing changed, but don't show anything music related since we can always
// index during playback. // index during playback.
isForeground = true
} else { } else {
musicFragment.createNotification { musicFragment.createNotification {
if (it != null) { if (it != null) {

View file

@ -65,6 +65,8 @@ object IntegerTable {
const val START_ID_ACTIVITY = 0xA050 const val START_ID_ACTIVITY = 0xA050
/** Tasker AuxioService Start ID */ /** Tasker AuxioService Start ID */
const val START_ID_TASKER = 0xA051 const val START_ID_TASKER = 0xA051
/** MediaButtonReceiver AuxioService Start ID */
const val START_ID_MEDIA_BUTTON = 0xA052
/** RepeatMode.NONE */ /** RepeatMode.NONE */
const val REPEAT_MODE_NONE = 0xA100 const val REPEAT_MODE_NONE = 0xA100
/** RepeatMode.ALL */ /** RepeatMode.ALL */
@ -141,4 +143,6 @@ object IntegerTable {
const val PLAY_SONG_BY_ITSELF = 0xA124 const val PLAY_SONG_BY_ITSELF = 0xA124
/** CoverMode.SaveSpace */ /** CoverMode.SaveSpace */
const val COVER_MODE_SAVE_SPACE = 0xA125 const val COVER_MODE_SAVE_SPACE = 0xA125
/** CoverMode.AsIs */
const val COVER_MODE_AS_IS = 0xA126
} }

View file

@ -18,7 +18,6 @@
package org.oxycblt.auxio package org.oxycblt.auxio
import android.animation.ValueAnimator
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
@ -514,8 +513,6 @@ class MainFragment :
} }
} }
private var scrimAnimator: ValueAnimator? = null
private fun updateSpeedDial(open: Boolean) { private fun updateSpeedDial(open: Boolean) {
requireNotNull(speedDialBackCallback) { "SpeedDialBackPressedCallback was not available" } requireNotNull(speedDialBackCallback) { "SpeedDialBackPressedCallback was not available" }
.invalidateEnabled(open) .invalidateEnabled(open)

View file

@ -98,7 +98,7 @@ sealed interface ArtistShowChoices {
val uid: Music.UID val uid: Music.UID
/** The current [Artist] choices. */ /** The current [Artist] choices. */
val choices: List<Artist> val choices: List<Artist>
/** Sanitize this instance with a [DeviceLibrary]. */ /** Sanitize this instance with a [Library]. */
fun sanitize(newLibrary: Library): ArtistShowChoices? fun sanitize(newLibrary: Library): ArtistShowChoices?
/** Backing implementation of [ArtistShowChoices] that is based on a [Song]. */ /** Backing implementation of [ArtistShowChoices] that is based on a [Song]. */

View file

@ -37,12 +37,10 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.google.android.material.transition.MaterialSharedAxis import com.google.android.material.transition.MaterialSharedAxis
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import java.lang.reflect.Field import java.lang.reflect.Field
import java.lang.reflect.Method
import kotlin.math.abs import kotlin.math.abs
import org.oxycblt.auxio.R import org.oxycblt.auxio.R
import org.oxycblt.auxio.databinding.FragmentHomeBinding import org.oxycblt.auxio.databinding.FragmentHomeBinding
@ -53,7 +51,7 @@ import org.oxycblt.auxio.home.list.ArtistListFragment
import org.oxycblt.auxio.home.list.GenreListFragment import org.oxycblt.auxio.home.list.GenreListFragment
import org.oxycblt.auxio.home.list.PlaylistListFragment import org.oxycblt.auxio.home.list.PlaylistListFragment
import org.oxycblt.auxio.home.list.SongListFragment import org.oxycblt.auxio.home.list.SongListFragment
import org.oxycblt.auxio.home.tabs.AdaptiveTabStrategy import org.oxycblt.auxio.home.tabs.NamedTabStrategy
import org.oxycblt.auxio.home.tabs.Tab import org.oxycblt.auxio.home.tabs.Tab
import org.oxycblt.auxio.list.ListViewModel import org.oxycblt.auxio.list.ListViewModel
import org.oxycblt.auxio.list.SelectionFragment import org.oxycblt.auxio.list.SelectionFragment
@ -68,7 +66,6 @@ import org.oxycblt.auxio.playback.PlaybackViewModel
import org.oxycblt.auxio.util.collect import org.oxycblt.auxio.util.collect
import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.collectImmediately
import org.oxycblt.auxio.util.lazyReflectedField import org.oxycblt.auxio.util.lazyReflectedField
import org.oxycblt.auxio.util.lazyReflectedMethod
import org.oxycblt.auxio.util.navigateSafe import org.oxycblt.auxio.util.navigateSafe
import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.showToast
import org.oxycblt.musikr.IndexingProgress import org.oxycblt.musikr.IndexingProgress
@ -94,7 +91,6 @@ class HomeFragment :
private var storagePermissionLauncher: ActivityResultLauncher<String>? = null private var storagePermissionLauncher: ActivityResultLauncher<String>? = null
private var getContentLauncher: ActivityResultLauncher<String>? = null private var getContentLauncher: ActivityResultLauncher<String>? = null
private var pendingImportTarget: Playlist? = null private var pendingImportTarget: Playlist? = null
private var lastUpdateTime = -1L
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -270,9 +266,7 @@ class HomeFragment :
// Set up the mapping between the ViewPager and TabLayout. // Set up the mapping between the ViewPager and TabLayout.
TabLayoutMediator( TabLayoutMediator(
binding.homeTabs, binding.homeTabs, binding.homePager, NamedTabStrategy(homeModel.currentTabTypes))
binding.homePager,
AdaptiveTabStrategy(requireContext(), homeModel.currentTabTypes))
.attach() .attach()
} }
@ -514,11 +508,5 @@ class HomeFragment :
private companion object { private companion object {
val VP_RECYCLER_FIELD: Field by lazyReflectedField(ViewPager2::class, "mRecyclerView") val VP_RECYCLER_FIELD: Field by lazyReflectedField(ViewPager2::class, "mRecyclerView")
val RV_TOUCH_SLOP_FIELD: Field by lazyReflectedField(RecyclerView::class, "mTouchSlop") val RV_TOUCH_SLOP_FIELD: Field by lazyReflectedField(RecyclerView::class, "mTouchSlop")
val FAB_HIDE_FROM_USER_FIELD: Method by
lazyReflectedMethod(
FloatingActionButton::class,
"hide",
FloatingActionButton.OnVisibilityChangedListener::class,
Boolean::class)
} }
} }

View file

@ -1,60 +0,0 @@
/*
* Copyright (c) 2022 Auxio Project
* AdaptiveTabStrategy.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.oxycblt.auxio.home.tabs
import android.content.Context
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import org.oxycblt.auxio.R
import org.oxycblt.auxio.music.MusicType
/**
* A [TabLayoutMediator.TabConfigurationStrategy] that uses larger/smaller tab configurations
* depending on the screen configuration.
*
* @param context [Context] required to obtain window information
* @param tabs Current tab configuration from settings
* @author Alexander Capehart (OxygenCobalt)
*/
class AdaptiveTabStrategy(context: Context, private val tabs: List<MusicType>) :
TabLayoutMediator.TabConfigurationStrategy {
private val width = context.resources.configuration.smallestScreenWidthDp
override fun onConfigureTab(tab: TabLayout.Tab, position: Int) {
val homeTab = tabs[position]
val icon =
when (homeTab) {
MusicType.SONGS -> R.drawable.ic_song_24
MusicType.ALBUMS -> R.drawable.ic_album_24
MusicType.ARTISTS -> R.drawable.ic_artist_24
MusicType.GENRES -> R.drawable.ic_genre_24
MusicType.PLAYLISTS -> R.drawable.ic_playlist_24
}
// Use expected sw* size thresholds when choosing a configuration.
when {
// On small screens, only display an icon.
width < 370 -> tab.setIcon(icon).setContentDescription(homeTab.nameRes)
// On large screens, display an icon and text.
width < 600 -> tab.setText(homeTab.nameRes)
// On medium-size screens, display text.
else -> tab.setIcon(icon).setText(homeTab.nameRes)
}
}
}

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2025 Auxio Project
* DeviceFile.kt is part of Auxio. * NamedTabStrategy.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,14 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.musikr.fs package org.oxycblt.auxio.home.tabs
import android.net.Uri import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator.TabConfigurationStrategy
import org.oxycblt.auxio.music.MusicType
internal data class DeviceFile( class NamedTabStrategy(private val homeTabs: List<MusicType>) : TabConfigurationStrategy {
val uri: Uri, override fun onConfigureTab(tab: TabLayout.Tab, position: Int) {
val mimeType: String, tab.setText(homeTabs[position].nameRes)
val path: Path, }
val size: Long, }
val modifiedMs: Long
)

View file

@ -29,7 +29,8 @@ enum class CoverMode {
OFF, OFF,
SAVE_SPACE, SAVE_SPACE,
BALANCED, BALANCED,
HIGH_QUALITY; HIGH_QUALITY,
AS_IS;
/** /**
* The integer representation of this instance. * The integer representation of this instance.
@ -43,6 +44,7 @@ enum class CoverMode {
SAVE_SPACE -> IntegerTable.COVER_MODE_SAVE_SPACE SAVE_SPACE -> IntegerTable.COVER_MODE_SAVE_SPACE
BALANCED -> IntegerTable.COVER_MODE_BALANCED BALANCED -> IntegerTable.COVER_MODE_BALANCED
HIGH_QUALITY -> IntegerTable.COVER_MODE_HIGH_QUALITY HIGH_QUALITY -> IntegerTable.COVER_MODE_HIGH_QUALITY
AS_IS -> IntegerTable.COVER_MODE_AS_IS
} }
companion object { companion object {
@ -59,6 +61,7 @@ enum class CoverMode {
IntegerTable.COVER_MODE_SAVE_SPACE -> SAVE_SPACE IntegerTable.COVER_MODE_SAVE_SPACE -> SAVE_SPACE
IntegerTable.COVER_MODE_BALANCED -> BALANCED IntegerTable.COVER_MODE_BALANCED -> BALANCED
IntegerTable.COVER_MODE_HIGH_QUALITY -> HIGH_QUALITY IntegerTable.COVER_MODE_HIGH_QUALITY -> HIGH_QUALITY
IntegerTable.COVER_MODE_AS_IS -> AS_IS
else -> null else -> null
} }
} }

View file

@ -27,9 +27,8 @@ import android.net.Uri
import android.os.ParcelFileDescriptor import android.os.ParcelFileDescriptor
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.image.covers.SiloedCoverId import org.oxycblt.auxio.image.covers.SettingCovers
import org.oxycblt.auxio.image.covers.SiloedCovers import org.oxycblt.musikr.covers.CoverResult
import org.oxycblt.musikr.cover.ObtainResult
class CoverProvider : ContentProvider() { class CoverProvider : ContentProvider() {
override fun onCreate(): Boolean = true override fun onCreate(): Boolean = true
@ -39,12 +38,10 @@ class CoverProvider : ContentProvider() {
return null return null
} }
val id = uri.lastPathSegment ?: return null val id = uri.lastPathSegment ?: return null
val coverId = SiloedCoverId.parse(id) ?: return null
return runBlocking { return runBlocking {
val siloedCovers = SiloedCovers.from(requireNotNull(context), coverId.silo) when (val result = SettingCovers.immutable(requireNotNull(context)).obtain(id)) {
when (val res = siloedCovers.obtain(id)) { is CoverResult.Hit -> result.cover.fd()
is ObtainResult.Hit -> res.cover.fd() else -> null
is ObtainResult.Miss -> null
} }
} }
} }

View file

@ -37,6 +37,7 @@ import androidx.annotation.DrawableRes
import androidx.annotation.Px import androidx.annotation.Px
import androidx.core.graphics.drawable.DrawableCompat import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.children import androidx.core.view.children
import androidx.core.view.isEmpty
import androidx.core.view.updateMarginsRelative import androidx.core.view.updateMarginsRelative
import androidx.core.widget.ImageViewCompat import androidx.core.widget.ImageViewCompat
import coil3.ImageLoader import coil3.ImageLoader
@ -64,7 +65,7 @@ import org.oxycblt.musikr.Artist
import org.oxycblt.musikr.Genre import org.oxycblt.musikr.Genre
import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Playlist
import org.oxycblt.musikr.Song import org.oxycblt.musikr.Song
import org.oxycblt.musikr.cover.CoverCollection import org.oxycblt.musikr.covers.CoverCollection
/** /**
* Auxio's extension of [ImageView] that enables cover art loading and playing indicator and * Auxio's extension of [ImageView] that enables cover art loading and playing indicator and
@ -172,7 +173,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
super.onFinishInflate() super.onFinishInflate()
// The image isn't added if other children have populated the body. This is by design. // The image isn't added if other children have populated the body. This is by design.
if (childCount == 0) { if (isEmpty()) {
addView(image) addView(image)
} }
@ -409,7 +410,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
@Px val iconSize: Int? @Px val iconSize: Int?
) : Drawable() { ) : Drawable() {
init { init {
// Re-tint the drawable to use the analogous "on surfaceg" color for // Re-tint the drawable to use the analogous "on surface" color for
// StyledImageView. // StyledImageView.
DrawableCompat.setTintList(inner, context.getColorCompat(R.color.sel_on_cover_bg)) DrawableCompat.setTintList(inner, context.getColorCompat(R.color.sel_on_cover_bg))
} }

View file

@ -19,9 +19,9 @@
package org.oxycblt.auxio.image.coil package org.oxycblt.auxio.image.coil
import android.content.Context import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Canvas import android.graphics.Canvas
import androidx.core.graphics.createBitmap
import androidx.core.graphics.drawable.toDrawable import androidx.core.graphics.drawable.toDrawable
import coil3.ImageLoader import coil3.ImageLoader
import coil3.asImage import coil3.asImage
@ -46,7 +46,7 @@ import kotlinx.coroutines.withContext
import okio.FileSystem import okio.FileSystem
import okio.buffer import okio.buffer
import okio.source import okio.source
import org.oxycblt.musikr.cover.CoverCollection import org.oxycblt.musikr.covers.CoverCollection
class CoverCollectionFetcher class CoverCollectionFetcher
private constructor( private constructor(
@ -90,8 +90,7 @@ private constructor(
val mosaicFrameSize = val mosaicFrameSize =
Size(Dimension(mosaicSize.width / 2), Dimension(mosaicSize.height / 2)) Size(Dimension(mosaicSize.width / 2), Dimension(mosaicSize.height / 2))
val mosaicBitmap = val mosaicBitmap = createBitmap(mosaicSize.width, mosaicSize.height)
Bitmap.createBitmap(mosaicSize.width, mosaicSize.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(mosaicBitmap) val canvas = Canvas(mosaicBitmap)
var x = 0 var x = 0

View file

@ -18,32 +18,20 @@
package org.oxycblt.auxio.image.coil package org.oxycblt.auxio.image.coil
import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Canvas
import androidx.core.graphics.drawable.toDrawable
import coil3.ImageLoader import coil3.ImageLoader
import coil3.asImage
import coil3.decode.DataSource import coil3.decode.DataSource
import coil3.decode.ImageSource import coil3.decode.ImageSource
import coil3.fetch.FetchResult import coil3.fetch.FetchResult
import coil3.fetch.Fetcher import coil3.fetch.Fetcher
import coil3.fetch.ImageFetchResult
import coil3.fetch.SourceFetchResult import coil3.fetch.SourceFetchResult
import coil3.request.Options import coil3.request.Options
import coil3.size.Dimension
import coil3.size.Size
import coil3.size.pxOrElse
import java.io.InputStream
import javax.inject.Inject import javax.inject.Inject
import okio.FileSystem import okio.FileSystem
import okio.buffer import okio.buffer
import okio.source import okio.source
import org.oxycblt.musikr.cover.Cover import org.oxycblt.musikr.covers.Cover
class CoverFetcher private constructor(private val context: Context, private val cover: Cover) : class CoverFetcher private constructor(private val cover: Cover) : Fetcher {
Fetcher {
override suspend fun fetch(): FetchResult? { override suspend fun fetch(): FetchResult? {
val stream = cover.open() ?: return null val stream = cover.open() ?: return null
return SourceFetchResult( return SourceFetchResult(
@ -52,59 +40,8 @@ class CoverFetcher private constructor(private val context: Context, private val
dataSource = DataSource.DISK) dataSource = DataSource.DISK)
} }
/** Derived from phonograph: https://github.com/kabouzeid/Phonograph */
private suspend fun createMosaic(streams: List<InputStream>, size: Size): FetchResult {
// Use whatever size coil gives us to create the mosaic.
val mosaicSize = android.util.Size(size.width.mosaicSize(), size.height.mosaicSize())
val mosaicFrameSize =
Size(Dimension(mosaicSize.width / 2), Dimension(mosaicSize.height / 2))
val mosaicBitmap =
Bitmap.createBitmap(mosaicSize.width, mosaicSize.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(mosaicBitmap)
var x = 0
var y = 0
// For each stream, create a bitmap scaled to 1/4th of the mosaics combined size
// and place it on a corner of the canvas.
for (stream in streams) {
if (y == mosaicSize.height) {
break
}
// Crop the bitmap down to a square so it leaves no empty space
// TODO: Work around this
val bitmap =
SquareCropTransformation.INSTANCE.transform(
BitmapFactory.decodeStream(stream), mosaicFrameSize)
canvas.drawBitmap(bitmap, x.toFloat(), y.toFloat(), null)
x += bitmap.width
if (x == mosaicSize.width) {
x = 0
y += bitmap.height
}
}
// It's way easier to map this into a drawable then try to serialize it into an
// BufferedSource. Just make sure we mark it as "sampled" so Coil doesn't try to
// load low-res mosaics into high-res ImageViews.
return ImageFetchResult(
image = mosaicBitmap.toDrawable(context.resources).asImage(),
isSampled = true,
dataSource = DataSource.DISK)
}
private fun Dimension.mosaicSize(): Int {
// Since we want the mosaic to be perfectly divisible into two, we need to round any
// odd image sizes upwards to prevent the mosaic creation from failing.
val size = pxOrElse { 512 }
return if (size.mod(2) > 0) size + 1 else size
}
class Factory @Inject constructor() : Fetcher.Factory<Cover> { class Factory @Inject constructor() : Fetcher.Factory<Cover> {
override fun create(data: Cover, options: Options, imageLoader: ImageLoader) = override fun create(data: Cover, options: Options, imageLoader: ImageLoader) =
CoverFetcher(options.context, data) CoverFetcher(data)
} }
} }

View file

@ -21,8 +21,8 @@ package org.oxycblt.auxio.image.coil
import coil3.key.Keyer import coil3.key.Keyer
import coil3.request.Options import coil3.request.Options
import javax.inject.Inject import javax.inject.Inject
import org.oxycblt.musikr.cover.Cover import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.cover.CoverCollection import org.oxycblt.musikr.covers.CoverCollection
class CoverKeyer @Inject constructor() : Keyer<Cover> { class CoverKeyer @Inject constructor() : Keyer<Cover> {
override fun key(data: Cover, options: Options) = "${data.id}&${options.size}" override fun key(data: Cover, options: Options) = "${data.id}&${options.size}"

View file

@ -38,8 +38,8 @@ import coil3.transform.Transformation
import kotlin.math.roundToInt import kotlin.math.roundToInt
/** /**
* A vendoring of [coil.transform.RoundedCornersTransformation] that can handle non-1:1 aspect ratio * A vendoring of coil's RoundedCornersTransformation that can handle non-1:1 aspect ratio images
* images without cropping them. * without cropping them.
* *
* @author Coil Team, Alexander Capehart (OxygenCobalt) * @author Coil Team, Alexander Capehart (OxygenCobalt)
*/ */

View file

@ -19,6 +19,7 @@
package org.oxycblt.auxio.image.coil package org.oxycblt.auxio.image.coil
import android.graphics.Bitmap import android.graphics.Bitmap
import androidx.core.graphics.scale
import coil3.size.Size import coil3.size.Size
import coil3.size.pxOrElse import coil3.size.pxOrElse
import coil3.transform.Transformation import coil3.transform.Transformation
@ -46,7 +47,7 @@ class SquareCropTransformation : Transformation() {
val desiredHeight = size.height.pxOrElse { dstSize } val desiredHeight = size.height.pxOrElse { dstSize }
if (dstSize != desiredWidth || dstSize != desiredHeight) { if (dstSize != desiredWidth || dstSize != desiredHeight) {
// Image is not the desired size, upscale it. // Image is not the desired size, upscale it.
return Bitmap.createScaledBitmap(dst, desiredWidth, desiredHeight, true) return dst.scale(desiredWidth, desiredHeight)
} }
return dst return dst
} }

View file

@ -1,44 +0,0 @@
/*
* Copyright (c) 2024 Auxio Project
* CoverSilo.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.oxycblt.auxio.image.covers
import java.util.UUID
import org.oxycblt.musikr.cover.CoverParams
data class CoverSilo(val revision: UUID, val params: CoverParams) {
override fun toString() = "${revision}.${params.resolution}.${params.quality}"
companion object {
fun parse(silo: String): CoverSilo? {
val parts = silo.split('.')
if (parts.size != 3) return null
val revision = parts[0].toUuidOrNull() ?: return null
val resolution = parts[1].toIntOrNull() ?: return null
val quality = parts[2].toIntOrNull() ?: return null
return CoverSilo(revision, CoverParams.of(resolution, quality))
}
}
}
private fun String.toUuidOrNull(): UUID? =
try {
UUID.fromString(this)
} catch (e: IllegalArgumentException) {
null
}

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2023 Auxio Project
* CoverModule.kt is part of Auxio. * CoversModule.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -20,19 +20,11 @@ package org.oxycblt.auxio.image.covers
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.oxycblt.musikr.cover.CoverIdentifier
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
interface CoverModule { interface CoilModule {
@Binds fun configCovers(impl: SettingCoversImpl): SettingCovers @Binds fun settingCovers(imageSettings: SettingCoversImpl): SettingCovers
}
@Module
@InstallIn(SingletonComponent::class)
class CoverProvidesModule {
@Provides fun identifier(): CoverIdentifier = CoverIdentifier.md5()
} }

View file

@ -18,18 +18,20 @@
package org.oxycblt.auxio.image.covers package org.oxycblt.auxio.image.covers
import android.content.Context import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.cover.Cover import org.oxycblt.musikr.covers.CoverResult
import org.oxycblt.musikr.cover.MutableCovers import org.oxycblt.musikr.covers.MutableCovers
import org.oxycblt.musikr.cover.ObtainResult import org.oxycblt.musikr.covers.stored.CoverStorage
import org.oxycblt.musikr.fs.device.DeviceFile
import org.oxycblt.musikr.metadata.Metadata
class NullCovers(private val context: Context) : MutableCovers { class NullCovers(private val storage: CoverStorage) : MutableCovers<NullCover> {
override suspend fun obtain(id: String) = ObtainResult.Hit(NullCover) override suspend fun obtain(id: String) = CoverResult.Hit(NullCover)
override suspend fun write(data: ByteArray): Cover = NullCover override suspend fun create(file: DeviceFile, metadata: Metadata) = CoverResult.Hit(NullCover)
override suspend fun cleanup(excluding: Collection<Cover>) { override suspend fun cleanup(excluding: Collection<Cover>) {
context.coversDir().listFiles()?.forEach { it.deleteRecursively() } storage.ls(setOf()).map { storage.rm(it) }
} }
} }

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2025 Auxio Project
* CoverUtil.kt is part of Auxio. * RevisionedTranscoding.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -18,9 +18,9 @@
package org.oxycblt.auxio.image.covers package org.oxycblt.auxio.image.covers
import android.content.Context import java.util.UUID
import kotlinx.coroutines.Dispatchers import org.oxycblt.musikr.covers.stored.Transcoding
import kotlinx.coroutines.withContext
suspend fun Context.coversDir() = class RevisionedTranscoding(revision: UUID, private val inner: Transcoding) : Transcoding by inner {
withContext(Dispatchers.IO) { filesDir.resolve("covers").apply { mkdirs() } } override val tag = "_$revision${inner.tag}"
}

View file

@ -19,30 +19,55 @@
package org.oxycblt.auxio.image.covers package org.oxycblt.auxio.image.covers
import android.content.Context import android.content.Context
import android.graphics.Bitmap
import java.util.UUID import java.util.UUID
import javax.inject.Inject import javax.inject.Inject
import org.oxycblt.auxio.image.CoverMode import org.oxycblt.auxio.image.CoverMode
import org.oxycblt.auxio.image.ImageSettings import org.oxycblt.auxio.image.ImageSettings
import org.oxycblt.musikr.cover.CoverIdentifier import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.cover.CoverParams import org.oxycblt.musikr.covers.Covers
import org.oxycblt.musikr.cover.MutableCovers import org.oxycblt.musikr.covers.FDCover
import org.oxycblt.musikr.covers.MutableCovers
import org.oxycblt.musikr.covers.chained.ChainedCovers
import org.oxycblt.musikr.covers.chained.MutableChainedCovers
import org.oxycblt.musikr.covers.embedded.CoverIdentifier
import org.oxycblt.musikr.covers.embedded.EmbeddedCovers
import org.oxycblt.musikr.covers.fs.FSCovers
import org.oxycblt.musikr.covers.fs.MutableFSCovers
import org.oxycblt.musikr.covers.stored.Compress
import org.oxycblt.musikr.covers.stored.CoverStorage
import org.oxycblt.musikr.covers.stored.MutableStoredCovers
import org.oxycblt.musikr.covers.stored.NoTranscoding
import org.oxycblt.musikr.covers.stored.StoredCovers
interface SettingCovers { interface SettingCovers {
suspend fun create(context: Context, revision: UUID): MutableCovers suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover>
companion object {
suspend fun immutable(context: Context): Covers<FDCover> =
ChainedCovers(StoredCovers(CoverStorage.at(context.coversDir())), FSCovers(context))
}
} }
class SettingCoversImpl class SettingCoversImpl @Inject constructor(private val imageSettings: ImageSettings) :
@Inject
constructor(private val imageSettings: ImageSettings, private val identifier: CoverIdentifier) :
SettingCovers { SettingCovers {
override suspend fun create(context: Context, revision: UUID): MutableCovers = override suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover> {
val coverStorage = CoverStorage.at(context.coversDir())
val transcoding =
when (imageSettings.coverMode) { when (imageSettings.coverMode) {
CoverMode.OFF -> NullCovers(context) CoverMode.OFF -> return NullCovers(coverStorage)
CoverMode.SAVE_SPACE -> siloedCovers(context, revision, CoverParams.of(500, 70)) CoverMode.SAVE_SPACE -> Compress(Bitmap.CompressFormat.JPEG, 500, 70)
CoverMode.BALANCED -> siloedCovers(context, revision, CoverParams.of(750, 85)) CoverMode.BALANCED -> Compress(Bitmap.CompressFormat.JPEG, 750, 85)
CoverMode.HIGH_QUALITY -> siloedCovers(context, revision, CoverParams.of(1000, 100)) CoverMode.HIGH_QUALITY -> Compress(Bitmap.CompressFormat.JPEG, 1000, 100)
CoverMode.AS_IS -> NoTranscoding
}
val revisionedTranscoding = RevisionedTranscoding(revision, transcoding)
val storedCovers =
MutableStoredCovers(
EmbeddedCovers(CoverIdentifier.md5()), coverStorage, revisionedTranscoding)
val fsCovers = MutableFSCovers(context)
return MutableChainedCovers(storedCovers, fsCovers)
}
} }
private suspend fun siloedCovers(context: Context, revision: UUID, with: CoverParams) = private fun Context.coversDir() = filesDir.resolve("covers").apply { mkdirs() }
MutableSiloedCovers.from(context, CoverSilo(revision, with), identifier)
}

View file

@ -1,118 +0,0 @@
/*
* Copyright (c) 2024 Auxio Project
* SiloedCovers.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.oxycblt.auxio.image.covers
import android.content.Context
import java.io.File
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.oxycblt.musikr.cover.Cover
import org.oxycblt.musikr.cover.CoverFormat
import org.oxycblt.musikr.cover.CoverIdentifier
import org.oxycblt.musikr.cover.Covers
import org.oxycblt.musikr.cover.FileCover
import org.oxycblt.musikr.cover.FileCovers
import org.oxycblt.musikr.cover.MutableCovers
import org.oxycblt.musikr.cover.MutableFileCovers
import org.oxycblt.musikr.cover.ObtainResult
import org.oxycblt.musikr.fs.app.AppFiles
open class SiloedCovers(private val silo: CoverSilo, private val fileCovers: FileCovers) : Covers {
override suspend fun obtain(id: String): ObtainResult<SiloedCover> {
val coverId = SiloedCoverId.parse(id) ?: return ObtainResult.Miss()
if (coverId.silo != silo) return ObtainResult.Miss()
return when (val result = fileCovers.obtain(coverId.id)) {
is ObtainResult.Hit -> ObtainResult.Hit(SiloedCover(silo, result.cover))
is ObtainResult.Miss -> ObtainResult.Miss()
}
}
companion object {
suspend fun from(context: Context, silo: CoverSilo): SiloedCovers {
val core = SiloCore.from(context, silo)
return SiloedCovers(silo, FileCovers(core.files, core.format))
}
}
}
class MutableSiloedCovers
private constructor(
private val rootDir: File,
private val silo: CoverSilo,
private val fileCovers: MutableFileCovers
) : SiloedCovers(silo, fileCovers), MutableCovers {
override suspend fun write(data: ByteArray) = SiloedCover(silo, fileCovers.write(data))
override suspend fun cleanup(excluding: Collection<Cover>) {
fileCovers.cleanup(excluding.filterIsInstance<SiloedCover>().map { it.innerCover })
// Destroy old revisions no longer being used.
withContext(Dispatchers.IO) {
val exclude = silo.toString()
rootDir.listFiles { file -> file.name != exclude }?.forEach { it.deleteRecursively() }
}
}
companion object {
suspend fun from(
context: Context,
silo: CoverSilo,
coverIdentifier: CoverIdentifier
): MutableSiloedCovers {
val core = SiloCore.from(context, silo)
return MutableSiloedCovers(
core.rootDir, silo, MutableFileCovers(core.files, core.format, coverIdentifier))
}
}
}
data class SiloedCover(private val silo: CoverSilo, val innerCover: FileCover) :
FileCover by innerCover {
private val innerId = SiloedCoverId(silo, innerCover.id)
override val id = innerId.toString()
}
data class SiloedCoverId(val silo: CoverSilo, val id: String) {
override fun toString() = "$id@$silo"
companion object {
fun parse(id: String): SiloedCoverId? {
val parts = id.split('@')
if (parts.size != 2) return null
val silo = CoverSilo.parse(parts[1]) ?: return null
return SiloedCoverId(silo, parts[0])
}
}
}
private data class SiloCore(val rootDir: File, val files: AppFiles, val format: CoverFormat) {
companion object {
suspend fun from(context: Context, silo: CoverSilo): SiloCore {
val rootDir: File
val revisionDir: File
withContext(Dispatchers.IO) {
rootDir = context.coversDir()
revisionDir = rootDir.resolve(silo.toString()).apply { mkdirs() }
}
val files = AppFiles.at(revisionDir)
val format = CoverFormat.jpeg(silo.params)
return SiloCore(rootDir, files, format)
}
}
}

View file

@ -19,6 +19,7 @@
package org.oxycblt.auxio.list.recycler package org.oxycblt.auxio.list.recycler
import android.animation.Animator import android.animation.Animator
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Rect import android.graphics.Rect
@ -34,6 +35,7 @@ import android.view.ViewGroup
import android.view.WindowInsets import android.view.WindowInsets
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.core.view.isEmpty
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import androidx.core.view.updatePaddingRelative import androidx.core.view.updatePaddingRelative
import androidx.core.widget.TextViewCompat import androidx.core.widget.TextViewCompat
@ -90,6 +92,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
private val thumbSlider = MaterialSlider.small(context, thumbWidth) private val thumbSlider = MaterialSlider.small(context, thumbWidth)
private var thumbAnimator: Animator? = null private var thumbAnimator: Animator? = null
@SuppressLint("InflateParams")
private val thumbView = private val thumbView =
context.inflater.inflate(R.layout.view_scroll_thumb, null).apply { context.inflater.inflate(R.layout.view_scroll_thumb, null).apply {
thumbSlider.jumpOut(this) thumbSlider.jumpOut(this)
@ -339,7 +342,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
// [proportion of scroll position to scroll range] * [total thumb range] // [proportion of scroll position to scroll range] * [total thumb range]
// This is somewhat adapted from the androidx RecyclerView FastScroller implementation. // This is somewhat adapted from the androidx RecyclerView FastScroller implementation.
val offsetY = computeVerticalScrollOffset() val offsetY = computeVerticalScrollOffset()
if (computeVerticalScrollRange() < height || childCount == 0) { if (computeVerticalScrollRange() < height || isEmpty()) {
fastScrollingPossible = false fastScrollingPossible = false
hideThumb() hideThumb()
hidePopup() hidePopup()

View file

@ -29,6 +29,7 @@ import kotlinx.coroutines.withContext
import kotlinx.coroutines.yield import kotlinx.coroutines.yield
import org.oxycblt.auxio.image.covers.SettingCovers import org.oxycblt.auxio.image.covers.SettingCovers
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
import org.oxycblt.auxio.music.shim.WriteOnlyMutableCache
import org.oxycblt.musikr.IndexingProgress import org.oxycblt.musikr.IndexingProgress
import org.oxycblt.musikr.Interpretation import org.oxycblt.musikr.Interpretation
import org.oxycblt.musikr.Library import org.oxycblt.musikr.Library
@ -38,7 +39,7 @@ import org.oxycblt.musikr.MutableLibrary
import org.oxycblt.musikr.Playlist import org.oxycblt.musikr.Playlist
import org.oxycblt.musikr.Song import org.oxycblt.musikr.Song
import org.oxycblt.musikr.Storage import org.oxycblt.musikr.Storage
import org.oxycblt.musikr.cache.StoredCache import org.oxycblt.musikr.cache.MutableCache
import org.oxycblt.musikr.playlist.db.StoredPlaylists import org.oxycblt.musikr.playlist.db.StoredPlaylists
import org.oxycblt.musikr.tag.interpret.Naming import org.oxycblt.musikr.tag.interpret.Naming
import org.oxycblt.musikr.tag.interpret.Separators import org.oxycblt.musikr.tag.interpret.Separators
@ -187,8 +188,8 @@ interface MusicRepository {
/** /**
* Flags indicating which kinds of music information changed. * Flags indicating which kinds of music information changed.
* *
* @param deviceLibrary Whether the current [DeviceLibrary] has changed. * @param deviceLibrary Whether the current songs/albums/artists/genres has changed.
* @param library Whether the current [Playlist]s have changed. * @param userLibrary Whether the current playlists have changed.
*/ */
data class Changes(val deviceLibrary: Boolean, val userLibrary: Boolean) data class Changes(val deviceLibrary: Boolean, val userLibrary: Boolean)
@ -236,14 +237,14 @@ class MusicRepositoryImpl
@Inject @Inject
constructor( constructor(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val storedCache: StoredCache, private val cache: MutableCache,
private val storedPlaylists: StoredPlaylists, private val storedPlaylists: StoredPlaylists,
private val settingCovers: SettingCovers, private val settingCovers: SettingCovers,
private val musicSettings: MusicSettings private val musicSettings: MusicSettings
) : MusicRepository { ) : MusicRepository {
private val updateListeners = mutableListOf<MusicRepository.UpdateListener>() private val updateListeners = mutableListOf<MusicRepository.UpdateListener>()
private val indexingListeners = mutableListOf<MusicRepository.IndexingListener>() private val indexingListeners = mutableListOf<MusicRepository.IndexingListener>()
@Volatile private var indexingWorker: MusicRepository.IndexingWorker? = null @Volatile private var indexingWorker: IndexingWorker? = null
@Volatile override var library: MutableLibrary? = null @Volatile override var library: MutableLibrary? = null
@Volatile private var previousCompletedState: IndexingState.Completed? = null @Volatile private var previousCompletedState: IndexingState.Completed? = null
@ -282,7 +283,7 @@ constructor(
} }
@Synchronized @Synchronized
override fun registerWorker(worker: MusicRepository.IndexingWorker) { override fun registerWorker(worker: IndexingWorker) {
if (indexingWorker != null) { if (indexingWorker != null) {
L.w("Worker is already registered") L.w("Worker is already registered")
return return
@ -292,7 +293,7 @@ constructor(
} }
@Synchronized @Synchronized
override fun unregisterWorker(worker: MusicRepository.IndexingWorker) { override fun unregisterWorker(worker: IndexingWorker) {
if (indexingWorker !== worker) { if (indexingWorker !== worker) {
L.w("Given worker did not match current worker") L.w("Given worker did not match current worker")
return return
@ -384,14 +385,14 @@ constructor(
Naming.simple() Naming.simple()
} }
val locations = musicSettings.musicLocations val locations = musicSettings.musicLocations
val withHidden = musicSettings.withHidden
val currentRevision = musicSettings.revision val currentRevision = musicSettings.revision
val newRevision = currentRevision?.takeIf { withCache } ?: UUID.randomUUID() val newRevision = currentRevision?.takeIf { withCache } ?: UUID.randomUUID()
val cache = if (withCache) storedCache.visible() else storedCache.invisible() val cache = if (withCache) cache else WriteOnlyMutableCache(cache)
val covers = settingCovers.create(context, newRevision) val covers = settingCovers.mutate(context, newRevision)
val storage = Storage(cache, covers, storedPlaylists) val storage = Storage(cache, covers, storedPlaylists)
val interpretation = Interpretation(nameFactory, separators) val interpretation = Interpretation(nameFactory, separators, withHidden)
val result = val result =
Musikr.new(context, storage, interpretation).run(locations, ::emitIndexingProgress) Musikr.new(context, storage, interpretation).run(locations, ::emitIndexingProgress)
// Music loading completed, update the revision right now so we re-use this work // Music loading completed, update the revision right now so we re-use this work

View file

@ -40,6 +40,8 @@ interface MusicSettings : Settings<MusicSettings.Listener> {
var musicLocations: List<MusicLocation> var musicLocations: List<MusicLocation>
/** Whether to exclude non-music audio files from the music library. */ /** Whether to exclude non-music audio files from the music library. */
val excludeNonMusic: Boolean val excludeNonMusic: Boolean
/** Whether to ignore hidden files and directories during music loading. */
val withHidden: Boolean
/** Whether to be actively watching for changes in the music library. */ /** Whether to be actively watching for changes in the music library. */
val shouldBeObserving: Boolean val shouldBeObserving: Boolean
/** A [String] of characters representing the desired characters to denote multi-value tags. */ /** A [String] of characters representing the desired characters to denote multi-value tags. */
@ -83,13 +85,19 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont
sharedPreferences.edit { sharedPreferences.edit {
putString( putString(
getString(R.string.set_key_music_locations), MusicLocation.toString(value)) getString(R.string.set_key_music_locations), MusicLocation.toString(value))
this@edit.apply() commit()
// Sometimes changing this setting just won't actually trigger the listener.
// Only this one. No idea why.
listener?.onMusicLocationsChanged()
} }
} }
override val excludeNonMusic: Boolean override val excludeNonMusic: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_exclude_non_music), true) get() = sharedPreferences.getBoolean(getString(R.string.set_key_exclude_non_music), true)
override val withHidden: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_with_hidden), false)
override val shouldBeObserving: Boolean override val shouldBeObserving: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_observing), false) get() = sharedPreferences.getBoolean(getString(R.string.set_key_observing), false)
@ -116,7 +124,9 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont
listener.onMusicLocationsChanged() listener.onMusicLocationsChanged()
} }
getString(R.string.set_key_separators), getString(R.string.set_key_separators),
getString(R.string.set_key_auto_sort_names) -> { getString(R.string.set_key_auto_sort_names),
getString(R.string.set_key_with_hidden),
getString(R.string.set_key_exclude_non_music) -> {
L.d("Dispatching indexing setting change for $key") L.d("Dispatching indexing setting change for $key")
listener.onIndexingSettingChanged() listener.onIndexingSettingChanged()
} }

View file

@ -27,15 +27,10 @@ import org.oxycblt.auxio.R
* @author Alexander Capehart (OxygenCobalt) * @author Alexander Capehart (OxygenCobalt)
*/ */
enum class MusicType { enum class MusicType {
/** @see Song */
SONGS, SONGS,
/** @see Album */
ALBUMS, ALBUMS,
/** @see Artist */
ARTISTS, ARTISTS,
/** @see Genre */
GENRES, GENRES,
/** @see Playlist */
PLAYLISTS; PLAYLISTS;
/** /**

View file

@ -53,6 +53,9 @@ class DeletePlaylistDialog : ViewBindingMaterialDialogFragment<DialogDeletePlayl
builder builder
.setTitle(R.string.lbl_confirm_delete_playlist) .setTitle(R.string.lbl_confirm_delete_playlist)
.setPositiveButton(R.string.lbl_delete) { _, _ -> .setPositiveButton(R.string.lbl_delete) { _, _ ->
// Normally the navigateUp will occur after this, which then collides with the
// playlist view's navigation. Forcefully navigate up to stop this.
findNavController().navigateUp()
// Now we can delete the playlist for-real this time. // Now we can delete the playlist for-real this time.
musicModel.deletePlaylist( musicModel.deletePlaylist(
unlikelyToBeNull(pickerModel.currentPlaylistToDelete.value), rude = true) unlikelyToBeNull(pickerModel.currentPlaylistToDelete.value), rude = true)

View file

@ -25,6 +25,7 @@ import android.view.LayoutInflater
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.net.toUri
import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.ConcatAdapter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
@ -80,7 +81,7 @@ class MusicSourcesDialog :
val locations = val locations =
savedInstanceState?.getStringArrayList(KEY_PENDING_LOCATIONS)?.mapNotNull { savedInstanceState?.getStringArrayList(KEY_PENDING_LOCATIONS)?.mapNotNull {
MusicLocation.existing(requireContext(), Uri.parse(it)) MusicLocation.existing(requireContext(), it.toUri())
} ?: musicSettings.musicLocations } ?: musicSettings.musicLocations
locationAdapter.addAll(locations) locationAdapter.addAll(locations)

View file

@ -51,7 +51,7 @@ class NewLocationFooterAdapter(private val listener: Listener) :
} }
/** /**
* A [RecyclerView.ViewHolder] that displays a "New Playlist" choice in [NewPlaylistFooterAdapter]. * A [RecyclerView.ViewHolder] that displays a "New Playlist" choice in [NewLocationFooterAdapter].
* Use [from] to create an instance. * Use [from] to create an instance.
* *
* @author Alexander Capehart (OxygenCobalt) * @author Alexander Capehart (OxygenCobalt)

View file

@ -92,6 +92,7 @@ constructor(
fun start() { fun start() {
if (musicRepository.indexingState == null) { if (musicRepository.indexingState == null) {
L.d("Requesting index")
musicRepository.requestIndex(true) musicRepository.requestIndex(true)
} }
} }

View file

@ -25,7 +25,8 @@ import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton import javax.inject.Singleton
import org.oxycblt.musikr.cache.StoredCache import org.oxycblt.musikr.cache.MutableCache
import org.oxycblt.musikr.cache.db.MutableDBCache
import org.oxycblt.musikr.playlist.db.StoredPlaylists import org.oxycblt.musikr.playlist.db.StoredPlaylists
@Module @Module
@ -33,7 +34,7 @@ import org.oxycblt.musikr.playlist.db.StoredPlaylists
class MusikrShimModule { class MusikrShimModule {
@Singleton @Singleton
@Provides @Provides
fun storedCache(@ApplicationContext context: Context) = StoredCache.from(context) fun cache(@ApplicationContext context: Context): MutableCache = MutableDBCache.from(context)
@Singleton @Singleton
@Provides @Provides

View file

@ -0,0 +1,41 @@
/*
* Copyright (c) 2025 Auxio Project
* WriteOnlyMutableCache.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.oxycblt.auxio.music.shim
import org.oxycblt.musikr.cache.CacheResult
import org.oxycblt.musikr.cache.CachedSong
import org.oxycblt.musikr.cache.MutableCache
import org.oxycblt.musikr.fs.device.DeviceFile
class WriteOnlyMutableCache(private val inner: MutableCache) : MutableCache {
override suspend fun read(file: DeviceFile): CacheResult {
return when (val result = inner.read(file)) {
is CacheResult.Hit -> CacheResult.Stale(file, result.song.addedMs)
else -> result
}
}
override suspend fun write(cachedSong: CachedSong) {
inner.write(cachedSong)
}
override suspend fun cleanup(excluding: List<CachedSong>) {
inner.cleanup(excluding)
}
}

View file

@ -48,13 +48,6 @@ fun Long.dsToMs() = times(100)
*/ */
fun Long.dsToSecs() = floorDiv(10) fun Long.dsToSecs() = floorDiv(10)
/**
* Convert seconds into milliseconds.
*
* @return A converted millisecond value.
*/
fun Long.secsToMs() = times(1000)
/** /**
* Convert a millisecond value into a string duration. * Convert a millisecond value into a string duration.
* *

View file

@ -18,7 +18,9 @@
package org.oxycblt.auxio.playback.service package org.oxycblt.auxio.playback.service
import androidx.annotation.OptIn
import androidx.media3.common.C import androidx.media3.common.C
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.source.ShuffleOrder import androidx.media3.exoplayer.source.ShuffleOrder
/** /**
@ -28,6 +30,7 @@ import androidx.media3.exoplayer.source.ShuffleOrder
* *
* @author media3 team, Alexander Capehart (OxygenCobalt) * @author media3 team, Alexander Capehart (OxygenCobalt)
*/ */
@OptIn(UnstableApi::class)
class BetterShuffleOrder(private val shuffled: IntArray) : ShuffleOrder { class BetterShuffleOrder(private val shuffled: IntArray) : ShuffleOrder {
private val indexInShuffled: IntArray = IntArray(shuffled.size) private val indexInShuffled: IntArray = IntArray(shuffled.size)

View file

@ -22,11 +22,13 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.media.audiofx.AudioEffect import android.media.audiofx.AudioEffect
import android.provider.OpenableColumns import android.provider.OpenableColumns
import androidx.annotation.OptIn
import androidx.media3.common.AudioAttributes import androidx.media3.common.AudioAttributes
import androidx.media3.common.C import androidx.media3.common.C
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
import androidx.media3.common.PlaybackException import androidx.media3.common.PlaybackException
import androidx.media3.common.Player import androidx.media3.common.Player
import androidx.media3.common.util.UnstableApi
import androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer import androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.exoplayer.RenderersFactory import androidx.media3.exoplayer.RenderersFactory
@ -62,6 +64,7 @@ import org.oxycblt.musikr.MusicParent
import org.oxycblt.musikr.Song import org.oxycblt.musikr.Song
import timber.log.Timber as L import timber.log.Timber as L
@OptIn(UnstableApi::class)
class ExoPlaybackStateHolder( class ExoPlaybackStateHolder(
private val context: Context, private val context: Context,
private val player: ExoPlayer, private val player: ExoPlayer,
@ -432,16 +435,16 @@ class ExoPlaybackStateHolder(
override fun endSession() { override fun endSession() {
// This session has ended, so we need to reset this flag for when the next // This session has ended, so we need to reset this flag for when the next
// session starts. // session starts.
playbackManager.playing(false)
save { save {
// User could feasibly start playing again if they were fast enough, so // User could feasibly start playing again if they were fast enough, so
// we need to avoid stopping the foreground state if that's the case. // we need to avoid stopping the foreground state if that's the case.
if (playbackManager.progression.isPlaying) { if (!playbackManager.progression.isPlaying) {
playbackManager.playing(false)
}
sessionOngoing = false sessionOngoing = false
playbackManager.ack(this, StateAck.SessionEnded) playbackManager.ack(this, StateAck.SessionEnded)
} }
} }
}
override fun reset(ack: StateAck.NewPlayback) { override fun reset(ack: StateAck.NewPlayback) {
player.setMediaItems(listOf()) player.setMediaItems(listOf())
@ -545,7 +548,9 @@ class ExoPlaybackStateHolder(
private fun save(cb: () -> Unit) { private fun save(cb: () -> Unit) {
saveJob { saveJob {
if (sessionOngoing) {
persistenceRepository.saveState(playbackManager.toSavedState()) persistenceRepository.saveState(playbackManager.toSavedState())
}
withContext(Dispatchers.Main) { cb() } withContext(Dispatchers.Main) { cb() }
} }
} }
@ -556,9 +561,11 @@ class ExoPlaybackStateHolder(
delay(SAVE_BUFFER) delay(SAVE_BUFFER)
yield() yield()
L.d("Committing saved state") L.d("Committing saved state")
if (sessionOngoing) {
persistenceRepository.saveState(playbackManager.toSavedState()) persistenceRepository.saveState(playbackManager.toSavedState())
} }
} }
}
private fun saveJob(block: suspend () -> Unit) { private fun saveJob(block: suspend () -> Unit) {
currentSaveJob?.let { currentSaveJob?.let {

View file

@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
import org.oxycblt.auxio.AuxioService import org.oxycblt.auxio.AuxioService
import org.oxycblt.auxio.IntegerTable
import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.playback.state.PlaybackStateManager
import timber.log.Timber as L import timber.log.Timber as L
@ -47,8 +48,11 @@ class MediaButtonReceiver : BroadcastReceiver() {
// stupid this is with the state of foreground services on modern android. One // stupid this is with the state of foreground services on modern android. One
// wrong action at the wrong time will result in the app crashing, and there is // wrong action at the wrong time will result in the app crashing, and there is
// nothing I can do about it. // nothing I can do about it.
// TODO: Think I finally have an alternative with the changes I made to accomodate
// tasker
L.d("Delivering media button intent $intent") L.d("Delivering media button intent $intent")
intent.component = ComponentName(context, AuxioService::class.java) intent.component = ComponentName(context, AuxioService::class.java)
intent.putExtra(AuxioService.INTENT_KEY_START_ID, IntegerTable.START_ID_MEDIA_BUTTON)
ContextCompat.startForegroundService(context, intent) ContextCompat.startForegroundService(context, intent)
} }
} }

View file

@ -20,6 +20,7 @@ package org.oxycblt.auxio.playback.service
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent
import android.graphics.Bitmap import android.graphics.Bitmap
import android.support.v4.media.MediaMetadataCompat import android.support.v4.media.MediaMetadataCompat
import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.MediaSessionCompat
@ -28,6 +29,7 @@ import androidx.annotation.DrawableRes
import androidx.car.app.mediaextensions.MetadataExtras import androidx.car.app.mediaextensions.MetadataExtras
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.media.app.NotificationCompat.MediaStyle import androidx.media.app.NotificationCompat.MediaStyle
import androidx.media.session.MediaButtonReceiver
import javax.inject.Inject import javax.inject.Inject
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.ForegroundListener import org.oxycblt.auxio.ForegroundListener
@ -108,6 +110,9 @@ private constructor(
} }
} }
fun tryMediaButtonIntent(intent: Intent): Boolean =
MediaButtonReceiver.handleIntent(mediaSession, intent) != null
/** /**
* Release this instance, closing the [MediaSessionCompat] and preventing any further updates to * Release this instance, closing the [MediaSessionCompat] and preventing any further updates to
* the [PlaybackNotification]. * the [PlaybackNotification].

View file

@ -19,9 +19,11 @@
package org.oxycblt.auxio.playback.service package org.oxycblt.auxio.playback.service
import android.content.Context import android.content.Context
import android.content.Intent
import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.MediaSessionCompat
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import org.oxycblt.auxio.AuxioService.Companion.INTENT_KEY_START_ID
import org.oxycblt.auxio.ForegroundListener import org.oxycblt.auxio.ForegroundListener
import org.oxycblt.auxio.ForegroundServiceNotification import org.oxycblt.auxio.ForegroundServiceNotification
import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.IntegerTable
@ -83,18 +85,34 @@ private constructor(
} }
} }
fun start(startedBy: Int) { fun start(intent: Intent?) {
// At minimum we want to ensure an active playback state. // At minimum we want to ensure an active playback state.
// TODO: Possibly also force to go foreground? // TODO: Possibly also force to go foreground?
L.d("Handling non-native start.") val startId = intent?.getIntExtra(INTENT_KEY_START_ID, -1)
val action = val action =
when (startedBy) { when (startId) {
IntegerTable.START_ID_ACTIVITY -> null IntegerTable.START_ID_ACTIVITY -> null
IntegerTable.START_ID_TASKER -> IntegerTable.START_ID_TASKER ->
DeferredPlayback.RestoreState( DeferredPlayback.RestoreState(
play = true, fallback = DeferredPlayback.ShuffleAll) play = true, fallback = DeferredPlayback.ShuffleAll)
IntegerTable.START_ID_MEDIA_BUTTON -> {
if (!sessionHolder.tryMediaButtonIntent(intent)) {
// Malformed intent, need to restore state immediately
DeferredPlayback.RestoreState(
play = true, fallback = DeferredPlayback.ShuffleAll)
} else {
null
}
}
else -> {
L.d("Handling non-native start.")
if (intent != null && sessionHolder.tryMediaButtonIntent(intent)) {
// Just a media button intent, move on.
return
}
// External services using Auxio better know what they are doing. // External services using Auxio better know what they are doing.
else -> DeferredPlayback.RestoreState(play = false) DeferredPlayback.RestoreState(play = false)
}
} }
if (action != null) { if (action != null) {
L.d("Initing service fragment using action $action") L.d("Initing service fragment using action $action")

View file

@ -19,6 +19,8 @@
package org.oxycblt.auxio.playback.service package org.oxycblt.auxio.playback.service
import android.content.Context import android.content.Context
import androidx.annotation.OptIn
import androidx.media3.common.util.UnstableApi
import androidx.media3.datasource.ContentDataSource import androidx.media3.datasource.ContentDataSource
import androidx.media3.datasource.DataSource import androidx.media3.datasource.DataSource
import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.source.MediaSource
@ -41,6 +43,7 @@ import dagger.hilt.components.SingletonComponent
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
@OptIn(UnstableApi::class)
class SystemModule { class SystemModule {
@Provides @Provides
fun mediaSourceFactory( fun mediaSourceFactory(

View file

@ -20,9 +20,9 @@ package org.oxycblt.auxio.settings
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.core.net.toUri
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@ -72,6 +72,9 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
binding.aboutLicenses.setOnClickListener { requireContext().openInBrowser(LINK_LICENSES) } binding.aboutLicenses.setOnClickListener { requireContext().openInBrowser(LINK_LICENSES) }
binding.aboutProfile.setOnClickListener { requireContext().openInBrowser(LINK_PROFILE) } binding.aboutProfile.setOnClickListener { requireContext().openInBrowser(LINK_PROFILE) }
binding.aboutDonate.setOnClickListener { requireContext().openInBrowser(LINK_DONATE) } binding.aboutDonate.setOnClickListener { requireContext().openInBrowser(LINK_DONATE) }
binding.aboutSupMarkPitblado.setOnClickListener {
requireContext().openInBrowser(LINK_SUP_MARK_PITBLADO)
}
binding.aboutFeedbackGithub.setOnClickListener { binding.aboutFeedbackGithub.setOnClickListener {
requireContext().openInBrowser(LINK_NEW_ISSUE) requireContext().openInBrowser(LINK_NEW_ISSUE)
} }
@ -102,7 +105,7 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
} }
private fun Context.sendEmail(recipient: String) { private fun Context.sendEmail(recipient: String) {
val intent = Intent(Intent.ACTION_SENDTO).apply { data = Uri.parse("mailto:$recipient") } val intent = Intent(Intent.ACTION_SENDTO).apply { data = "mailto:$recipient".toUri() }
startIntent(intent) startIntent(intent)
} }
@ -113,5 +116,6 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
const val LINK_NEW_ISSUE = "$LINK_SOURCE/issues/new" const val LINK_NEW_ISSUE = "$LINK_SOURCE/issues/new"
const val LINK_PROFILE = "https://github.com/OxygenCobalt" const val LINK_PROFILE = "https://github.com/OxygenCobalt"
const val LINK_DONATE = "https://github.com/sponsors/OxygenCobalt" const val LINK_DONATE = "https://github.com/sponsors/OxygenCobalt"
const val LINK_SUP_MARK_PITBLADO = "https://github.com/mark-pitblado"
} }
} }

View file

@ -62,17 +62,13 @@ interface Settings<Listener> {
*/ */
abstract class Impl<Listener>(private val context: Context) : abstract class Impl<Listener>(private val context: Context) :
Settings<Listener>, SharedPreferences.OnSharedPreferenceChangeListener { Settings<Listener>, SharedPreferences.OnSharedPreferenceChangeListener {
init {
L.d(this::class.simpleName)
}
protected val sharedPreferences: SharedPreferences = protected val sharedPreferences: SharedPreferences =
PreferenceManager.getDefaultSharedPreferences(context.applicationContext) PreferenceManager.getDefaultSharedPreferences(context.applicationContext)
/** @see [Context.getString] */ /** @see [Context.getString] */
protected fun getString(@StringRes stringRes: Int) = context.getString(stringRes) protected fun getString(@StringRes stringRes: Int) = context.getString(stringRes)
private var listener: Listener? = null protected var listener: Listener? = null
override fun registerListener(listener: Listener) { override fun registerListener(listener: Listener) {
if (this.listener == null) { if (this.listener == null) {

View file

@ -67,5 +67,14 @@ class MusicPreferenceFragment : BasePreferenceFragment(R.xml.preferences_music)
true true
} }
} }
if (preference.key == getString(R.string.set_key_with_hidden)) {
L.d("Configuring ignore hidden files setting")
preference.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _, _ ->
L.d("Ignore hidden files setting changed, reloading music")
musicModel.refresh()
true
}
}
} }
} }

View file

@ -66,6 +66,9 @@ class StartActionRunner : TaskerPluginRunnerActionNoOutputOrInput() {
while (!AuxioService.isForeground) { while (!AuxioService.isForeground) {
Thread.sleep(100) Thread.sleep(100)
} }
// Actually need to sleep even longer since for some reason the notification still
// won't accept media button events for an arbitrary period.
Thread.sleep(100)
return TaskerPluginResultSucess() return TaskerPluginResultSucess()
} }
} }

View file

@ -46,25 +46,25 @@ class AnimConfig(
companion object { companion object {
val STANDARD = MR.attr.motionEasingStandardInterpolator val STANDARD = MR.attr.motionEasingStandardInterpolator
val EMPHASIZED = MR.attr.motionEasingEmphasizedInterpolator // val EMPHASIZED = MR.attr.motionEasingEmphasizedInterpolator
val EMPHASIZED_ACCELERATE = MR.attr.motionEasingEmphasizedAccelerateInterpolator val EMPHASIZED_ACCELERATE = MR.attr.motionEasingEmphasizedAccelerateInterpolator
val EMPHASIZED_DECELERATE = MR.attr.motionEasingEmphasizedDecelerateInterpolator val EMPHASIZED_DECELERATE = MR.attr.motionEasingEmphasizedDecelerateInterpolator
val SHORT1 = MR.attr.motionDurationShort1 to 50 val SHORT1 = MR.attr.motionDurationShort1 to 50
val SHORT2 = MR.attr.motionDurationShort2 to 100 // val SHORT2 = MR.attr.motionDurationShort2 to 100
val SHORT3 = MR.attr.motionDurationShort3 to 150 val SHORT3 = MR.attr.motionDurationShort3 to 150
val SHORT4 = MR.attr.motionDurationShort4 to 200 // val SHORT4 = MR.attr.motionDurationShort4 to 200
val MEDIUM1 = MR.attr.motionDurationMedium1 to 250 val MEDIUM1 = MR.attr.motionDurationMedium1 to 250
val MEDIUM2 = MR.attr.motionDurationMedium2 to 300 val MEDIUM2 = MR.attr.motionDurationMedium2 to 300
val MEDIUM3 = MR.attr.motionDurationMedium3 to 350 val MEDIUM3 = MR.attr.motionDurationMedium3 to 350
val MEDIUM4 = MR.attr.motionDurationMedium4 to 400 // val MEDIUM4 = MR.attr.motionDurationMedium4 to 400
val LONG1 = MR.attr.motionDurationLong1 to 450 // val LONG1 = MR.attr.motionDurationLong1 to 450
val LONG2 = MR.attr.motionDurationLong2 to 500 // val LONG2 = MR.attr.motionDurationLong2 to 500
val LONG3 = MR.attr.motionDurationLong3 to 550 // val LONG3 = MR.attr.motionDurationLong3 to 550
val LONG4 = MR.attr.motionDurationLong4 to 600 // val LONG4 = MR.attr.motionDurationLong4 to 600
val EXTRA_LONG1 = MR.attr.motionDurationExtraLong1 to 700 // val EXTRA_LONG1 = MR.attr.motionDurationExtraLong1 to 700
val EXTRA_LONG2 = MR.attr.motionDurationExtraLong2 to 800 // val EXTRA_LONG2 = MR.attr.motionDurationExtraLong2 to 800
val EXTRA_LONG3 = MR.attr.motionDurationExtraLong3 to 900 // val EXTRA_LONG3 = MR.attr.motionDurationExtraLong3 to 900
val EXTRA_LONG4 = MR.attr.motionDurationExtraLong4 to 1000 // val EXTRA_LONG4 = MR.attr.motionDurationExtraLong4 to 1000
fun of(context: Context, @AttrRes interpolator: Int, duration: Pair<Int, Int>) = fun of(context: Context, @AttrRes interpolator: Int, duration: Pair<Int, Int>) =
AnimConfig(context, interpolator, duration.first, duration.second) AnimConfig(context, interpolator, duration.first, duration.second)
@ -122,7 +122,7 @@ private constructor(
} }
} }
fun jumpToFadeIn(view: View) { private fun jumpToFadeIn(view: View) {
view.apply { view.apply {
alpha = 1f alpha = 1f
scaleX = 1.0f scaleX = 1.0f

View file

@ -72,7 +72,7 @@ class UISettingsImpl @Inject constructor(@ApplicationContext context: Context) :
} }
override val roundMode: Boolean override val roundMode: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_round_mode), false) get() = sharedPreferences.getBoolean(getString(R.string.set_key_round_mode), true)
override fun migrate() { override fun migrate() {
if (sharedPreferences.contains(OLD_KEY_ACCENT3)) { if (sharedPreferences.contains(OLD_KEY_ACCENT3)) {

View file

@ -65,22 +65,22 @@ private val accentThemes =
private val accentBlackThemes = private val accentBlackThemes =
intArrayOf( intArrayOf(
R.style.Theme_Auxio_Black_Red, R.style.Theme_Auxio_Red_Black,
R.style.Theme_Auxio_Black_Pink, R.style.Theme_Auxio_Pink_Black,
R.style.Theme_Auxio_Black_Purple, R.style.Theme_Auxio_Purple_Black,
R.style.Theme_Auxio_Black_DeepPurple, R.style.Theme_Auxio_DeepPurple_Black,
R.style.Theme_Auxio_Black_Indigo, R.style.Theme_Auxio_Indigo_Black,
R.style.Theme_Auxio_Black_Blue, R.style.Theme_Auxio_Blue_Black,
R.style.Theme_Auxio_Black_DeepBlue, R.style.Theme_Auxio_DeepBlue_Black,
R.style.Theme_Auxio_Black_Cyan, R.style.Theme_Auxio_Cyan_Black,
R.style.Theme_Auxio_Black_Teal, R.style.Theme_Auxio_Teal_Black,
R.style.Theme_Auxio_Black_Green, R.style.Theme_Auxio_Green_Black,
R.style.Theme_Auxio_Black_DeepGreen, R.style.Theme_Auxio_DeepGreen_Black,
R.style.Theme_Auxio_Black_Lime, R.style.Theme_Auxio_Lime_Black,
R.style.Theme_Auxio_Black_Yellow, R.style.Theme_Auxio_Yellow_Black,
R.style.Theme_Auxio_Black_Orange, R.style.Theme_Auxio_Orange_Black,
R.style.Theme_Auxio_Black_Brown, R.style.Theme_Auxio_Brown_Black,
R.style.Theme_Auxio_Black_Grey, R.style.Theme_Auxio_Grey_Black,
R.style.Theme_Auxio_Black // Dynamic colors are on the base theme R.style.Theme_Auxio_Black // Dynamic colors are on the base theme
) )

View file

@ -24,7 +24,6 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.PointF import android.graphics.PointF
import android.graphics.drawable.Drawable
import android.os.Build import android.os.Build
import android.view.View import android.view.View
import android.view.WindowInsets import android.view.WindowInsets
@ -36,7 +35,6 @@ import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ShareCompat import androidx.core.app.ShareCompat
import androidx.core.graphics.Insets import androidx.core.graphics.Insets
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.view.children import androidx.core.view.children
import androidx.navigation.NavController import androidx.navigation.NavController
@ -106,10 +104,6 @@ private fun isUnderImpl(
val View.isRtl: Boolean val View.isRtl: Boolean
get() = layoutDirection == View.LAYOUT_DIRECTION_RTL get() = layoutDirection == View.LAYOUT_DIRECTION_RTL
/** Whether this [Drawable] is using an RTL layout direction. */
val Drawable.isRtl: Boolean
get() = DrawableCompat.getLayoutDirection(this) == View.LAYOUT_DIRECTION_RTL
/** Get a [Context] from a [ViewBinding]'s root [View]. */ /** Get a [Context] from a [ViewBinding]'s root [View]. */
val ViewBinding.context: Context val ViewBinding.context: Context
get() = root.context get() = root.context
@ -357,7 +351,7 @@ fun Context.startIntent(intent: Intent) {
// No app installed to open the link // No app installed to open the link
showToast(R.string.err_no_app) showToast(R.string.err_no_app)
} }
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { } else {
// On older versions of android, opening links from an ACTION_VIEW intent might // On older versions of android, opening links from an ACTION_VIEW intent might
// not work in all cases, especially when no default app was set. If that is the // not work in all cases, especially when no default app was set. If that is the
// case, we will try to manually handle these cases before we try to launch the // case, we will try to manually handle these cases before we try to launch the

View file

@ -22,18 +22,11 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import java.util.concurrent.TimeoutException
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.SendChannel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withTimeout
import org.oxycblt.auxio.BuildConfig
import timber.log.Timber as L
/** /**
* A wrapper around [StateFlow] exposing a one-time consumable event. * A wrapper around [StateFlow] exposing a one-time consumable event.
@ -153,71 +146,3 @@ private fun Fragment.launch(
) { ) {
viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(state, block) } viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(state, block) }
} }
const val DEFAULT_TIMEOUT = 60000L
/**
* Wraps [SendChannel.send] with a specified timeout.
*
* @param element The element to send.
* @param timeout The timeout in milliseconds. Defaults to 10 seconds.
* @throws TimeoutException If the timeout is reached, provides context on what element
* specifically.
*/
suspend fun <E> SendChannel<E>.sendWithTimeout(element: E, timeout: Long = DEFAULT_TIMEOUT) {
try {
withTimeout(timeout) { send(element) }
} catch (e: TimeoutCancellationException) {
L.e("Failed to send element to channel $e in ${timeout}ms.")
if (BuildConfig.DEBUG) {
throw TimeoutException("Timed out sending element to channel: $e")
} else {
L.e(e.stackTraceToString())
send(element)
}
}
}
/**
* Wraps a [ReceiveChannel] consumption with a specified timeout. Note that the timeout will only
* start on the first element received, as to prevent initialization of dependent coroutines being
* interpreted as a timeout.
*
* @param action The action to perform on each element received.
* @param timeout The timeout in milliseconds. Defaults to 10 seconds.
* @throws TimeoutException If the timeout is reached, provides context on what element
* specifically.
*/
suspend fun <E> ReceiveChannel<E>.forEachWithTimeout(
timeout: Long = DEFAULT_TIMEOUT,
action: suspend (E) -> Unit
) {
var exhausted = false
var subsequent = false
val handler: suspend () -> Unit = {
val value = receiveCatching()
if (value.isClosed && value.exceptionOrNull() == null) {
exhausted = true
} else {
action(value.getOrThrow())
}
}
while (!exhausted) {
try {
if (subsequent) {
withTimeout(timeout) { handler() }
} else {
handler()
subsequent = true
}
} catch (e: TimeoutCancellationException) {
L.e("Failed to send element to channel $e in ${timeout}ms.")
if (BuildConfig.DEBUG) {
throw TimeoutException("Timed out sending element to channel: $e")
} else {
L.e(e.stackTraceToString())
handler()
}
}
}
}

View file

@ -20,6 +20,7 @@ package org.oxycblt.auxio.widgets
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Bitmap import android.graphics.Bitmap
import androidx.core.graphics.scale
import coil3.size.Size import coil3.size.Size
import coil3.transform.Transformation import coil3.transform.Transformation
import kotlin.math.sqrt import kotlin.math.sqrt
@ -49,7 +50,7 @@ class WidgetBitmapTransformation(reduce: Float) : Transformation() {
val scale = sqrt(maxBitmapArea / inputArea.toDouble()) val scale = sqrt(maxBitmapArea / inputArea.toDouble())
val newWidth = (input.width * scale).toInt() val newWidth = (input.width * scale).toInt()
val newHeight = (input.height * scale).toInt() val newHeight = (input.height * scale).toInt()
return Bitmap.createScaledBitmap(input, newWidth, newHeight, true) return input.scale(newWidth, newHeight)
} }
return input return input
} }

View file

@ -19,7 +19,6 @@
package org.oxycblt.auxio.widgets package org.oxycblt.auxio.widgets
import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProviderInfo
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
@ -66,11 +65,6 @@ fun RemoteViews.setLayoutDirection(@IdRes viewId: Int, layoutDirection: Int) {
setInt(viewId, "setLayoutDirection", layoutDirection) setInt(viewId, "setLayoutDirection", layoutDirection)
} }
fun AppWidgetManager.setWidgetPreviewCompat(component: ComponentName, remoteViews: RemoteViews) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) {
setWidgetPreview(component, AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN, remoteViews)
}
}
/** /**
* Update the app widget layouts corresponding to the given [WidgetProvider] [ComponentName] with an * Update the app widget layouts corresponding to the given [WidgetProvider] [ComponentName] with an
* adaptive layout, in a version-compatible manner. * adaptive layout, in a version-compatible manner.

View file

@ -119,7 +119,8 @@
app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button" app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/detail_cover" /> app:layout_constraintTop_toBottomOf="@+id/detail_cover"
tools:ignore="RtlSymmetry" />
<org.oxycblt.auxio.ui.RippleFixMaterialButton <org.oxycblt.auxio.ui.RippleFixMaterialButton
android:id="@+id/detail_shuffle_button" android:id="@+id/detail_shuffle_button"

View file

@ -101,7 +101,8 @@
app:icon="@drawable/ic_play_24" app:icon="@drawable/ic_play_24"
app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button" app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/detail_info" /> app:layout_constraintTop_toBottomOf="@+id/detail_info"
tools:ignore="RtlSymmetry"/>
<org.oxycblt.auxio.ui.RippleFixMaterialButton <org.oxycblt.auxio.ui.RippleFixMaterialButton
android:id="@+id/detail_shuffle_button" android:id="@+id/detail_shuffle_button"

View file

@ -129,7 +129,8 @@
app:layout_constraintBottom_toBottomOf="@+id/detail_play_button" app:layout_constraintBottom_toBottomOf="@+id/detail_play_button"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/detail_play_button" app:layout_constraintStart_toEndOf="@+id/detail_play_button"
app:layout_constraintTop_toTopOf="@+id/detail_play_button" /> app:layout_constraintTop_toTopOf="@+id/detail_play_button"
tools:ignore="RtlSymmetry" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.divider.MaterialDivider <com.google.android.material.divider.MaterialDivider

View file

@ -132,7 +132,8 @@
app:layout_constraintBottom_toBottomOf="@+id/detail_play_button" app:layout_constraintBottom_toBottomOf="@+id/detail_play_button"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/detail_play_button" app:layout_constraintStart_toEndOf="@+id/detail_play_button"
app:layout_constraintTop_toTopOf="@+id/detail_play_button" /> app:layout_constraintTop_toTopOf="@+id/detail_play_button"
tools:ignore="RtlSymmetry" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.divider.MaterialDivider <com.google.android.material.divider.MaterialDivider

View file

@ -226,6 +226,17 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/about_sup_mark_pitblado"
style="@style/Widget.Auxio.TextView.Icon.Clickable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sup_mark_pitblado"
app:layout_constraintEnd_toEndOf="parent"
app:drawableStartCompat="@drawable/ic_person_24"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/about_licenses" />
<TextView <TextView
android:id="@+id/about_supporters_promo" android:id="@+id/about_supporters_promo"
style="@style/Widget.Auxio.TextView.Icon.Clickable" style="@style/Widget.Auxio.TextView.Icon.Clickable"

View file

@ -34,6 +34,7 @@
android:layout_height="@dimen/size_icon_huge" android:layout_height="@dimen/size_icon_huge"
android:layout_marginBottom="@dimen/spacing_small" android:layout_marginBottom="@dimen/spacing_small"
android:src="@drawable/ic_song_48" android:src="@drawable/ic_song_48"
tools:ignore="ContentDescription"
app:tint="?attr/colorOnSurface" /> app:tint="?attr/colorOnSurface" />
<TextView <TextView

View file

@ -3,12 +3,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/spacing_tiny" android:padding="@dimen/spacing_tiny"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:tools="http://schemas.android.com/tools">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/size_touchable_small" android:layout_height="@dimen/size_touchable_small"
android:scaleType="centerInside" android:scaleType="centerInside"
tools:ignore="ContentDescription"
android:src="@drawable/ui_scroll_thumb" /> android:src="@drawable/ui_scroll_thumb" />
</FrameLayout> </FrameLayout>

View file

@ -22,7 +22,7 @@
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:background="@drawable/ui_widget_bg_round" android:background="@drawable/ui_widget_bg_round"
android:clipToOutline="true" android:clipToOutline="true"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription,UnusedAttribute" />
<android.widget.LinearLayout <android.widget.LinearLayout
android:id="@+id/widget_panel" android:id="@+id/widget_panel"

View file

@ -20,8 +20,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:background="@drawable/ui_widget_bg_round" android:background="@drawable/ui_widget_bg_round"
android:clipToOutline="true" tools:ignore="ContentDescription,UnusedAttribute" />
tools:ignore="ContentDescription" />
<android.widget.LinearLayout <android.widget.LinearLayout
android:id="@+id/widget_panel" android:id="@+id/widget_panel"

View file

@ -5,7 +5,6 @@
<string name="lng_widget">عرض وتحكم بشتغيل الموسيقى</string> <string name="lng_widget">عرض وتحكم بشتغيل الموسيقى</string>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">إعادة المحاولة</string> <string name="lbl_retry">إعادة المحاولة</string>
<string name="lbl_grant">منح</string>
<string name="lbl_genres">الانواع</string> <string name="lbl_genres">الانواع</string>
<string name="lbl_artists">فنانين</string> <string name="lbl_artists">فنانين</string>
<string name="lbl_albums">البومات</string> <string name="lbl_albums">البومات</string>
@ -27,42 +26,40 @@
<string name="set_play_song_from_album">تشغيل من البوم</string> <string name="set_play_song_from_album">تشغيل من البوم</string>
<string name="set_play_song_from_artist">تشغيل من فنان</string> <string name="set_play_song_from_artist">تشغيل من فنان</string>
<string name="lbl_queue">طابور</string> <string name="lbl_queue">طابور</string>
<string name="lbl_play_next">شغل الاغنية التالية</string> <string name="lbl_play_next">شغل التالي</string>
<string name="lbl_queue_add">أضف إلى الطابور</string> <string name="lbl_queue_add">أضف إلى الطابور</string>
<string name="lng_queue_added">تمت الإضافة إلى الطابور</string> <string name="lng_queue_added">تمت الإضافة إلى الطابور</string>
<string name="lbl_artist_details">أذهب إلى الفنان</string> <string name="lbl_artist_details">أذهب إلى الفنان</string>
<string name="lbl_album_details">أذهب إلى الالبوم</string> <string name="lbl_album_details">أذهب إلى الالبوم</string>
<string name="lbl_add">أضف</string>
<string name="lbl_save">حفظ</string> <string name="lbl_save">حفظ</string>
<string name="err_no_locations">لا مجلد</string>
<string name="lbl_about">حول</string> <string name="lbl_about">حول</string>
<string name="lbl_version">الإصدار</string> <string name="lbl_version">الإصدار</string>
<string name="lbl_code">عرض على الكود في Github</string> <string name="lbl_code">كود البرنامج</string>
<string name="lbl_licenses">التراخيص</string> <string name="lbl_licenses">التراخيص</string>
<string name="lbl_author_name">تمت برمجة التطبيق من قبل الكساندر كابيهارت</string> <string name="lbl_author_name">الكساندر كابيهارت</string>
<!-- Settings namespace | Settings-related labels --> <!-- Settings namespace | Settings-related labels -->
<string name="set_root_title">الإعدادات</string> <string name="set_root_title">الإعدادات</string>
<string name="set_ui">المظهر</string> <string name="set_ui">المظهر والاحساس</string>
<string name="set_theme">السمة</string> <string name="set_theme">السمة</string>
<string name="set_theme_auto">تلقائي</string> <string name="set_theme_auto">تلقائي</string>
<string name="set_theme_day">فاتح</string> <string name="set_theme_day">فاتح</string>
<string name="set_theme_night">مظلم</string> <string name="set_theme_night">مظلم</string>
<string name="set_accent">نظام الألوان</string> <string name="set_accent">نظام الألوان</string>
<string name="set_black_mode">السمة السوداء</string> <string name="set_black_mode">السمة السوداء</string>
<string name="set_black_mode_desc">استخدام اللون الاسود القاتم في الوضع المظلم</string> <string name="set_black_mode_desc">استخدام سمة اللون الاسود النقي</string>
<string name="set_display">عرض</string> <string name="set_display">عرض</string>
<string name="set_lib_tabs">تبويتات المكتبة</string> <string name="set_lib_tabs">تبويتات المكتبة</string>
<string name="set_lib_tabs_desc">تغيير ظهور وترتيب تبويتات المكتبة</string> <string name="set_lib_tabs_desc">تغيير ظهور وترتيب تبويتات المكتبة</string>
<string name="set_round_mode">اغلفة البوم مدورة</string> <string name="set_round_mode">وضع دائري</string>
<string name="set_round_mode_desc">جعل اغلفة الابومات ذات زوايا مدورة</string> <string name="set_round_mode_desc">تفعيل الزوايا المدورة لحدات الواجهه الاضافية (يتطلب اغلفة الالبوم ان تكون مدورة)</string>
<string name="set_notif_action">استخدام نشاط بديل للإشعار</string> <string name="set_notif_action">فعالية تنبيه مخصصة</string>
<string name="set_audio">صوتيات</string> <string name="set_audio">صوتيات</string>
<string name="set_replay_gain_mode">صخب الصوت</string> <string name="set_replay_gain_mode">صخب الصوت</string>
<string name="set_replay_gain_mode_track">تفضيل المقطع</string> <string name="set_replay_gain_mode_track">تفضيل المقطع</string>
<string name="set_replay_gain_mode_album">تفضيل الالبوم</string> <string name="set_replay_gain_mode_album">تفضيل الالبوم</string>
<string name="set_replay_gain_mode_dynamic">ديناميكي</string> <string name="set_replay_gain_mode_dynamic">ديناميكي</string>
<string name="set_personalize">سلوك</string> <string name="set_personalize">تخصيص</string>
<string name="set_play_in_list_with">عند اختيار اغنية</string> <string name="set_play_in_list_with">عند التشغيل من المكتبة</string>
<string name="set_keep_shuffle">تذكر الخلط</string> <string name="set_keep_shuffle">تذكر الخلط</string>
<string name="set_keep_shuffle_desc">إبقاء وضع الخلط عند تشغيل اغنية جديدة</string> <string name="set_keep_shuffle_desc">إبقاء وضع الخلط عند تشغيل اغنية جديدة</string>
<string name="set_rewind_prev">تشجيع قبل التخطي للخلف</string> <string name="set_rewind_prev">تشجيع قبل التخطي للخلف</string>
@ -71,13 +68,11 @@
<string name="set_repeat_pause_desc">ايقاف مؤقت عند تكرار تشغيل اغنية</string> <string name="set_repeat_pause_desc">ايقاف مؤقت عند تكرار تشغيل اغنية</string>
<string name="set_content">محتوى</string> <string name="set_content">محتوى</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">لم يتم ايجاد موسيقى</string>
<string name="err_index_failed">فشل تحميل الموسيقى</string> <string name="err_index_failed">فشل تحميل الموسيقى</string>
<string name="err_no_perms">اوكسيو يحتاج إلى صلاحيات لقراءة للاطلاع على مكتبتك للموسيقى</string>
<string name="err_no_app">لا يوجد تطبيق لفتح هذا الرابط</string> <string name="err_no_app">لا يوجد تطبيق لفتح هذا الرابط</string>
<string name="err_bad_location">هذا المجلد غير مدعوم</string> <string name="err_bad_location">هذا المجلد غير مدعوم</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">البحث في مكتبتك…</string> <string name="lng_search_library">ابحث في مكتبتك…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">المقطع %d</string> <string name="desc_track_number">المقطع %d</string>
<string name="desc_play_pause">تشغيل او ايقاف مؤقت</string> <string name="desc_play_pause">تشغيل او ايقاف مؤقت</string>
@ -85,7 +80,6 @@
<string name="desc_skip_prev">تخطي للاغنية الاخيرة</string> <string name="desc_skip_prev">تخطي للاغنية الاخيرة</string>
<string name="desc_change_repeat">تغيير وضع التكرار</string> <string name="desc_change_repeat">تغيير وضع التكرار</string>
<string name="desc_shuffle">تشغيل او اطفاء الخلط</string> <string name="desc_shuffle">تشغيل او اطفاء الخلط</string>
<string name="desc_shuffle_all">خلط جميع الاغاني</string>
<string name="desc_remove_song">إزالة اغنية من الطابور</string> <string name="desc_remove_song">إزالة اغنية من الطابور</string>
<string name="desc_song_handle">نقل اغنية من الطابور</string> <string name="desc_song_handle">نقل اغنية من الطابور</string>
<string name="desc_tab_handle">تحريك التبويت</string> <string name="desc_tab_handle">تحريك التبويت</string>
@ -136,44 +130,44 @@
<item quantity="many">%d ألبومات</item> <item quantity="many">%d ألبومات</item>
<item quantity="other">%d ألبومات</item> <item quantity="other">%d ألبومات</item>
</plurals> </plurals>
<string name="lbl_mix">MixMix</string> <string name="lbl_mix">مكس دي جي</string>
<string name="lbl_cancel">الغاء</string> <string name="lbl_cancel">الغاء</string>
<string name="lbl_format">التنسيق</string> <string name="lbl_format">التنسيق</string>
<string name="lbl_size">الحجم</string> <string name="lbl_size">الحجم</string>
<string name="lbl_library_counts">إحصائيات المكتبة</string> <string name="lbl_library_counts">إحصائيات المكتبة</string>
<string name="lbl_bitrate">معدل البت</string> <string name="lbl_bitrate">معدل البت</string>
<string name="lbl_compilation_live">تجميع مباشر</string> <string name="lbl_compilation_live">تجميع مباشر</string>
<string name="lbl_compilation_remix">تجميعات</string> <string name="lbl_compilation_remix">تجميعات ريمكس</string>
<string name="lbl_props">خصائص الاغنية</string> <string name="lbl_props">خصائص الاغنية</string>
<string name="lbl_sample_rate">معدل العينة</string> <string name="lbl_sample_rate">معدل العينة</string>
<string name="lbl_shuffle_shortcut_short">عشوائي</string> <string name="lbl_shuffle_shortcut_short">عشوائي</string>
<string name="lbl_shuffle_shortcut_long">تشغيل كل الاغاني بشكل عشوائي</string> <string name="lbl_shuffle_shortcut_long">تشغيل عشوائي للكل</string>
<string name="lbl_ok">حسنا</string> <string name="lbl_ok">حسنا</string>
<string name="lbl_sort_dsc">تنازلي</string> <string name="lbl_sort_dsc">تنازلي</string>
<string name="lbl_song_detail">عرض الخصائص</string> <string name="lbl_song_detail">عرض الخصائص</string>
<string name="lbl_live_group">مباشر</string> <string name="lbl_live_group">مباشر</string>
<string name="lbl_reset">اعادة ضبط</string> <string name="lbl_reset">اعادة ضبط</string>
<string name="lng_indexing">يتم تحمل مكتبتك …</string> <string name="lng_indexing">يتم تحمل مكتبتك الموسيقية</string>
<string name="lbl_genre">النوع</string> <string name="lbl_genre">النوع</string>
<string name="lng_observing">مراقبة تغييرات في مكتبتك</string> <string name="lng_observing">مراقبة تغييرات في مكتبتك الموسيقية…</string>
<string name="lbl_observing">مراقبة مكتبة الموسيقة</string> <string name="lbl_observing">مراقبة مكتبة الموسيقة</string>
<string name="lbl_indexer">تحميل الموسيقى</string> <string name="lbl_indexer">تحميل الموسيقى</string>
<string name="lbl_equalizer">المعادل</string> <string name="lbl_equalizer">المعادل</string>
<string name="lbl_singles">منفصل</string> <string name="lbl_singles">فرديات</string>
<string name="lbl_single">فردي</string> <string name="lbl_single">فردي</string>
<string name="lbl_ep">EP</string> <string name="lbl_ep">أغنية مطولة</string>
<string name="lbl_eps">EPs</string> <string name="lbl_eps">أغاني مطولة</string>
<string name="lbl_mixtape">Mixtape</string> <string name="lbl_mixtape">مكس</string>
<string name="lbl_soundtrack">تسجيل صوتي</string> <string name="lbl_soundtrack">موسيقى تصويرية</string>
<string name="lbl_mixtapes">Mixtapes</string> <string name="lbl_mixtapes">مكسات</string>
<string name="lbl_remix_group">RemixesRemixes</string> <string name="lbl_remix_group">RemixesRemixes</string>
<string name="lbl_soundtracks">الموسيقى التصويرية</string> <string name="lbl_soundtracks">موسيقات تصويرية</string>
<string name="lbl_album_live">البوم مباشر</string> <string name="lbl_album_live">البوم مباشر</string>
<string name="lbl_album_remix">ريمكس</string> <string name="lbl_album_remix">البوم ريمكس</string>
<string name="lbl_ep_live">مؤاثرات مباشرة</string> <string name="lbl_ep_live">أغنية مطولة مباشرة</string>
<string name="lbl_ep_remix">مؤاثرات ريمكس</string> <string name="lbl_ep_remix">اغنية مطولة ريمكس</string>
<string name="lbl_single_live">بث مباشر فردي</string> <string name="lbl_single_live">بث مباشر فردي</string>
<string name="lbl_single_remix">ريمكس منفصل</string> <string name="lbl_single_remix">ريمكس فردي</string>
<string name="lbl_compilations">تجميعات</string> <string name="lbl_compilations">تجميعات</string>
<string name="lbl_duration">مدة</string> <string name="lbl_duration">مدة</string>
<string name="lbl_song_count">عدد الأغاني</string> <string name="lbl_song_count">عدد الأغاني</string>
@ -181,16 +175,15 @@
<string name="lbl_track">مسار</string> <string name="lbl_track">مسار</string>
<string name="lbl_date_added">تاريخ الاضافة</string> <string name="lbl_date_added">تاريخ الاضافة</string>
<string name="lbl_indexing">تحميل الموسيقى</string> <string name="lbl_indexing">تحميل الموسيقى</string>
<string name="lbl_compilation">التحويل البرمجي</string> <string name="lbl_compilation">تجميع</string>
<string name="lbl_mixes">مزيج</string> <string name="lbl_mixes">مكسات دي جي</string>
<string name="lbl_wiki">Wiki</string> <string name="lbl_wiki">ويكي</string>
<string name="lbl_song">أغنية</string> <string name="lbl_song">أغنية</string>
<string name="lbl_sort_direction">أتجاه</string> <string name="lbl_sort_direction">أتجاه</string>
<string name="lbl_selection">أختيار</string> <string name="lbl_selection">أختيار</string>
<string name="lbl_playlists">قوائم التشغيل</string> <string name="lbl_playlists">قوائم التشغيل</string>
<string name="lbl_playlist">قائمة التشغيل</string> <string name="lbl_playlist">قائمة التشغيل</string>
<string name="lng_playlist_created">تم خلق قائمة التشغيل</string> <string name="lng_playlist_created">تم خلق قائمة التشغيل</string>
<string name="lbl_show_error_info">المزيد</string>
<string name="lbl_delete">حذف</string> <string name="lbl_delete">حذف</string>
<string name="lbl_copied">تم النسخ</string> <string name="lbl_copied">تم النسخ</string>
<string name="lbl_playlist_add">إضافة إلى قائمة التشغيل</string> <string name="lbl_playlist_add">إضافة إلى قائمة التشغيل</string>
@ -204,8 +197,66 @@
<string name="lng_playlist_deleted">تم حذف قائمة التشغيل</string> <string name="lng_playlist_deleted">تم حذف قائمة التشغيل</string>
<string name="lbl_report">تقرير</string> <string name="lbl_report">تقرير</string>
<string name="lbl_new_playlist">قائمة تشغيل جديدة</string> <string name="lbl_new_playlist">قائمة تشغيل جديدة</string>
<string name="lbl_error_info">معلومات خاطئة</string> <string name="lbl_error_info">معلومات الخطأ</string>
<string name="lng_playlist_renamed">تم إعادة تسمية قائمة التشغيل</string> <string name="lng_playlist_renamed">تم إعادة تسمية قائمة التشغيل</string>
<string name="lbl_rename_playlist">إعادة تسمية قائمة التشغيل</string> <string name="lbl_rename_playlist">إعادة تسمية قائمة التشغيل</string>
<string name="lbl_appears_on">يظهر على</string> <string name="lbl_appears_on">يظهر على</string>
<string name="lbl_music_sources">إختيار المجلد</string>
<string name="lbl_demos">مقاطع تجريبية</string>
<string name="lbl_import">استيراد</string>
<string name="lbl_export">تصدير</string>
<string name="lbl_export_playlist">تصدير قائمة تشغيل</string>
<string name="lbl_feedback">ملاحظات</string>
<string name="lbl_github">سجل مشكلة على GitHub</string>
<string name="lbl_email">أرسل ايميل</string>
<string name="lbl_donate">تبرع</string>
<string name="set_action_mode_next">تخطى الى التالي</string>
<string name="set_play_in_parent_with">عند التشغيل من خصائص العنصر</string>
<string name="set_play_song_none">تشغيل من العناصر المعروظة</string>
<string name="set_play_song_from_genre">تشغيل من النوع</string>
<string name="set_content_desc">تحكم بكيفية تحميل الاموسيقى والصور</string>
<string name="set_observing">التحميل التلقائي</string>
<string name="set_exclude_non_music_desc">تجاوز الملفات الصوتية الغير موسيقية, مثل البودكاست</string>
<string name="set_separators_desc">تعريف الفواصل التي تدل على علامات متعددة</string>
<string name="set_separators_semicolon">فاصلة منقوطة(;)</string>
<string name="lbl_path_style">نمط المسار</string>
<string name="lbl_more">ألمزيد</string>
<string name="lbl_path_style_absolute">مطلق</string>
<string name="lbl_supporters">الداعمين</string>
<string name="set_bar_action">فعالية شريط تشغيل مخصصة</string>
<string name="set_separators_and">العطف(&amp;)</string>
<string name="lbl_imported_playlist">قائمة تشغيل مستوردة</string>
<string name="set_separators">فواصل متعددة القيم</string>
<string name="set_ui_desc">تغيير سمات والوان البرنامج</string>
<string name="set_exclude_non_music">تجاوز غير الموسيقى</string>
<string name="lbl_demo">مقطع تجريبي</string>
<string name="lng_empty_songs">الاغاني الخاصة بك ستضهر هنا.</string>
<string name="lng_empty_artists">الفنانين الخاصين بك سيضهرون هنا.</string>
<string name="lbl_replaygain_track">تعديل تثبيت مستوى الصوت للاغنية</string>
<string name="lbl_replaygain_album">تعديل تثبيت مستوى الصوت للالبوم</string>
<string name="lng_playlist_imported">تم استيراد قائمة التشغيل</string>
<string name="lng_playlist_exported">تم تصدير قائمة التشغيل</string>
<string name="lng_supporters_promo">تبرع للمشروع لتتم اضافة اسمك هنا!</string>
<string name="set_action_mode_repeat">وضع التكرار</string>
<string name="set_play_song_by_itself">تشغيل اغنية محددة</string>
<string name="set_separators_plus">زائد(+)</string>
<string name="lbl_import_playlist">استيراد قائمة تشغيل</string>
<string name="lbl_empty_playlist">قائمة تشغيل فارغة</string>
<string name="set_personalize_desc">تخصيص ادوات تحكم الواجهه و سلوكها</string>
<string name="lbl_path">المسار</string>
<string name="set_intelligent_sorting">الترتيب الذكي</string>
<string name="set_separators_slash">الشارحة(/)</string>
<string name="lbl_start_playback">بدء التشغيل</string>
<string name="lbl_path_style_relative">نسبي</string>
<string name="lbl_windows_paths">إستخدام مسارات متوافقة مع نافذة</string>
<string name="lng_tasker_start">تشغيل Auxio بأستخدام الحالة المحفوظه مسبقا. اذا لم تتوفر حالة, كل الاغاني ستشغل بشكل عشوائي.\n\nتحذير:كن حذرا بالتحكم بهذة الخدمة, اذا اغلقتها وفتحتها مجددا,قد يتوقف البرنامج عن العمل.</string>
<string name="lbl_author">المؤلف</string>
<string name="set_music">الموسيقى</string>
<string name="lng_empty_playlists">قوائم التشغيل الخاصة بك ستضهر هنا.</string>
<string name="set_behavior">السلوك</string>
<string name="set_separators_comma">فاصلة (,)</string>
<string name="lng_empty_albums">الالبومات الخاصة بك ستضهر هنا.</string>
<string name="lng_empty_genres">الفئات الخاصة بك ستضهر هنا.</string>
<string name="set_observing_desc">اعادة تحميل مكتبة الموسيقى عند حصول تغيير(يتطلب تنبيه ثابت)</string>
<string name="set_separators_warning">تحذير: استخدام هذا الاعداد قد ينتج عنه ان يتم تفسير بعض العلامات بشكل خاطئ مثل ان تحتوي على قيم متعددة. يمكن ان يتم حل هذا بتقديم الفواصل الغير مرغوبةبالشارحة الخلفية(\\).</string>
</resources> </resources>

View file

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="info_app_desc">مشغّل موسيقى بسيط ومعقول للأندرويد</string> <string name="info_app_desc">مشغّل موسيقى بسيط ومعقول للأندرويد.</string>
<string name="lbl_observing">مراقبة مكتبة الموسيقى</string> <string name="lbl_observing">مراقبة مكتبة الموسيقى</string>
<string name="lbl_retry">إعادة المحاولة</string> <string name="lbl_retry">إعادة المحاولة</string>
<string name="lbl_grant">منح</string>
<string name="lbl_albums">الألبومات</string> <string name="lbl_albums">الألبومات</string>
<string name="lbl_songs">أغاني</string> <string name="lbl_songs">أغاني</string>
<string name="lbl_song">أغنية</string> <string name="lbl_song">أغنية</string>
@ -18,8 +17,7 @@
<string name="lbl_queue_add">إضافة للطابور</string> <string name="lbl_queue_add">إضافة للطابور</string>
<string name="lbl_playlist_add">إضافة لقائمة التشغيل</string> <string name="lbl_playlist_add">إضافة لقائمة التشغيل</string>
<string name="lbl_reset">إعادة ضبط</string> <string name="lbl_reset">إعادة ضبط</string>
<string name="lbl_add">إضافة مجلد</string> <string name="lng_indexing">جارِ تحميل مكتبتك الموسيقية…</string>
<string name="lng_indexing">يتم تحميل مكتبتك الموسيقية</string>
<string name="lng_queue_added">أضيفت للطابور</string> <string name="lng_queue_added">أضيفت للطابور</string>
<string name="lng_playlist_created">تم إنشاء قائمة التشغيل</string> <string name="lng_playlist_created">تم إنشاء قائمة التشغيل</string>
<string name="lbl_artists">فنانون</string> <string name="lbl_artists">فنانون</string>
@ -85,7 +83,6 @@
<string name="def_disc">لا قرص</string> <string name="def_disc">لا قرص</string>
<string name="cdc_mp4">صوت MPEG-4</string> <string name="cdc_mp4">صوت MPEG-4</string>
<string name="cdc_ogg">أوغ الصوت</string> <string name="cdc_ogg">أوغ الصوت</string>
<string name="cdc_mka">صوت ماتروسكا</string>
<string name="cdc_flac">برنامج ترميز الصوت المجاني بدون فقدان البيانات (FLAC)</string> <string name="cdc_flac">برنامج ترميز الصوت المجاني بدون فقدان البيانات (FLAC)</string>
<string name="clr_indigo">نيلي</string> <string name="clr_indigo">نيلي</string>
<string name="clr_blue">أزرق</string> <string name="clr_blue">أزرق</string>
@ -109,7 +106,6 @@
</plurals> </plurals>
<string name="set_hide_collaborators_desc">إظهار فقط الفنانين المُعتمدين مباشرة على الألبوم (يعمل بشكل أفضل في المكتبات المعروفة بتوسيماتها الجيدة)</string> <string name="set_hide_collaborators_desc">إظهار فقط الفنانين المُعتمدين مباشرة على الألبوم (يعمل بشكل أفضل في المكتبات المعروفة بتوسيماتها الجيدة)</string>
<string name="set_content">المحتوى</string> <string name="set_content">المحتوى</string>
<string name="set_locations_list">مجلدات</string>
<string name="set_hide_collaborators">إخفاء المتعاونين</string> <string name="set_hide_collaborators">إخفاء المتعاونين</string>
<string name="set_audio_desc">ضبط سلوك وصوت التشغيل</string> <string name="set_audio_desc">ضبط سلوك وصوت التشغيل</string>
<string name="set_rewind_prev">إعادة التشغيل قبل الانتقال للوراء</string> <string name="set_rewind_prev">إعادة التشغيل قبل الانتقال للوراء</string>
@ -117,7 +113,6 @@
<string name="set_remember_pause_desc">البقاء على التشغيل/الإيقاف عند الانتقال أو تعديل قائمة التشغيل</string> <string name="set_remember_pause_desc">البقاء على التشغيل/الإيقاف عند الانتقال أو تعديل قائمة التشغيل</string>
<string name="set_remember_pause">تذكر الإيقاف المؤقت</string> <string name="set_remember_pause">تذكر الإيقاف المؤقت</string>
<string name="set_rescan_desc">مسح ذاكرة التخزين المؤقت للعلامات وإعادة تحميل كامل مكتبة الموسيقى (أبطأ ولكن أكثر اكتمالًا)</string> <string name="set_rescan_desc">مسح ذاكرة التخزين المؤقت للعلامات وإعادة تحميل كامل مكتبة الموسيقى (أبطأ ولكن أكثر اكتمالًا)</string>
<string name="err_no_perms">يحتاج Auxio إلى إذن لقراءة مكتبة الموسيقى الخاصة بك.</string>
<string name="err_import_failed">غير قادر على استيراد قائمة التشغيل من هذا الملف</string> <string name="err_import_failed">غير قادر على استيراد قائمة التشغيل من هذا الملف</string>
<string name="err_no_app">لم يتم العثور على تطبيق يمكنه التعامل مع هذه المهمة</string> <string name="err_no_app">لم يتم العثور على تطبيق يمكنه التعامل مع هذه المهمة</string>
<string name="desc_play_pause">تشغيل أو إيقاف مؤقت</string> <string name="desc_play_pause">تشغيل أو إيقاف مؤقت</string>
@ -140,7 +135,6 @@
<string name="lbl_demos">تسجيلات تجريبية</string> <string name="lbl_demos">تسجيلات تجريبية</string>
<string name="lbl_mixes">اغاني دي جي</string> <string name="lbl_mixes">اغاني دي جي</string>
<string name="lbl_mix">اغنية دي جي</string> <string name="lbl_mix">اغنية دي جي</string>
<string name="lbl_show_error_info">المزيد</string>
<string name="desc_selection_image">صورة التحديد</string> <string name="desc_selection_image">صورة التحديد</string>
<string name="desc_remove_song">إزالة هذه الأغنية</string> <string name="desc_remove_song">إزالة هذه الأغنية</string>
<string name="desc_song_handle">نقل هذه الأغنية</string> <string name="desc_song_handle">نقل هذه الأغنية</string>
@ -169,9 +163,7 @@
<string name="lbl_single_remix">اغنية فردية ريميكس</string> <string name="lbl_single_remix">اغنية فردية ريميكس</string>
<string name="set_images">الصور</string> <string name="set_images">الصور</string>
<string name="set_reindex_desc">إعادة تحميل مكتبة الموسيقى، باستخدام العلامات المخزنة مؤقتًا عند الإمكان</string> <string name="set_reindex_desc">إعادة تحميل مكتبة الموسيقى، باستخدام العلامات المخزنة مؤقتًا عند الإمكان</string>
<string name="err_no_locations">لا توجد مجلدات</string>
<string name="err_bad_location">هذا المجلد غير مدعوم</string> <string name="err_bad_location">هذا المجلد غير مدعوم</string>
<string name="desc_shuffle_all">خلط جميع الأغاني</string>
<string name="clr_cyan">ازرق سماوي</string> <string name="clr_cyan">ازرق سماوي</string>
<string name="fmt_editing">تحرير %s</string> <string name="fmt_editing">تحرير %s</string>
<string name="set_theme_auto">تلقائي</string> <string name="set_theme_auto">تلقائي</string>
@ -248,7 +240,6 @@
<string name="set_pre_amp_desc">يتم تطبيق مكبر الصوت المسبق على التعديل الحالي أثناء التشغيل</string> <string name="set_pre_amp_desc">يتم تطبيق مكبر الصوت المسبق على التعديل الحالي أثناء التشغيل</string>
<string name="set_pre_amp_with">ضبط مع العلامات</string> <string name="set_pre_amp_with">ضبط مع العلامات</string>
<string name="set_reindex">تحديث الموسيقى</string> <string name="set_reindex">تحديث الموسيقى</string>
<string name="err_no_music">لم يتم العثور على موسيقى</string>
<string name="def_track">لا مسار</string> <string name="def_track">لا مسار</string>
<string name="def_playback">لا يوجد تشغيل الموسيقى</string> <string name="def_playback">لا يوجد تشغيل الموسيقى</string>
<string name="cdc_aac">ترميز الصوت المتقدم (AAC)</string> <string name="cdc_aac">ترميز الصوت المتقدم (AAC)</string>
@ -277,4 +268,61 @@
<string name="lng_playlist_added">تمت إضافته إلى قائمة التشغيل</string> <string name="lng_playlist_added">تمت إضافته إلى قائمة التشغيل</string>
<string name="set_root_title">إعدادات</string> <string name="set_root_title">إعدادات</string>
<string name="set_separators_semicolon">الفاصلة المنقوطة (؛)</string> <string name="set_separators_semicolon">الفاصلة المنقوطة (؛)</string>
<string name="lbl_music_sources">اختر المجلدات</string>
<string name="lbl_import">استورد</string>
<string name="lbl_export">صدّر</string>
<string name="lbl_export_playlist">صدّر قائمة التشغيل</string>
<string name="lbl_sample_rate">معدل العينة</string>
<string name="lbl_path_style">نمط المسار</string>
<string name="lbl_selection">تحديد</string>
<string name="lbl_feedback">الانطباعات</string>
<string name="lbl_github">افتح مشكلة على GitHub</string>
<string name="lbl_email">إرسل بريد إلكتروني</string>
<string name="lbl_supporters">المؤيدون</string>
<string name="lbl_more">المزيد</string>
<string name="lbl_path_style_relative">نسبي</string>
<string name="lbl_path_style_absolute">مطلق</string>
<string name="cdc_unknown">غير معروف</string>
<string name="lbl_imported_playlist">قائمة التشغيل استوردت</string>
<string name="def_album">ألبوم غير معروف</string>
<string name="lbl_sort_mode">افرز حسب</string>
<string name="lbl_sort_direction">الاتجاه</string>
<plurals name="fmt_artist_count">
<item quantity="zero">لا فنان</item>
<item quantity="one">فنان</item>
<item quantity="two">فنانان</item>
<item quantity="few">%d فنانين</item>
<item quantity="many">%d فنان</item>
<item quantity="other">%d فنان</item>
</plurals>
<string name="lng_empty_songs">ستظهر أغانيك هنا.</string>
<string name="lng_empty_albums">ستظهر ألبوماتك هنا.</string>
<string name="lng_empty_artists">سوف يظهر الفنانون الخاص بك هنا.</string>
<string name="lng_empty_playlists">سوف تظهر قوائم تشغيلك هنا.</string>
<string name="lng_empty_genres">سوف تظهر أنواعك هنا.</string>
<string name="lbl_replaygain_album">تعديل الألبوم Replaygain</string>
<string name="lbl_replaygain_track">تعديل مسار ReplayGain</string>
<string name="lbl_author_name">ألكساندر كيبهارت</string>
<string name="lbl_donate">تبرّع</string>
<string name="lbl_author">المؤلف</string>
<string name="lbl_import_playlist">استورد قائمة التشغيل</string>
<string name="lbl_path">المسار</string>
<string name="set_locations_new">مجلد جديد</string>
<string name="lbl_start_playback">بدء التشغيل</string>
<string name="lbl_error_info">معلومات الخطأ</string>
<string name="lbl_copied">نُسخت</string>
<string name="lbl_report">إبلاغ</string>
<string name="lng_tasker_start">يبدأ Auxio باستخدام الحالة المحفوظة مسبقًا. إذا لم تتوفر حالة محفوظة، فسيتم خلط جميع الأغاني. سيبدأ التشغيل على الفور. \n\nتحذير: احرص على التحكم في هذه الخدمة، إذا قمت بإغلاقها ثم حاول استخدامها مرة أخرى، فمن المحتمل أن ينهار التطبيق.</string>
<string name="lbl_windows_paths">استخدم مسارات متوافقة مع Windows</string>
<string name="set_cover_mode_save_space">وفر المساحة</string>
<plurals name="fmt_album_count">
<item quantity="zero">لا ألبوم</item>
<item quantity="one">ألبوم</item>
<item quantity="two">ألبومان</item>
<item quantity="few">%d ألبومات</item>
<item quantity="many">%d ألبوم</item>
<item quantity="other">%d ألبوم</item>
</plurals>
<string name="cnt_mp4">MPEG-4 تحتوي على %s</string>
<string name="cdc_alac">Apple Lossless Audio Codec (ALAC)</string>
</resources> </resources>

View file

@ -3,7 +3,6 @@
<string name="lbl_indexer">Musiqi yüklənir</string> <string name="lbl_indexer">Musiqi yüklənir</string>
<string name="lbl_indexing">Musiqi yüklənir</string> <string name="lbl_indexing">Musiqi yüklənir</string>
<string name="lbl_retry">Təkrar cəhd et</string> <string name="lbl_retry">Təkrar cəhd et</string>
<string name="lbl_grant">Qəbul et</string>
<string name="lbl_songs">Mahnılar</string> <string name="lbl_songs">Mahnılar</string>
<string name="lbl_all_songs">Bütün mahnılar</string> <string name="lbl_all_songs">Bütün mahnılar</string>
<string name="lbl_albums">Albomlar</string> <string name="lbl_albums">Albomlar</string>
@ -35,7 +34,6 @@
<string name="lbl_artist">Sənətkar</string> <string name="lbl_artist">Sənətkar</string>
<string name="lbl_artists">Sənətkarlar</string> <string name="lbl_artists">Sənətkarlar</string>
<string name="lbl_genre">Janr</string> <string name="lbl_genre">Janr</string>
<string name="lbl_show_error_info">Daha çox</string>
<string name="lbl_song">Mahnı</string> <string name="lbl_song">Mahnı</string>
<string name="lbl_mixtapes">Qarışıq lentlər</string> <string name="lbl_mixtapes">Qarışıq lentlər</string>
<string name="lbl_mixtape">Qarışıq lent</string> <string name="lbl_mixtape">Qarışıq lent</string>
@ -76,7 +74,6 @@
<string name="lbl_album_details">Alboma keç</string> <string name="lbl_album_details">Alboma keç</string>
<string name="lbl_parent_detail">Baxış</string> <string name="lbl_parent_detail">Baxış</string>
<string name="lbl_share">Paylaş</string> <string name="lbl_share">Paylaş</string>
<string name="lbl_add">Əlavə et</string>
<string name="lbl_play">Səsləndir</string> <string name="lbl_play">Səsləndir</string>
<string name="lbl_sort_mode">Çeşidləmə üsulu</string> <string name="lbl_sort_mode">Çeşidləmə üsulu</string>
<string name="lbl_sort_direction">Göstəriş</string> <string name="lbl_sort_direction">Göstəriş</string>

View file

@ -23,7 +23,6 @@
<string name="set_root_title">Налады</string> <string name="set_root_title">Налады</string>
<string name="info_app_desc">Просты, рацыянальны музычны плэер для Android.</string> <string name="info_app_desc">Просты, рацыянальны музычны плэер для Android.</string>
<string name="lbl_observing">Маніторынг музычнай бібліятэкі</string> <string name="lbl_observing">Маніторынг музычнай бібліятэкі</string>
<string name="lbl_grant">Выдаць</string>
<string name="lbl_songs">Песні</string> <string name="lbl_songs">Песні</string>
<string name="set_ui_desc">Змяніце тэму і колеры праграмы</string> <string name="set_ui_desc">Змяніце тэму і колеры праграмы</string>
<string name="lbl_all_songs">Ўсе песні</string> <string name="lbl_all_songs">Ўсе песні</string>
@ -88,7 +87,6 @@
<string name="lbl_bitrate">Бітрэйт</string> <string name="lbl_bitrate">Бітрэйт</string>
<string name="lbl_sample_rate">Частата дыскрэтызацыі</string> <string name="lbl_sample_rate">Частата дыскрэтызацыі</string>
<string name="lbl_reset">Скінуць</string> <string name="lbl_reset">Скінуць</string>
<string name="lbl_add">Дадаць</string>
<string name="lbl_wiki">Вікі</string> <string name="lbl_wiki">Вікі</string>
<string name="lbl_save">Захаваць</string> <string name="lbl_save">Захаваць</string>
<string name="lbl_version">Версія</string> <string name="lbl_version">Версія</string>
@ -113,15 +111,11 @@
<string name="set_pre_amp">Папярэдні ўзмацняльнік ReplayGain</string> <string name="set_pre_amp">Папярэдні ўзмацняльнік ReplayGain</string>
<string name="set_library">Бібліятэка</string> <string name="set_library">Бібліятэка</string>
<string name="set_locations_desc">Кіруйце месцам загрузкі музыкі</string> <string name="set_locations_desc">Кіруйце месцам загрузкі музыкі</string>
<string name="set_locations_list">Тэчкі</string>
<string name="set_rescan">Перасканаваць музыку</string> <string name="set_rescan">Перасканаваць музыку</string>
<string name="set_reindex">Абнавіць музыку</string> <string name="set_reindex">Абнавіць музыку</string>
<string name="set_reindex_desc">Перазагрузіце музычную бібліятэку, выкарыстоўваючы па магчымасці кэшаваныя тэгі</string> <string name="set_reindex_desc">Перазагрузіце музычную бібліятэку, выкарыстоўваючы па магчымасці кэшаваныя тэгі</string>
<string name="set_rescan_desc">Ачысціце кэш тэгаў і цалкам перазагрузіце музычную бібліятэку (павольней, але больш поўна)</string> <string name="set_rescan_desc">Ачысціце кэш тэгаў і цалкам перазагрузіце музычную бібліятэку (павольней, але больш поўна)</string>
<string name="err_no_perms">Auxio патрабуецца дазвол на чытанне вашай музычнай бібліятэкі</string>
<string name="err_no_music">Музыка не знойдзена</string>
<string name="err_index_failed">Памылка загрузкі музыкі</string> <string name="err_index_failed">Памылка загрузкі музыкі</string>
<string name="err_no_locations">Няма тэчак</string>
<string name="err_bad_location">Гэтая папка не падтрымліваецца</string> <string name="err_bad_location">Гэтая папка не падтрымліваецца</string>
<string name="desc_track_number">Кампазіцыя %d</string> <string name="desc_track_number">Кампазіцыя %d</string>
<string name="desc_song_handle">Перамясціць песню ў чаргу</string> <string name="desc_song_handle">Перамясціць песню ў чаргу</string>
@ -133,7 +127,6 @@
<string name="desc_auxio_icon">Значок Auxio</string> <string name="desc_auxio_icon">Значок Auxio</string>
<string name="desc_shuffle">Ўключыце або выключыце перамешванне</string> <string name="desc_shuffle">Ўключыце або выключыце перамешванне</string>
<string name="desc_remove_song">Выдаліць гэтую песню з чаргі</string> <string name="desc_remove_song">Выдаліць гэтую песню з чаргі</string>
<string name="desc_shuffle_all">Перамяшаць усе песні</string>
<string name="desc_exit">Спыніць прайграванне</string> <string name="desc_exit">Спыніць прайграванне</string>
<string name="desc_queue_bar">Адкрыйце чаргу</string> <string name="desc_queue_bar">Адкрыйце чаргу</string>
<string name="desc_clear_search">Ачысціць пошукавы запыт</string> <string name="desc_clear_search">Ачысціць пошукавы запыт</string>
@ -148,7 +141,6 @@
<string name="def_date">Без даты</string> <string name="def_date">Без даты</string>
<string name="def_track">Няма дарожкі</string> <string name="def_track">Няма дарожкі</string>
<string name="cdc_mp3">MPEG-1 аўдыё</string> <string name="cdc_mp3">MPEG-1 аўдыё</string>
<string name="cdc_mka">Matroska аўдыё</string>
<string name="def_playback">Музыка не грае</string> <string name="def_playback">Музыка не грае</string>
<string name="cdc_mp4">MPEG-4 аўдыё</string> <string name="cdc_mp4">MPEG-4 аўдыё</string>
<string name="clr_red">Чырвоны</string> <string name="clr_red">Чырвоны</string>
@ -279,7 +271,6 @@
<string name="lbl_sort_direction">Напрамак</string> <string name="lbl_sort_direction">Напрамак</string>
<string name="desc_selection_image">Абярыце малюнак</string> <string name="desc_selection_image">Абярыце малюнак</string>
<string name="lbl_selection">Абярыце</string> <string name="lbl_selection">Абярыце</string>
<string name="lbl_show_error_info">Дадаткова</string>
<string name="lbl_copied">Скапіравана</string> <string name="lbl_copied">Скапіравана</string>
<string name="lbl_error_info">Інфармацыя пра памылку</string> <string name="lbl_error_info">Інфармацыя пра памылку</string>
<string name="lbl_report">Справаздача пра памылку</string> <string name="lbl_report">Справаздача пра памылку</string>

View file

@ -76,7 +76,6 @@
<string name="lbl_windows_paths">Използвай съвместими с Windows пътища</string> <string name="lbl_windows_paths">Използвай съвместими с Windows пътища</string>
<string name="info_app_desc">Прост, рационален музикален плейър за android.</string> <string name="info_app_desc">Прост, рационален музикален плейър за android.</string>
<string name="lbl_indexing">Зарежда се музика</string> <string name="lbl_indexing">Зарежда се музика</string>
<string name="lbl_show_error_info">Още</string>
<string name="lbl_albums">Албуми</string> <string name="lbl_albums">Албуми</string>
<string name="lbl_ep_live">EP на живо</string> <string name="lbl_ep_live">EP на живо</string>
<string name="lbl_single_live">Сингъл наживо</string> <string name="lbl_single_live">Сингъл наживо</string>
@ -97,7 +96,6 @@
<string name="lbl_playback">Сега се изпълнява</string> <string name="lbl_playback">Сега се изпълнява</string>
<string name="lbl_replaygain_track">ReplayGain Регулиране на песента</string> <string name="lbl_replaygain_track">ReplayGain Регулиране на песента</string>
<string name="lbl_shuffle_shortcut_long">Разбъркай всички</string> <string name="lbl_shuffle_shortcut_long">Разбъркай всички</string>
<string name="lbl_add">Добави</string>
<string name="lbl_about">Относно</string> <string name="lbl_about">Относно</string>
<string name="lbl_path_style_absolute">Абсолютно</string> <string name="lbl_path_style_absolute">Абсолютно</string>
<string name="lbl_eps">EPs</string> <string name="lbl_eps">EPs</string>
@ -186,7 +184,6 @@
<string name="set_replay_gain">Нормализация на звука</string> <string name="set_replay_gain">Нормализация на звука</string>
<string name="set_replay_gain_mode">ReplayGain стратегия</string> <string name="set_replay_gain_mode">ReplayGain стратегия</string>
<string name="set_replay_gain_mode_off">Изключено</string> <string name="set_replay_gain_mode_off">Изключено</string>
<string name="lbl_grant">Предоставяне</string>
<string name="lng_supporters_promo">Дарете за проекта, за да бъде добавено името ви тук!</string> <string name="lng_supporters_promo">Дарете за проекта, за да бъде добавено името ви тук!</string>
<string name="lng_search_library">Търсене във вашата библиотека…</string> <string name="lng_search_library">Търсене във вашата библиотека…</string>
<string name="set_bar_action">Персонализирано действие на лентата за възпроизвеждане</string> <string name="set_bar_action">Персонализирано действие на лентата за възпроизвеждане</string>
@ -210,20 +207,15 @@
<string name="set_library">Библиотека</string> <string name="set_library">Библиотека</string>
<string name="set_locations">Музикални папки</string> <string name="set_locations">Музикални папки</string>
<string name="set_locations_desc">Управлявайте откъде да се зарежда музиката</string> <string name="set_locations_desc">Управлявайте откъде да се зарежда музиката</string>
<string name="set_locations_list">Папки</string>
<string name="set_reindex">Обновяване на музика</string> <string name="set_reindex">Обновяване на музика</string>
<string name="err_no_music">Няма намерена музика</string>
<string name="err_index_failed">Неуспешно зареждане на музика</string> <string name="err_index_failed">Неуспешно зареждане на музика</string>
<string name="err_no_perms">Auxio се нуждае от разрешение, за да чете вашата музикална библиотека</string>
<string name="err_export_failed">Плейлиста не може да се изнесе в този файл</string> <string name="err_export_failed">Плейлиста не може да се изнесе в този файл</string>
<string name="err_no_app">Няма намерено приложение, което да може да се справи с тази задача</string> <string name="err_no_app">Няма намерено приложение, което да може да се справи с тази задача</string>
<string name="err_no_locations">Няма папки</string>
<string name="desc_play_pause">Изпълни или пауза</string> <string name="desc_play_pause">Изпълни или пауза</string>
<string name="desc_skip_next">Премини към следваща песен</string> <string name="desc_skip_next">Премини към следваща песен</string>
<string name="desc_skip_prev">Премини към последна песен</string> <string name="desc_skip_prev">Премини към последна песен</string>
<string name="desc_change_repeat">Промени режима на повторение</string> <string name="desc_change_repeat">Промени режима на повторение</string>
<string name="desc_shuffle">Включи или изключи разбъркване</string> <string name="desc_shuffle">Включи или изключи разбъркване</string>
<string name="desc_shuffle_all">Разбъркай всички песни</string>
<string name="desc_exit">Спри възпроизвеждането</string> <string name="desc_exit">Спри възпроизвеждането</string>
<string name="desc_remove_song">Премахни тази песен</string> <string name="desc_remove_song">Премахни тази песен</string>
<string name="desc_song_handle">Премести тази песен</string> <string name="desc_song_handle">Премести тази песен</string>
@ -255,7 +247,6 @@
<string name="cdc_mp3">MPEG-1 audio</string> <string name="cdc_mp3">MPEG-1 audio</string>
<string name="cdc_mp4">MPEG-4 audio</string> <string name="cdc_mp4">MPEG-4 audio</string>
<string name="cdc_ogg">Ogg audio</string> <string name="cdc_ogg">Ogg audio</string>
<string name="cdc_mka">Matroska audio</string>
<string name="clr_pink">Розово</string> <string name="clr_pink">Розово</string>
<string name="clr_red">Червено</string> <string name="clr_red">Червено</string>
<string name="clr_purple">Лилаво</string> <string name="clr_purple">Лилаво</string>

View file

@ -7,7 +7,6 @@
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lng_indexing">Načítání vaší hudební knihovny…</string> <string name="lng_indexing">Načítání vaší hudební knihovny…</string>
<string name="lbl_retry">Zkusit znovu</string> <string name="lbl_retry">Zkusit znovu</string>
<string name="lbl_grant">Udělit</string>
<string name="lbl_genres">Žánry</string> <string name="lbl_genres">Žánry</string>
<string name="lbl_artists">Umělci</string> <string name="lbl_artists">Umělci</string>
<string name="lbl_albums">Alba</string> <string name="lbl_albums">Alba</string>
@ -42,7 +41,6 @@
<string name="lbl_ok">OK</string> <string name="lbl_ok">OK</string>
<!-- Actual string: Cancel --> <!-- Actual string: Cancel -->
<string name="lbl_cancel">Zrušit</string> <string name="lbl_cancel">Zrušit</string>
<string name="lbl_add">Přidat</string>
<string name="lbl_save">Uložit</string> <string name="lbl_save">Uložit</string>
<string name="lbl_about">O aplikaci</string> <string name="lbl_about">O aplikaci</string>
<string name="lbl_version">Verze</string> <string name="lbl_version">Verze</string>
@ -90,11 +88,8 @@
<string name="set_reindex">Obnovit hudbu</string> <string name="set_reindex">Obnovit hudbu</string>
<string name="set_reindex_desc">Znovu načíst hudební knihovnu, pokud možno s použitím značek uložených v mezipaměti</string> <string name="set_reindex_desc">Znovu načíst hudební knihovnu, pokud možno s použitím značek uložených v mezipaměti</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nenalezena žádná hudba</string>
<string name="err_index_failed">Načítání hudby selhalo</string> <string name="err_index_failed">Načítání hudby selhalo</string>
<string name="err_no_perms">Auxio potřebuje oprávnění ke čtení vaší hudební knihovny</string>
<string name="err_no_app">Nebyla nalezena žádná aplikace, která by dokázala vykonat tuto akci</string> <string name="err_no_app">Nebyla nalezena žádná aplikace, která by dokázala vykonat tuto akci</string>
<string name="err_no_locations">Žádné složky</string>
<string name="err_bad_location">Tato složka není podporována</string> <string name="err_bad_location">Tato složka není podporována</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Prohledat vaší knihovnu…</string> <string name="lng_search_library">Prohledat vaší knihovnu…</string>
@ -105,7 +100,6 @@
<string name="desc_skip_prev">Přeskočit na předchozí skladbu</string> <string name="desc_skip_prev">Přeskočit na předchozí skladbu</string>
<string name="desc_change_repeat">Změnit režim opakování</string> <string name="desc_change_repeat">Změnit režim opakování</string>
<string name="desc_shuffle">Vypnout nebo zapnout náhodné přehrávání</string> <string name="desc_shuffle">Vypnout nebo zapnout náhodné přehrávání</string>
<string name="desc_shuffle_all">Náhodně přehrávat vše</string>
<string name="desc_remove_song">Odebrat tuto skladbu z fronty</string> <string name="desc_remove_song">Odebrat tuto skladbu z fronty</string>
<string name="desc_song_handle">Přesunout tuto skladbu ve frontě</string> <string name="desc_song_handle">Přesunout tuto skladbu ve frontě</string>
<string name="desc_tab_handle">Přesunout tuto kartu</string> <string name="desc_tab_handle">Přesunout tuto kartu</string>
@ -167,7 +161,6 @@
<string name="cdc_mp3">Zvuk MPEG-1</string> <string name="cdc_mp3">Zvuk MPEG-1</string>
<string name="cdc_mp4">Zvuk MPEG-4</string> <string name="cdc_mp4">Zvuk MPEG-4</string>
<string name="cdc_ogg">Zvuk Ogg</string> <string name="cdc_ogg">Zvuk Ogg</string>
<string name="cdc_mka">Zvuk Matroska</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="fmt_bitrate">%d kbps</string> <string name="fmt_bitrate">%d kbps</string>
@ -246,7 +239,6 @@
<string name="lbl_wiki">Wiki</string> <string name="lbl_wiki">Wiki</string>
<string name="fmt_list">%1$s, %2$s</string> <string name="fmt_list">%1$s, %2$s</string>
<string name="lbl_reset">Obnovit</string> <string name="lbl_reset">Obnovit</string>
<string name="set_locations_list">Složky</string>
<string name="set_replay_gain">Normalizace hlasitosti</string> <string name="set_replay_gain">Normalizace hlasitosti</string>
<string name="set_behavior">Chování</string> <string name="set_behavior">Chování</string>
<string name="set_ui_desc">Změnit motiv a barvy aplikace</string> <string name="set_ui_desc">Změnit motiv a barvy aplikace</string>
@ -290,7 +282,6 @@
<string name="lbl_sort_mode">Seřadit podle</string> <string name="lbl_sort_mode">Seřadit podle</string>
<string name="desc_selection_image">Výběr obrázku</string> <string name="desc_selection_image">Výběr obrázku</string>
<string name="lbl_selection">Výběr</string> <string name="lbl_selection">Výběr</string>
<string name="lbl_show_error_info">Další</string>
<string name="lbl_error_info">Informace o chybě</string> <string name="lbl_error_info">Informace o chybě</string>
<string name="lbl_copied">Zkopírovat</string> <string name="lbl_copied">Zkopírovat</string>
<string name="lbl_report">Nahlásit</string> <string name="lbl_report">Nahlásit</string>
@ -341,4 +332,7 @@
<string name="lng_empty_artists">Vaši umělci se zobrazí zde.</string> <string name="lng_empty_artists">Vaši umělci se zobrazí zde.</string>
<string name="lng_empty_playlists">Vaše seznamy skladeb se zobrazí zde.</string> <string name="lng_empty_playlists">Vaše seznamy skladeb se zobrazí zde.</string>
<string name="lng_empty_genres">Vaše žánry se zobrazí zde.</string> <string name="lng_empty_genres">Vaše žánry se zobrazí zde.</string>
<string name="set_with_hidden">Zahrnout skryté soubory</string>
<string name="set_with_hidden_desc">Zahrnout skryté zvukové soubory (např. .cache)</string>
<string name="set_cover_mode_as_is">Původní</string>
</resources> </resources>

View file

@ -4,7 +4,6 @@
<string name="lbl_indexer">Llwytho cerddoriaeth</string> <string name="lbl_indexer">Llwytho cerddoriaeth</string>
<string name="lbl_observing">Yn monitro llyfrgell cerddoriaeth</string> <string name="lbl_observing">Yn monitro llyfrgell cerddoriaeth</string>
<string name="lbl_retry">Ceisio eto</string> <string name="lbl_retry">Ceisio eto</string>
<string name="lbl_grant">Caniatáu</string>
<string name="lbl_songs">Caneuon</string> <string name="lbl_songs">Caneuon</string>
<string name="lbl_song">Cân</string> <string name="lbl_song">Cân</string>
<string name="lbl_all_songs">Holl ganeuon</string> <string name="lbl_all_songs">Holl ganeuon</string>
@ -24,7 +23,6 @@
<string name="lbl_mixtapes">Tapiau cymysgiad</string> <string name="lbl_mixtapes">Tapiau cymysgiad</string>
<string name="lbl_mixtape">Tâp cymysgiad</string> <string name="lbl_mixtape">Tâp cymysgiad</string>
<string name="info_app_desc">Chwaraewr cerddoriaeth syml a synhwyrol.</string> <string name="info_app_desc">Chwaraewr cerddoriaeth syml a synhwyrol.</string>
<string name="lbl_show_error_info">Mwy</string>
<string name="lbl_ep_remix">EP ail-gymysgiad</string> <string name="lbl_ep_remix">EP ail-gymysgiad</string>
<string name="lbl_name">Enw</string> <string name="lbl_name">Enw</string>
<string name="lbl_date">Dyddiad</string> <string name="lbl_date">Dyddiad</string>
@ -34,7 +32,6 @@
<string name="lbl_track">Trac</string> <string name="lbl_track">Trac</string>
<string name="lbl_sort">Didoli</string> <string name="lbl_sort">Didoli</string>
<string name="lbl_sort_mode">Didoli gan</string> <string name="lbl_sort_mode">Didoli gan</string>
<string name="set_locations_list">Ffolderi</string>
<string name="lbl_playlists">Rhestri chwarae</string> <string name="lbl_playlists">Rhestri chwarae</string>
<string name="lbl_new_playlist">Rhestr chwarae newydd</string> <string name="lbl_new_playlist">Rhestr chwarae newydd</string>
<string name="lbl_empty_playlist">Rhestr chwarae gwag</string> <string name="lbl_empty_playlist">Rhestr chwarae gwag</string>
@ -89,7 +86,6 @@
<string name="set_locations">Ffolderi cerddoriaeth</string> <string name="set_locations">Ffolderi cerddoriaeth</string>
<string name="set_reindex">Adnewyddu cerddoriaeth</string> <string name="set_reindex">Adnewyddu cerddoriaeth</string>
<string name="desc_track_number">Trac %d</string> <string name="desc_track_number">Trac %d</string>
<string name="desc_shuffle_all">Chwarae pob cân ar hap</string>
<string name="def_artist">Artist anhysbys</string> <string name="def_artist">Artist anhysbys</string>
<string name="def_genre">Genre anhysbys</string> <string name="def_genre">Genre anhysbys</string>
<string name="def_date">Dim dyddiad</string> <string name="def_date">Dim dyddiad</string>
@ -157,7 +153,6 @@
<string name="lbl_cancel">Diddymu</string> <string name="lbl_cancel">Diddymu</string>
<string name="lbl_save">Cadw</string> <string name="lbl_save">Cadw</string>
<string name="lbl_reset">Ailosod</string> <string name="lbl_reset">Ailosod</string>
<string name="lbl_add">Ychwanegu</string>
<string name="lbl_path_style">Dull llwybr</string> <string name="lbl_path_style">Dull llwybr</string>
<string name="lbl_windows_paths">Defnyddio llwybrau Windows</string> <string name="lbl_windows_paths">Defnyddio llwybrau Windows</string>
<string name="lbl_about">Ynghylch</string> <string name="lbl_about">Ynghylch</string>
@ -199,11 +194,8 @@
<string name="set_replay_gain_mode_track">Ffafrio trac</string> <string name="set_replay_gain_mode_track">Ffafrio trac</string>
<string name="set_replay_gain_mode_album">Ffafrio albwm</string> <string name="set_replay_gain_mode_album">Ffafrio albwm</string>
<string name="set_pre_amp_with">Addasiad gyda thagiau</string> <string name="set_pre_amp_with">Addasiad gyda thagiau</string>
<string name="err_no_music">Ni chanfuwyd cerddoriaeth</string>
<string name="err_index_failed">Methwyd llwytho cerddoriaeth</string> <string name="err_index_failed">Methwyd llwytho cerddoriaeth</string>
<string name="err_no_perms">Mae ar Auxio angen caniatâd i ddarllen eich llyfrgell gerddoriaeth</string>
<string name="err_no_app">Methwyd dod o hyd ap sydd yn gallu gwneud y tasg hon</string> <string name="err_no_app">Methwyd dod o hyd ap sydd yn gallu gwneud y tasg hon</string>
<string name="err_no_locations">Dim ffolderi</string>
<string name="desc_skip_next">Neidio i\'r gân nesaf</string> <string name="desc_skip_next">Neidio i\'r gân nesaf</string>
<string name="desc_skip_prev">Neidio i\'r gân ddiwethaf</string> <string name="desc_skip_prev">Neidio i\'r gân ddiwethaf</string>
<string name="desc_change_repeat">Newid y modd ail-chwarae</string> <string name="desc_change_repeat">Newid y modd ail-chwarae</string>
@ -245,7 +237,6 @@
<string name="desc_remove_song">Tynnu\'r gân hon</string> <string name="desc_remove_song">Tynnu\'r gân hon</string>
<string name="desc_queue_bar">Agor y ciw</string> <string name="desc_queue_bar">Agor y ciw</string>
<string name="cdc_mp4">Sain MPEG-4</string> <string name="cdc_mp4">Sain MPEG-4</string>
<string name="cdc_mka">Sain Matroska</string>
<string name="fmt_deletion_info">Dileu %s? Ni fydd yn bosib dadwneud hyn.</string> <string name="fmt_deletion_info">Dileu %s? Ni fydd yn bosib dadwneud hyn.</string>
<plurals name="fmt_song_count"> <plurals name="fmt_song_count">
<item quantity="zero">%d caneuon</item> <item quantity="zero">%d caneuon</item>

View file

@ -2,7 +2,6 @@
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Erneut versuchen</string> <string name="lbl_retry">Erneut versuchen</string>
<string name="lbl_grant">Gewähren</string>
<string name="lbl_genres">Genres</string> <string name="lbl_genres">Genres</string>
<string name="lbl_artists">Künstler</string> <string name="lbl_artists">Künstler</string>
<string name="lbl_albums">Alben</string> <string name="lbl_albums">Alben</string>
@ -24,9 +23,7 @@
<string name="lng_queue_added">Der Warteschlange hinzugefügt</string> <string name="lng_queue_added">Der Warteschlange hinzugefügt</string>
<string name="lbl_artist_details">Zum Künstler gehen</string> <string name="lbl_artist_details">Zum Künstler gehen</string>
<string name="lbl_album_details">Zum Album gehen</string> <string name="lbl_album_details">Zum Album gehen</string>
<string name="lbl_add">Hinzufügen</string>
<string name="lbl_save">Speichern</string> <string name="lbl_save">Speichern</string>
<string name="err_no_locations">Keine Ordner</string>
<string name="lbl_about">Über</string> <string name="lbl_about">Über</string>
<string name="lbl_version">Version</string> <string name="lbl_version">Version</string>
<string name="lbl_code">Quellcode</string> <string name="lbl_code">Quellcode</string>
@ -64,9 +61,7 @@
<string name="set_reindex">Musik neu laden</string> <string name="set_reindex">Musik neu laden</string>
<string name="set_reindex_desc">Musikbibliothek neu laden, verwendet gecachte Tags wenn möglich</string> <string name="set_reindex_desc">Musikbibliothek neu laden, verwendet gecachte Tags wenn möglich</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Keine Musik gefunden</string>
<string name="err_index_failed">Laden der Musik fehlgeschlagen</string> <string name="err_index_failed">Laden der Musik fehlgeschlagen</string>
<string name="err_no_perms">Auxio benötigt die Berechtigung, um deine Musikbibliothek zu lesen</string>
<string name="err_no_app">Es konnte keine App gefunden werden, die diese Aufgabe übernehmen kann</string> <string name="err_no_app">Es konnte keine App gefunden werden, die diese Aufgabe übernehmen kann</string>
<string name="err_bad_location">Das Verzeichnis wird nicht unterstützt</string> <string name="err_bad_location">Das Verzeichnis wird nicht unterstützt</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
@ -129,7 +124,6 @@
<string name="set_lib_tabs">Bibliotheks-Registerkarten</string> <string name="set_lib_tabs">Bibliotheks-Registerkarten</string>
<string name="set_lib_tabs_desc">Sichtbarkeit und Ordnung der Bibliotheksregisterkarten ändern</string> <string name="set_lib_tabs_desc">Sichtbarkeit und Ordnung der Bibliotheksregisterkarten ändern</string>
<string name="lbl_name">Name</string> <string name="lbl_name">Name</string>
<string name="desc_shuffle_all">Alle Lieder zufällig</string>
<string name="desc_remove_song">Lied in der Warteschlange löschen</string> <string name="desc_remove_song">Lied in der Warteschlange löschen</string>
<string name="desc_tab_handle">Tab versetzen</string> <string name="desc_tab_handle">Tab versetzen</string>
<string name="def_artist">Unbekannter Künstler</string> <string name="def_artist">Unbekannter Künstler</string>
@ -158,7 +152,6 @@
<string name="cdc_ogg">Ogg-Audio</string> <string name="cdc_ogg">Ogg-Audio</string>
<string name="cdc_mp4">MPEG-4-Audio</string> <string name="cdc_mp4">MPEG-4-Audio</string>
<string name="cdc_mp3">MPEG-1-Audio</string> <string name="cdc_mp3">MPEG-1-Audio</string>
<string name="cdc_mka">Matroska-Audio</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="fmt_bitrate">%d kB/s</string> <string name="fmt_bitrate">%d kB/s</string>
@ -244,7 +237,6 @@
<string name="set_music">Musik</string> <string name="set_music">Musik</string>
<string name="set_images">Bilder</string> <string name="set_images">Bilder</string>
<string name="set_library">Bibliothek</string> <string name="set_library">Bibliothek</string>
<string name="set_locations_list">Ordner</string>
<string name="set_playback">Wiedergabe</string> <string name="set_playback">Wiedergabe</string>
<string name="set_audio_desc">Ton und Wiedergabeverhalten konfigurieren</string> <string name="set_audio_desc">Ton und Wiedergabeverhalten konfigurieren</string>
<string name="set_replay_gain">Lautstärkenormalisierung</string> <string name="set_replay_gain">Lautstärkenormalisierung</string>
@ -281,7 +273,6 @@
<string name="lbl_sort_mode">Sortieren nach</string> <string name="lbl_sort_mode">Sortieren nach</string>
<string name="desc_selection_image">Auswahl-Bild</string> <string name="desc_selection_image">Auswahl-Bild</string>
<string name="lbl_selection">Auswahl</string> <string name="lbl_selection">Auswahl</string>
<string name="lbl_show_error_info">Mehr</string>
<string name="lbl_copied">Kopiert</string> <string name="lbl_copied">Kopiert</string>
<string name="lbl_report">Melden</string> <string name="lbl_report">Melden</string>
<string name="lbl_error_info">Fehlerinformation</string> <string name="lbl_error_info">Fehlerinformation</string>
@ -332,4 +323,7 @@
<string name="lng_empty_songs">Deine Lieder werden hier angezeigt.</string> <string name="lng_empty_songs">Deine Lieder werden hier angezeigt.</string>
<string name="lng_empty_genres">Deine Genres werden hier angezeigt.</string> <string name="lng_empty_genres">Deine Genres werden hier angezeigt.</string>
<string name="lng_empty_artists">Deine Künstler werden hier angezeigt.</string> <string name="lng_empty_artists">Deine Künstler werden hier angezeigt.</string>
<string name="set_cover_mode_as_is">Unverändert</string>
<string name="set_with_hidden_desc">Audio-Dateien einbeziehen, die versteckt sind (z. B. .cache)</string>
<string name="set_with_hidden">Versteckte Dateien einbeziehen</string>
</resources> </resources>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Προσπάθεια εκ νέου</string> <string name="lbl_retry">Προσπάθεια εκ νέου</string>
<string name="lbl_grant">Χορήγηση</string>
<string name="lbl_genres">Είδη</string> <string name="lbl_genres">Είδη</string>
<string name="lbl_artists">Καλλιτέχνες</string> <string name="lbl_artists">Καλλιτέχνες</string>
<string name="lbl_albums">Άλμπουμ</string> <string name="lbl_albums">Άλμπουμ</string>
@ -75,10 +74,8 @@
<string name="fmt_lib_artist_count">Καλλιτέχνες που φορτώθηκαν: %d</string> <string name="fmt_lib_artist_count">Καλλιτέχνες που φορτώθηκαν: %d</string>
<string name="lbl_date">Έτος</string> <string name="lbl_date">Έτος</string>
<string name="lbl_disc">Δίσκος</string> <string name="lbl_disc">Δίσκος</string>
<string name="err_no_music">Δεν βρέθηκε καθόλου μουσική</string>
<string name="err_index_failed">Η φόρτωση μουσικής απέτυχε</string> <string name="err_index_failed">Η φόρτωση μουσικής απέτυχε</string>
<string name="fmt_bitrate">%d kbps</string> <string name="fmt_bitrate">%d kbps</string>
<string name="lbl_add">Πρόσθεση</string>
<string name="lbl_props">Ιδιότητες τραγουδιού</string> <string name="lbl_props">Ιδιότητες τραγουδιού</string>
<string name="lbl_song_detail">Προβολή Ιδιοτήτων</string> <string name="lbl_song_detail">Προβολή Ιδιοτήτων</string>
<string name="lbl_library_counts">Στατιστικά συλλογής</string> <string name="lbl_library_counts">Στατιστικά συλλογής</string>
@ -95,7 +92,6 @@
<string name="lbl_name">Όνομα</string> <string name="lbl_name">Όνομα</string>
<string name="lbl_duration">Διάρκεια</string> <string name="lbl_duration">Διάρκεια</string>
<string name="fmt_lib_total_duration">Συνολική διάρκεια: %s</string> <string name="fmt_lib_total_duration">Συνολική διάρκεια: %s</string>
<string name="err_no_locations">Καθόλου φάκελοι</string>
<string name="info_app_desc">Μια απλή, λογική εφαρμογή αναπαραγωγής μουσικής για Android.</string> <string name="info_app_desc">Μια απλή, λογική εφαρμογή αναπαραγωγής μουσικής για Android.</string>
<string name="lbl_indexer">Φόρτωση μουσικής</string> <string name="lbl_indexer">Φόρτωση μουσικής</string>
<string name="lng_widget">Προβολή και έλεγχος αναπαραγωγής μουσικής</string> <string name="lng_widget">Προβολή και έλεγχος αναπαραγωγής μουσικής</string>

View file

@ -5,7 +5,6 @@
<string name="lng_widget">Ver y controlar la reproducción musical</string> <string name="lng_widget">Ver y controlar la reproducción musical</string>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Reintentar</string> <string name="lbl_retry">Reintentar</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_genres">Géneros</string> <string name="lbl_genres">Géneros</string>
<string name="lbl_artists">Artistas</string> <string name="lbl_artists">Artistas</string>
<string name="lbl_albums">Álbumes</string> <string name="lbl_albums">Álbumes</string>
@ -22,38 +21,36 @@
<string name="lbl_sort_asc">Ascendente</string> <string name="lbl_sort_asc">Ascendente</string>
<string name="lbl_playback">En reproducción</string> <string name="lbl_playback">En reproducción</string>
<string name="lbl_play">Reproducir</string> <string name="lbl_play">Reproducir</string>
<string name="lbl_shuffle">Mezcla</string> <string name="lbl_shuffle">Modo aleatorio</string>
<string name="set_play_song_from_all">Reproducir todo</string> <string name="set_play_song_from_all">Reproducir todo</string>
<string name="set_play_song_from_album">Reproducir por álbum</string> <string name="set_play_song_from_album">Reproducir por álbum</string>
<string name="set_play_song_from_artist">Reproducir por artista</string> <string name="set_play_song_from_artist">Reproducir por artista</string>
<string name="lbl_queue">Cola</string> <string name="lbl_queue">Cola</string>
<string name="lbl_play_next">Reproducir siguiente</string> <string name="lbl_play_next">Reproducir siguiente</string>
<string name="lbl_queue_add">Agregar a la cola</string> <string name="lbl_queue_add">Añadir a la cola</string>
<string name="lng_queue_added">Agregado a la cola</string> <string name="lng_queue_added">Añadido a la cola</string>
<string name="lbl_artist_details">Ir al artista</string> <string name="lbl_artist_details">Ir al artista</string>
<string name="lbl_album_details">Ir al álbum</string> <string name="lbl_album_details">Ir al álbum</string>
<string name="lbl_add">Agregar</string>
<string name="lbl_save">Guardar</string> <string name="lbl_save">Guardar</string>
<string name="err_no_locations">Sin carpetas</string>
<string name="lbl_about">Acerca de</string> <string name="lbl_about">Acerca de</string>
<string name="lbl_version">Versión</string> <string name="lbl_version">Versión</string>
<string name="lbl_code">Código fuente</string> <string name="lbl_code">Código fuente</string>
<string name="lbl_licenses">Licencias</string> <string name="lbl_licenses">Licencias</string>
<string name="lbl_author_name">Desarrollado por Alexander Capehart</string> <string name="lbl_author_name">Desarrollado por Alexander Capehart</string>
<!-- Settings namespace | Settings-related labels --> <!-- Settings namespace | Settings-related labels -->
<string name="set_root_title">Ajustes</string> <string name="set_root_title">Configuración</string>
<string name="set_ui">Aspecto y Comportamiento</string> <string name="set_ui">Aspecto y comportamiento</string>
<string name="set_theme">Tema</string> <string name="set_theme">Tema</string>
<string name="set_theme_auto">Automático</string> <string name="set_theme_auto">Automático</string>
<string name="set_theme_day">Claro</string> <string name="set_theme_day">Claro</string>
<string name="set_theme_night">Oscuro</string> <string name="set_theme_night">Oscuro</string>
<string name="set_accent">Esquema de color</string> <string name="set_accent">Combinación de colores</string>
<string name="set_black_mode">Tema negro</string> <string name="set_black_mode">Tema negro</string>
<string name="set_black_mode_desc">Usar un tema completamente negro</string> <string name="set_black_mode_desc">Usar un tema completamente negro</string>
<string name="set_display">Pantalla</string> <string name="set_display">Pantalla</string>
<string name="set_lib_tabs">Pestañas de la biblioteca</string> <string name="set_lib_tabs">Pestañas de la biblioteca</string>
<string name="set_lib_tabs_desc">Cambiar visibilidad y orden de las pestañas de la biblioteca</string> <string name="set_lib_tabs_desc">Cambiar visibilidad y orden de las pestañas de la biblioteca</string>
<string name="set_round_mode">Carátulas redondeadas</string> <string name="set_round_mode">Modo redondeado</string>
<string name="set_round_mode_desc">Habilitar las esquinas redondeadas en los elementos adicionales de la interfaz del usuario (requiere que las portadas de los álbumes estén redondeadas)</string> <string name="set_round_mode_desc">Habilitar las esquinas redondeadas en los elementos adicionales de la interfaz del usuario (requiere que las portadas de los álbumes estén redondeadas)</string>
<string name="set_notif_action">Usar acciones de notificación personalizadas</string> <string name="set_notif_action">Usar acciones de notificación personalizadas</string>
<string name="set_audio">Sonido</string> <string name="set_audio">Sonido</string>
@ -73,13 +70,11 @@
<string name="set_reindex">Actualizar música</string> <string name="set_reindex">Actualizar música</string>
<string name="set_reindex_desc">Recargar la biblioteca musical, utilizando las etiquetas en caché cuando sea posible</string> <string name="set_reindex_desc">Recargar la biblioteca musical, utilizando las etiquetas en caché cuando sea posible</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">No se ha encontrado música</string>
<string name="err_index_failed">Falló la carga de música</string> <string name="err_index_failed">Falló la carga de música</string>
<string name="err_no_perms">Auxio necesita permiso para leer su biblioteca de música</string>
<string name="err_no_app">No se encontró ninguna aplicación que pueda manejar esta tarea</string> <string name="err_no_app">No se encontró ninguna aplicación que pueda manejar esta tarea</string>
<string name="err_bad_location">Directorio no soportado</string> <string name="err_bad_location">No se admite esta carpeta</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Buscar en la biblioteca…</string> <string name="lng_search_library">Buscar en la fonoteca…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Pista %d</string> <string name="desc_track_number">Pista %d</string>
<string name="desc_play_pause">Reproducir o pausar</string> <string name="desc_play_pause">Reproducir o pausar</string>
@ -87,7 +82,6 @@
<string name="desc_skip_prev">Saltar a la última canción</string> <string name="desc_skip_prev">Saltar a la última canción</string>
<string name="desc_change_repeat">Cambiar modo de repetición</string> <string name="desc_change_repeat">Cambiar modo de repetición</string>
<string name="desc_shuffle">Activar o desactivar mezcla</string> <string name="desc_shuffle">Activar o desactivar mezcla</string>
<string name="desc_shuffle_all">Mezclar todas las canciones</string>
<string name="desc_remove_song">Quitar canción de la cola</string> <string name="desc_remove_song">Quitar canción de la cola</string>
<string name="desc_song_handle">Mover canción en la cola</string> <string name="desc_song_handle">Mover canción en la cola</string>
<string name="desc_tab_handle">Mover pestaña</string> <string name="desc_tab_handle">Mover pestaña</string>
@ -142,13 +136,12 @@
<string name="lbl_song_detail">Ver propiedades</string> <string name="lbl_song_detail">Ver propiedades</string>
<string name="lbl_shuffle_shortcut_short">Mezclar</string> <string name="lbl_shuffle_shortcut_short">Mezclar</string>
<string name="lbl_shuffle_shortcut_long">Mezclar todo</string> <string name="lbl_shuffle_shortcut_long">Mezclar todo</string>
<string name="lbl_ok">De acuerdo</string> <string name="lbl_ok">Aceptar</string>
<string name="lbl_library_counts">Estadísticas de la biblioteca</string> <string name="lbl_library_counts">Estadísticas de la biblioteca</string>
<string name="set_pre_amp_without">Ajuste sin etiquetas</string> <string name="set_pre_amp_without">Ajuste sin etiquetas</string>
<string name="set_pre_amp_warning">Advertencia: Cambiar el pre-amp a un valor alto puede resultar en picos en algunas pistas de audio.</string> <string name="set_pre_amp_warning">Advertencia: Cambiar el pre-amp a un valor alto puede resultar en picos en algunas pistas de audio.</string>
<string name="set_play_song_none">Reproducir desde el elemento que se muestra</string> <string name="set_play_song_none">Reproducir desde el elemento que se muestra</string>
<string name="cdc_mka">Audio matroska</string> <string name="cdc_flac">Códec de audio sin pérdida libre (FLAC)</string>
<string name="cdc_flac">Free Losless Audio Codec (FLAC)</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_indexing">Cargando tu biblioteca de música… (%1$d/%2$d)</string> <string name="fmt_indexing">Cargando tu biblioteca de música… (%1$d/%2$d)</string>
<string name="fmt_lib_artist_count">Artistas cargados: %d</string> <string name="fmt_lib_artist_count">Artistas cargados: %d</string>
@ -157,15 +150,15 @@
<string name="lbl_song_count">Número de canciones</string> <string name="lbl_song_count">Número de canciones</string>
<string name="set_observing">Recarga automática</string> <string name="set_observing">Recarga automática</string>
<string name="set_observing_desc">Recargar la biblioteca musical cada vez que cambie (requiere una notificación persistente)</string> <string name="set_observing_desc">Recargar la biblioteca musical cada vez que cambie (requiere una notificación persistente)</string>
<string name="lng_indexing">Cargando tu librería de música…</string> <string name="lng_indexing">Cargando la fonoteca…</string>
<string name="lbl_indexing">Cargando música</string> <string name="lbl_indexing">Cargando música</string>
<string name="lbl_observing">Monitorizando la librería de música</string> <string name="lbl_observing">Monitorizando la fonoteca</string>
<string name="lng_observing">Monitorizando cambios en tu librería de música…</string> <string name="lng_observing">Monitorizando cambios en la fonoteca…</string>
<string name="cdc_ogg">Audio ogg</string> <string name="cdc_ogg">Audio Ogg</string>
<string name="set_play_in_parent_with">Cuando se reproduce desde los detalles</string> <string name="set_play_in_parent_with">Cuando se reproduce desde los detalles</string>
<string name="lbl_date_added">Fecha de añadido</string> <string name="lbl_date_added">Fecha de adición</string>
<string name="lbl_props">Propiedades de la canción</string> <string name="lbl_props">Propiedades de la canción</string>
<string name="lbl_sample_rate">Frecuencia de muestreo</string> <string name="lbl_sample_rate">Tasa de muestreo</string>
<string name="lbl_cancel">Cancelar</string> <string name="lbl_cancel">Cancelar</string>
<string name="set_headset_autoplay">Reproducción automática con auriculares</string> <string name="set_headset_autoplay">Reproducción automática con auriculares</string>
<string name="set_locations">Carpetas de música</string> <string name="set_locations">Carpetas de música</string>
@ -176,9 +169,9 @@
<string name="lbl_ep">EP</string> <string name="lbl_ep">EP</string>
<string name="lbl_singles">Sencillos</string> <string name="lbl_singles">Sencillos</string>
<string name="lbl_single">Sencillo</string> <string name="lbl_single">Sencillo</string>
<string name="lbl_soundtrack">Pista de audio</string> <string name="lbl_soundtrack">Banda sonora</string>
<string name="lbl_album_remix">Álbum remix</string> <string name="lbl_album_remix">Álbum de remezclas</string>
<string name="lbl_soundtracks">Pistas de audio</string> <string name="lbl_soundtracks">Bandas sonoras</string>
<string name="lbl_mixtapes">Mixtapes (recopilación de canciones)</string> <string name="lbl_mixtapes">Mixtapes (recopilación de canciones)</string>
<string name="lbl_mixtape">Mixtape (recopilación de canciones)</string> <string name="lbl_mixtape">Mixtape (recopilación de canciones)</string>
<string name="lbl_remix_group">Remezclas</string> <string name="lbl_remix_group">Remezclas</string>
@ -191,7 +184,7 @@
<string name="fmt_lib_album_count">Álbumes cargados: %d</string> <string name="fmt_lib_album_count">Álbumes cargados: %d</string>
<string name="fmt_lib_total_duration">Duración total: %s</string> <string name="fmt_lib_total_duration">Duración total: %s</string>
<string name="lbl_album_live">Álbum en directo</string> <string name="lbl_album_live">Álbum en directo</string>
<string name="lbl_single_live">Single en directo</string> <string name="lbl_single_live">Sencillo en directo</string>
<string name="lbl_compilation">Compilación</string> <string name="lbl_compilation">Compilación</string>
<string name="lbl_live_group">En directo</string> <string name="lbl_live_group">En directo</string>
<string name="cdc_mp3">Audio MPEG-1</string> <string name="cdc_mp3">Audio MPEG-1</string>
@ -199,9 +192,9 @@
<string name="fmt_bitrate">%d kbps</string> <string name="fmt_bitrate">%d kbps</string>
<string name="fmt_db_neg">-%.1f dB</string> <string name="fmt_db_neg">-%.1f dB</string>
<string name="lbl_ep_live">EP en directo</string> <string name="lbl_ep_live">EP en directo</string>
<string name="lbl_single_remix">Single remix</string> <string name="lbl_single_remix">Sencillo remezclado</string>
<string name="lbl_compilations">Compilaciones</string> <string name="lbl_compilations">Compilaciones</string>
<string name="lbl_ep_remix">EP de remixes</string> <string name="lbl_ep_remix">EP de remezclas</string>
<string name="desc_queue_bar">Abrir la cola</string> <string name="desc_queue_bar">Abrir la cola</string>
<string name="lbl_genre">Género</string> <string name="lbl_genre">Género</string>
<string name="set_separators">Separadores de varios valores</string> <string name="set_separators">Separadores de varios valores</string>
@ -216,7 +209,7 @@
<string name="lbl_mix">Mezcla de DJ</string> <string name="lbl_mix">Mezcla de DJ</string>
<string name="lbl_equalizer">Ecualizador</string> <string name="lbl_equalizer">Ecualizador</string>
<string name="set_cover_mode">Portadas de álbumes</string> <string name="set_cover_mode">Portadas de álbumes</string>
<string name="set_cover_mode_off">Apagado</string> <string name="set_cover_mode_off">Desactivadas</string>
<string name="set_action_mode_repeat">Modo de repetición</string> <string name="set_action_mode_repeat">Modo de repetición</string>
<string name="set_separators_plus">Más (+)</string> <string name="set_separators_plus">Más (+)</string>
<string name="set_separators_and">Signo et</string> <string name="set_separators_and">Signo et</string>
@ -248,7 +241,6 @@
<string name="set_images">Imágenes</string> <string name="set_images">Imágenes</string>
<string name="set_audio_desc">Configurar el comportamiento del sonido y la reproducción</string> <string name="set_audio_desc">Configurar el comportamiento del sonido y la reproducción</string>
<string name="set_playback">Reproducción</string> <string name="set_playback">Reproducción</string>
<string name="set_locations_list">Carpetas</string>
<string name="set_ui_desc">Cambiar el tema y los colores de la aplicación</string> <string name="set_ui_desc">Cambiar el tema y los colores de la aplicación</string>
<string name="set_personalize_desc">Personalizar los controles y el comportamiento de la interfaz de usuario</string> <string name="set_personalize_desc">Personalizar los controles y el comportamiento de la interfaz de usuario</string>
<string name="set_library">Biblioteca</string> <string name="set_library">Biblioteca</string>
@ -260,17 +252,17 @@
<string name="set_intelligent_sorting_desc">Ignorar palabras como \"the\" al ordenar por nombre (funciona mejor con música en inglés)</string> <string name="set_intelligent_sorting_desc">Ignorar palabras como \"the\" al ordenar por nombre (funciona mejor con música en inglés)</string>
<string name="lbl_new_playlist">Nueva lista de reproducción</string> <string name="lbl_new_playlist">Nueva lista de reproducción</string>
<string name="fmt_def_playlist">Lista de reproducción %d</string> <string name="fmt_def_playlist">Lista de reproducción %d</string>
<string name="lbl_playlist_add">Agregar a la lista de reproducción</string> <string name="lbl_playlist_add">Añadir a la lista de reproducción</string>
<string name="lng_playlist_added">Agregado a la lista de reproducción</string> <string name="lng_playlist_added">Agregado a la lista de reproducción</string>
<string name="lng_playlist_created">Lista de reproducción creada</string> <string name="lng_playlist_created">Lista de reproducción creada</string>
<string name="def_song_count">No hay canciones</string> <string name="def_song_count">No hay canciones</string>
<string name="lbl_delete">Borrar</string> <string name="lbl_delete">Eliminar</string>
<string name="lbl_rename">Cambiar el nombre</string> <string name="lbl_rename">Cambiar nombre</string>
<string name="lbl_rename_playlist">Cambiar el nombre de la lista de reproducción</string> <string name="lbl_rename_playlist">Cambiar nombre de lista de reproducción</string>
<string name="lng_playlist_renamed">Lista de reproducción renombrada</string> <string name="lng_playlist_renamed">Lista de reproducción renombrada</string>
<string name="lng_playlist_deleted">Lista de reproducción borrada</string> <string name="lng_playlist_deleted">Lista de reproducción eliminada</string>
<string name="fmt_deletion_info">¿Borrar %s\? Esto no se puede deshacer.</string> <string name="fmt_deletion_info">¿Borrar %s\? Esto no se puede deshacer.</string>
<string name="lbl_confirm_delete_playlist">¿Borrar la lista de reproducción\?</string> <string name="lbl_confirm_delete_playlist">¿Quiere eliminar la lista de reproducción?</string>
<string name="lbl_edit">Editar</string> <string name="lbl_edit">Editar</string>
<string name="fmt_editing">Editando %s</string> <string name="fmt_editing">Editando %s</string>
<string name="lbl_appears_on">Aparece en</string> <string name="lbl_appears_on">Aparece en</string>
@ -285,7 +277,6 @@
<string name="lbl_sort_direction">Dirección</string> <string name="lbl_sort_direction">Dirección</string>
<string name="desc_selection_image">Selección de imágenes</string> <string name="desc_selection_image">Selección de imágenes</string>
<string name="lbl_selection">Selección</string> <string name="lbl_selection">Selección</string>
<string name="lbl_show_error_info">Más</string>
<string name="lbl_error_info">Información sobre el error</string> <string name="lbl_error_info">Información sobre el error</string>
<string name="lbl_copied">Copiado</string> <string name="lbl_copied">Copiado</string>
<string name="lbl_report">Informar</string> <string name="lbl_report">Informar</string>
@ -328,5 +319,15 @@
<string name="def_album">Álbum desconocido</string> <string name="def_album">Álbum desconocido</string>
<string name="cdc_unknown">Desconocido</string> <string name="cdc_unknown">Desconocido</string>
<string name="cnt_mp4">El MPEG-4 contiene %s</string> <string name="cnt_mp4">El MPEG-4 contiene %s</string>
<string name="cdc_alac">Apple Lossless Audio Codec (ALAC)</string> <string name="cdc_alac">Códec de audio sin pérdida de Apple (ALAC)</string>
<string name="lng_empty_albums">Sus álbumes aparecerán aquí.</string>
<string name="lng_empty_artists">Sus artistas aparecerán aquí.</string>
<string name="lng_empty_genres">Sus géneros aparecerán aquí.</string>
<string name="set_locations_new">Nueva carpeta</string>
<string name="lng_empty_playlists">Sus listas de reproducción aparecerán aquí.</string>
<string name="lng_empty_songs">Sus canciones aparecerán aquí.</string>
<string name="set_cover_mode_save_space">Ahorra espacio</string>
<string name="set_cover_mode_as_is">Original</string>
<string name="set_with_hidden_desc">Incluir ficheros de audio ocultos (ej. .cache)</string>
<string name="set_with_hidden">Incluir ficheros ocultos</string>
</resources> </resources>

View file

@ -2,8 +2,6 @@
<resources> <resources>
<string name="lbl_indexer">Muusika on laadimisel</string> <string name="lbl_indexer">Muusika on laadimisel</string>
<string name="lbl_observing">Jälgime muudatusi muusikakogus</string> <string name="lbl_observing">Jälgime muudatusi muusikakogus</string>
<string name="lbl_show_error_info">Veel</string>
<string name="lbl_grant">Anna õigused</string>
<string name="lbl_song">Pala</string> <string name="lbl_song">Pala</string>
<string name="lbl_albums">Albumid</string> <string name="lbl_albums">Albumid</string>
<string name="lbl_album_live">Album elavas esituses muusikaga</string> <string name="lbl_album_live">Album elavas esituses muusikaga</string>
@ -57,7 +55,6 @@
<string name="lbl_start_playback">Alusta taasesitust</string> <string name="lbl_start_playback">Alusta taasesitust</string>
<string name="lbl_cancel">Katkesta</string> <string name="lbl_cancel">Katkesta</string>
<string name="lbl_save">Salvesta</string> <string name="lbl_save">Salvesta</string>
<string name="lbl_add">Lisa</string>
<string name="lbl_path_style">Asukoha kuvamise viis</string> <string name="lbl_path_style">Asukoha kuvamise viis</string>
<string name="lbl_path_style_absolute">Absoluutne</string> <string name="lbl_path_style_absolute">Absoluutne</string>
<string name="lbl_about">Rakenduse teave</string> <string name="lbl_about">Rakenduse teave</string>
@ -230,7 +227,7 @@
<string name="set_separators_comma">Koma (,)</string> <string name="set_separators_comma">Koma (,)</string>
<string name="set_separators_semicolon">Semikoolon (;)</string> <string name="set_separators_semicolon">Semikoolon (;)</string>
<string name="set_separators_plus">Pluss (+)</string> <string name="set_separators_plus">Pluss (+)</string>
<string name="set_separators_and">Ampersand (&amp;)</string> <string name="set_separators_and">Ampersand (and-märk)</string>
<string name="set_separators_desc">Seadista tähemärke, mis eraldavad siltides mitut väärtust</string> <string name="set_separators_desc">Seadista tähemärke, mis eraldavad siltides mitut väärtust</string>
<string name="set_separators_slash">Kaldkriips (/)</string> <string name="set_separators_slash">Kaldkriips (/)</string>
<string name="set_separators_warning">Hoiatus: selle seadistuse kasutamisel ei pruugi mitu väärtust siltides olla alati korralikult tuvastatud; seda olukorda saad proovida lahendada täiendava prefiksi lisamisega kurakaldkriipsu näol (\\).</string> <string name="set_separators_warning">Hoiatus: selle seadistuse kasutamisel ei pruugi mitu väärtust siltides olla alati korralikult tuvastatud; seda olukorda saad proovida lahendada täiendava prefiksi lisamisega kurakaldkriipsu näol (\\).</string>
@ -243,19 +240,15 @@
<string name="set_library">Muusikakogu</string> <string name="set_library">Muusikakogu</string>
<string name="set_locations">Muusika kaustad</string> <string name="set_locations">Muusika kaustad</string>
<string name="set_locations_desc">Halda kaustu, kust otsime ja laadime muusikat</string> <string name="set_locations_desc">Halda kaustu, kust otsime ja laadime muusikat</string>
<string name="set_locations_list">Kaustad</string>
<string name="set_reindex">Värskenda muusika andmed</string> <string name="set_reindex">Värskenda muusika andmed</string>
<string name="set_reindex_desc">Laadi muusikakogu uuesti ning kui võimalik, siis kasuta puhverdatud silte</string> <string name="set_reindex_desc">Laadi muusikakogu uuesti ning kui võimalik, siis kasuta puhverdatud silte</string>
<string name="set_rescan">Laadi muusikakogu uuesti</string> <string name="set_rescan">Laadi muusikakogu uuesti</string>
<string name="set_rescan_desc">Kustuta puhverdatud siltide andmed ja laadi muusikakogu tervikuna uuesti (aeglasem, aga täpsem tulemus)</string> <string name="set_rescan_desc">Kustuta puhverdatud siltide andmed ja laadi muusikakogu tervikuna uuesti (aeglasem, aga täpsem tulemus)</string>
<string name="err_no_music">Muusikat ei leidu</string>
<string name="err_index_failed">Muusika laadimine ei õnnestunud</string> <string name="err_index_failed">Muusika laadimine ei õnnestunud</string>
<string name="err_no_perms">Auxio vajab muusikakogu töötlemiseks õigust lugeda faile ja kaustu sinu nutiseadmes</string>
<string name="err_import_failed">Sellest failist ei õnnestu esitusloendit importida</string> <string name="err_import_failed">Sellest failist ei õnnestu esitusloendit importida</string>
<string name="err_export_failed">Sellesse faili ei õnnestu esitusloendit eksportida</string> <string name="err_export_failed">Sellesse faili ei õnnestu esitusloendit eksportida</string>
<string name="err_no_app">Ei leidu selle ülesande täitmiseks sobilikku rakendust</string> <string name="err_no_app">Ei leidu selle ülesande täitmiseks sobilikku rakendust</string>
<string name="desc_track_number">Lugu %d</string> <string name="desc_track_number">Lugu %d</string>
<string name="err_no_locations">Kaustu pole määratud</string>
<string name="err_bad_location">See kaust pole toetatud</string> <string name="err_bad_location">See kaust pole toetatud</string>
<string name="desc_play_pause">Esita või peata</string> <string name="desc_play_pause">Esita või peata</string>
<string name="desc_change_repeat">Muuda kordamise režiimi</string> <string name="desc_change_repeat">Muuda kordamise režiimi</string>
@ -265,7 +258,6 @@
<string name="desc_exit">Lõpeta taasesitus</string> <string name="desc_exit">Lõpeta taasesitus</string>
<string name="desc_queue_bar">Ava esitusjärjekord</string> <string name="desc_queue_bar">Ava esitusjärjekord</string>
<string name="desc_tab_handle">Liiguta seda vahelehte</string> <string name="desc_tab_handle">Liiguta seda vahelehte</string>
<string name="desc_shuffle_all">Sega kõik palad</string>
<string name="desc_remove_song">Eemalda see pala</string> <string name="desc_remove_song">Eemalda see pala</string>
<string name="desc_song_handle">Tõsta see pala teise kohta</string> <string name="desc_song_handle">Tõsta see pala teise kohta</string>
<string name="desc_clear_search">Tühjenda otsinguajalugu</string> <string name="desc_clear_search">Tühjenda otsinguajalugu</string>
@ -288,7 +280,6 @@
<string name="cdc_ogg">Ogg Vorbis audio</string> <string name="cdc_ogg">Ogg Vorbis audio</string>
<string name="cdc_mp3">MPEG-1 audio</string> <string name="cdc_mp3">MPEG-1 audio</string>
<string name="cdc_mp4">MPEG-4 audio</string> <string name="cdc_mp4">MPEG-4 audio</string>
<string name="cdc_mka">Matroska audio</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_lib_song_count">Laaditud palasid: %d</string> <string name="fmt_lib_song_count">Laaditud palasid: %d</string>
<string name="fmt_deletion_info">Kas kustutame %s? Seda tegevust ei saa tagasi pöörata.</string> <string name="fmt_deletion_info">Kas kustutame %s? Seda tegevust ei saa tagasi pöörata.</string>
@ -324,4 +315,7 @@
<string name="lng_empty_genres">Sinu žanrid saavad olema nähtavad siin.</string> <string name="lng_empty_genres">Sinu žanrid saavad olema nähtavad siin.</string>
<string name="lng_empty_albums">Sinu albumid saavad olema nähtavad siin.</string> <string name="lng_empty_albums">Sinu albumid saavad olema nähtavad siin.</string>
<string name="lng_empty_playlists">Sinu esitusloendid saavad olema nähtavad siin.</string> <string name="lng_empty_playlists">Sinu esitusloendid saavad olema nähtavad siin.</string>
<string name="set_with_hidden">Kaasa peidetud failid</string>
<string name="set_with_hidden_desc">Kaasa peidetud helifailid (nt. .cache)</string>
<string name="set_cover_mode_as_is">Sellisena, nagu ta on</string>
</resources> </resources>

View file

@ -3,7 +3,6 @@
<string name="lbl_indexer">بارگیری موسیقی</string> <string name="lbl_indexer">بارگیری موسیقی</string>
<string name="info_app_desc">یک پخش کننده موسیقی ساده و منطقی برای اندروید.</string> <string name="info_app_desc">یک پخش کننده موسیقی ساده و منطقی برای اندروید.</string>
<string name="lbl_retry">تلاش دوباره</string> <string name="lbl_retry">تلاش دوباره</string>
<string name="lbl_grant">اجازه دادن</string>
<string name="lbl_album">آلبوم</string> <string name="lbl_album">آلبوم</string>
<string name="lbl_album_live">آلبوم زنده</string> <string name="lbl_album_live">آلبوم زنده</string>
<string name="lbl_album_remix">آلبوم ریمیکس</string> <string name="lbl_album_remix">آلبوم ریمیکس</string>

View file

@ -4,7 +4,6 @@
<string name="lbl_indexer">Musiikki latautuu</string> <string name="lbl_indexer">Musiikki latautuu</string>
<string name="lbl_indexing">Ladataan musiikkia</string> <string name="lbl_indexing">Ladataan musiikkia</string>
<string name="lbl_retry">Yritä uudelleen</string> <string name="lbl_retry">Yritä uudelleen</string>
<string name="lbl_grant">Anna lupa</string>
<string name="lbl_songs">Kappaleet</string> <string name="lbl_songs">Kappaleet</string>
<string name="lbl_all_songs">Kaikki kappaleet</string> <string name="lbl_all_songs">Kaikki kappaleet</string>
<string name="lbl_albums">Albumit</string> <string name="lbl_albums">Albumit</string>
@ -51,7 +50,6 @@
<string name="lbl_cancel">Peruuta</string> <string name="lbl_cancel">Peruuta</string>
<string name="lbl_save">Tallenna</string> <string name="lbl_save">Tallenna</string>
<string name="lbl_reset">Palauta oletus</string> <string name="lbl_reset">Palauta oletus</string>
<string name="lbl_add">Lisää</string>
<string name="lng_observing">Valvotaa musiikkikirjastoa muutosten varalta…</string> <string name="lng_observing">Valvotaa musiikkikirjastoa muutosten varalta…</string>
<string name="lbl_shuffle_shortcut_short">Sekoita</string> <string name="lbl_shuffle_shortcut_short">Sekoita</string>
<string name="lbl_shuffle_shortcut_long">Sekoita kaikki</string> <string name="lbl_shuffle_shortcut_long">Sekoita kaikki</string>
@ -70,7 +68,7 @@
<string name="set_play_song_from_genre">Toista tyylilajista</string> <string name="set_play_song_from_genre">Toista tyylilajista</string>
<string name="set_separators">Moniarvoerottimet</string> <string name="set_separators">Moniarvoerottimet</string>
<string name="set_exclude_non_music_desc">Ohita äänitiedostot, jotka eivät ole musiikkia, kuten podcastit</string> <string name="set_exclude_non_music_desc">Ohita äänitiedostot, jotka eivät ole musiikkia, kuten podcastit</string>
<string name="set_separators_and">Ja-merkki (&amp;)</string> <string name="set_separators_and">Ampersand &amp;</string>
<string name="set_separators_comma">Pilkku (,)</string> <string name="set_separators_comma">Pilkku (,)</string>
<string name="set_separators_plus">Plus (+)</string> <string name="set_separators_plus">Plus (+)</string>
<string name="set_separators_semicolon">Puolipiste (;)</string> <string name="set_separators_semicolon">Puolipiste (;)</string>
@ -89,7 +87,6 @@
<string name="set_locations_desc">Määritä mistä musiikki tulee ladata</string> <string name="set_locations_desc">Määritä mistä musiikki tulee ladata</string>
<string name="set_rescan">Läpikäy musiikki uudelleen</string> <string name="set_rescan">Läpikäy musiikki uudelleen</string>
<string name="err_no_app">Tähän tehtävään kykenevää sovellusta ei löytynyt</string> <string name="err_no_app">Tähän tehtävään kykenevää sovellusta ei löytynyt</string>
<string name="err_no_locations">Ei kansioita</string>
<string name="desc_track_number">Raita %d</string> <string name="desc_track_number">Raita %d</string>
<string name="desc_skip_next">Siirry seuraavaan kappaleeseen</string> <string name="desc_skip_next">Siirry seuraavaan kappaleeseen</string>
<string name="desc_change_repeat">Muuta kertaustilaa</string> <string name="desc_change_repeat">Muuta kertaustilaa</string>
@ -106,7 +103,6 @@
<string name="cdc_mp3">MPEG-1-ääni</string> <string name="cdc_mp3">MPEG-1-ääni</string>
<string name="cdc_mp4">MPEG-4-ääni</string> <string name="cdc_mp4">MPEG-4-ääni</string>
<string name="cdc_ogg">Ogg-ääni</string> <string name="cdc_ogg">Ogg-ääni</string>
<string name="cdc_mka">Matroska-ääni</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="clr_red">Punainen</string> <string name="clr_red">Punainen</string>
@ -165,10 +161,8 @@
<string name="set_round_mode">Pyöristetty tila</string> <string name="set_round_mode">Pyöristetty tila</string>
<string name="lbl_soundtracks">Elokuvamusiikit</string> <string name="lbl_soundtracks">Elokuvamusiikit</string>
<string name="lbl_mixes">DJ-mixaukset</string> <string name="lbl_mixes">DJ-mixaukset</string>
<string name="err_no_perms">Auxio tarvitsee luvan lukea musiikkikirjastoa</string>
<string name="set_root_title">Asetukset</string> <string name="set_root_title">Asetukset</string>
<string name="lbl_sort">Järjestä</string> <string name="lbl_sort">Järjestä</string>
<string name="err_no_music">Musiikkia ei löytynyt</string>
<string name="lbl_wiki">Wiki</string> <string name="lbl_wiki">Wiki</string>
<string name="clr_grey">Harmaa</string> <string name="clr_grey">Harmaa</string>
<string name="set_ui_desc">Muuta sovelluksen teemaa ja värejä</string> <string name="set_ui_desc">Muuta sovelluksen teemaa ja värejä</string>
@ -205,11 +199,9 @@
<string name="set_headset_autoplay">Automaattitoisto kuulokkeilla</string> <string name="set_headset_autoplay">Automaattitoisto kuulokkeilla</string>
<string name="set_headset_autoplay_desc">Aloita aina toisto, kun kuulokkeet yhdistetään (ei välttämättä toimi kaikilla laitteilla)</string> <string name="set_headset_autoplay_desc">Aloita aina toisto, kun kuulokkeet yhdistetään (ei välttämättä toimi kaikilla laitteilla)</string>
<string name="desc_skip_prev">Siirry viimeiseen kappaleeseen</string> <string name="desc_skip_prev">Siirry viimeiseen kappaleeseen</string>
<string name="set_locations_list">Kansiot</string>
<string name="desc_play_pause">Toista tai keskeytä</string> <string name="desc_play_pause">Toista tai keskeytä</string>
<string name="err_bad_location">Tämä kansio ei ole tuettu</string> <string name="err_bad_location">Tämä kansio ei ole tuettu</string>
<string name="desc_shuffle">Sekoitus päällä/pois</string> <string name="desc_shuffle">Sekoitus päällä/pois</string>
<string name="desc_shuffle_all">Sekoita kaikki kappaleet</string>
<string name="desc_tab_handle">Siirry tätä välilehteä</string> <string name="desc_tab_handle">Siirry tätä välilehteä</string>
<string name="desc_clear_search">Tyhjennä hakuehto</string> <string name="desc_clear_search">Tyhjennä hakuehto</string>
<string name="desc_artist_image">Esittäjän %s kuva</string> <string name="desc_artist_image">Esittäjän %s kuva</string>
@ -250,7 +242,6 @@
<string name="set_rescan_desc">Tyhjennä tunnistevälimuisti ja lataa musiikkikirjasto kokonaan uudelleen (hitaampi mutta kattavampi)</string> <string name="set_rescan_desc">Tyhjennä tunnistevälimuisti ja lataa musiikkikirjasto kokonaan uudelleen (hitaampi mutta kattavampi)</string>
<string name="lbl_song">Kappale</string> <string name="lbl_song">Kappale</string>
<string name="lbl_parent_detail">Näytä</string> <string name="lbl_parent_detail">Näytä</string>
<string name="lbl_show_error_info">Lisää</string>
<string name="lbl_copied">Kopioitu</string> <string name="lbl_copied">Kopioitu</string>
<string name="lbl_report">Ilmoita virheestä</string> <string name="lbl_report">Ilmoita virheestä</string>
<string name="lbl_selection">Valinta</string> <string name="lbl_selection">Valinta</string>
@ -315,4 +306,11 @@
<string name="set_locations_new">Uusi kansio</string> <string name="set_locations_new">Uusi kansio</string>
<string name="cnt_mp4">MPEG-4 sisältäen %s</string> <string name="cnt_mp4">MPEG-4 sisältäen %s</string>
<string name="cdc_unknown">Tuntematon</string> <string name="cdc_unknown">Tuntematon</string>
<string name="lng_empty_songs">Kappaleesi tulevat näkymään tässä.</string>
<string name="lng_empty_albums">Albumisi tulevat näkymään tässä.</string>
<string name="lng_empty_artists">Esittäjäsi tulevat näkymään tässä.</string>
<string name="lng_empty_playlists">Soittolistasi tulevat näkymään tässä.</string>
<string name="lng_empty_genres">Tyylilajisi tulevat näkymään tässä.</string>
<string name="cdc_alac">Apple Lossless Audio Codec (ALAC)</string>
<string name="set_cover_mode_save_space">Säätä tilaa</string>
</resources> </resources>

View file

@ -51,7 +51,6 @@
<string name="lbl_bitrate">Tulin ng mga bit</string> <string name="lbl_bitrate">Tulin ng mga bit</string>
<string name="lbl_sample_rate">Tulin ng sample</string> <string name="lbl_sample_rate">Tulin ng sample</string>
<string name="lbl_shuffle_shortcut_short">Haluin</string> <string name="lbl_shuffle_shortcut_short">Haluin</string>
<string name="lbl_add">Idagdag</string>
<string name="lbl_save">I-save</string> <string name="lbl_save">I-save</string>
<string name="lbl_about">Tungkol</string> <string name="lbl_about">Tungkol</string>
<string name="lbl_version">Ulat</string> <string name="lbl_version">Ulat</string>
@ -88,7 +87,6 @@
<string name="lbl_live_group">Live</string> <string name="lbl_live_group">Live</string>
<string name="lbl_search">Hanapin</string> <string name="lbl_search">Hanapin</string>
<string name="lbl_singles">Mga Single</string> <string name="lbl_singles">Mga Single</string>
<string name="lbl_grant">Bigyan</string>
<string name="lbl_genres">Mga Genre</string> <string name="lbl_genres">Mga Genre</string>
<string name="lng_widget">Tignan at ayusin ang pagtugtog ng kanta</string> <string name="lng_widget">Tignan at ayusin ang pagtugtog ng kanta</string>
<string name="set_theme">Tema</string> <string name="set_theme">Tema</string>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Réessayer</string> <string name="lbl_retry">Réessayer</string>
<string name="lbl_grant">Accorder</string>
<string name="lbl_genres">Genres</string> <string name="lbl_genres">Genres</string>
<string name="lbl_artists">Artistes</string> <string name="lbl_artists">Artistes</string>
<string name="lbl_albums">Albums</string> <string name="lbl_albums">Albums</string>
@ -38,7 +37,6 @@
<string name="set_audio">Audio</string> <string name="set_audio">Audio</string>
<string name="set_personalize">Comportement</string> <string name="set_personalize">Comportement</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Pas de musique trouvée</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Morceau %d</string> <string name="desc_track_number">Morceau %d</string>
<string name="desc_play_pause">Lecture ou pause</string> <string name="desc_play_pause">Lecture ou pause</string>
@ -85,7 +83,6 @@
<string name="lbl_cancel">Annuler</string> <string name="lbl_cancel">Annuler</string>
<string name="lbl_save">Enregistrer</string> <string name="lbl_save">Enregistrer</string>
<string name="lbl_size">Taille</string> <string name="lbl_size">Taille</string>
<string name="lbl_add">Ajouter</string>
<string name="set_display">Affichage</string> <string name="set_display">Affichage</string>
<string name="set_lib_tabs">Onglets de la bibliothèque</string> <string name="set_lib_tabs">Onglets de la bibliothèque</string>
<string name="info_app_desc">Un lecteur de musique simple et rationnel pour Android.</string> <string name="info_app_desc">Un lecteur de musique simple et rationnel pour Android.</string>
@ -110,7 +107,7 @@
<string name="lbl_compilation">Compilation</string> <string name="lbl_compilation">Compilation</string>
<string name="lbl_live_group">Live</string> <string name="lbl_live_group">Live</string>
<string name="lbl_indexing">Chargement de la musique</string> <string name="lbl_indexing">Chargement de la musique</string>
<string name="lbl_observing">Suivre la librairie musicale</string> <string name="lbl_observing">Suivre la bibliothèque musicale</string>
<string name="lbl_eps">EP</string> <string name="lbl_eps">EP</string>
<string name="lbl_ep">EP</string> <string name="lbl_ep">EP</string>
<string name="lbl_singles">Singles</string> <string name="lbl_singles">Singles</string>
@ -125,13 +122,11 @@
<string name="lbl_album_remix">Album de remix</string> <string name="lbl_album_remix">Album de remix</string>
<string name="lbl_genre">Genre</string> <string name="lbl_genre">Genre</string>
<string name="lbl_equalizer">Égaliseur</string> <string name="lbl_equalizer">Égaliseur</string>
<string name="desc_shuffle_all">Lecture aléatoire de tous les titres</string>
<string name="desc_auxio_icon">Icône Auxio</string> <string name="desc_auxio_icon">Icône Auxio</string>
<string name="desc_no_cover">Couverture de l\'album</string> <string name="desc_no_cover">Couverture de l\'album</string>
<string name="def_genre">Genre inconnu</string> <string name="def_genre">Genre inconnu</string>
<string name="clr_dynamic">Dynamique</string> <string name="clr_dynamic">Dynamique</string>
<string name="clr_cyan">Cyan</string> <string name="clr_cyan">Cyan</string>
<string name="err_no_locations">Aucun dossier</string>
<string name="desc_music_location_delete">Supprimer le dossier</string> <string name="desc_music_location_delete">Supprimer le dossier</string>
<string name="def_artist">Artiste inconnu</string> <string name="def_artist">Artiste inconnu</string>
<string name="lbl_compilation_live">Compilation en direct</string> <string name="lbl_compilation_live">Compilation en direct</string>
@ -200,13 +195,11 @@
<string name="set_replay_gain_mode">Stratégie de normalisation de volume</string> <string name="set_replay_gain_mode">Stratégie de normalisation de volume</string>
<string name="set_replay_gain_mode_track">Par chanson</string> <string name="set_replay_gain_mode_track">Par chanson</string>
<string name="set_replay_gain_mode_album">Par album</string> <string name="set_replay_gain_mode_album">Par album</string>
<string name="set_locations_list">Dossiers</string>
<string name="set_replay_gain_mode_dynamic">Par album si un album est en lecture</string> <string name="set_replay_gain_mode_dynamic">Par album si un album est en lecture</string>
<string name="set_library">Bibliothèque</string> <string name="set_library">Bibliothèque</string>
<string name="set_reindex">Actualiser la musique</string> <string name="set_reindex">Actualiser la musique</string>
<string name="set_rescan_desc">Effacer le cache des étiquettes et recharger entièrement la bibliothèque musicale (lent, mais plus complet)</string> <string name="set_rescan_desc">Effacer le cache des étiquettes et recharger entièrement la bibliothèque musicale (lent, mais plus complet)</string>
<string name="err_no_app">Aucune application trouvée qui puisse gérer cette tâche</string> <string name="err_no_app">Aucune application trouvée qui puisse gérer cette tâche</string>
<string name="err_no_perms">Auxio a besoin de permissions pour lire votre bibliothèque musicale</string>
<string name="set_intelligent_sorting">Tri intelligent</string> <string name="set_intelligent_sorting">Tri intelligent</string>
<string name="set_intelligent_sorting_desc">Ignorer les nombres ou certains mots comme \"the\" en début de nom lors du tri (fonctionne au mieux avec de la musique en anglais)</string> <string name="set_intelligent_sorting_desc">Ignorer les nombres ou certains mots comme \"the\" en début de nom lors du tri (fonctionne au mieux avec de la musique en anglais)</string>
<string name="set_rescan">Scanner à nouveau la musique</string> <string name="set_rescan">Scanner à nouveau la musique</string>
@ -222,7 +215,6 @@
<string name="fmt_sample_rate">%d Hz</string> <string name="fmt_sample_rate">%d Hz</string>
<string name="desc_skip_prev">Passer à la dernière chanson</string> <string name="desc_skip_prev">Passer à la dernière chanson</string>
<string name="lbl_playlist_add">Ajouter à la liste de lecture</string> <string name="lbl_playlist_add">Ajouter à la liste de lecture</string>
<string name="cdc_mka">Audio Matroska</string>
<string name="fmt_lib_artist_count">Artistes chargés: %d</string> <string name="fmt_lib_artist_count">Artistes chargés: %d</string>
<string name="set_rewind_prev">Rembobiner avant de revenir en arrière</string> <string name="set_rewind_prev">Rembobiner avant de revenir en arrière</string>
<string name="desc_artist_image">Image d\'artiste pour %s</string> <string name="desc_artist_image">Image d\'artiste pour %s</string>
@ -283,7 +275,6 @@
<string name="lbl_sort_mode">Trier par</string> <string name="lbl_sort_mode">Trier par</string>
<string name="lbl_sort_direction">Direction</string> <string name="lbl_sort_direction">Direction</string>
<string name="lbl_selection">Sélection</string> <string name="lbl_selection">Sélection</string>
<string name="lbl_show_error_info">En savoir plus</string>
<string name="lbl_copied">Copié</string> <string name="lbl_copied">Copié</string>
<string name="lbl_report">Signaler</string> <string name="lbl_report">Signaler</string>
<string name="lbl_error_info">Info sur l\'erreur</string> <string name="lbl_error_info">Info sur l\'erreur</string>

View file

@ -14,7 +14,6 @@
<string name="lbl_singles">Sinxelo</string> <string name="lbl_singles">Sinxelo</string>
<string name="lbl_compilations">Compilacións</string> <string name="lbl_compilations">Compilacións</string>
<string name="lbl_compilation">Compilación</string> <string name="lbl_compilation">Compilación</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_albums">Álbums</string> <string name="lbl_albums">Álbums</string>
<string name="lbl_single_remix">Sinxelo remix</string> <string name="lbl_single_remix">Sinxelo remix</string>
<string name="lbl_retry">Volver a intentar</string> <string name="lbl_retry">Volver a intentar</string>
@ -93,7 +92,6 @@
<string name="lbl_song_detail">Ver as propiedades</string> <string name="lbl_song_detail">Ver as propiedades</string>
<string name="lbl_props">Propiedades da canción</string> <string name="lbl_props">Propiedades da canción</string>
<string name="lbl_save">Gardar</string> <string name="lbl_save">Gardar</string>
<string name="lbl_add">Engadir</string>
<string name="lbl_licenses">Licenzas</string> <string name="lbl_licenses">Licenzas</string>
<string name="lng_queue_added">Engadido á cola</string> <string name="lng_queue_added">Engadido á cola</string>
<string name="set_personalize">Personalizar</string> <string name="set_personalize">Personalizar</string>
@ -162,7 +160,6 @@
<string name="set_rescan_desc">Borrar a caché das etiquetas a recargar completamente a biblioteca de música (máis lento, pero máis completo)</string> <string name="set_rescan_desc">Borrar a caché das etiquetas a recargar completamente a biblioteca de música (máis lento, pero máis completo)</string>
<string name="desc_change_repeat">Cambiar o modo de repetición</string> <string name="desc_change_repeat">Cambiar o modo de repetición</string>
<string name="desc_shuffle">Activar ou desactivar a mezcla</string> <string name="desc_shuffle">Activar ou desactivar a mezcla</string>
<string name="desc_shuffle_all">Mezclar todas as cancións</string>
<string name="desc_exit">Deter a reprodución</string> <string name="desc_exit">Deter a reprodución</string>
<string name="desc_queue_bar">Abrir a cola</string> <string name="desc_queue_bar">Abrir a cola</string>
<string name="desc_clear_search">Borrar o historial de busca</string> <string name="desc_clear_search">Borrar o historial de busca</string>
@ -179,9 +176,7 @@
<string name="cdc_mp3">Audio MPEG-1</string> <string name="cdc_mp3">Audio MPEG-1</string>
<string name="cdc_mp4">Audio MPEG-4</string> <string name="cdc_mp4">Audio MPEG-4</string>
<string name="err_index_failed">Fallou a carga de música</string> <string name="err_index_failed">Fallou a carga de música</string>
<string name="err_no_perms">Auxio necesita permiso para leer a túa biblioteca de música</string>
<string name="err_no_app">Non se atopou ningunha aplicación que poda facer esta tarefa</string> <string name="err_no_app">Non se atopou ningunha aplicación que poda facer esta tarefa</string>
<string name="err_no_locations">Sen cartafois</string>
<string name="cdc_ogg">Audio ogg</string> <string name="cdc_ogg">Audio ogg</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
@ -227,12 +222,9 @@
<string name="set_intelligent_sorting_desc">Ignorar palabras como \"the\" ao ordenar por nome (funciona mellor con música en inglés)</string> <string name="set_intelligent_sorting_desc">Ignorar palabras como \"the\" ao ordenar por nome (funciona mellor con música en inglés)</string>
<string name="set_locations_desc">Xestionar dende onde se carga a música</string> <string name="set_locations_desc">Xestionar dende onde se carga a música</string>
<string name="set_repeat_pause_desc">Pausar cando se repite unha canción</string> <string name="set_repeat_pause_desc">Pausar cando se repite unha canción</string>
<string name="set_locations_list">Cartafois</string>
<string name="def_track">Ningunha pista</string> <string name="def_track">Ningunha pista</string>
<string name="desc_skip_prev">Saltar á última canción</string> <string name="desc_skip_prev">Saltar á última canción</string>
<string name="err_no_music">Sen música</string>
<string name="desc_track_number">Pista %d</string> <string name="desc_track_number">Pista %d</string>
<string name="cdc_mka">Audio Matroska</string>
<string name="lbl_mixtapes">Mixtapes (compilación de cancións)</string> <string name="lbl_mixtapes">Mixtapes (compilación de cancións)</string>
<string name="lbl_mixtape">Mixtapes (compilación de cancións)</string> <string name="lbl_mixtape">Mixtapes (compilación de cancións)</string>
<string name="lbl_remix_group">Remix</string> <string name="lbl_remix_group">Remix</string>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">पुन: प्रयास करें</string> <string name="lbl_retry">पुन: प्रयास करें</string>
<string name="lbl_grant">अनुदान</string>
<string name="lbl_artists">कलाकार</string> <string name="lbl_artists">कलाकार</string>
<string name="lbl_albums">एल्बम</string> <string name="lbl_albums">एल्बम</string>
<string name="lbl_songs">गीत</string> <string name="lbl_songs">गीत</string>
@ -31,7 +30,6 @@
<string name="set_audio">ऑडियो</string> <string name="set_audio">ऑडियो</string>
<string name="set_personalize">चाल चलन</string> <string name="set_personalize">चाल चलन</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">कोई संगीत नहीं मिला</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
<string name="desc_play_pause">चलाएं/रोकें</string> <string name="desc_play_pause">चलाएं/रोकें</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
@ -141,7 +139,6 @@
<item quantity="other">%d कलाकार</item> <item quantity="other">%d कलाकार</item>
</plurals> </plurals>
<string name="lbl_observing">संगीत लाइब्रेरी की निगरानी</string> <string name="lbl_observing">संगीत लाइब्रेरी की निगरानी</string>
<string name="lbl_add">जोड़ें</string>
<string name="lbl_ep">ईपी</string> <string name="lbl_ep">ईपी</string>
<string name="lbl_rename">नाम बदलें</string> <string name="lbl_rename">नाम बदलें</string>
<string name="set_separators_semicolon">अर्धविराम (;)</string> <string name="set_separators_semicolon">अर्धविराम (;)</string>
@ -202,12 +199,10 @@
<string name="set_repeat_pause_desc">जब कोई गीत दोहराया जाता है तो रुक जाएं</string> <string name="set_repeat_pause_desc">जब कोई गीत दोहराया जाता है तो रुक जाएं</string>
<string name="set_pre_amp">रीप्लेगेन प्री-एम्प</string> <string name="set_pre_amp">रीप्लेगेन प्री-एम्प</string>
<string name="set_pre_amp_with">टैग के साथ समायोजन</string> <string name="set_pre_amp_with">टैग के साथ समायोजन</string>
<string name="set_locations_list">फ़ोल्डर</string>
<string name="err_index_failed">संगीत लोड करना विफल रहा</string> <string name="err_index_failed">संगीत लोड करना विफल रहा</string>
<string name="err_bad_location">यह फ़ोल्डर समर्थित नहीं है</string> <string name="err_bad_location">यह फ़ोल्डर समर्थित नहीं है</string>
<string name="desc_change_repeat">रिपीट मोड बदलें</string> <string name="desc_change_repeat">रिपीट मोड बदलें</string>
<string name="desc_shuffle">शफ़ल चालू या बंद करें</string> <string name="desc_shuffle">शफ़ल चालू या बंद करें</string>
<string name="desc_shuffle_all">सभी गीत शफ़ल करें</string>
<string name="desc_exit">प्लेबैक बंद करो</string> <string name="desc_exit">प्लेबैक बंद करो</string>
<string name="desc_song_handle">इस गीत को इस स्थानांतरित करें</string> <string name="desc_song_handle">इस गीत को इस स्थानांतरित करें</string>
<string name="def_genre">अज्ञात शैली</string> <string name="def_genre">अज्ञात शैली</string>
@ -261,8 +256,6 @@
<string name="set_rewind_prev">वापस जाने से पहले रिवाइंड करें</string> <string name="set_rewind_prev">वापस जाने से पहले रिवाइंड करें</string>
<string name="set_replay_gain_mode_track">ट्रैक को प्राथमिकता दें</string> <string name="set_replay_gain_mode_track">ट्रैक को प्राथमिकता दें</string>
<string name="set_rescan_desc">टैग कैश साफ़ करें और संगीत लाइब्रेरी को पूरी तरह पुनः लोड करें (धीमी, लेकिन अधिक पूर्ण)</string> <string name="set_rescan_desc">टैग कैश साफ़ करें और संगीत लाइब्रेरी को पूरी तरह पुनः लोड करें (धीमी, लेकिन अधिक पूर्ण)</string>
<string name="err_no_perms">Auxio को आपकी संगीत लाइब्रेरी पढ़ने के लिए अनुमति की आवश्यकता है</string>
<string name="err_no_locations">कोई फ़ोल्डर नहीं</string>
<string name="clr_brown">भूरा</string> <string name="clr_brown">भूरा</string>
<string name="clr_yellow">पीला</string> <string name="clr_yellow">पीला</string>
<string name="clr_lime">नींबू रंग</string> <string name="clr_lime">नींबू रंग</string>
@ -271,7 +264,6 @@
<string name="desc_skip_next">अगले गाने पर जाएं</string> <string name="desc_skip_next">अगले गाने पर जाएं</string>
<string name="desc_auxio_icon">ऑक्सियो आइकन</string> <string name="desc_auxio_icon">ऑक्सियो आइकन</string>
<string name="cdc_ogg">Ogg ऑडियो</string> <string name="cdc_ogg">Ogg ऑडियो</string>
<string name="cdc_mka">Matroska ऑडियो</string>
<string name="clr_pink">गुलाबी</string> <string name="clr_pink">गुलाबी</string>
<string name="set_intelligent_sorting">बुद्धिमान छंटाई</string> <string name="set_intelligent_sorting">बुद्धिमान छंटाई</string>
<string name="set_intelligent_sorting_desc">संख्याओं या \"the\" जैसे शब्दों से शुरू होने वाले नामों को सही ढंग से क्रमबद्ध करें (अंग्रेजी भाषा के संगीत के साथ सबसे अच्छा काम करता है)</string> <string name="set_intelligent_sorting_desc">संख्याओं या \"the\" जैसे शब्दों से शुरू होने वाले नामों को सही ढंग से क्रमबद्ध करें (अंग्रेजी भाषा के संगीत के साथ सबसे अच्छा काम करता है)</string>
@ -283,7 +275,6 @@
<string name="lbl_error_info">त्रुटि की जानकारी</string> <string name="lbl_error_info">त्रुटि की जानकारी</string>
<string name="lbl_report">रिपोर्ट करें</string> <string name="lbl_report">रिपोर्ट करें</string>
<string name="lbl_copied">कापी किया गया</string> <string name="lbl_copied">कापी किया गया</string>
<string name="lbl_show_error_info">और</string>
<string name="def_album_count">कोई एल्बम नहीं</string> <string name="def_album_count">कोई एल्बम नहीं</string>
<string name="lbl_demo">डेमो</string> <string name="lbl_demo">डेमो</string>
<string name="lbl_demos">डेमो</string> <string name="lbl_demos">डेमो</string>

View file

@ -48,7 +48,6 @@
<string name="lbl_shuffle_shortcut_long">Izmiješaj sve</string> <string name="lbl_shuffle_shortcut_long">Izmiješaj sve</string>
<string name="lbl_ok">U redu</string> <string name="lbl_ok">U redu</string>
<string name="lbl_cancel">Odustani</string> <string name="lbl_cancel">Odustani</string>
<string name="lbl_add">Dodaj</string>
<string name="lbl_save">Spremi</string> <string name="lbl_save">Spremi</string>
<string name="lbl_about">O</string> <string name="lbl_about">O</string>
<string name="lbl_version">Inačica</string> <string name="lbl_version">Inačica</string>
@ -87,16 +86,12 @@
<string name="set_locations_desc">Upravljaj odakle će se glazba učitati</string> <string name="set_locations_desc">Upravljaj odakle će se glazba učitati</string>
<string name="set_observing">Automatsko ponovno učitavanje</string> <string name="set_observing">Automatsko ponovno učitavanje</string>
<string name="set_observing_desc">Ponovo učitaj svoju zbirku glazbe čim se dogode promjene (zahtijeva stalno obavještavanje)</string> <string name="set_observing_desc">Ponovo učitaj svoju zbirku glazbe čim se dogode promjene (zahtijeva stalno obavještavanje)</string>
<string name="err_no_music">Nijedna glazba nije pronađena</string>
<string name="err_index_failed">Greška u učitvanju glazbe</string> <string name="err_index_failed">Greška u učitvanju glazbe</string>
<string name="err_no_perms">Auxio treba dozvolu za čitanje tvoje zbirke glazbe</string>
<string name="err_no_app">Nijedna aplikacija ne može obraditi ovaj zadatak</string> <string name="err_no_app">Nijedna aplikacija ne može obraditi ovaj zadatak</string>
<string name="err_no_locations">Nema mapa</string>
<string name="err_bad_location">Ova mapa nije podržana</string> <string name="err_bad_location">Ova mapa nije podržana</string>
<string name="lng_search_library">Pretraži svoju zbirku …</string> <string name="lng_search_library">Pretraži svoju zbirku …</string>
<string name="desc_track_number">Zvučni zapis %d</string> <string name="desc_track_number">Zvučni zapis %d</string>
<string name="desc_shuffle">Omogućite ili onemogućite miješanje</string> <string name="desc_shuffle">Omogućite ili onemogućite miješanje</string>
<string name="desc_shuffle_all">Izmiješaj sve pjesme</string>
<string name="desc_remove_song">Ukoni ovu pjesmu iz popisa pjesama</string> <string name="desc_remove_song">Ukoni ovu pjesmu iz popisa pjesama</string>
<string name="desc_song_handle">Premjesti ovu pjesmu u popisu pjesama</string> <string name="desc_song_handle">Premjesti ovu pjesmu u popisu pjesama</string>
<string name="desc_tab_handle">Pomakni ovu karticu</string> <string name="desc_tab_handle">Pomakni ovu karticu</string>
@ -158,7 +153,6 @@
<string name="lbl_retry">Pokušaj ponovo</string> <string name="lbl_retry">Pokušaj ponovo</string>
<string name="lbl_indexer">Učitavanje glazbe</string> <string name="lbl_indexer">Učitavanje glazbe</string>
<string name="lng_widget">Prikaži i upravljaj reprodukcijom glazbe</string> <string name="lng_widget">Prikaži i upravljaj reprodukcijom glazbe</string>
<string name="lbl_grant">Dozvoli</string>
<string name="lbl_single_live">Singl uživo</string> <string name="lbl_single_live">Singl uživo</string>
<string name="lbl_single_remix">Singl remiks</string> <string name="lbl_single_remix">Singl remiks</string>
<string name="lbl_single">Singl</string> <string name="lbl_single">Singl</string>
@ -167,7 +161,7 @@
<string name="lbl_search">Traži</string> <string name="lbl_search">Traži</string>
<string name="lbl_filter_all">Sve</string> <string name="lbl_filter_all">Sve</string>
<string name="lbl_queue_add">Dodaj u redoslijed</string> <string name="lbl_queue_add">Dodaj u redoslijed</string>
<string name="lng_queue_added">Dodano u redoslijed</string> <string name="lng_queue_added">Dodano u redoslijed izvođenja</string>
<string name="lbl_song_detail">Pogledaj svojstva</string> <string name="lbl_song_detail">Pogledaj svojstva</string>
<string name="lbl_artist_details">Idi na izvođača</string> <string name="lbl_artist_details">Idi na izvođača</string>
<string name="lbl_album_details">Idi na album</string> <string name="lbl_album_details">Idi na album</string>
@ -191,7 +185,6 @@
<string name="desc_skip_prev">Preskoči na prethodnu pjesmu</string> <string name="desc_skip_prev">Preskoči na prethodnu pjesmu</string>
<string name="desc_change_repeat">Promijeni način ponavljanja</string> <string name="desc_change_repeat">Promijeni način ponavljanja</string>
<string name="clr_purple">Ljubičasto</string> <string name="clr_purple">Ljubičasto</string>
<string name="cdc_mka">Matroska zvuk</string>
<string name="desc_queue_bar">Otvori redoslijed</string> <string name="desc_queue_bar">Otvori redoslijed</string>
<string name="lbl_genre">Žanr</string> <string name="lbl_genre">Žanr</string>
<string name="set_separators_comma">Zarez (,)</string> <string name="set_separators_comma">Zarez (,)</string>
@ -233,7 +226,6 @@
<string name="fmt_list">%1$s, %2$s</string> <string name="fmt_list">%1$s, %2$s</string>
<string name="lbl_reset">Resetiraj</string> <string name="lbl_reset">Resetiraj</string>
<string name="set_replay_gain">Normalizacija glasnoće</string> <string name="set_replay_gain">Normalizacija glasnoće</string>
<string name="set_locations_list">Mape</string>
<string name="lbl_sort_dsc">Silazno</string> <string name="lbl_sort_dsc">Silazno</string>
<string name="set_ui_desc">Promijenite temu i boje aplikacije</string> <string name="set_ui_desc">Promijenite temu i boje aplikacije</string>
<string name="set_personalize_desc">Prilagodite kontrole i ponašanje korisničkog sučelja</string> <string name="set_personalize_desc">Prilagodite kontrole i ponašanje korisničkog sučelja</string>
@ -276,7 +268,6 @@
<string name="lbl_sort_direction">Smjer</string> <string name="lbl_sort_direction">Smjer</string>
<string name="desc_selection_image">Slika odabira</string> <string name="desc_selection_image">Slika odabira</string>
<string name="lbl_selection">Odabir</string> <string name="lbl_selection">Odabir</string>
<string name="lbl_show_error_info">Više</string>
<string name="lbl_error_info">Podaci greške</string> <string name="lbl_error_info">Podaci greške</string>
<string name="lbl_report">Prijavi</string> <string name="lbl_report">Prijavi</string>
<string name="lbl_copied">Kopirano</string> <string name="lbl_copied">Kopirano</string>
@ -322,4 +313,9 @@
<string name="cnt_mp4">MPEG-4 sadrži %s</string> <string name="cnt_mp4">MPEG-4 sadrži %s</string>
<string name="set_cover_mode_save_space">Niža kvaliteta</string> <string name="set_cover_mode_save_space">Niža kvaliteta</string>
<string name="set_locations_new">Nova mapa</string> <string name="set_locations_new">Nova mapa</string>
<string name="lng_empty_songs">Tvoje pjesme će se ovdje prikazati.</string>
<string name="lng_empty_albums">Tvoji albumi će se ovdje prikazati.</string>
<string name="lng_empty_artists">Tvoji izvođači će se ovdje prikazati.</string>
<string name="lng_empty_playlists">Tvoji popisi pjesama će se ovdje prikazati.</string>
<string name="lng_empty_genres">Tvoji žanrovi će se ovdje prikazati.</string>
</resources> </resources>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Újra</string> <string name="lbl_retry">Újra</string>
<string name="lbl_grant">Engedélyez</string>
<string name="lbl_genres">Műfajok</string> <string name="lbl_genres">Műfajok</string>
<string name="lbl_artists">Előadók</string> <string name="lbl_artists">Előadók</string>
<string name="lbl_albums">Albumok</string> <string name="lbl_albums">Albumok</string>
@ -37,7 +36,6 @@
<string name="set_audio">Hang</string> <string name="set_audio">Hang</string>
<string name="set_personalize">Testreszabás</string> <string name="set_personalize">Testreszabás</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nem található zene</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Keresés a könyvtárban…</string> <string name="lng_search_library">Keresés a könyvtárban…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
@ -112,7 +110,6 @@
<string name="lbl_mix">DJ Mix</string> <string name="lbl_mix">DJ Mix</string>
<string name="lbl_genre">Műfaj</string> <string name="lbl_genre">Műfaj</string>
<string name="lbl_props">Dal tulajdonságai</string> <string name="lbl_props">Dal tulajdonságai</string>
<string name="err_no_locations">Nincs mappa</string>
<string name="set_black_mode_desc">Tiszta fekete sötét téma használata</string> <string name="set_black_mode_desc">Tiszta fekete sötét téma használata</string>
<string name="clr_dynamic">Dinamikus</string> <string name="clr_dynamic">Dinamikus</string>
<string name="set_cover_mode">Album borítók</string> <string name="set_cover_mode">Album borítók</string>
@ -163,7 +160,6 @@
<string name="lbl_rename_playlist">Lejátszólista átnevezés</string> <string name="lbl_rename_playlist">Lejátszólista átnevezés</string>
<string name="lbl_rename">Átnevez</string> <string name="lbl_rename">Átnevez</string>
<string name="lbl_date_added">Hozzáadás dátuma</string> <string name="lbl_date_added">Hozzáadás dátuma</string>
<string name="set_locations_list">Mappák</string>
<string name="lbl_save">Ment</string> <string name="lbl_save">Ment</string>
<string name="lbl_reset">Alaphelyzet</string> <string name="lbl_reset">Alaphelyzet</string>
<string name="lbl_author_name">Fejlesztő Alexander Capehart</string> <string name="lbl_author_name">Fejlesztő Alexander Capehart</string>
@ -185,7 +181,6 @@
<string name="def_date">Nincs dátum</string> <string name="def_date">Nincs dátum</string>
<string name="set_cover_mode_balanced">Gyors</string> <string name="set_cover_mode_balanced">Gyors</string>
<string name="set_exclude_non_music">A nem zenei anyagok kizárása</string> <string name="set_exclude_non_music">A nem zenei anyagok kizárása</string>
<string name="desc_shuffle_all">Keverés minden dalból</string>
<string name="cdc_ogg">Ogg audio</string> <string name="cdc_ogg">Ogg audio</string>
<string name="set_display">Megjelenítés</string> <string name="set_display">Megjelenítés</string>
<string name="lbl_track">Hangsáv</string> <string name="lbl_track">Hangsáv</string>
@ -206,7 +201,6 @@
<string name="lbl_observing">Zene könyvtár figyelése</string> <string name="lbl_observing">Zene könyvtár figyelése</string>
<string name="desc_exit">Lejátszás megállítása</string> <string name="desc_exit">Lejátszás megállítása</string>
<string name="info_app_desc">Egyszerű, praktikus zenelejátszó androidra.</string> <string name="info_app_desc">Egyszerű, praktikus zenelejátszó androidra.</string>
<string name="cdc_mka">Matroska hang</string>
<string name="lbl_album">Album</string> <string name="lbl_album">Album</string>
<string name="lbl_singles">Kislemezek</string> <string name="lbl_singles">Kislemezek</string>
<string name="lbl_single">Kislemez</string> <string name="lbl_single">Kislemez</string>
@ -222,7 +216,6 @@
<string name="lbl_shuffle_shortcut_short">Keverés</string> <string name="lbl_shuffle_shortcut_short">Keverés</string>
<string name="lbl_artist">Előadó</string> <string name="lbl_artist">Előadó</string>
<string name="lbl_remix_group">Remixek</string> <string name="lbl_remix_group">Remixek</string>
<string name="lbl_add">Hozzáad</string>
<string name="fmt_db_pos">+%.1f dB</string> <string name="fmt_db_pos">+%.1f dB</string>
<string name="set_separators_slash">Per jel (/)</string> <string name="set_separators_slash">Per jel (/)</string>
<plurals name="fmt_artist_count"> <plurals name="fmt_artist_count">
@ -266,7 +259,6 @@
<string name="lbl_appears_on">Megjelenik itt,</string> <string name="lbl_appears_on">Megjelenik itt,</string>
<string name="lbl_share">Megoszt</string> <string name="lbl_share">Megoszt</string>
<string name="lbl_confirm_delete_playlist">Lejátszólista törlése\?</string> <string name="lbl_confirm_delete_playlist">Lejátszólista törlése\?</string>
<string name="err_no_perms">Az Auxio engedélyt kér a zenei könyvtár olvasásához</string>
<string name="desc_remove_song">Távolítsa el ezt a dalt</string> <string name="desc_remove_song">Távolítsa el ezt a dalt</string>
<string name="desc_auxio_icon">Auxio ikon</string> <string name="desc_auxio_icon">Auxio ikon</string>
<string name="def_disc">Nincs lemez</string> <string name="def_disc">Nincs lemez</string>
@ -280,7 +272,6 @@
<string name="lbl_sort_mode">Rendezés</string> <string name="lbl_sort_mode">Rendezés</string>
<string name="lbl_selection">Kiválasztás</string> <string name="lbl_selection">Kiválasztás</string>
<string name="desc_selection_image">Kép kiválasztás</string> <string name="desc_selection_image">Kép kiválasztás</string>
<string name="lbl_show_error_info">További</string>
<string name="lbl_copied">Másolva</string> <string name="lbl_copied">Másolva</string>
<string name="lbl_report">Jelentés</string> <string name="lbl_report">Jelentés</string>
<string name="lbl_error_info">Hiba információ</string> <string name="lbl_error_info">Hiba információ</string>

View file

@ -2,8 +2,6 @@
<resources> <resources>
<string name="lbl_indexing">Cargante le musica</string> <string name="lbl_indexing">Cargante le musica</string>
<string name="lbl_retry">Retentar</string> <string name="lbl_retry">Retentar</string>
<string name="lbl_show_error_info">Plus</string>
<string name="lbl_grant">Conceder</string>
<string name="lbl_songs">Cantos</string> <string name="lbl_songs">Cantos</string>
<string name="lbl_song">Canto</string> <string name="lbl_song">Canto</string>
<string name="lbl_all_songs">Tote le cantos</string> <string name="lbl_all_songs">Tote le cantos</string>
@ -45,7 +43,6 @@
<string name="lbl_play">Reproducer</string> <string name="lbl_play">Reproducer</string>
<string name="lbl_play_next">Reproducer sequente</string> <string name="lbl_play_next">Reproducer sequente</string>
<string name="lbl_queue_add">Adder al cauda</string> <string name="lbl_queue_add">Adder al cauda</string>
<string name="lbl_add">Adder</string>
<string name="lbl_version">Version</string> <string name="lbl_version">Version</string>
<string name="lbl_code">Codice fonte</string> <string name="lbl_code">Codice fonte</string>
<string name="lbl_wiki">Wiki</string> <string name="lbl_wiki">Wiki</string>
@ -119,7 +116,6 @@
<string name="set_play_song_none">Reproducer ab le elemento mostrate</string> <string name="set_play_song_none">Reproducer ab le elemento mostrate</string>
<string name="set_play_song_from_artist">Reproducer ab artista</string> <string name="set_play_song_from_artist">Reproducer ab artista</string>
<string name="set_keep_shuffle_desc">Mantener le reproduction aleatori al reproducer un nove canto</string> <string name="set_keep_shuffle_desc">Mantener le reproduction aleatori al reproducer un nove canto</string>
<string name="err_no_perms">Auxio besonia permission pro leger tu bibliotheca de musica</string>
<string name="def_genre">Genere incognite</string> <string name="def_genre">Genere incognite</string>
<string name="fmt_lib_genre_count">Generes cargate: %d</string> <string name="fmt_lib_genre_count">Generes cargate: %d</string>
<string name="desc_genre_image">Imagine de genere ab %s</string> <string name="desc_genre_image">Imagine de genere ab %s</string>
@ -139,11 +135,8 @@
<string name="set_playback">Reproduction</string> <string name="set_playback">Reproduction</string>
<string name="set_remember_pause">Rememorar le pausa</string> <string name="set_remember_pause">Rememorar le pausa</string>
<string name="set_locations">Dossieres de musica</string> <string name="set_locations">Dossieres de musica</string>
<string name="set_locations_list">Dossieres</string>
<string name="set_reindex">Actualisar le musica</string> <string name="set_reindex">Actualisar le musica</string>
<string name="err_no_music">Nulle musica trovate</string>
<string name="err_index_failed">Falleva le carga del musica</string> <string name="err_index_failed">Falleva le carga del musica</string>
<string name="err_no_locations">Necun dossieres</string>
<string name="err_bad_location">Iste dossier non es supportate</string> <string name="err_bad_location">Iste dossier non es supportate</string>
<string name="desc_track_number">Tracia %d</string> <string name="desc_track_number">Tracia %d</string>
<string name="desc_play_pause">Reproducer o pausar</string> <string name="desc_play_pause">Reproducer o pausar</string>
@ -164,7 +157,6 @@
<string name="cdc_mp4">Audio MPEG-4</string> <string name="cdc_mp4">Audio MPEG-4</string>
<string name="cdc_mp3">Audio MPEG-1</string> <string name="cdc_mp3">Audio MPEG-1</string>
<string name="cdc_ogg">Audio Ogg</string> <string name="cdc_ogg">Audio Ogg</string>
<string name="cdc_mka">Audio Matroska</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_selected">%d seligite</string> <string name="fmt_selected">%d seligite</string>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Coba lagi</string> <string name="lbl_retry">Coba lagi</string>
<string name="lbl_grant">Izinkan</string>
<string name="lbl_genres">Aliran</string> <string name="lbl_genres">Aliran</string>
<string name="lbl_artists">Artis</string> <string name="lbl_artists">Artis</string>
<string name="lbl_albums">Album</string> <string name="lbl_albums">Album</string>
@ -38,7 +37,6 @@
<string name="set_personalize">Personalisasi</string> <string name="set_personalize">Personalisasi</string>
<string name="set_keep_shuffle">Ingat daftar putar acak</string> <string name="set_keep_shuffle">Ingat daftar putar acak</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Musik tidak ditemukan</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Telusuri pustaka Anda…</string> <string name="lng_search_library">Telusuri pustaka Anda…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
@ -55,7 +53,6 @@
<string name="lbl_bitrate">Laju bit</string> <string name="lbl_bitrate">Laju bit</string>
<string name="lbl_ok">OK</string> <string name="lbl_ok">OK</string>
<string name="lbl_cancel">Batal</string> <string name="lbl_cancel">Batal</string>
<string name="lbl_add">Tambah</string>
<string name="lbl_save">Simpan</string> <string name="lbl_save">Simpan</string>
<string name="set_black_mode">Tema hitam</string> <string name="set_black_mode">Tema hitam</string>
<string name="set_black_mode_desc">Gunakan tema gelap hitam murni</string> <string name="set_black_mode_desc">Gunakan tema gelap hitam murni</string>
@ -136,14 +133,11 @@
<string name="set_pre_amp_without">Penyesuaian tanpa tag</string> <string name="set_pre_amp_without">Penyesuaian tanpa tag</string>
<string name="set_locations">Folder musik</string> <string name="set_locations">Folder musik</string>
<string name="set_play_song_from_artist">Putar dari artis</string> <string name="set_play_song_from_artist">Putar dari artis</string>
<string name="err_no_perms">Auxio memerlukan izin untuk membaca perpustakaan musik Anda</string>
<string name="desc_skip_prev">Loncat ke lagu terakhir</string> <string name="desc_skip_prev">Loncat ke lagu terakhir</string>
<string name="desc_shuffle_all">Acak semua lagu</string>
<string name="def_date">Tidak ada tanggal</string> <string name="def_date">Tidak ada tanggal</string>
<string name="err_index_failed">Pemuatan musik gagal</string> <string name="err_index_failed">Pemuatan musik gagal</string>
<string name="desc_album_cover">Sampul album untuk %s</string> <string name="desc_album_cover">Sampul album untuk %s</string>
<string name="def_artist">Artis tidak dikenal</string> <string name="def_artist">Artis tidak dikenal</string>
<string name="err_no_locations">Tidak ada folder</string>
<string name="desc_skip_next">Loncat ke lagu berikutnya</string> <string name="desc_skip_next">Loncat ke lagu berikutnya</string>
<string name="desc_music_location_delete">Hapus folder</string> <string name="desc_music_location_delete">Hapus folder</string>
<string name="desc_auxio_icon">Ikon Auxio</string> <string name="desc_auxio_icon">Ikon Auxio</string>
@ -157,7 +151,6 @@
<string name="fmt_lib_total_duration">Total durasi: %s</string> <string name="fmt_lib_total_duration">Total durasi: %s</string>
<string name="desc_genre_image">Gambar genre untuk %s</string> <string name="desc_genre_image">Gambar genre untuk %s</string>
<string name="def_genre">Genre tidak diketahui</string> <string name="def_genre">Genre tidak diketahui</string>
<string name="cdc_mka">Audio Matroska</string>
<string name="clr_deep_green">Hijau tua</string> <string name="clr_deep_green">Hijau tua</string>
<string name="clr_yellow">Kuning</string> <string name="clr_yellow">Kuning</string>
<string name="cdc_mp4">Audio MPEG-4</string> <string name="cdc_mp4">Audio MPEG-4</string>
@ -187,7 +180,6 @@
<string name="set_cover_mode_off">Nonaktif</string> <string name="set_cover_mode_off">Nonaktif</string>
<string name="set_cover_mode_balanced">Cepat</string> <string name="set_cover_mode_balanced">Cepat</string>
<string name="lbl_album_remix">Album remix</string> <string name="lbl_album_remix">Album remix</string>
<string name="set_locations_list">Folder</string>
<string name="lbl_indexing">Memuat musik</string> <string name="lbl_indexing">Memuat musik</string>
<string name="lbl_observing">Memantau pustaka musik</string> <string name="lbl_observing">Memantau pustaka musik</string>
<string name="lng_observing">Memantau perubahan pada pustaka musik Anda…</string> <string name="lng_observing">Memantau perubahan pada pustaka musik Anda…</string>
@ -207,7 +199,6 @@
<string name="lbl_ep_live">EP Live</string> <string name="lbl_ep_live">EP Live</string>
<string name="lbl_compilation">Kompilasi</string> <string name="lbl_compilation">Kompilasi</string>
<string name="lbl_mixtapes">Kaset campuran</string> <string name="lbl_mixtapes">Kaset campuran</string>
<string name="lbl_show_error_info">Lainnya</string>
<string name="lbl_soundtracks">Soundtrack</string> <string name="lbl_soundtracks">Soundtrack</string>
<string name="lbl_album_live">Album live</string> <string name="lbl_album_live">Album live</string>
<plurals name="fmt_artist_count"> <plurals name="fmt_artist_count">

View file

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Info namespace | App labels --> <!-- Info namespace | App labels -->
<string name="info_app_desc">Semplice e razionale lettore musicale per android.</string> <string name="info_app_desc">Un lettore musicale semplice e razionale per android.</string>
<string name="lng_widget">Vedi e gestisci la riproduzione musicale</string> <string name="lng_widget">Visualizza e gestisci la riproduzione musicale</string>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Riprova</string> <string name="lbl_retry">Riprova</string>
<string name="lbl_grant">Autorizza</string>
<string name="lbl_genres">Generi</string> <string name="lbl_genres">Generi</string>
<string name="lbl_artists">Artisti</string> <string name="lbl_artists">Artisti</string>
<string name="lbl_albums">Album</string> <string name="lbl_albums">Album</string>
<string name="lbl_songs">Brani</string> <string name="lbl_songs">Brani</string>
<string name="lbl_all_songs">Tutte i brani</string> <string name="lbl_all_songs">Tutti i brani</string>
<string name="lbl_search">Cerca</string> <string name="lbl_search">Cerca</string>
<string name="lbl_filter">Filtro</string> <string name="lbl_filter">Filtro</string>
<string name="lbl_filter_all">Tutto</string> <string name="lbl_filter_all">Tutto</string>
@ -18,87 +17,82 @@
<string name="lbl_name">Nome</string> <string name="lbl_name">Nome</string>
<string name="lbl_artist">Artista</string> <string name="lbl_artist">Artista</string>
<string name="lbl_album">Album</string> <string name="lbl_album">Album</string>
<string name="lbl_date">Anno</string> <string name="lbl_date">Data</string>
<string name="lbl_sort_asc">Ascendente</string> <string name="lbl_sort_asc">Crescente</string>
<string name="lbl_playback">Ora in riproduzione</string> <string name="lbl_playback">In riproduzione</string>
<string name="lbl_play">Riproduci</string> <string name="lbl_play">Riproduci</string>
<string name="lbl_shuffle">Mescola</string> <string name="lbl_shuffle">Casuale</string>
<string name="set_play_song_from_all">Riproduci da tutti i brani</string> <string name="set_play_song_from_all">Riproduci da tutti i brani</string>
<string name="set_play_song_from_album">Riproduci dall\'album</string> <string name="set_play_song_from_album">Riproduci dall\'album</string>
<string name="set_play_song_from_artist">Riproduci dall\'artista</string> <string name="set_play_song_from_artist">Riproduci dall\'artista</string>
<string name="lbl_queue">Coda</string> <string name="lbl_queue">Coda</string>
<string name="lbl_play_next">Riproduci successivo</string> <string name="lbl_play_next">Riproduci come successivo</string>
<string name="lbl_queue_add">Accoda</string> <string name="lbl_queue_add">Aggiungi alla coda</string>
<string name="lng_queue_added">Accodato</string> <string name="lng_queue_added">Aggiungi alla coda</string>
<string name="lbl_artist_details">Vai all\'artista</string> <string name="lbl_artist_details">Vai all\'artista</string>
<string name="lbl_album_details">Vai all\'album</string> <string name="lbl_album_details">Vai all\'album</string>
<string name="lbl_add">Aggiungi</string>
<string name="lbl_save">Salva</string> <string name="lbl_save">Salva</string>
<string name="err_no_locations">Nessuna cartella</string>
<string name="lbl_about">Informazioni</string> <string name="lbl_about">Informazioni</string>
<string name="lbl_version">Versione</string> <string name="lbl_version">Versione</string>
<string name="lbl_code">Codice sorgente</string> <string name="lbl_code">Codice sorgente</string>
<string name="lbl_licenses">Licenze</string> <string name="lbl_licenses">Licenze</string>
<string name="lbl_author_name">Sviluppato da Alexander Capehart</string> <string name="lbl_author_name">Alexander Capehart</string>
<string name="lbl_library_counts">Statistiche della raccolta</string> <string name="lbl_library_counts">Statistiche della libreria</string>
<!-- Settings namespace | Settings-related labels --> <!-- Settings namespace | Settings-related labels -->
<string name="set_root_title">Opzioni</string> <string name="set_root_title">Impostazioni</string>
<string name="set_ui">Aspetto</string> <string name="set_ui">Aspetto</string>
<string name="set_theme">Tema</string> <string name="set_theme">Tema</string>
<string name="set_theme_auto">Automatico</string> <string name="set_theme_auto">Sistema</string>
<string name="set_theme_day">Chiaro</string> <string name="set_theme_day">Chiaro</string>
<string name="set_theme_night">Scuro</string> <string name="set_theme_night">Scuro</string>
<string name="set_accent">Accento</string> <string name="set_accent">Accento</string>
<string name="set_black_mode">Tema nero</string> <string name="set_black_mode">Tema nero</string>
<string name="set_black_mode_desc">Usa tema nero puro</string> <string name="set_black_mode_desc">Usa un tema scuro AMOLED</string>
<string name="set_display">Visualizzazione</string> <string name="set_display">Visualizzazione</string>
<string name="set_lib_tabs">Schede libreria</string> <string name="set_lib_tabs">Schede libreria</string>
<string name="set_lib_tabs_desc">Cambia la visibilità e l\'ordine delle schede della libreria</string> <string name="set_lib_tabs_desc">Cambia la visibilità e l\'ordine delle schede della libreria</string>
<string name="set_round_mode">Copertine dischi arrotondate</string> <string name="set_round_mode">Copertine arrotondate</string>
<string name="set_round_mode_desc">Abilita gli angoli arrotondati su ulteriori elementi dell\'interfaccia utente (richiede che le copertine degli album siano arrotondate)</string> <string name="set_round_mode_desc">Abilita gli angoli arrotondati su ulteriori elementi dell\'interfaccia (richiede che le copertine degli album siano arrotondate)</string>
<string name="set_notif_action">Usa azioni notifica alternative</string> <string name="set_notif_action">Personalizza azione notifica</string>
<string name="set_audio">Audio</string> <string name="set_audio">Audio</string>
<string name="set_headset_autoplay">Autoplay cuffie</string> <string name="set_headset_autoplay">Riproduzione automatica</string>
<string name="set_headset_autoplay_desc">Comincia la riproduzione ogni volta che le cuffie sono inserite (potrebbe non funzionare su tutti i dispositivi)</string> <string name="set_headset_autoplay_desc">Inizia la riproduzione ogni volta che vengono connesse delle cuffie (potrebbe non funzionare su tutti i dispositivi)</string>
<string name="set_replay_gain_mode">Strategia ReplayGain</string> <string name="set_replay_gain_mode">Modalità ReplayGain</string>
<string name="set_replay_gain_mode_track">Preferisci traccia</string> <string name="set_replay_gain_mode_track">Preferisci traccia</string>
<string name="set_replay_gain_mode_album">Preferisci album</string> <string name="set_replay_gain_mode_album">Preferisci album</string>
<string name="set_replay_gain_mode_dynamic">Preferisci l\'album se in riproduzione</string> <string name="set_replay_gain_mode_dynamic">Preferisci l\'album se in riproduzione</string>
<string name="set_personalize">Comportamento</string> <string name="set_personalize">Personalizza</string>
<string name="set_play_in_list_with">Quando in riproduzione dalla libreria</string> <string name="set_play_in_list_with">Quando in riproduzione dalla libreria</string>
<string name="set_keep_shuffle">Mantieni mescolamento</string> <string name="set_keep_shuffle">Ricorda riproduzione casuale</string>
<string name="set_keep_shuffle_desc">Mantiene il mescolamento anche se un nuovo brano è selezionato</string> <string name="set_keep_shuffle_desc">Mantiene la riproduzione casuale quando viene riprodotto un nuovo brano</string>
<string name="set_rewind_prev">Riavvolgi prima di saltare indietro</string> <string name="set_rewind_prev">Riavvolgi prima di tornare indietro</string>
<string name="set_rewind_prev_desc">Riavvolge prima di saltare al brano precedente</string> <string name="set_rewind_prev_desc">Riavvolge il brano in riproduzione prima di passare a quello precedente</string>
<string name="set_repeat_pause">Pausa alla ripetizione</string> <string name="set_repeat_pause">Pausa alla ripetizione</string>
<string name="set_repeat_pause_desc">Pausa quando un brano si ripete</string> <string name="set_repeat_pause_desc">Mette in pausa quando un brano si ripete</string>
<string name="set_content">Contenuti</string> <string name="set_content">Contenuti</string>
<string name="set_reindex">Aggiorna musica</string> <string name="set_reindex">Aggiorna libreria</string>
<string name="set_reindex_desc">Ricarica la libreria musicale, usando i tag nella cache quando possibile</string> <string name="set_reindex_desc">Ricarica la libreria musicale, usando i tag nella cache quando possibile</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Musica non trovata</string>
<string name="err_index_failed">Caricamento musica fallito</string> <string name="err_index_failed">Caricamento musica fallito</string>
<string name="err_no_perms">Auxio ha bisogno del permesso per leggere la tua libreria musicale</string>
<string name="err_no_app">Nessuna app può completare questa azione</string> <string name="err_no_app">Nessuna app può completare questa azione</string>
<string name="err_bad_location">Questa cartella non è supportata</string> <string name="err_bad_location">Questa cartella non è supportata</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Cerca nella libreria…</string> <string name="lng_search_library">Cerca nella libreria…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Canzone %d</string> <string name="desc_track_number">Traccia %d</string>
<string name="desc_play_pause">Riproduci o pausa</string> <string name="desc_play_pause">Riproduci o metti in pausa</string>
<string name="desc_skip_next">Salta a brano successivo</string> <string name="desc_skip_next">Passa al brano successivo</string>
<string name="desc_skip_prev">Salta a ultimo brano</string> <string name="desc_skip_prev">Passa all\'ultimo brano</string>
<string name="desc_change_repeat">Cambia modalità ripetizione</string> <string name="desc_change_repeat">Cambia modalità ripetizione</string>
<string name="desc_shuffle">Attiva o disattiva mescolamento</string> <string name="desc_shuffle">Attiva o disattiva la riproduzione casuale</string>
<string name="desc_shuffle_all">Mescola tutti i brani</string>
<string name="desc_remove_song">Rimuovi questo brano</string> <string name="desc_remove_song">Rimuovi questo brano</string>
<string name="desc_song_handle">Sposta questo brano</string> <string name="desc_song_handle">Sposta questo brano</string>
<string name="desc_tab_handle">Muove questa scheda</string> <string name="desc_tab_handle">Sposta questa scheda</string>
<string name="desc_clear_search">Cancella la query di ricerca</string> <string name="desc_clear_search">Cancella la ricerca</string>
<string name="desc_music_location_delete">Rimuovi cartella</string> <string name="desc_music_location_delete">Rimuovi cartella</string>
<string name="desc_auxio_icon">Icona Auxio</string> <string name="desc_auxio_icon">Icona Auxio</string>
<string name="desc_no_cover">Copertina album</string> <string name="desc_no_cover">Copertina album</string>
<string name="desc_album_cover">Copertina album per %s</string> <string name="desc_album_cover">Copertina album di %s</string>
<string name="desc_artist_image">Immagine artista per %s</string> <string name="desc_artist_image">Immagine artista per %s</string>
<string name="desc_genre_image">Immagine genere per %s</string> <string name="desc_genre_image">Immagine genere per %s</string>
<!-- Default Namespace | Placeholder values --> <!-- Default Namespace | Placeholder values -->
@ -106,7 +100,7 @@
<string name="def_genre">Genere sconosciuto</string> <string name="def_genre">Genere sconosciuto</string>
<string name="def_date">Data sconosciuta</string> <string name="def_date">Data sconosciuta</string>
<string name="def_track">Nessuna traccia</string> <string name="def_track">Nessuna traccia</string>
<string name="def_playback">Nessuna canzone in riproduzione</string> <string name="def_playback">Nessun brano in riproduzione</string>
<!-- Color Label namespace | Accent names --> <!-- Color Label namespace | Accent names -->
<string name="clr_red">Rosso</string> <string name="clr_red">Rosso</string>
<string name="clr_pink">Rosa</string> <string name="clr_pink">Rosa</string>
@ -121,7 +115,7 @@
<string name="clr_deep_green">Verde scuro</string> <string name="clr_deep_green">Verde scuro</string>
<string name="clr_lime">Lime</string> <string name="clr_lime">Lime</string>
<string name="clr_yellow">Giallo</string> <string name="clr_yellow">Giallo</string>
<string name="clr_orange">Arancio</string> <string name="clr_orange">Arancione</string>
<string name="clr_brown">Marrone</string> <string name="clr_brown">Marrone</string>
<string name="clr_grey">Grigio</string> <string name="clr_grey">Grigio</string>
<!-- Format Namespace | Value formatting/plurals --> <!-- Format Namespace | Value formatting/plurals -->
@ -146,22 +140,21 @@
<string name="clr_dynamic">Dinamico</string> <string name="clr_dynamic">Dinamico</string>
<string name="fmt_db_pos">+%.1f dB</string> <string name="fmt_db_pos">+%.1f dB</string>
<string name="fmt_sample_rate">%d Hz</string> <string name="fmt_sample_rate">%d Hz</string>
<string name="fmt_indexing">Caricamento libreria musicale… (%1$d/%2$d)</string> <string name="fmt_indexing">Caricamento della tua libreria musicale… (%1$d/%2$d)</string>
<string name="set_play_in_parent_with">Quando in riproduzione dai dettagli dell\'elemento</string> <string name="set_play_in_parent_with">Quando riproduci dai dettagli di un elemento</string>
<string name="set_pre_amp_warning">Attenzione: impostare valore positivi alti può provocare distorsioni su alcune tracce.</string> <string name="set_pre_amp_warning">Attenzione: impostare alti valori positivi può provocare la distorsione di alcune tracce.</string>
<string name="set_pre_amp_without">Regolazione senza tag</string> <string name="set_pre_amp_without">Regolazione senza tag</string>
<string name="lbl_shuffle_shortcut_short">Mescola</string> <string name="lbl_shuffle_shortcut_short">Casuale</string>
<string name="lbl_shuffle_shortcut_long">Mescola tutto</string> <string name="lbl_shuffle_shortcut_long">Tutto in casuale</string>
<string name="set_pre_amp_with">Regolazione con tag</string> <string name="set_pre_amp_with">Regolazione in base ai tag</string>
<string name="set_pre_amp_desc">Il pre-amp è applicato alla regolazione esistente durante la riproduzione</string> <string name="set_pre_amp_desc">Il pre-amp è applicato alla regolazione esistente durante la riproduzione</string>
<string name="set_play_song_none">Riproduci dall\'elemento mostrato</string> <string name="set_play_song_none">Riproduci dall\'elemento corrente</string>
<string name="set_locations_desc">Gestisci le cartelle da dove caricare la musica</string> <string name="set_locations_desc">Gestisci le cartelle da dove caricare la musica</string>
<string name="set_locations">Cartelle musica</string> <string name="set_locations">Cartelle musicali</string>
<string name="cdc_mka">Matroska audio</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string> <string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string> <string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_disc_no">Disco %d</string> <string name="fmt_disc_no">Disco %d</string>
<string name="fmt_bitrate">%d kB/s</string> <string name="fmt_bitrate">%d kbps</string>
<string name="fmt_db_neg">-%.1f dB</string> <string name="fmt_db_neg">-%.1f dB</string>
<string name="lbl_indexer">Caricamento musica</string> <string name="lbl_indexer">Caricamento musica</string>
<string name="lng_indexing">Caricamento libreria musicale…</string> <string name="lng_indexing">Caricamento libreria musicale…</string>
@ -171,18 +164,18 @@
<string name="lbl_track">Traccia</string> <string name="lbl_track">Traccia</string>
<string name="lbl_ok">OK</string> <string name="lbl_ok">OK</string>
<string name="lbl_sample_rate">Frequenza di campionamento</string> <string name="lbl_sample_rate">Frequenza di campionamento</string>
<string name="lbl_song_detail">Vedi proprietà</string> <string name="lbl_song_detail">Visualizza proprietà</string>
<string name="lbl_props">Proprietà brano</string> <string name="lbl_props">Proprietà brano</string>
<string name="lbl_format">Formato</string> <string name="lbl_format">Formato</string>
<string name="lbl_size">Dimensione</string> <string name="lbl_size">Dimensione</string>
<string name="lbl_bitrate">Bitrate</string> <string name="lbl_bitrate">Velocità in bit</string>
<string name="lbl_cancel">Cancella</string> <string name="lbl_cancel">Annulla</string>
<string name="set_pre_amp">Pre-amp ReplayGain</string> <string name="set_pre_amp">Pre-amp ReplayGain</string>
<string name="lng_observing">Sto monitorando i cambiamenti nella tua libreria musicale…</string> <string name="lng_observing">Sto monitorando i cambiamenti nella tua libreria musicale…</string>
<string name="set_observing_desc">Ricarica la tua libreria musicale se subisce cambiamenti (richiede notifica persistente)</string> <string name="set_observing_desc">Ricarica la tua libreria musicale se subisce cambiamenti (richiede notifica persistente)</string>
<string name="lbl_indexing">Caricamento musica</string> <string name="lbl_indexing">Caricamento musica</string>
<string name="lbl_observing">Monitoraggio libreria musicale</string> <string name="lbl_observing">Monitoraggio libreria musicale</string>
<string name="lbl_date_added">Data aggiunta</string> <string name="lbl_date_added">Data di aggiunta</string>
<string name="set_observing">Ricaricamento automatico</string> <string name="set_observing">Ricaricamento automatico</string>
<string name="lbl_eps">EP</string> <string name="lbl_eps">EP</string>
<string name="lbl_ep">EP</string> <string name="lbl_ep">EP</string>
@ -197,32 +190,32 @@
<string name="lbl_single_live">Singolo live</string> <string name="lbl_single_live">Singolo live</string>
<string name="lbl_album_live">Album live</string> <string name="lbl_album_live">Album live</string>
<string name="lbl_ep_live">EP live</string> <string name="lbl_ep_live">EP live</string>
<string name="lbl_compilation">Raccolta</string> <string name="lbl_compilation">Compilation</string>
<string name="lbl_soundtracks">Colonne sonore</string> <string name="lbl_soundtracks">Colonne sonore</string>
<string name="lbl_single_remix">Singolo remix</string> <string name="lbl_single_remix">Singolo remix</string>
<string name="lbl_compilations">Raccolte</string> <string name="lbl_compilations">Compilation</string>
<string name="lbl_soundtrack">Colonna sonora</string> <string name="lbl_soundtrack">Colonna sonora</string>
<string name="lbl_equalizer">Equalizzatore</string> <string name="lbl_equalizer">Equalizzatore</string>
<string name="desc_queue_bar">Apri la coda</string> <string name="desc_queue_bar">Apri la coda</string>
<string name="lbl_genre">Genere</string> <string name="lbl_genre">Genere</string>
<string name="set_bar_action">Azione personalizzata barra di riproduzione</string> <string name="set_bar_action">Personalizza azione barra di riproduzione</string>
<string name="set_action_mode_next">Vai alla prossima</string> <string name="set_action_mode_next">Passa al brano successivo</string>
<string name="set_action_mode_repeat">Modalità ripetizione</string> <string name="set_action_mode_repeat">Modalità ripetizione</string>
<string name="desc_exit">Interrompi riproduzione</string> <string name="desc_exit">Interrompi la riproduzione</string>
<string name="set_hide_collaborators">Nascondi collaboratori</string> <string name="set_hide_collaborators">Nascondi collaboratori</string>
<string name="set_hide_collaborators_desc">Mostra solo artisti che sono direttamente accreditati in un album (funziona meglio su librerie ben taggate)</string> <string name="set_hide_collaborators_desc">Mostra solo gli artisti che appaiono esplicitamente nei riconoscimenti di un album (funziona meglio su librerie ben taggate)</string>
<string name="set_cover_mode">Copertine album</string> <string name="set_cover_mode">Copertine album</string>
<string name="set_cover_mode_off">Off</string> <string name="set_cover_mode_off">Disattiva copertine</string>
<string name="set_cover_mode_balanced">Veloce</string> <string name="set_cover_mode_balanced">Media qualità</string>
<string name="set_exclude_non_music">Escludi file non musicali</string> <string name="set_exclude_non_music">Escludi i file non musicali</string>
<string name="set_exclude_non_music_desc">Ignora file audio non musicali, come i podcast</string> <string name="set_exclude_non_music_desc">Ignora i file audio non musicali, come i podcast</string>
<string name="set_separators">Separatori multi-valore</string> <string name="set_separators">Separatori multi-valore</string>
<string name="set_separators_desc">Configura caratteri che indicano valori multipli di tag</string> <string name="set_separators_desc">Configura i caratteri che identificano tag con valori multipli</string>
<string name="set_separators_slash">Barra (/)</string> <string name="set_separators_slash">Barra (/)</string>
<string name="set_separators_warning">Attenzione: potrebbero verificarsi degli errori nella interpretazione di alcuni tag con valori multipli. Puoi risolvere aggiungendo come prefisso la barra rovesciata (\\) ai separatori indesiderati.</string> <string name="set_separators_warning">Attenzione: potrebbero verificarsi degli errori nell\'interpretazione di alcuni tag con valori multipli. Puoi risolvere questo problema aggiungendo come prefisso una barra rovesciata (\\) ai separatori indesiderati.</string>
<string name="set_separators_and">E commerciale (&amp;)</string> <string name="set_separators_and">E commerciale (&amp;)</string>
<string name="lbl_compilation_live">Raccolte live</string> <string name="lbl_compilation_live">Compilation live</string>
<string name="lbl_compilation_remix">Raccolta remix</string> <string name="lbl_compilation_remix">Compilation remix</string>
<string name="lbl_mixes">Mix DJ</string> <string name="lbl_mixes">Mix DJ</string>
<string name="lbl_mix">Mix DJ</string> <string name="lbl_mix">Mix DJ</string>
<string name="set_cover_mode_high_quality">Alta qualità</string> <string name="set_cover_mode_high_quality">Alta qualità</string>
@ -242,26 +235,25 @@
<string name="fmt_list">%1$s, %2$s</string> <string name="fmt_list">%1$s, %2$s</string>
<string name="lbl_reset">Ripristina</string> <string name="lbl_reset">Ripristina</string>
<string name="set_behavior">Comportamento</string> <string name="set_behavior">Comportamento</string>
<string name="set_locations_list">Cartelle</string>
<string name="set_music">Musica</string> <string name="set_music">Musica</string>
<string name="set_images">Immagini</string> <string name="set_images">Immagini</string>
<string name="set_library">Collezione</string> <string name="set_library">Libreria</string>
<string name="set_ui_desc">Cambia il tema e i colori dell\'app</string> <string name="set_ui_desc">Cambia il tema e i colori dell\'app</string>
<string name="set_content_desc">Controlla come vengono caricate musica e immagini</string> <string name="set_content_desc">Controlla come vengono caricate musica e immagini</string>
<string name="set_replay_gain">Normalizzazione del volume</string> <string name="set_replay_gain">Normalizzazione del volume</string>
<string name="set_playback">Riproduzione</string> <string name="set_playback">Riproduzione</string>
<string name="set_personalize_desc">Personalizza controlli e comportamento dell\'UI</string> <string name="set_personalize_desc">Personalizza i controlli e il comportamento dell\'interfaccia</string>
<string name="set_audio_desc">Configura comportamento di suono e riproduzione</string> <string name="set_audio_desc">Suono e riproduzione</string>
<string name="lbl_sort_dsc">Discendente</string> <string name="lbl_sort_dsc">Decrescente</string>
<string name="lbl_playlist">Playlist</string> <string name="lbl_playlist">Playlist</string>
<string name="lbl_playlists">Playlist</string> <string name="lbl_playlists">Playlist</string>
<string name="set_intelligent_sorting">Ordinazione intelligente</string> <string name="set_intelligent_sorting">Ordinamento intelligente</string>
<string name="set_intelligent_sorting_desc">Ordina correttamente i nomi che iniziano con numeri o parole come \"the\" (funziona meglio con i titoli in inglese)</string> <string name="set_intelligent_sorting_desc">Ordina correttamente i titoli che iniziano con numeri o parole come \"the\" (funziona meglio con i titoli in inglese)</string>
<string name="desc_playlist_image">Immagine della playlist per %s</string> <string name="desc_playlist_image">Immagine della playlist per %s</string>
<string name="lbl_new_playlist">Nuova playlist</string> <string name="lbl_new_playlist">Nuova playlist</string>
<string name="lbl_playlist_add">Aggiungi a playlist</string> <string name="lbl_playlist_add">Aggiungi alla playlist</string>
<string name="lng_playlist_created">Playlist creata</string> <string name="lng_playlist_created">Playlist creata</string>
<string name="lng_playlist_added">Aggiunto a playlist</string> <string name="lng_playlist_added">Aggiunto alla playlist</string>
<string name="def_song_count">Nessun brano</string> <string name="def_song_count">Nessun brano</string>
<string name="fmt_def_playlist">Playlist %d</string> <string name="fmt_def_playlist">Playlist %d</string>
<string name="lbl_delete">Elimina</string> <string name="lbl_delete">Elimina</string>
@ -274,31 +266,30 @@
<string name="lng_playlist_renamed">Playlist rinominata</string> <string name="lng_playlist_renamed">Playlist rinominata</string>
<string name="lbl_share">Condividi</string> <string name="lbl_share">Condividi</string>
<string name="def_disc">Nessun disco</string> <string name="def_disc">Nessun disco</string>
<string name="lbl_appears_on">Appare su</string> <string name="lbl_appears_on">Appare in</string>
<string name="fmt_editing">Modifica di %s</string> <string name="fmt_editing">Modificando %s</string>
<string name="set_square_covers">Forza copertine album quadrate</string> <string name="set_square_covers">Forza copertine album quadrate</string>
<string name="set_square_covers_desc">Adatta tutte le copertine degli album ad una visualizzazione 1:1</string> <string name="set_square_covers_desc">Adatta tutte le copertine degli album ad una visualizzazione 1:1</string>
<string name="lbl_song">Brano</string> <string name="lbl_song">Brano</string>
<string name="lbl_parent_detail">Visualizza</string> <string name="lbl_parent_detail">Visualizza</string>
<string name="set_play_song_by_itself">Riproduci brano da solo</string> <string name="set_play_song_by_itself">Riproduci solo il brano</string>
<string name="lbl_sort_mode">Ordina per</string> <string name="lbl_sort_mode">Ordina per</string>
<string name="lbl_imported_playlist">Playlist importata</string> <string name="lbl_imported_playlist">Playlist esterna</string>
<string name="err_export_failed">Impossibile esportare la playlist in questo file</string> <string name="err_export_failed">Impossibile esportare la playlist in questo file</string>
<string name="lbl_sort_direction">Direzione</string> <string name="lbl_sort_direction">Ordine</string>
<string name="lbl_show_error_info">Espandi</string> <string name="desc_selection_image">Selezione immagine</string>
<string name="desc_selection_image">Immagine di selezione</string>
<string name="lbl_selection">Selezione</string> <string name="lbl_selection">Selezione</string>
<string name="lbl_copied">Copiato</string> <string name="lbl_copied">Copiato</string>
<string name="lbl_report">Segnala</string> <string name="lbl_report">Segnala</string>
<string name="lbl_author">Autore</string> <string name="lbl_author">Autore</string>
<string name="lbl_donate">Dona</string> <string name="lbl_donate">Dona</string>
<string name="lbl_supporters">Supporti</string> <string name="lbl_supporters">Sostenitori</string>
<string name="lbl_error_info">Informazioni sull\'errore</string> <string name="lbl_error_info">Informazioni sull\'errore</string>
<string name="def_album_count">Nessun album</string> <string name="def_album_count">Nessun album</string>
<string name="lbl_path">Percorso</string> <string name="lbl_path">Percorso</string>
<string name="lbl_empty_playlist">Playlist vuota</string> <string name="lbl_empty_playlist">Playlist vuota</string>
<string name="lbl_import_playlist">Importa playlist</string> <string name="lbl_import_playlist">Importa playlist</string>
<string name="lng_supporters_promo">Dona al progetto; il tuo nome sarà aggiunto qui!</string> <string name="lng_supporters_promo">Dona al progetto, il tuo nome sarà aggiunto qui!</string>
<string name="err_import_failed">Impossibile importare una playlist da questo file</string> <string name="err_import_failed">Impossibile importare una playlist da questo file</string>
<string name="lbl_import">Importa</string> <string name="lbl_import">Importa</string>
<string name="lbl_export">Esporta</string> <string name="lbl_export">Esporta</string>
@ -309,7 +300,7 @@
<string name="lbl_windows_paths">Usa percorsi compatibili con Windows</string> <string name="lbl_windows_paths">Usa percorsi compatibili con Windows</string>
<string name="lng_playlist_imported">Playlist importata</string> <string name="lng_playlist_imported">Playlist importata</string>
<string name="lng_playlist_exported">Playlist esportata</string> <string name="lng_playlist_exported">Playlist esportata</string>
<string name="set_replay_gain_mode_off">Spento</string> <string name="set_replay_gain_mode_off">Disattivato</string>
<string name="lbl_demo">Demo</string> <string name="lbl_demo">Demo</string>
<string name="lbl_demos">Demo</string> <string name="lbl_demos">Demo</string>
<string name="lbl_replaygain_track">Regolazione traccia ReplayGain</string> <string name="lbl_replaygain_track">Regolazione traccia ReplayGain</string>
@ -317,5 +308,24 @@
<string name="set_remember_pause">Ricorda pausa</string> <string name="set_remember_pause">Ricorda pausa</string>
<string name="set_remember_pause_desc">Mantiene riproduzione/pausa durante il cambio di brano e la modifica della coda di riproduzione</string> <string name="set_remember_pause_desc">Mantiene riproduzione/pausa durante il cambio di brano e la modifica della coda di riproduzione</string>
<string name="lbl_start_playback">Avvia la riproduzione</string> <string name="lbl_start_playback">Avvia la riproduzione</string>
<string name="lng_tasker_start">Avvia Auxio utilizzando le ultime impostazioni di riproduzione salvate. Se non è disponibile alcuna impostazione di riproduzione, i brani verranno riprodotti in ordine casuale. La riproduzione inizierà immediatamente.\n\nATTENZIONE: stare attenti quando si usa questa impostazione, se viene chiusa e poi si cerca di usarla nuovamente, si rischia di mandare l\'applicazione in blocco.</string> <string name="lng_tasker_start">Avvia Auxio utilizzando le ultime impostazioni di riproduzione salvate. Se non è disponibile alcuna impostazione di riproduzione, i brani verranno riprodotti in ordine casuale. La riproduzione inizierà immediatamente.\n\nAttenzione: fai attenzione a controllare questa impostazione; se lo chiudi e poi provi a usarlo di nuovo, è probabile che l\'app si blocchi.</string>
<string name="lbl_music_sources">Scegli le cartelle</string>
<string name="lbl_feedback">Feedback</string>
<string name="lbl_email">Invia un\'email</string>
<string name="lbl_github">Apri un\'issue su GitHub</string>
<string name="def_album">Album sconosciuto</string>
<string name="lng_empty_genres">I tuoi generi appariranno qui.</string>
<string name="lng_empty_songs">I tuoi brani appariranno qui.</string>
<string name="lng_empty_artists">I tuoi artisti appariranno qui.</string>
<string name="lng_empty_albums">I tuoi album appariranno qui.</string>
<string name="lng_empty_playlists">Le tue playlist appariranno qui.</string>
<string name="lbl_more">Espandi</string>
<string name="set_locations_new">Nuova cartella</string>
<string name="set_cover_mode_save_space">Bassa qualità</string>
<string name="cnt_mp4">MPEG-4 contenente %s</string>
<string name="cdc_alac">Apple Lossless Audio Codec (ALAC)</string>
<string name="cdc_unknown">Sconosciuto</string>
<string name="set_cover_mode_as_is">Qualità originale</string>
<string name="set_with_hidden_desc">Include file audio nascosti (per esempio in .cache)</string>
<string name="set_with_hidden">Includi file nascosti</string>
</resources> </resources>

View file

@ -55,7 +55,6 @@
<string name="lbl_cancel">ביטול</string> <string name="lbl_cancel">ביטול</string>
<string name="lbl_save">שמירה</string> <string name="lbl_save">שמירה</string>
<string name="lbl_reset">אתחול</string> <string name="lbl_reset">אתחול</string>
<string name="lbl_add">הוספה</string>
<string name="lbl_version">גרסה</string> <string name="lbl_version">גרסה</string>
<string name="lbl_code">קוד מקור</string> <string name="lbl_code">קוד מקור</string>
<string name="lbl_wiki">ויקי</string> <string name="lbl_wiki">ויקי</string>
@ -156,7 +155,6 @@
<string name="set_pre_amp_desc">המגבר מוחל על ההתאמה הקיימת בזמן השמעה</string> <string name="set_pre_amp_desc">המגבר מוחל על ההתאמה הקיימת בזמן השמעה</string>
<string name="lbl_new_playlist">רשימת השמעה חדשה</string> <string name="lbl_new_playlist">רשימת השמעה חדשה</string>
<string name="lbl_playlist_add">הוספה לרשימת השמעה</string> <string name="lbl_playlist_add">הוספה לרשימת השמעה</string>
<string name="lbl_grant">הענק</string>
<string name="lbl_playlist">רשימת השמעה (פלייליסט)</string> <string name="lbl_playlist">רשימת השמעה (פלייליסט)</string>
<string name="lbl_playlists">רשימות השמעה</string> <string name="lbl_playlists">רשימות השמעה</string>
<string name="lbl_delete">מחיקה</string> <string name="lbl_delete">מחיקה</string>
@ -168,7 +166,6 @@
<string name="set_locations">תיקיות מוזיקה</string> <string name="set_locations">תיקיות מוזיקה</string>
<string name="set_reindex_desc">טעינה מחדש של ספריית המוזיקה, במידה וניתן ייעשה שימוש בתגיות מהמטמון</string> <string name="set_reindex_desc">טעינה מחדש של ספריית המוזיקה, במידה וניתן ייעשה שימוש בתגיות מהמטמון</string>
<string name="set_rescan">סריקת מוסיקה מחדש</string> <string name="set_rescan">סריקת מוסיקה מחדש</string>
<string name="err_no_perms"> Auxio צריך הרשאות על מנת לקרוא את ספריית המוזיקה שלך</string>
<string name="desc_queue_bar">פתיחת התור</string> <string name="desc_queue_bar">פתיחת התור</string>
<string name="fmt_lib_total_duration">משך כולל: %s</string> <string name="fmt_lib_total_duration">משך כולל: %s</string>
<string name="fmt_def_playlist">רשימת השמעה %d</string> <string name="fmt_def_playlist">רשימת השמעה %d</string>
@ -178,7 +175,6 @@
<string name="fmt_lib_genre_count">ז\'אנרים טעונים: %d</string> <string name="fmt_lib_genre_count">ז\'אנרים טעונים: %d</string>
<string name="set_library">ספריה</string> <string name="set_library">ספריה</string>
<string name="err_no_app">לא נמצא יישום שיכול לטפל במשימה זו</string> <string name="err_no_app">לא נמצא יישום שיכול לטפל במשימה זו</string>
<string name="err_no_locations">אין תיקיות</string>
<string name="err_bad_location">תיקייה זו אינה נתמכת</string> <string name="err_bad_location">תיקייה זו אינה נתמכת</string>
<string name="desc_skip_prev">דילוג לשיר האחרון</string> <string name="desc_skip_prev">דילוג לשיר האחרון</string>
<string name="desc_change_repeat">שינוי מצב חזרה</string> <string name="desc_change_repeat">שינוי מצב חזרה</string>
@ -203,14 +199,12 @@
<string name="def_song_count">אין שירים</string> <string name="def_song_count">אין שירים</string>
<string name="clr_pink">ורוד</string> <string name="clr_pink">ורוד</string>
<string name="lng_playlist_created">נוצרה רשימת השמעה</string> <string name="lng_playlist_created">נוצרה רשימת השמעה</string>
<string name="set_locations_list">תיקיות</string>
<plurals name="fmt_artist_count"> <plurals name="fmt_artist_count">
<item quantity="one">אומן אחד</item> <item quantity="one">אומן אחד</item>
<item quantity="two">שני אומנים</item> <item quantity="two">שני אומנים</item>
<item quantity="other">%d אומנים</item> <item quantity="other">%d אומנים</item>
</plurals> </plurals>
<string name="set_reindex">רענון מוזיקה</string> <string name="set_reindex">רענון מוזיקה</string>
<string name="err_no_music">לא נמצאה מוזיקה</string>
<string name="err_index_failed">אירע כשל בטעינה מוזיקה</string> <string name="err_index_failed">אירע כשל בטעינה מוזיקה</string>
<string name="desc_no_cover">עטיפת אלבום</string> <string name="desc_no_cover">עטיפת אלבום</string>
<plurals name="fmt_song_count"> <plurals name="fmt_song_count">
@ -226,7 +220,6 @@
<string name="lng_playlist_renamed">שונה שם רשימת ההשמעה</string> <string name="lng_playlist_renamed">שונה שם רשימת ההשמעה</string>
<string name="lng_playlist_deleted">רשימת השמעה נמחקה</string> <string name="lng_playlist_deleted">רשימת השמעה נמחקה</string>
<string name="lng_playlist_added">נוסף לרשימת השמעה</string> <string name="lng_playlist_added">נוסף לרשימת השמעה</string>
<string name="desc_shuffle_all">ערבוב כל השירים</string>
<string name="desc_auxio_icon">סמל Auxio</string> <string name="desc_auxio_icon">סמל Auxio</string>
<string name="desc_music_location_delete">הסרת תיקייה</string> <string name="desc_music_location_delete">הסרת תיקייה</string>
<string name="desc_playlist_image">תמונת רשימת השמעה עבור %s</string> <string name="desc_playlist_image">תמונת רשימת השמעה עבור %s</string>
@ -262,7 +255,6 @@
<string name="clr_teal">טורקיז</string> <string name="clr_teal">טורקיז</string>
<string name="clr_brown">חום</string> <string name="clr_brown">חום</string>
<string name="fmt_selected">%d נבחרו</string> <string name="fmt_selected">%d נבחרו</string>
<string name="lbl_show_error_info">עוד</string>
<string name="lbl_selection">בחירה</string> <string name="lbl_selection">בחירה</string>
<string name="lbl_error_info">מידע על השגיאה</string> <string name="lbl_error_info">מידע על השגיאה</string>
<string name="lbl_report">דיווח</string> <string name="lbl_report">דיווח</string>
@ -275,7 +267,6 @@
<string name="fmt_sample_rate">%d הרץ (Hz)</string> <string name="fmt_sample_rate">%d הרץ (Hz)</string>
<string name="fmt_bitrate">%d קילוביטים לשנייה (kbps)</string> <string name="fmt_bitrate">%d קילוביטים לשנייה (kbps)</string>
<string name="lbl_copied">מועתק</string> <string name="lbl_copied">מועתק</string>
<string name="cdc_mka">אודיו Matroska</string>
<string name="cdc_aac">קודק אודיו מתקדם (AAC)</string> <string name="cdc_aac">קודק אודיו מתקדם (AAC)</string>
<string name="fmt_list">%1$s, %2$s</string> <string name="fmt_list">%1$s, %2$s</string>
<string name="clr_lime">ליים</string> <string name="clr_lime">ליים</string>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<string name="lbl_retry">再試行</string> <string name="lbl_retry">再試行</string>
<string name="info_app_desc">Android 用のシンプルで合理的な音楽プレーヤー。</string> <string name="info_app_desc">Android 用のシンプルで合理的な音楽プレーヤー。</string>
<string name="lbl_grant">許可する</string>
<string name="lbl_artists">アーティスト</string> <string name="lbl_artists">アーティスト</string>
<string name="lbl_genres">ジャンル</string> <string name="lbl_genres">ジャンル</string>
<string name="lbl_duration">曲の長さ</string> <string name="lbl_duration">曲の長さ</string>
@ -26,12 +25,10 @@
<string name="lbl_date">日付け</string> <string name="lbl_date">日付け</string>
<string name="set_cover_mode_high_quality">高クオリティ</string> <string name="set_cover_mode_high_quality">高クオリティ</string>
<string name="set_round_mode">ラウンドモード</string> <string name="set_round_mode">ラウンドモード</string>
<string name="err_no_music">音楽が見つかりません</string>
<string name="err_index_failed">音楽の読み込みに失敗</string> <string name="err_index_failed">音楽の読み込みに失敗</string>
<string name="cdc_ogg">Ogg オーディオ</string> <string name="cdc_ogg">Ogg オーディオ</string>
<string name="clr_cyan">シアン</string> <string name="clr_cyan">シアン</string>
<string name="clr_deep_blue"></string> <string name="clr_deep_blue"></string>
<string name="lbl_add">追加</string>
<string name="lbl_save">保存</string> <string name="lbl_save">保存</string>
<string name="lng_search_library">ライブラリ検索…</string> <string name="lng_search_library">ライブラリ検索…</string>
<string name="set_theme_night">暗い</string> <string name="set_theme_night">暗い</string>
@ -78,8 +75,6 @@
<string name="set_replay_gain_mode_track">トラックを優先</string> <string name="set_replay_gain_mode_track">トラックを優先</string>
<string name="set_locations_desc">音楽の読み込み元を管理</string> <string name="set_locations_desc">音楽の読み込み元を管理</string>
<string name="set_reindex">音楽の再読み込み</string> <string name="set_reindex">音楽の再読み込み</string>
<string name="err_no_perms">Auxio は音楽ライブラリを読む許可を必要とします</string>
<string name="err_no_locations">フォルダがありません</string>
<string name="err_bad_location">このフォルダはサポートされていません</string> <string name="err_bad_location">このフォルダはサポートされていません</string>
<string name="desc_track_number">トラック %d</string> <string name="desc_track_number">トラック %d</string>
<string name="desc_play_pause">再生またはポーズ</string> <string name="desc_play_pause">再生またはポーズ</string>
@ -149,7 +144,6 @@
<string name="err_no_app">このタスクを実行できるアプリが見つかりません</string> <string name="err_no_app">このタスクを実行できるアプリが見つかりません</string>
<string name="set_content">コンテンツ</string> <string name="set_content">コンテンツ</string>
<string name="set_rescan">音楽の再スキャン</string> <string name="set_rescan">音楽の再スキャン</string>
<string name="cdc_mka">Matroska オーディオ</string>
<string name="cdc_aac">高度なオーディオ コーデック (AAC)</string> <string name="cdc_aac">高度なオーディオ コーデック (AAC)</string>
<string name="cdc_flac">品質を損なうことのない無料のオーディオ コーデック (FLAC)</string> <string name="cdc_flac">品質を損なうことのない無料のオーディオ コーデック (FLAC)</string>
<string name="clr_grey">グレイ</string> <string name="clr_grey">グレイ</string>
@ -176,13 +170,11 @@
<string name="set_repeat_pause">ポーズと繰り返し</string> <string name="set_repeat_pause">ポーズと繰り返し</string>
<string name="set_library">ライブラリ</string> <string name="set_library">ライブラリ</string>
<string name="set_pre_amp_without">タグ無しで調整</string> <string name="set_pre_amp_without">タグ無しで調整</string>
<string name="set_locations_list">フォルダ</string>
<string name="set_separators_semicolon">セミコロン (;)</string> <string name="set_separators_semicolon">セミコロン (;)</string>
<string name="set_separators_slash">スラッシュ (/)</string> <string name="set_separators_slash">スラッシュ (/)</string>
<string name="desc_change_repeat">繰り返しモードを変更</string> <string name="desc_change_repeat">繰り返しモードを変更</string>
<string name="desc_shuffle">シャフルのオン・オフ</string> <string name="desc_shuffle">シャフルのオン・オフ</string>
<string name="desc_skip_next">次の曲にスキップ</string> <string name="desc_skip_next">次の曲にスキップ</string>
<string name="desc_shuffle_all">すべての曲をシャフル</string>
<string name="fmt_sample_rate">%d ヘルツ</string> <string name="fmt_sample_rate">%d ヘルツ</string>
<string name="fmt_bitrate">%d kbps</string> <string name="fmt_bitrate">%d kbps</string>
<string name="set_pre_amp_with">タグで調整</string> <string name="set_pre_amp_with">タグで調整</string>

View file

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="lbl_retry">გამეორება</string>
<string name="lbl_ep">EP</string>
<string name="info_app_desc">მარტივი და სასიამოვნო მუსიკის დამკვრელი Android-სთვის.</string>
<string name="lbl_song">სიმღერა</string>
<string name="lbl_ep_remix">EP-ის რემიქსი</string>
<string name="lbl_indexing">მუსიკის ჩატვირთვა</string>
<string name="lbl_songs">სიმღერები</string>
<string name="lbl_observing">მუსიკის ბიბლიოთეკის მონიტორინგი</string>
<string name="lbl_albums">ალბომები</string>
<string name="lbl_eps">EP-ები</string>
<string name="lbl_all_songs">ყველა სიმღერა</string>
<string name="lbl_album">ალბომი</string>
<string name="lbl_music_sources">შეარჩიე საქაღალდეები</string>
<string name="lbl_indexer">მუსიკის ჩატვირთვა</string>
<string name="lbl_ep_live">პირდაპირი EP</string>
<string name="lbl_singles">სინგლები</string>
<string name="lbl_single">სინგლი</string>
<string name="lbl_album_live">Live ალბომები</string>
<string name="lbl_album_remix">Remix ალბომები</string>
<string name="lbl_artist">არტისტი</string>
<string name="lbl_artists">არტისტები</string>
<string name="lbl_genre">ჟანრი</string>
<string name="lbl_genres">ჟანრები</string>
<string name="lbl_playlist">დასაკრავი სია</string>
<string name="lbl_playlists">დასაკრავი სიები</string>
<string name="lbl_new_playlist">ახალი დასაკრავი სია</string>
<string name="lbl_empty_playlist">ცარიელი დასაკრავი სია</string>
<string name="lbl_import">იმპორტი</string>
<string name="lbl_export">ექსპორტი</string>
<string name="lbl_rename">სახელის გადარქმევა</string>
<string name="lbl_imported_playlist">დასაკრავი სია იმპორტირებულია</string>
<string name="lbl_import_playlist">დასაკრავი სიის იმპორტი</string>
<string name="lbl_export_playlist">დასაკრავი სიის ექსპორტი</string>
<string name="lbl_delete">წაშლა</string>
<string name="lbl_confirm_delete_playlist">დასაკრავი სიის წაშლა ?</string>
<string name="lbl_edit">ჩასწორება</string>
<string name="lbl_search">ძებნა</string>
<string name="lbl_filter">ფილტრი</string>
<string name="lbl_filter_all">ყველა</string>
<string name="lbl_name">სახელი</string>
<string name="lbl_rename_playlist">დასაკრავი სიის სახელის შეცვლა</string>
<string name="lbl_date">თარიღი</string>
<string name="lbl_duration">ხანგრძლივობა</string>
<string name="lbl_date_added">დამატების თარიღი</string>
<string name="lbl_sort">დაალაგე</string>
<string name="lbl_song_count">სიმღერების რაოდენობა</string>
<string name="lbl_sort_mode">დაალაგე</string>
<string name="lbl_sort_asc">ზრდადობით</string>
<string name="lbl_sort_dsc">კლებადობით</string>
<string name="lbl_sort_direction">მიხედვით</string>
<string name="lbl_play">დაკვრა</string>
<string name="lbl_playback">ეხლა იკვრება</string>
<string name="lbl_play_next">შემდეგი</string>
<string name="lbl_playlist_add">დამკვრელი სიაში დამატება</string>
<string name="lbl_artist_details">არტისტის ნახვა</string>
<string name="lbl_album_details">ალბომის ნახვა</string>
<string name="lbl_queue">რიგი</string>
<string name="lbl_shuffle">შემთხვევითი მუსიკა</string>
<string name="lbl_share">გაზიარება</string>
<string name="lbl_format">ფორმატი</string>
<string name="lbl_parent_detail">ნახვა</string>
<string name="lbl_props">სიმღერის პარამეტრები</string>
<string name="lbl_song_detail">პარამეტრების ნახვა</string>
<string name="lbl_size">ზომა</string>
<string name="lbl_more">მეტი</string>
<string name="lbl_cancel">გაუქმება</string>
<string name="lbl_save">შენახვა</string>
<string name="lbl_version">ვერსია</string>
<string name="lbl_about">აპლიკაციის შესახებ</string>
<string name="lbl_copied">დაკოპირებულია</string>
<string name="lbl_author">ავტორი</string>
<string name="lbl_error_info">ინფორმაცია</string>
<string name="lbl_feedback">უკუკავშირი</string>
<string name="lbl_email">ელექტრონული შეტყობინების გაგზავნა</string>
<string name="lbl_donate">დონაცია</string>
<string name="lng_indexing">სიმღერების ჩატვირთვა…</string>
<string name="lng_queue_added">დაამატე რიგში</string>
<string name="lng_playlist_imported">დასაკრავი სია იმპორტირებულია</string>
<string name="lng_playlist_renamed">დასაკრავი სიის სახელი შეცვლილია</string>
<string name="lng_search_library">ძებნა თქვენს ბიბლიოთეკაში…</string>
<string name="lng_empty_albums">ალბომები აქ გამოჩნდება.</string>
<string name="lng_empty_artists">არტისტები აქ გამოჩნდება.</string>
<string name="set_theme">თემა</string>
<string name="set_theme_day">ღია</string>
<string name="set_theme_night">მუქი</string>
<string name="set_black_mode">შავი თემა</string>
<string name="set_action_mode_next">შემდეგზე გადასვლა</string>
<string name="set_play_song_from_all">ყველა სიმღერის დაკვრა</string>
<string name="lng_playlist_deleted">დასაკრავი სია წაშლილია</string>
<string name="lng_playlist_exported">დასაკრავი სია ექსპორტირებულია</string>
<string name="lng_playlist_created">დასაკრავი სია შექმნილია</string>
<string name="lng_playlist_added">დამატებულია დასაკრავი სიაში</string>
<string name="set_theme_auto">ავტომატური</string>
<string name="lng_empty_songs">სიმღერები აქ გამოჩნდება.</string>
<string name="set_root_title">პარამეტრები</string>
<string name="set_accent">ფერები</string>
<string name="set_observing">ავტომატური ჩატვირთვა</string>
<string name="set_images">სურათები</string>
<string name="set_locations">მუსიკის საქაღალდე</string>
<string name="set_locations_new">ახალი საქაღალდე</string>
<string name="desc_skip_prev">ბოლო სიმღერაზე გადასვლა</string>
</resources>

View file

@ -5,7 +5,6 @@
<string name="lng_widget">음악 재생 제어 및 상태 확인</string> <string name="lng_widget">음악 재생 제어 및 상태 확인</string>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">다시 시도</string> <string name="lbl_retry">다시 시도</string>
<string name="lbl_grant">허용</string>
<string name="lbl_genres">장르</string> <string name="lbl_genres">장르</string>
<string name="lbl_artists">아티스트</string> <string name="lbl_artists">아티스트</string>
<string name="lbl_albums">앨범</string> <string name="lbl_albums">앨범</string>
@ -40,7 +39,6 @@
<string name="lbl_ok">확인</string> <string name="lbl_ok">확인</string>
<!-- Actual string: Cancel --> <!-- Actual string: Cancel -->
<string name="lbl_cancel">취소</string> <string name="lbl_cancel">취소</string>
<string name="lbl_add">추가</string>
<string name="lbl_save">저장</string> <string name="lbl_save">저장</string>
<string name="lbl_about">정보</string> <string name="lbl_about">정보</string>
<string name="lbl_version">버전</string> <string name="lbl_version">버전</string>
@ -88,11 +86,8 @@
<string name="set_reindex">음악 새로고침</string> <string name="set_reindex">음악 새로고침</string>
<string name="set_reindex_desc">캐시된 태그를 사용하여 음악 라이브러리를 다시 불러옵니다.</string> <string name="set_reindex_desc">캐시된 태그를 사용하여 음악 라이브러리를 다시 불러옵니다.</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">음악 없음</string>
<string name="err_index_failed">음악 불러오기 실패</string> <string name="err_index_failed">음악 불러오기 실패</string>
<string name="err_no_perms">앱에서 음악 라이브러리를 읽을 수 있는 권한이 필요합니다.</string>
<string name="err_no_app">이 작업을 처리할 수 있는 앱을 찾을 수 없습니다.</string> <string name="err_no_app">이 작업을 처리할 수 있는 앱을 찾을 수 없습니다.</string>
<string name="err_no_locations">폴더 없음</string>
<string name="err_bad_location">지원하지 않는 폴더입니다</string> <string name="err_bad_location">지원하지 않는 폴더입니다</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">라이브러리에서 검색…</string> <string name="lng_search_library">라이브러리에서 검색…</string>
@ -103,7 +98,6 @@
<string name="desc_skip_prev">마지막 곡으로 건너뛰기</string> <string name="desc_skip_prev">마지막 곡으로 건너뛰기</string>
<string name="desc_change_repeat">반복 방식 변경</string> <string name="desc_change_repeat">반복 방식 변경</string>
<string name="desc_shuffle">무작위 재생 켜기 또는 끄기</string> <string name="desc_shuffle">무작위 재생 켜기 또는 끄기</string>
<string name="desc_shuffle_all">모든 곡 무작위 재생</string>
<string name="desc_remove_song">이 곡 제거</string> <string name="desc_remove_song">이 곡 제거</string>
<string name="desc_song_handle">이 곡 이동</string> <string name="desc_song_handle">이 곡 이동</string>
<string name="desc_tab_handle">이 탭 이동</string> <string name="desc_tab_handle">이 탭 이동</string>
@ -163,7 +157,6 @@
<string name="lbl_shuffle_shortcut_long">모두 무작위 재생</string> <string name="lbl_shuffle_shortcut_long">모두 무작위 재생</string>
<string name="desc_exit">재생 중지</string> <string name="desc_exit">재생 중지</string>
<string name="cdc_ogg">Ogg 오디오</string> <string name="cdc_ogg">Ogg 오디오</string>
<string name="cdc_mka">Matroska 오디오</string>
<string name="fmt_sample_rate">%d Hz</string> <string name="fmt_sample_rate">%d Hz</string>
<string name="lbl_mix">DJ믹스</string> <string name="lbl_mix">DJ믹스</string>
<string name="lbl_compilation_live">라이브 컴필레이션</string> <string name="lbl_compilation_live">라이브 컴필레이션</string>
@ -240,7 +233,6 @@
<string name="set_replay_gain">ReplayGain 볼륨 조정</string> <string name="set_replay_gain">ReplayGain 볼륨 조정</string>
<string name="set_audio_desc">사운드 및 재생 동작 구성</string> <string name="set_audio_desc">사운드 및 재생 동작 구성</string>
<string name="set_playback">재생</string> <string name="set_playback">재생</string>
<string name="set_locations_list">폴더</string>
<string name="set_ui_desc">앱 테마 및 색상 변경</string> <string name="set_ui_desc">앱 테마 및 색상 변경</string>
<string name="set_music">음악</string> <string name="set_music">음악</string>
<string name="set_library">라이브러리</string> <string name="set_library">라이브러리</string>
@ -281,7 +273,6 @@
<string name="lbl_sort_mode">정렬 기준</string> <string name="lbl_sort_mode">정렬 기준</string>
<string name="desc_selection_image">선택 이미지</string> <string name="desc_selection_image">선택 이미지</string>
<string name="lbl_selection">선택</string> <string name="lbl_selection">선택</string>
<string name="lbl_show_error_info">더 보기</string>
<string name="lbl_copied">복사했습니다.</string> <string name="lbl_copied">복사했습니다.</string>
<string name="lbl_report">오류 보고</string> <string name="lbl_report">오류 보고</string>
<string name="lbl_error_info">오류 정보</string> <string name="lbl_error_info">오류 정보</string>

View file

@ -38,7 +38,6 @@
<string name="lbl_props">Dainos ypatybės</string> <string name="lbl_props">Dainos ypatybės</string>
<string name="lbl_save">Išsaugoti</string> <string name="lbl_save">Išsaugoti</string>
<string name="lbl_about">Apie</string> <string name="lbl_about">Apie</string>
<string name="lbl_add">Pridėti</string>
<string name="set_ui">Išvaizda ir pojūtis</string> <string name="set_ui">Išvaizda ir pojūtis</string>
<string name="lbl_format">Formatas</string> <string name="lbl_format">Formatas</string>
<string name="lbl_version">Versija</string> <string name="lbl_version">Versija</string>
@ -50,7 +49,6 @@
<string name="lng_widget">Peržiūrėk ir valdyk muzikos įrašo perklausą</string> <string name="lng_widget">Peržiūrėk ir valdyk muzikos įrašo perklausą</string>
<string name="lbl_genres">Žanrai</string> <string name="lbl_genres">Žanrai</string>
<string name="lbl_retry">Pakartoti</string> <string name="lbl_retry">Pakartoti</string>
<string name="lbl_grant">Suteikti</string>
<string name="lbl_indexing">Įkeliama muzika</string> <string name="lbl_indexing">Įkeliama muzika</string>
<string name="lng_indexing">Įkeliamas tavo muzikos biblioteka…</string> <string name="lng_indexing">Įkeliamas tavo muzikos biblioteka…</string>
<string name="lbl_library_counts">Bibliotekos statistika</string> <string name="lbl_library_counts">Bibliotekos statistika</string>
@ -114,7 +112,6 @@
<string name="lbl_ep_live">Gyvai mini albumas</string> <string name="lbl_ep_live">Gyvai mini albumas</string>
<string name="lbl_ep_remix">Remikso mini albumas</string> <string name="lbl_ep_remix">Remikso mini albumas</string>
<string name="cdc_mp4">MPEG-4 garsas</string> <string name="cdc_mp4">MPEG-4 garsas</string>
<string name="cdc_mka">Matroska garsas</string>
<string name="lbl_album_live">Gyvai albumas</string> <string name="lbl_album_live">Gyvai albumas</string>
<string name="lbl_album_remix">Remikso albumas</string> <string name="lbl_album_remix">Remikso albumas</string>
<string name="lbl_live_group">Gyvai</string> <string name="lbl_live_group">Gyvai</string>
@ -122,7 +119,6 @@
<string name="cdc_ogg">Ogg garsas</string> <string name="cdc_ogg">Ogg garsas</string>
<string name="lbl_author_name">Aleksandras Keiphartas (angl. Alexander Capehart)</string> <string name="lbl_author_name">Aleksandras Keiphartas (angl. Alexander Capehart)</string>
<string name="set_replay_gain_mode_track">Pageidauti takeliui</string> <string name="set_replay_gain_mode_track">Pageidauti takeliui</string>
<string name="err_no_locations">Nėra aplankų</string>
<string name="err_bad_location">Šis aplankas nepalaikomas.</string> <string name="err_bad_location">Šis aplankas nepalaikomas.</string>
<string name="desc_play_pause">Leisti arba pristabdyti</string> <string name="desc_play_pause">Leisti arba pristabdyti</string>
<string name="desc_skip_next">Praleisti į kitą dainą</string> <string name="desc_skip_next">Praleisti į kitą dainą</string>
@ -138,7 +134,6 @@
<string name="desc_song_handle">Perkelti šią dainą</string> <string name="desc_song_handle">Perkelti šią dainą</string>
<string name="desc_tab_handle">Perkelti šį skirtuką</string> <string name="desc_tab_handle">Perkelti šį skirtuką</string>
<string name="err_index_failed">Nepavyko įkelti muzikos.</string> <string name="err_index_failed">Nepavyko įkelti muzikos.</string>
<string name="err_no_perms">„Auxio“ reikia leidimo skaityti tavo muzikos biblioteką.</string>
<string name="fmt_disc_no">%d diskas</string> <string name="fmt_disc_no">%d diskas</string>
<string name="fmt_db_pos">+%.1f dB</string> <string name="fmt_db_pos">+%.1f dB</string>
<string name="fmt_db_neg">-%.1f dB</string> <string name="fmt_db_neg">-%.1f dB</string>
@ -159,7 +154,6 @@
<string name="lng_search_library">Ieškok savo bibliotekoje…</string> <string name="lng_search_library">Ieškok savo bibliotekoje…</string>
<string name="lbl_equalizer">Ekvalaizeris</string> <string name="lbl_equalizer">Ekvalaizeris</string>
<string name="set_observing">Automatinis perkėlimas</string> <string name="set_observing">Automatinis perkėlimas</string>
<string name="err_no_music">Muzika nerasta.</string>
<string name="desc_exit">Sustabdyti įrašo perklausą</string> <string name="desc_exit">Sustabdyti įrašo perklausą</string>
<string name="def_track">Nėra takelio</string> <string name="def_track">Nėra takelio</string>
<string name="set_action_mode_next">Praleisti į kitą</string> <string name="set_action_mode_next">Praleisti į kitą</string>
@ -179,7 +173,6 @@
<string name="fmt_lib_album_count">Įkelti albumai: %d</string> <string name="fmt_lib_album_count">Įkelti albumai: %d</string>
<string name="fmt_lib_artist_count">Įkelti atlikėjai: %d</string> <string name="fmt_lib_artist_count">Įkelti atlikėjai: %d</string>
<string name="fmt_indexing">Įkėliamas tavo muzikos biblioteka… (%1$d/%2$d)</string> <string name="fmt_indexing">Įkėliamas tavo muzikos biblioteka… (%1$d/%2$d)</string>
<string name="desc_shuffle_all">Maišyti visas dainas</string>
<string name="set_personalize">Suasmeninti</string> <string name="set_personalize">Suasmeninti</string>
<string name="set_pre_amp_warning">Įspėjimas: keičiant išankstinį stiprintuvą į didelę teigiamą reikšmę, kai kuriuose garso takeliuose gali atsirasti tarpų.</string> <string name="set_pre_amp_warning">Įspėjimas: keičiant išankstinį stiprintuvą į didelę teigiamą reikšmę, kai kuriuose garso takeliuose gali atsirasti tarpų.</string>
<string name="desc_album_cover">Albumo viršelis %s</string> <string name="desc_album_cover">Albumo viršelis %s</string>
@ -245,7 +238,6 @@
<string name="set_images">Vaizdai</string> <string name="set_images">Vaizdai</string>
<string name="set_playback">Įrašo perklausa</string> <string name="set_playback">Įrašo perklausa</string>
<string name="set_replay_gain">Garso normalizavimas</string> <string name="set_replay_gain">Garso normalizavimas</string>
<string name="set_locations_list">Aplankai</string>
<string name="lbl_sort_dsc">Mažėjantis</string> <string name="lbl_sort_dsc">Mažėjantis</string>
<string name="set_intelligent_sorting_desc">Teisingai surūšiuok pavadinimus, kurie prasideda skaičiais arba žodžiais, tokiais kaip „the“ (geriausiai veikia su anglų kalbos muzika).</string> <string name="set_intelligent_sorting_desc">Teisingai surūšiuok pavadinimus, kurie prasideda skaičiais arba žodžiais, tokiais kaip „the“ (geriausiai veikia su anglų kalbos muzika).</string>
<string name="set_intelligent_sorting">Išmanusis rūšiavimas</string> <string name="set_intelligent_sorting">Išmanusis rūšiavimas</string>
@ -281,7 +273,6 @@
<string name="lbl_selection">Pasirinkimas</string> <string name="lbl_selection">Pasirinkimas</string>
<string name="lbl_error_info">Klaidos informacija</string> <string name="lbl_error_info">Klaidos informacija</string>
<string name="lbl_copied">Nukopijuota</string> <string name="lbl_copied">Nukopijuota</string>
<string name="lbl_show_error_info">Daugiau</string>
<string name="lbl_report">Pranešti</string> <string name="lbl_report">Pranešti</string>
<string name="def_album_count">Nėra albumų</string> <string name="def_album_count">Nėra albumų</string>
<string name="lbl_demo">Demo versija</string> <string name="lbl_demo">Demo versija</string>
@ -315,4 +306,22 @@
\nĮSPĖJIMAS: būk atsargus (-i) valdant šią paslaugą, jei ją uždarysi ir vėl bandysi naudoti, tikriausiai sutriks programėlė.</string> \nĮSPĖJIMAS: būk atsargus (-i) valdant šią paslaugą, jei ją uždarysi ir vėl bandysi naudoti, tikriausiai sutriks programėlė.</string>
<string name="lbl_start_playback">Paleisti įrašo perklausą</string> <string name="lbl_start_playback">Paleisti įrašo perklausą</string>
<string name="lbl_more">Daugiau</string> <string name="lbl_more">Daugiau</string>
<string name="lbl_feedback">Atsiliepimai</string>
<string name="lbl_github">Sukurti problemą svetainėje „GitHub“</string>
<string name="cnt_mp4">MPEG-4, kuriame yra %s</string>
<string name="def_album">Nežinomas albumas</string>
<string name="lng_empty_songs">Čia bus rodomos jūsų dainos.</string>
<string name="lng_empty_albums">Čia bus rodomi jūsų albumai.</string>
<string name="lng_empty_artists">Čia bus rodomi jūsų atlikėjai.</string>
<string name="lng_empty_playlists">Čia bus rodomi jūsų grojaraščiai.</string>
<string name="lng_empty_genres">Čia bus rodomi jūsų žanrai.</string>
<string name="lbl_music_sources">Pasirinkti aplankus</string>
<string name="lbl_email">Siųsti el. laišką</string>
<string name="set_locations_new">Naujas aplankas</string>
<string name="cdc_alac">„Apple“ be nuostolių garso kodekas (ALAC)</string>
<string name="cdc_unknown">Nežinomas</string>
<string name="set_cover_mode_save_space">Išsaugoti vietos</string>
<string name="set_cover_mode_as_is">Kaip yra</string>
<string name="set_with_hidden">Įtraukti paslėptus failus</string>
<string name="set_with_hidden_desc">Įtraukite garso failus, kurie paslėpti (pvz., .cache)</string>
</resources> </resources>

View file

@ -3,7 +3,6 @@
<string name="lbl_save">രക്ഷിക്കുക</string> <string name="lbl_save">രക്ഷിക്കുക</string>
<string name="set_behavior">പെരുമാറ്റം</string> <string name="set_behavior">പെരുമാറ്റം</string>
<string name="set_content">ഉള്ളടക്കം</string> <string name="set_content">ഉള്ളടക്കം</string>
<string name="err_no_music">സംഗീതമൊന്നും കണ്ടെത്തിയില്ല</string>
<string name="desc_queue_bar">വരി തുറക്കുക</string> <string name="desc_queue_bar">വരി തുറക്കുക</string>
<string name="def_artist">അജ്ഞാത കലാകാരൻ</string> <string name="def_artist">അജ്ഞാത കലാകാരൻ</string>
<string name="clr_grey">ചാരനിറം</string> <string name="clr_grey">ചാരനിറം</string>
@ -23,7 +22,6 @@
<string name="lbl_play_next">അടുത്തത് കളിക്കുക</string> <string name="lbl_play_next">അടുത്തത് കളിക്കുക</string>
<string name="lbl_format">രൂപകല്പന</string> <string name="lbl_format">രൂപകല്പന</string>
<string name="lbl_size">വലിപ്പം</string> <string name="lbl_size">വലിപ്പം</string>
<string name="lbl_add">ചേർക്കുക</string>
<string name="lbl_ok">ശരി</string> <string name="lbl_ok">ശരി</string>
<string name="lbl_cancel">റദ്ദാക്കുക</string> <string name="lbl_cancel">റദ്ദാക്കുക</string>
<string name="set_theme_day">വെളിച്ചം</string> <string name="set_theme_day">വെളിച്ചം</string>
@ -71,7 +69,6 @@
<string name="lbl_indexing">സംഗീതം ലോഡ് ചെയ്യുന്നു</string> <string name="lbl_indexing">സംഗീതം ലോഡ് ചെയ്യുന്നു</string>
<string name="lbl_observing">സംഗീത ഗ്രന്ഥശാല നിരീക്ഷിക്കുന്നു</string> <string name="lbl_observing">സംഗീത ഗ്രന്ഥശാല നിരീക്ഷിക്കുന്നു</string>
<string name="lbl_retry">വീണ്ടും ശ്രമിക്കുക</string> <string name="lbl_retry">വീണ്ടും ശ്രമിക്കുക</string>
<string name="lbl_grant">അനുവദിക്കുക</string>
<string name="lbl_songs">ഗാനങ്ങൾ</string> <string name="lbl_songs">ഗാനങ്ങൾ</string>
<string name="lbl_song_count">പാട്ടുകളുടെ എണ്ണം</string> <string name="lbl_song_count">പാട്ടുകളുടെ എണ്ണം</string>
<string name="lbl_date_added">തീയതി ചേർത്തു</string> <string name="lbl_date_added">തീയതി ചേർത്തു</string>

View file

@ -109,7 +109,6 @@
<string name="fmt_lib_song_count">Spor innlastet: %d</string> <string name="fmt_lib_song_count">Spor innlastet: %d</string>
<string name="lbl_date">Dato</string> <string name="lbl_date">Dato</string>
<string name="set_ui_desc">Endre drakten og programfargene</string> <string name="set_ui_desc">Endre drakten og programfargene</string>
<string name="set_locations_list">Mapper</string>
<string name="clr_yellow">Gul</string> <string name="clr_yellow">Gul</string>
<string name="set_intelligent_sorting">Intelligent sortering</string> <string name="set_intelligent_sorting">Intelligent sortering</string>
<string name="lbl_rename">Gi nytt navn</string> <string name="lbl_rename">Gi nytt navn</string>
@ -119,7 +118,6 @@
<string name="lbl_version">Versjon</string> <string name="lbl_version">Versjon</string>
<string name="lbl_wiki">Wiki</string> <string name="lbl_wiki">Wiki</string>
<string name="lbl_reset">Tilbakestill</string> <string name="lbl_reset">Tilbakestill</string>
<string name="lbl_add">Legg til</string>
<string name="set_accent">Fargedrakt</string> <string name="set_accent">Fargedrakt</string>
<string name="set_black_mode">Svart drakt</string> <string name="set_black_mode">Svart drakt</string>
<string name="set_black_mode_desc">Bruk en helsvart mørk drakt</string> <string name="set_black_mode_desc">Bruk en helsvart mørk drakt</string>
@ -136,7 +134,6 @@
<string name="set_hide_collaborators_desc">Vis kun artister som er kreditert direkte på album (fungerer best med velmerkede bibliotek)</string> <string name="set_hide_collaborators_desc">Vis kun artister som er kreditert direkte på album (fungerer best med velmerkede bibliotek)</string>
<string name="set_rescan">Reskann musikk</string> <string name="set_rescan">Reskann musikk</string>
<string name="set_reindex_desc">Last inn musikkbiblioteket igjen, ved bruk av hurtiglagrede etiketter når mulig</string> <string name="set_reindex_desc">Last inn musikkbiblioteket igjen, ved bruk av hurtiglagrede etiketter når mulig</string>
<string name="err_no_locations">Ingen mapper</string>
<string name="fmt_lib_album_count">Album innlastet: %d</string> <string name="fmt_lib_album_count">Album innlastet: %d</string>
<string name="lbl_library_counts">Bibliotekstatistikk</string> <string name="lbl_library_counts">Bibliotekstatistikk</string>
<string name="set_cover_mode_off">Av</string> <string name="set_cover_mode_off">Av</string>
@ -151,7 +148,6 @@
<string name="err_bad_location">Denne mappen støttes ikke</string> <string name="err_bad_location">Denne mappen støttes ikke</string>
<string name="desc_skip_next">Hopp til neste spor</string> <string name="desc_skip_next">Hopp til neste spor</string>
<string name="desc_skip_prev">Hopp til siste spor</string> <string name="desc_skip_prev">Hopp til siste spor</string>
<string name="desc_shuffle_all">Omstokk alle spor</string>
<string name="desc_music_location_delete">Fjern mappe</string> <string name="desc_music_location_delete">Fjern mappe</string>
<string name="def_genre">Ukjent sjanger</string> <string name="def_genre">Ukjent sjanger</string>
<string name="desc_genre_image">Sjangerbilde for %s</string> <string name="desc_genre_image">Sjangerbilde for %s</string>
@ -222,7 +218,6 @@
<string name="set_square_covers_desc">Beskjær alle albumomslag til 1:1-sideforhold</string> <string name="set_square_covers_desc">Beskjær alle albumomslag til 1:1-sideforhold</string>
<string name="desc_play_pause">Spill av eller pause</string> <string name="desc_play_pause">Spill av eller pause</string>
<string name="desc_artist_image">Artistbilde for %s</string> <string name="desc_artist_image">Artistbilde for %s</string>
<string name="err_no_perms">Auxio trenger tilgang til å lese musikkbiblioteket ditt</string>
<string name="clr_pink">Rosa</string> <string name="clr_pink">Rosa</string>
<string name="clr_grey">Grå</string> <string name="clr_grey">Grå</string>
<string name="fmt_editing">Redigerer %s</string> <string name="fmt_editing">Redigerer %s</string>
@ -239,7 +234,6 @@
<string name="lbl_single_live">Live-singel</string> <string name="lbl_single_live">Live-singel</string>
<string name="lbl_indexing">Laster inn musikk</string> <string name="lbl_indexing">Laster inn musikk</string>
<string name="lbl_observing">Holder øye med musikkbiblioteket</string> <string name="lbl_observing">Holder øye med musikkbiblioteket</string>
<string name="lbl_grant">Bevilge</string>
<string name="lbl_singles">Singler</string> <string name="lbl_singles">Singler</string>
<string name="lbl_songs">Spor</string> <string name="lbl_songs">Spor</string>
<string name="lbl_album">Album</string> <string name="lbl_album">Album</string>
@ -257,8 +251,6 @@
<string name="lng_indexing">Laster inn musikkbiblioteket ditt …</string> <string name="lng_indexing">Laster inn musikkbiblioteket ditt …</string>
<string name="set_play_in_list_with">Ved avspilling fra bibliotek</string> <string name="set_play_in_list_with">Ved avspilling fra bibliotek</string>
<string name="set_play_song_from_artist">Spill fra artist</string> <string name="set_play_song_from_artist">Spill fra artist</string>
<string name="err_no_music">Fant ikke noe musikk</string>
<string name="cdc_mka">Matroska-lyd</string>
<string name="set_play_song_none">Spill fra vist element</string> <string name="set_play_song_none">Spill fra vist element</string>
<string name="cdc_ogg">OGG-lyd</string> <string name="cdc_ogg">OGG-lyd</string>
<string name="clr_deep_blue">Mørkeblå</string> <string name="clr_deep_blue">Mørkeblå</string>
@ -286,7 +278,6 @@
<string name="err_export_failed">Kan ikke eksportere spillelisten til denne filen</string> <string name="err_export_failed">Kan ikke eksportere spillelisten til denne filen</string>
<string name="lbl_demo">Demo</string> <string name="lbl_demo">Demo</string>
<string name="lbl_demos">Demoer</string> <string name="lbl_demos">Demoer</string>
<string name="lbl_show_error_info">Vis mer</string>
<string name="lbl_error_info">Feilopplysninger</string> <string name="lbl_error_info">Feilopplysninger</string>
<string name="lbl_copied">Kopiert</string> <string name="lbl_copied">Kopiert</string>
<string name="lbl_replaygain_album">ReplayGain-albumjustering</string> <string name="lbl_replaygain_album">ReplayGain-albumjustering</string>

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="lbl_indexer">गीतहरु लोड हुँदै छन्</string>
<string name="info_app_desc">एन्डरोइडको लागि एक सहज, विवेकशील गीत बजाउने एप।</string>
<string name="lbl_soundtrack">साउन्डट्रयाक</string>
<string name="lbl_single">सिङ्गल</string>
<string name="lbl_ep_live">लाइभ ईपी</string>
<string name="lbl_demos">डेमोहरु</string>
<string name="lbl_compilation_remix">रीमिक्स सङ्कलन</string>
<string name="lbl_disc">डिस्क</string>
<string name="lbl_export_playlist">प्लेलिस्ट एक्सपोर्ट गर्नुहोस्</string>
<string name="lbl_filter_all">सबै</string>
<string name="lbl_date">मिति</string>
<string name="lbl_rename_playlist">प्लेलिस्टको नाम परिवर्तन गर्नुहोस्</string>
<string name="lbl_playlists">प्लेलिस्टहरु</string>
<string name="lbl_empty_playlist">खाली प्लेलिस्ट</string>
<string name="lbl_retry">पुनः प्रयास गर्नुहोस्</string>
<string name="lbl_import_playlist">प्लेलिस्ट इम्पोर्ट गर्नुहोस्</string>
<string name="lbl_album">एल्बम</string>
<string name="lbl_indexing">गीतहरु लोड गर्दै</string>
<string name="lbl_observing">सङ्गीत लाइब्रेरी निगरानी गर्दै</string>
<string name="lbl_music_sources">फोल्डर छान्नुहोस्</string>
<string name="lbl_songs">गीतहरु</string>
<string name="lbl_song">गीत</string>
<string name="lbl_all_songs">सबै गीत</string>
<string name="lbl_album_live">लाइभ एल्बम</string>
<string name="lbl_album_remix">रीमिक्स एल्बम</string>
<string name="lbl_eps">ईपीहरु</string>
<string name="lbl_ep">ईपी</string>
<string name="lbl_ep_remix">रीमिक्स ईपी</string>
<string name="lbl_singles">सिङ्गलहरु</string>
<string name="lbl_single_live">लाइभ सिङ्गल</string>
<string name="lbl_compilations">सङ्कलनहरु</string>
<string name="lbl_compilation_live">लाइभ सङ्कलन</string>
<string name="lbl_soundtracks">साउन्डट्रयाकहरु</string>
<string name="lbl_mixtapes">मिक्सटेपहरु</string>
<string name="lbl_mixtape">मिक्सटेप</string>
<string name="lbl_demo">डेमो</string>
<string name="lbl_mixes">डिजे मिक्सहरु</string>
<string name="lbl_live_group">लाइभ</string>
<string name="lbl_remix_group">रीमिक्सहरु</string>
<string name="lbl_appears_on">यीमा देखिन्छन्</string>
<string name="lbl_artist">कलाकार</string>
<string name="lbl_artists">कलाकारहरु</string>
<string name="lbl_genre">विधा</string>
<string name="lbl_genres">विधाहरु</string>
<string name="lbl_playlist">प्लेलिस्ट</string>
<string name="lbl_new_playlist">नयाँ प्लेलिस्ट</string>
<string name="lbl_imported_playlist">इम्पोर्ट गरिएको प्लेलिस्ट</string>
<string name="lbl_import">इम्पोर्ट गर्नुहोस्</string>
<string name="lbl_export">एक्सपोर्ट गर्नुहोस्</string>
<string name="lbl_rename">नाम परिवर्तन गर्नुहोस्</string>
<string name="lbl_delete">हटाउनुहोस्</string>
<string name="lbl_confirm_delete_playlist">साँचै प्लेलिस्ट हटाउने?</string>
<string name="lbl_edit">सम्पादन गर्नुहोस्</string>
<string name="lbl_search">खोज्नुहोस्</string>
<string name="lbl_duration">अवधि</string>
<string name="lbl_song_count">गीतको सङ्ख्या</string>
<string name="lbl_mix">डिजे मिक्स</string>
<string name="lbl_name">नाम</string>
<string name="lbl_filter">छान्नुहोस्</string>
<string name="lbl_albums">एल्बमहरु</string>
<string name="lbl_single_remix">रीमिक्स सिङ्गल</string>
<string name="lbl_compilation">सङ्कलन</string>
</resources>

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,6 @@
<string name="info_app_desc">Een eenvoudige, rationele muziekspeler voor Android.</string> <string name="info_app_desc">Een eenvoudige, rationele muziekspeler voor Android.</string>
<!-- Label Namespace | Static Labels --> <!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Probeer opnieuw</string> <string name="lbl_retry">Probeer opnieuw</string>
<string name="lbl_grant">Sta toe</string>
<string name="lbl_genres">Genres</string> <string name="lbl_genres">Genres</string>
<string name="lbl_artists">Artiesten</string> <string name="lbl_artists">Artiesten</string>
<string name="lbl_albums">Albums</string> <string name="lbl_albums">Albums</string>
@ -27,9 +26,7 @@
<string name="lng_queue_added">Toegevoegd aan wachtrij</string> <string name="lng_queue_added">Toegevoegd aan wachtrij</string>
<string name="lbl_artist_details">Ga naar artiest</string> <string name="lbl_artist_details">Ga naar artiest</string>
<string name="lbl_album_details">Ga naar album</string> <string name="lbl_album_details">Ga naar album</string>
<string name="lbl_add">Voeg toe</string>
<string name="lbl_save">Bewaar</string> <string name="lbl_save">Bewaar</string>
<string name="err_no_locations">Geen mappen</string>
<string name="lbl_about">Over</string> <string name="lbl_about">Over</string>
<string name="lbl_version">Versie</string> <string name="lbl_version">Versie</string>
<string name="lbl_code">Broncode</string> <string name="lbl_code">Broncode</string>
@ -54,9 +51,7 @@
<string name="set_rewind_prev_desc">Terugspoelen voor het overslaan van het vorige nummer</string> <string name="set_rewind_prev_desc">Terugspoelen voor het overslaan van het vorige nummer</string>
<string name="set_content">Inhoud</string> <string name="set_content">Inhoud</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Geen muziek aangetroffen</string>
<string name="err_index_failed">Laden van muziek mislukt</string> <string name="err_index_failed">Laden van muziek mislukt</string>
<string name="err_no_perms">Auxio heeft toestemming nodig om uw muziekbibliotheek te lezen</string>
<string name="err_no_app">Geen app gevonden die deze taak kan uitvoeren</string> <string name="err_no_app">Geen app gevonden die deze taak kan uitvoeren</string>
<string name="err_bad_location">Deze map wordt niet ondersteund</string> <string name="err_bad_location">Deze map wordt niet ondersteund</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
@ -133,7 +128,6 @@
<string name="desc_shuffle">Schakel shuffle aan of uit</string> <string name="desc_shuffle">Schakel shuffle aan of uit</string>
<string name="set_reindex_desc">Laad de muziekbibliotheek opnieuw, indien mogelijk met behulp van gecashte tags</string> <string name="set_reindex_desc">Laad de muziekbibliotheek opnieuw, indien mogelijk met behulp van gecashte tags</string>
<string name="fmt_indexing">Uw muziekbibliotheek wordt geladen… (%1$d/%2$d)</string> <string name="fmt_indexing">Uw muziekbibliotheek wordt geladen… (%1$d/%2$d)</string>
<string name="desc_shuffle_all">Shuffle alle nummers</string>
<string name="set_repeat_pause_desc">Pauze wanneer een nummer wordt herhaald</string> <string name="set_repeat_pause_desc">Pauze wanneer een nummer wordt herhaald</string>
<string name="set_reindex">Muziek opnieuw laden</string> <string name="set_reindex">Muziek opnieuw laden</string>
<string name="set_pre_amp_with">Aanpassing met tags</string> <string name="set_pre_amp_with">Aanpassing met tags</string>
@ -158,7 +152,6 @@
<string name="cdc_mp3">MPEG-1 audio</string> <string name="cdc_mp3">MPEG-1 audio</string>
<string name="cdc_mp4">MPEG-4 audio</string> <string name="cdc_mp4">MPEG-4 audio</string>
<string name="cdc_ogg">Ogg audio</string> <string name="cdc_ogg">Ogg audio</string>
<string name="cdc_mka">Matroska audio</string>
<string name="fmt_lib_album_count">Albums geladen: %d</string> <string name="fmt_lib_album_count">Albums geladen: %d</string>
<string name="fmt_lib_artist_count">Artiesten geladen: %d</string> <string name="fmt_lib_artist_count">Artiesten geladen: %d</string>
<string name="fmt_lib_genre_count">Genres geladen: %d</string> <string name="fmt_lib_genre_count">Genres geladen: %d</string>
@ -218,7 +211,6 @@
<string name="lbl_rename_playlist">Hernoem afspeellijst</string> <string name="lbl_rename_playlist">Hernoem afspeellijst</string>
<string name="lbl_confirm_delete_playlist">Verwijder afspeellijst?</string> <string name="lbl_confirm_delete_playlist">Verwijder afspeellijst?</string>
<string name="set_action_mode_repeat">Herhaalmodus</string> <string name="set_action_mode_repeat">Herhaalmodus</string>
<string name="set_locations_list">Mappen</string>
<string name="desc_queue_bar">Open de wachtrij</string> <string name="desc_queue_bar">Open de wachtrij</string>
<string name="fmt_deletion_info">%s verwijderen\? Dit kan niet ongedaan worden gemaakt.</string> <string name="fmt_deletion_info">%s verwijderen\? Dit kan niet ongedaan worden gemaakt.</string>
<string name="set_cover_mode_off">Uit</string> <string name="set_cover_mode_off">Uit</string>
@ -282,7 +274,6 @@
<string name="lbl_demo">Demo</string> <string name="lbl_demo">Demo</string>
<string name="lbl_demos">Demo\'s</string> <string name="lbl_demos">Demo\'s</string>
<string name="lbl_sort_mode">Sorteer op</string> <string name="lbl_sort_mode">Sorteer op</string>
<string name="lbl_show_error_info">Meer</string>
<string name="lbl_sort_direction">Richting</string> <string name="lbl_sort_direction">Richting</string>
<string name="lbl_replaygain_track">ReplayGain spoor aanpassing</string> <string name="lbl_replaygain_track">ReplayGain spoor aanpassing</string>
<string name="lbl_replaygain_album">ReplayGain album aanpassing</string> <string name="lbl_replaygain_album">ReplayGain album aanpassing</string>

View file

@ -15,7 +15,6 @@
<string name="lbl_shuffle_shortcut_long">Bland alle</string> <string name="lbl_shuffle_shortcut_long">Bland alle</string>
<string name="lbl_ok">OK</string> <string name="lbl_ok">OK</string>
<string name="lbl_start_playback">Begynn avspeling</string> <string name="lbl_start_playback">Begynn avspeling</string>
<string name="lbl_add">Legg til</string>
<string name="lbl_path_style_absolute">Absolutt</string> <string name="lbl_path_style_absolute">Absolutt</string>
<string name="lbl_save">Lagre</string> <string name="lbl_save">Lagre</string>
<string name="lbl_code">Kjeldekode</string> <string name="lbl_code">Kjeldekode</string>
@ -24,7 +23,6 @@
<string name="info_app_desc">Ein enkel, rasjonell musikkspillar for Android.</string> <string name="info_app_desc">Ein enkel, rasjonell musikkspillar for Android.</string>
<string name="lbl_indexer">Musikk vert lasta inn</string> <string name="lbl_indexer">Musikk vert lasta inn</string>
<string name="lbl_observing">Held auge med musikkbiblioteket</string> <string name="lbl_observing">Held auge med musikkbiblioteket</string>
<string name="lbl_grant">Løyv</string>
<string name="lbl_songs">Spor</string> <string name="lbl_songs">Spor</string>
<string name="lbl_song">Spor</string> <string name="lbl_song">Spor</string>
<string name="lbl_all_songs">Alle spor</string> <string name="lbl_all_songs">Alle spor</string>
@ -89,7 +87,6 @@
<string name="lbl_author_name">Utvikla av Alexander Capehart</string> <string name="lbl_author_name">Utvikla av Alexander Capehart</string>
<string name="lbl_indexing">Lastar inn musikk</string> <string name="lbl_indexing">Lastar inn musikk</string>
<string name="lbl_retry">Prøv igjen</string> <string name="lbl_retry">Prøv igjen</string>
<string name="lbl_show_error_info">Syn meir</string>
<string name="lbl_single_live">Live-singel</string> <string name="lbl_single_live">Live-singel</string>
<string name="lbl_soundtrack">Ljodspor</string> <string name="lbl_soundtrack">Ljodspor</string>
<string name="lbl_album_live">Live-album</string> <string name="lbl_album_live">Live-album</string>
@ -187,7 +184,6 @@
<string name="set_pre_amp_without">Justering utan etikettar</string> <string name="set_pre_amp_without">Justering utan etikettar</string>
<string name="set_library">Bibliotek</string> <string name="set_library">Bibliotek</string>
<string name="set_locations_desc">Handsam kvar musikk skal lastast inn ifrå</string> <string name="set_locations_desc">Handsam kvar musikk skal lastast inn ifrå</string>
<string name="set_locations_list">Mapper</string>
<string name="set_reindex">Gjenoppfrisk musikk</string> <string name="set_reindex">Gjenoppfrisk musikk</string>
<string name="err_import_failed">Kan ikkje importere ei speleliste frå denne fila</string> <string name="err_import_failed">Kan ikkje importere ei speleliste frå denne fila</string>
<string name="desc_skip_next">Hopp til neste spor</string> <string name="desc_skip_next">Hopp til neste spor</string>
@ -211,7 +207,7 @@
<string name="fmt_def_playlist">Speleliste %d</string> <string name="fmt_def_playlist">Speleliste %d</string>
<string name="fmt_indexing">Lastar inn musikkbiblioteket ditt… (%1$d/%2$d)</string> <string name="fmt_indexing">Lastar inn musikkbiblioteket ditt… (%1$d/%2$d)</string>
<string name="fmt_deletion_info">Slett %s for godt? Dette kan ikkje angrast.</string> <string name="fmt_deletion_info">Slett %s for godt? Dette kan ikkje angrast.</string>
<string name="fmt_lib_song_count">Innlasta spår: %d</string> <string name="fmt_lib_song_count">Innlasta spor: %d</string>
<string name="fmt_lib_genre_count">Innlasta sjangrar: %d</string> <string name="fmt_lib_genre_count">Innlasta sjangrar: %d</string>
<plurals name="fmt_song_count"> <plurals name="fmt_song_count">
<item quantity="one">%d spor</item> <item quantity="one">%d spor</item>
@ -257,10 +253,8 @@
<string name="set_pre_amp_warning">Åtvaring: Å endre forforsterkninga til høge positive verdier, kan forårsake forvrengning ved høge ljodtrykk på nokre spor.</string> <string name="set_pre_amp_warning">Åtvaring: Å endre forforsterkninga til høge positive verdier, kan forårsake forvrengning ved høge ljodtrykk på nokre spor.</string>
<string name="set_locations">Musikkmapper</string> <string name="set_locations">Musikkmapper</string>
<string name="set_reindex_desc">Last inn musikkbiblioteket på nytt og bruk hurtiglagra etikettar når mogleg</string> <string name="set_reindex_desc">Last inn musikkbiblioteket på nytt og bruk hurtiglagra etikettar når mogleg</string>
<string name="err_no_music">Fann ikkje musikk</string>
<string name="set_rescan">Skann musikk på nytt</string> <string name="set_rescan">Skann musikk på nytt</string>
<string name="set_rescan_desc">Tøm etiketthurtiglager og last inn heile musikkbiblioteket på nytt (tregare, men meir fullstendig)</string> <string name="set_rescan_desc">Tøm etiketthurtiglager og last inn heile musikkbiblioteket på nytt (tregare, men meir fullstendig)</string>
<string name="err_no_perms">Auxio treng løyve til å lesa musikkbiblioteket ditt</string>
<string name="desc_artist_image">Artistbilete for %s</string> <string name="desc_artist_image">Artistbilete for %s</string>
<string name="err_index_failed">Klarte ikkje å laste inn musikk</string> <string name="err_index_failed">Klarte ikkje å laste inn musikk</string>
<string name="err_export_failed">Kan ikkje eksportere spelelista til denne fila</string> <string name="err_export_failed">Kan ikkje eksportere spelelista til denne fila</string>
@ -269,8 +263,6 @@
<string name="desc_play_pause">Spel av eller pause</string> <string name="desc_play_pause">Spel av eller pause</string>
<string name="desc_auxio_icon">Auxio-ikon</string> <string name="desc_auxio_icon">Auxio-ikon</string>
<string name="desc_track_number">Spor %d</string> <string name="desc_track_number">Spor %d</string>
<string name="err_no_locations">Ingen mapper</string>
<string name="desc_shuffle_all">Bland alle spor</string>
<string name="desc_remove_song">Fjern dette sporet</string> <string name="desc_remove_song">Fjern dette sporet</string>
<string name="desc_song_handle">Flytt dette sporet</string> <string name="desc_song_handle">Flytt dette sporet</string>
<string name="desc_skip_prev">Hopp til siste spor</string> <string name="desc_skip_prev">Hopp til siste spor</string>
@ -289,7 +281,6 @@
<string name="clr_yellow">Gul</string> <string name="clr_yellow">Gul</string>
<string name="clr_orange">Oransje</string> <string name="clr_orange">Oransje</string>
<string name="def_disc">Inga plate</string> <string name="def_disc">Inga plate</string>
<string name="cdc_mka">Matroska-ljod</string>
<string name="def_playback">Ingen musik vert spelt av</string> <string name="def_playback">Ingen musik vert spelt av</string>
<string name="cdc_mp4">MPEG-4-ljod</string> <string name="cdc_mp4">MPEG-4-ljod</string>
<string name="cdc_aac">Avansert audio-koding (AAC)</string> <string name="cdc_aac">Avansert audio-koding (AAC)</string>

View file

@ -2,7 +2,6 @@
<resources> <resources>
<string name="lbl_indexing">سنگیت لوڈ کیتا جا رہا اے</string> <string name="lbl_indexing">سنگیت لوڈ کیتا جا رہا اے</string>
<string name="lbl_retry">مُڑ لوڈ کرو</string> <string name="lbl_retry">مُڑ لوڈ کرو</string>
<string name="lbl_grant">اِجازت دیو</string>
<string name="lbl_songs">گیت</string> <string name="lbl_songs">گیت</string>
<string name="lbl_all_songs">سارے گیت</string> <string name="lbl_all_songs">سارے گیت</string>
<string name="lbl_album">البم</string> <string name="lbl_album">البم</string>

Some files were not shown because too many files have changed in this diff Show more