Compare commits

...

117 commits
v4.0.1 ... dev

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
189 changed files with 3505 additions and 5270 deletions

2
.gitignore vendored
View file

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

View file

@ -1,5 +1,46 @@
# 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

View file

@ -2,8 +2,8 @@
<h1 align="center"><b>Auxio</b></h1>
<h4 align="center">A simple, rational music player for android.</h4>
<p align="center">
<a href="https://github.com/oxygencobalt/Auxio/releases/tag/v4.0.1">
<img alt="Latest Version" src="https://img.shields.io/static/v1?label=tag&message=v4.0.1&color=64B5F6&style=flat">
<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=v4.0.4&color=64B5F6&style=flat">
</a>
<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">
@ -15,7 +15,12 @@
</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>
<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>
</p>
@ -65,12 +70,20 @@ precise/original dates, sort tags, and more
- 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
- Notifcations (`POST_NOTIFICATION`) to indicate ongoing playback and music loading
- Notifications (`POST_NOTIFICATION`) to indicate ongoing playback and music loading
## 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!
<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">

View file

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

View file

@ -2,9 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
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_DATA_SYNC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />

View file

@ -1309,7 +1309,6 @@ public class BackportBottomSheetBehavior<V extends View> extends CoordinatorLayo
+ " should not be set externally.");
}
if (!hideable && state == STATE_HIDDEN) {
Log.w(TAG, "Cannot set state: " + state);
return;
}
final int finalState;

View file

@ -76,9 +76,8 @@ class AuxioService :
}
private fun onHandleForeground(intent: Intent?) {
val startId = intent?.getIntExtra(INTENT_KEY_START_ID, -1) ?: -1
musicFragment.start()
playbackFragment.start(startId)
playbackFragment.start(intent)
}
override fun onTaskRemoved(rootIntent: Intent?) {
@ -142,6 +141,7 @@ class AuxioService :
}
// Nothing changed, but don't show anything music related since we can always
// index during playback.
isForeground = true
} else {
musicFragment.createNotification {
if (it != null) {

View file

@ -65,6 +65,8 @@ object IntegerTable {
const val START_ID_ACTIVITY = 0xA050
/** Tasker AuxioService Start ID */
const val START_ID_TASKER = 0xA051
/** MediaButtonReceiver AuxioService Start ID */
const val START_ID_MEDIA_BUTTON = 0xA052
/** RepeatMode.NONE */
const val REPEAT_MODE_NONE = 0xA100
/** RepeatMode.ALL */
@ -141,4 +143,6 @@ object IntegerTable {
const val PLAY_SONG_BY_ITSELF = 0xA124
/** CoverMode.SaveSpace */
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
import android.animation.ValueAnimator
import android.os.Bundle
import android.view.LayoutInflater
import android.view.ViewTreeObserver
@ -514,8 +513,6 @@ class MainFragment :
}
}
private var scrimAnimator: ValueAnimator? = null
private fun updateSpeedDial(open: Boolean) {
requireNotNull(speedDialBackCallback) { "SpeedDialBackPressedCallback was not available" }
.invalidateEnabled(open)

View file

@ -98,7 +98,7 @@ sealed interface ArtistShowChoices {
val uid: Music.UID
/** The current [Artist] choices. */
val choices: List<Artist>
/** Sanitize this instance with a [DeviceLibrary]. */
/** Sanitize this instance with a [Library]. */
fun sanitize(newLibrary: Library): ArtistShowChoices?
/** 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.widget.ViewPager2
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.transition.MaterialSharedAxis
import dagger.hilt.android.AndroidEntryPoint
import java.lang.reflect.Field
import java.lang.reflect.Method
import kotlin.math.abs
import org.oxycblt.auxio.R
import org.oxycblt.auxio.databinding.FragmentHomeBinding
@ -68,7 +66,6 @@ import org.oxycblt.auxio.playback.PlaybackViewModel
import org.oxycblt.auxio.util.collect
import org.oxycblt.auxio.util.collectImmediately
import org.oxycblt.auxio.util.lazyReflectedField
import org.oxycblt.auxio.util.lazyReflectedMethod
import org.oxycblt.auxio.util.navigateSafe
import org.oxycblt.auxio.util.showToast
import org.oxycblt.musikr.IndexingProgress
@ -94,7 +91,6 @@ class HomeFragment :
private var storagePermissionLauncher: ActivityResultLauncher<String>? = null
private var getContentLauncher: ActivityResultLauncher<String>? = null
private var pendingImportTarget: Playlist? = null
private var lastUpdateTime = -1L
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -512,11 +508,5 @@ class HomeFragment :
private companion object {
val VP_RECYCLER_FIELD: Field by lazyReflectedField(ViewPager2::class, "mRecyclerView")
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

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

View file

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

View file

@ -37,6 +37,7 @@ import androidx.annotation.DrawableRes
import androidx.annotation.Px
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.children
import androidx.core.view.isEmpty
import androidx.core.view.updateMarginsRelative
import androidx.core.widget.ImageViewCompat
import coil3.ImageLoader
@ -64,7 +65,7 @@ import org.oxycblt.musikr.Artist
import org.oxycblt.musikr.Genre
import org.oxycblt.musikr.Playlist
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
@ -172,7 +173,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
super.onFinishInflate()
// The image isn't added if other children have populated the body. This is by design.
if (childCount == 0) {
if (isEmpty()) {
addView(image)
}
@ -409,7 +410,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
@Px val iconSize: Int?
) : Drawable() {
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.
DrawableCompat.setTintList(inner, context.getColorCompat(R.color.sel_on_cover_bg))
}

View file

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

View file

@ -18,32 +18,20 @@
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.asImage
import coil3.decode.DataSource
import coil3.decode.ImageSource
import coil3.fetch.FetchResult
import coil3.fetch.Fetcher
import coil3.fetch.ImageFetchResult
import coil3.fetch.SourceFetchResult
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 okio.FileSystem
import okio.buffer
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) :
Fetcher {
class CoverFetcher private constructor(private val cover: Cover) : Fetcher {
override suspend fun fetch(): FetchResult? {
val stream = cover.open() ?: return null
return SourceFetchResult(
@ -52,59 +40,8 @@ class CoverFetcher private constructor(private val context: Context, private val
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> {
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.request.Options
import javax.inject.Inject
import org.oxycblt.musikr.cover.Cover
import org.oxycblt.musikr.cover.CoverCollection
import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.covers.CoverCollection
class CoverKeyer @Inject constructor() : Keyer<Cover> {
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
/**
* A vendoring of [coil.transform.RoundedCornersTransformation] that can handle non-1:1 aspect ratio
* images without cropping them.
* A vendoring of coil's RoundedCornersTransformation that can handle non-1:1 aspect ratio images
* without cropping them.
*
* @author Coil Team, Alexander Capehart (OxygenCobalt)
*/

View file

@ -19,6 +19,7 @@
package org.oxycblt.auxio.image.coil
import android.graphics.Bitmap
import androidx.core.graphics.scale
import coil3.size.Size
import coil3.size.pxOrElse
import coil3.transform.Transformation
@ -46,7 +47,7 @@ class SquareCropTransformation : Transformation() {
val desiredHeight = size.height.pxOrElse { dstSize }
if (dstSize != desiredWidth || dstSize != desiredHeight) {
// Image is not the desired size, upscale it.
return Bitmap.createScaledBitmap(dst, desiredWidth, desiredHeight, true)
return dst.scale(desiredWidth, desiredHeight)
}
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
* CoverModule.kt is part of Auxio.
* Copyright (c) 2023 Auxio Project
* CoversModule.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
@ -20,19 +20,11 @@ package org.oxycblt.auxio.image.covers
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import org.oxycblt.musikr.cover.CoverIdentifier
@Module
@InstallIn(SingletonComponent::class)
interface CoverModule {
@Binds fun configCovers(impl: SettingCoversImpl): SettingCovers
}
@Module
@InstallIn(SingletonComponent::class)
class CoverProvidesModule {
@Provides fun identifier(): CoverIdentifier = CoverIdentifier.md5()
interface CoilModule {
@Binds fun settingCovers(imageSettings: SettingCoversImpl): SettingCovers
}

View file

@ -18,18 +18,20 @@
package org.oxycblt.auxio.image.covers
import android.content.Context
import org.oxycblt.musikr.cover.Cover
import org.oxycblt.musikr.cover.MutableCovers
import org.oxycblt.musikr.cover.ObtainResult
import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.covers.CoverResult
import org.oxycblt.musikr.covers.MutableCovers
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 {
override suspend fun obtain(id: String) = ObtainResult.Hit(NullCover)
class NullCovers(private val storage: CoverStorage) : MutableCovers<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>) {
context.coversDir().listFiles()?.forEach { it.deleteRecursively() }
storage.ls(setOf()).map { storage.rm(it) }
}
}

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2024 Auxio Project
* CoverUtil.kt is part of Auxio.
* Copyright (c) 2025 Auxio Project
* RevisionedTranscoding.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
@ -18,9 +18,9 @@
package org.oxycblt.auxio.image.covers
import android.content.Context
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import java.util.UUID
import org.oxycblt.musikr.covers.stored.Transcoding
suspend fun Context.coversDir() =
withContext(Dispatchers.IO) { filesDir.resolve("covers").apply { mkdirs() } }
class RevisionedTranscoding(revision: UUID, private val inner: Transcoding) : Transcoding by inner {
override val tag = "_$revision${inner.tag}"
}

View file

@ -19,30 +19,55 @@
package org.oxycblt.auxio.image.covers
import android.content.Context
import android.graphics.Bitmap
import java.util.UUID
import javax.inject.Inject
import org.oxycblt.auxio.image.CoverMode
import org.oxycblt.auxio.image.ImageSettings
import org.oxycblt.musikr.cover.CoverIdentifier
import org.oxycblt.musikr.cover.CoverParams
import org.oxycblt.musikr.cover.MutableCovers
import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.covers.Covers
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 {
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
@Inject
constructor(private val imageSettings: ImageSettings, private val identifier: CoverIdentifier) :
class SettingCoversImpl @Inject constructor(private val imageSettings: ImageSettings) :
SettingCovers {
override suspend fun create(context: Context, revision: UUID): MutableCovers =
when (imageSettings.coverMode) {
CoverMode.OFF -> NullCovers(context)
CoverMode.SAVE_SPACE -> siloedCovers(context, revision, CoverParams.of(500, 70))
CoverMode.BALANCED -> siloedCovers(context, revision, CoverParams.of(750, 85))
CoverMode.HIGH_QUALITY -> siloedCovers(context, revision, CoverParams.of(1000, 100))
}
private suspend fun siloedCovers(context: Context, revision: UUID, with: CoverParams) =
MutableSiloedCovers.from(context, CoverSilo(revision, with), identifier)
override suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover> {
val coverStorage = CoverStorage.at(context.coversDir())
val transcoding =
when (imageSettings.coverMode) {
CoverMode.OFF -> return NullCovers(coverStorage)
CoverMode.SAVE_SPACE -> Compress(Bitmap.CompressFormat.JPEG, 500, 70)
CoverMode.BALANCED -> Compress(Bitmap.CompressFormat.JPEG, 750, 85)
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 fun Context.coversDir() = filesDir.resolve("covers").apply { mkdirs() }

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
import android.animation.Animator
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Canvas
import android.graphics.Rect
@ -34,6 +35,7 @@ import android.view.ViewGroup
import android.view.WindowInsets
import android.widget.FrameLayout
import androidx.annotation.AttrRes
import androidx.core.view.isEmpty
import androidx.core.view.isInvisible
import androidx.core.view.updatePaddingRelative
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 var thumbAnimator: Animator? = null
@SuppressLint("InflateParams")
private val thumbView =
context.inflater.inflate(R.layout.view_scroll_thumb, null).apply {
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]
// This is somewhat adapted from the androidx RecyclerView FastScroller implementation.
val offsetY = computeVerticalScrollOffset()
if (computeVerticalScrollRange() < height || childCount == 0) {
if (computeVerticalScrollRange() < height || isEmpty()) {
fastScrollingPossible = false
hideThumb()
hidePopup()

View file

@ -29,6 +29,7 @@ import kotlinx.coroutines.withContext
import kotlinx.coroutines.yield
import org.oxycblt.auxio.image.covers.SettingCovers
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
import org.oxycblt.auxio.music.shim.WriteOnlyMutableCache
import org.oxycblt.musikr.IndexingProgress
import org.oxycblt.musikr.Interpretation
import org.oxycblt.musikr.Library
@ -38,7 +39,7 @@ import org.oxycblt.musikr.MutableLibrary
import org.oxycblt.musikr.Playlist
import org.oxycblt.musikr.Song
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.tag.interpret.Naming
import org.oxycblt.musikr.tag.interpret.Separators
@ -187,8 +188,8 @@ interface MusicRepository {
/**
* Flags indicating which kinds of music information changed.
*
* @param deviceLibrary Whether the current [DeviceLibrary] has changed.
* @param library Whether the current [Playlist]s have changed.
* @param deviceLibrary Whether the current songs/albums/artists/genres has changed.
* @param userLibrary Whether the current playlists have changed.
*/
data class Changes(val deviceLibrary: Boolean, val userLibrary: Boolean)
@ -236,14 +237,14 @@ class MusicRepositoryImpl
@Inject
constructor(
@ApplicationContext private val context: Context,
private val storedCache: StoredCache,
private val cache: MutableCache,
private val storedPlaylists: StoredPlaylists,
private val settingCovers: SettingCovers,
private val musicSettings: MusicSettings
) : MusicRepository {
private val updateListeners = mutableListOf<MusicRepository.UpdateListener>()
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 private var previousCompletedState: IndexingState.Completed? = null
@ -282,7 +283,7 @@ constructor(
}
@Synchronized
override fun registerWorker(worker: MusicRepository.IndexingWorker) {
override fun registerWorker(worker: IndexingWorker) {
if (indexingWorker != null) {
L.w("Worker is already registered")
return
@ -292,7 +293,7 @@ constructor(
}
@Synchronized
override fun unregisterWorker(worker: MusicRepository.IndexingWorker) {
override fun unregisterWorker(worker: IndexingWorker) {
if (indexingWorker !== worker) {
L.w("Given worker did not match current worker")
return
@ -384,14 +385,14 @@ constructor(
Naming.simple()
}
val locations = musicSettings.musicLocations
val withHidden = musicSettings.withHidden
val currentRevision = musicSettings.revision
val newRevision = currentRevision?.takeIf { withCache } ?: UUID.randomUUID()
val cache = if (withCache) storedCache.visible() else storedCache.invisible()
val covers = settingCovers.create(context, newRevision)
val cache = if (withCache) cache else WriteOnlyMutableCache(cache)
val covers = settingCovers.mutate(context, newRevision)
val storage = Storage(cache, covers, storedPlaylists)
val interpretation = Interpretation(nameFactory, separators)
val interpretation = Interpretation(nameFactory, separators, withHidden)
val result =
Musikr.new(context, storage, interpretation).run(locations, ::emitIndexingProgress)
// 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>
/** Whether to exclude non-music audio files from the music library. */
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. */
val shouldBeObserving: Boolean
/** 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 {
putString(
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
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
get() = sharedPreferences.getBoolean(getString(R.string.set_key_observing), false)
@ -116,7 +124,9 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont
listener.onMusicLocationsChanged()
}
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")
listener.onIndexingSettingChanged()
}

View file

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

View file

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

View file

@ -25,7 +25,8 @@ import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
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
@Module
@ -33,7 +34,7 @@ import org.oxycblt.musikr.playlist.db.StoredPlaylists
class MusikrShimModule {
@Singleton
@Provides
fun storedCache(@ApplicationContext context: Context) = StoredCache.from(context)
fun cache(@ApplicationContext context: Context): MutableCache = MutableDBCache.from(context)
@Singleton
@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)
/**
* Convert seconds into milliseconds.
*
* @return A converted millisecond value.
*/
fun Long.secsToMs() = times(1000)
/**
* Convert a millisecond value into a string duration.
*

View file

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

View file

@ -22,11 +22,13 @@ import android.content.Context
import android.content.Intent
import android.media.audiofx.AudioEffect
import android.provider.OpenableColumns
import androidx.annotation.OptIn
import androidx.media3.common.AudioAttributes
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.PlaybackException
import androidx.media3.common.Player
import androidx.media3.common.util.UnstableApi
import androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.exoplayer.RenderersFactory
@ -62,6 +64,7 @@ import org.oxycblt.musikr.MusicParent
import org.oxycblt.musikr.Song
import timber.log.Timber as L
@OptIn(UnstableApi::class)
class ExoPlaybackStateHolder(
private val context: Context,
private val player: ExoPlayer,
@ -432,14 +435,14 @@ class ExoPlaybackStateHolder(
override fun endSession() {
// This session has ended, so we need to reset this flag for when the next
// session starts.
playbackManager.playing(false)
save {
// 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.
if (playbackManager.progression.isPlaying) {
playbackManager.playing(false)
if (!playbackManager.progression.isPlaying) {
sessionOngoing = false
playbackManager.ack(this, StateAck.SessionEnded)
}
sessionOngoing = false
playbackManager.ack(this, StateAck.SessionEnded)
}
}
@ -545,7 +548,9 @@ class ExoPlaybackStateHolder(
private fun save(cb: () -> Unit) {
saveJob {
persistenceRepository.saveState(playbackManager.toSavedState())
if (sessionOngoing) {
persistenceRepository.saveState(playbackManager.toSavedState())
}
withContext(Dispatchers.Main) { cb() }
}
}
@ -556,7 +561,9 @@ class ExoPlaybackStateHolder(
delay(SAVE_BUFFER)
yield()
L.d("Committing saved state")
persistenceRepository.saveState(playbackManager.toSavedState())
if (sessionOngoing) {
persistenceRepository.saveState(playbackManager.toSavedState())
}
}
}

View file

@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
import org.oxycblt.auxio.AuxioService
import org.oxycblt.auxio.IntegerTable
import org.oxycblt.auxio.playback.state.PlaybackStateManager
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
// wrong action at the wrong time will result in the app crashing, and there is
// 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")
intent.component = ComponentName(context, AuxioService::class.java)
intent.putExtra(AuxioService.INTENT_KEY_START_ID, IntegerTable.START_ID_MEDIA_BUTTON)
ContextCompat.startForegroundService(context, intent)
}
}

View file

@ -20,6 +20,7 @@ package org.oxycblt.auxio.playback.service
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.support.v4.media.MediaMetadataCompat
import android.support.v4.media.session.MediaSessionCompat
@ -28,6 +29,7 @@ import androidx.annotation.DrawableRes
import androidx.car.app.mediaextensions.MetadataExtras
import androidx.core.app.NotificationCompat
import androidx.media.app.NotificationCompat.MediaStyle
import androidx.media.session.MediaButtonReceiver
import javax.inject.Inject
import org.oxycblt.auxio.BuildConfig
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
* the [PlaybackNotification].

View file

@ -19,9 +19,11 @@
package org.oxycblt.auxio.playback.service
import android.content.Context
import android.content.Intent
import android.support.v4.media.session.MediaSessionCompat
import javax.inject.Inject
import kotlinx.coroutines.Job
import org.oxycblt.auxio.AuxioService.Companion.INTENT_KEY_START_ID
import org.oxycblt.auxio.ForegroundListener
import org.oxycblt.auxio.ForegroundServiceNotification
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.
// TODO: Possibly also force to go foreground?
L.d("Handling non-native start.")
val startId = intent?.getIntExtra(INTENT_KEY_START_ID, -1)
val action =
when (startedBy) {
when (startId) {
IntegerTable.START_ID_ACTIVITY -> null
IntegerTable.START_ID_TASKER ->
DeferredPlayback.RestoreState(
play = true, fallback = DeferredPlayback.ShuffleAll)
// External services using Auxio better know what they are doing.
else -> DeferredPlayback.RestoreState(play = false)
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.
DeferredPlayback.RestoreState(play = false)
}
}
if (action != null) {
L.d("Initing service fragment using action $action")

View file

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

View file

@ -20,9 +20,9 @@ package org.oxycblt.auxio.settings
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import androidx.core.net.toUri
import androidx.core.view.updatePadding
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
@ -72,6 +72,9 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
binding.aboutLicenses.setOnClickListener { requireContext().openInBrowser(LINK_LICENSES) }
binding.aboutProfile.setOnClickListener { requireContext().openInBrowser(LINK_PROFILE) }
binding.aboutDonate.setOnClickListener { requireContext().openInBrowser(LINK_DONATE) }
binding.aboutSupMarkPitblado.setOnClickListener {
requireContext().openInBrowser(LINK_SUP_MARK_PITBLADO)
}
binding.aboutFeedbackGithub.setOnClickListener {
requireContext().openInBrowser(LINK_NEW_ISSUE)
}
@ -102,7 +105,7 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
}
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)
}
@ -113,5 +116,6 @@ class AboutFragment : ViewBindingFragment<FragmentAboutBinding>() {
const val LINK_NEW_ISSUE = "$LINK_SOURCE/issues/new"
const val LINK_PROFILE = "https://github.com/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) :
Settings<Listener>, SharedPreferences.OnSharedPreferenceChangeListener {
init {
L.d(this::class.simpleName)
}
protected val sharedPreferences: SharedPreferences =
PreferenceManager.getDefaultSharedPreferences(context.applicationContext)
/** @see [Context.getString] */
protected fun getString(@StringRes stringRes: Int) = context.getString(stringRes)
private var listener: Listener? = null
protected var listener: Listener? = null
override fun registerListener(listener: Listener) {
if (this.listener == null) {

View file

@ -67,5 +67,14 @@ class MusicPreferenceFragment : BasePreferenceFragment(R.xml.preferences_music)
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) {
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()
}
}

View file

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

View file

@ -65,22 +65,22 @@ private val accentThemes =
private val accentBlackThemes =
intArrayOf(
R.style.Theme_Auxio_Black_Red,
R.style.Theme_Auxio_Black_Pink,
R.style.Theme_Auxio_Black_Purple,
R.style.Theme_Auxio_Black_DeepPurple,
R.style.Theme_Auxio_Black_Indigo,
R.style.Theme_Auxio_Black_Blue,
R.style.Theme_Auxio_Black_DeepBlue,
R.style.Theme_Auxio_Black_Cyan,
R.style.Theme_Auxio_Black_Teal,
R.style.Theme_Auxio_Black_Green,
R.style.Theme_Auxio_Black_DeepGreen,
R.style.Theme_Auxio_Black_Lime,
R.style.Theme_Auxio_Black_Yellow,
R.style.Theme_Auxio_Black_Orange,
R.style.Theme_Auxio_Black_Brown,
R.style.Theme_Auxio_Black_Grey,
R.style.Theme_Auxio_Red_Black,
R.style.Theme_Auxio_Pink_Black,
R.style.Theme_Auxio_Purple_Black,
R.style.Theme_Auxio_DeepPurple_Black,
R.style.Theme_Auxio_Indigo_Black,
R.style.Theme_Auxio_Blue_Black,
R.style.Theme_Auxio_DeepBlue_Black,
R.style.Theme_Auxio_Cyan_Black,
R.style.Theme_Auxio_Teal_Black,
R.style.Theme_Auxio_Green_Black,
R.style.Theme_Auxio_DeepGreen_Black,
R.style.Theme_Auxio_Lime_Black,
R.style.Theme_Auxio_Yellow_Black,
R.style.Theme_Auxio_Orange_Black,
R.style.Theme_Auxio_Brown_Black,
R.style.Theme_Auxio_Grey_Black,
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.pm.PackageManager
import android.graphics.PointF
import android.graphics.drawable.Drawable
import android.os.Build
import android.view.View
import android.view.WindowInsets
@ -36,7 +35,6 @@ import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ShareCompat
import androidx.core.graphics.Insets
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.net.toUri
import androidx.core.view.children
import androidx.navigation.NavController
@ -106,10 +104,6 @@ private fun isUnderImpl(
val View.isRtl: Boolean
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]. */
val ViewBinding.context: Context
get() = root.context
@ -357,7 +351,7 @@ fun Context.startIntent(intent: Intent) {
// No app installed to open the link
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
// 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

View file

@ -22,18 +22,11 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import java.util.concurrent.TimeoutException
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.StateFlow
import kotlinx.coroutines.flow.combine
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.
@ -153,71 +146,3 @@ private fun Fragment.launch(
) {
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.graphics.Bitmap
import androidx.core.graphics.scale
import coil3.size.Size
import coil3.transform.Transformation
import kotlin.math.sqrt
@ -49,7 +50,7 @@ class WidgetBitmapTransformation(reduce: Float) : Transformation() {
val scale = sqrt(maxBitmapArea / inputArea.toDouble())
val newWidth = (input.width * scale).toInt()
val newHeight = (input.height * scale).toInt()
return Bitmap.createScaledBitmap(input, newWidth, newHeight, true)
return input.scale(newWidth, newHeight)
}
return input
}

View file

@ -19,7 +19,6 @@
package org.oxycblt.auxio.widgets
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProviderInfo
import android.content.ComponentName
import android.content.Context
import android.os.Build
@ -66,11 +65,6 @@ fun RemoteViews.setLayoutDirection(@IdRes viewId: Int, layoutDirection: Int) {
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
* adaptive layout, in a version-compatible manner.

View file

@ -119,7 +119,8 @@
app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button"
app:layout_constraintHorizontal_bias="0.5"
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
android:id="@+id/detail_shuffle_button"

View file

@ -101,7 +101,8 @@
app:icon="@drawable/ic_play_24"
app:layout_constraintEnd_toStartOf="@+id/detail_shuffle_button"
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
android:id="@+id/detail_shuffle_button"

View file

@ -129,7 +129,8 @@
app:layout_constraintBottom_toBottomOf="@+id/detail_play_button"
app:layout_constraintEnd_toEndOf="parent"
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>
<com.google.android.material.divider.MaterialDivider

View file

@ -132,7 +132,8 @@
app:layout_constraintBottom_toBottomOf="@+id/detail_play_button"
app:layout_constraintEnd_toEndOf="parent"
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>
<com.google.android.material.divider.MaterialDivider

View file

@ -226,6 +226,17 @@
app:layout_constraintEnd_toEndOf="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
android:id="@+id/about_supporters_promo"
style="@style/Widget.Auxio.TextView.Icon.Clickable"

View file

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

View file

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

View file

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

View file

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

View file

@ -5,7 +5,6 @@
<string name="lng_widget">عرض وتحكم بشتغيل الموسيقى</string>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">إعادة المحاولة</string>
<string name="lbl_grant">منح</string>
<string name="lbl_genres">الانواع</string>
<string name="lbl_artists">فنانين</string>
<string name="lbl_albums">البومات</string>
@ -32,9 +31,7 @@
<string name="lng_queue_added">تمت الإضافة إلى الطابور</string>
<string name="lbl_artist_details">أذهب إلى الفنان</string>
<string name="lbl_album_details">أذهب إلى الالبوم</string>
<string name="lbl_add">أضف</string>
<string name="lbl_save">حفظ</string>
<string name="err_no_locations">لا مجلد</string>
<string name="lbl_about">حول</string>
<string name="lbl_version">الإصدار</string>
<string name="lbl_code">كود البرنامج</string>
@ -71,9 +68,7 @@
<string name="set_repeat_pause_desc">ايقاف مؤقت عند تكرار تشغيل اغنية</string>
<string name="set_content">محتوى</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">لم يتم ايجاد موسيقى</string>
<string name="err_index_failed">فشل تحميل الموسيقى</string>
<string name="err_no_perms">اوكسيو يحتاج إلى صلاحيات لقراءة للاطلاع على مكتبتك للموسيقى</string>
<string name="err_no_app">لا يوجد تطبيق لفتح هذا الرابط</string>
<string name="err_bad_location">هذا المجلد غير مدعوم</string>
<!-- Hint Namespace | EditText Hints -->
@ -85,7 +80,6 @@
<string name="desc_skip_prev">تخطي للاغنية الاخيرة</string>
<string name="desc_change_repeat">تغيير وضع التكرار</string>
<string name="desc_shuffle">تشغيل او اطفاء الخلط</string>
<string name="desc_shuffle_all">خلط جميع الاغاني</string>
<string name="desc_remove_song">إزالة اغنية من الطابور</string>
<string name="desc_song_handle">نقل اغنية من الطابور</string>
<string name="desc_tab_handle">تحريك التبويت</string>
@ -190,7 +184,6 @@
<string name="lbl_playlists">قوائم التشغيل</string>
<string name="lbl_playlist">قائمة التشغيل</string>
<string name="lng_playlist_created">تم خلق قائمة التشغيل</string>
<string name="lbl_show_error_info">المزيد</string>
<string name="lbl_delete">حذف</string>
<string name="lbl_copied">تم النسخ</string>
<string name="lbl_playlist_add">إضافة إلى قائمة التشغيل</string>
@ -266,4 +259,4 @@
<string name="lng_empty_genres">الفئات الخاصة بك ستضهر هنا.</string>
<string name="set_observing_desc">اعادة تحميل مكتبة الموسيقى عند حصول تغيير(يتطلب تنبيه ثابت)</string>
<string name="set_separators_warning">تحذير: استخدام هذا الاعداد قد ينتج عنه ان يتم تفسير بعض العلامات بشكل خاطئ مثل ان تحتوي على قيم متعددة. يمكن ان يتم حل هذا بتقديم الفواصل الغير مرغوبةبالشارحة الخلفية(\\).</string>
</resources>
</resources>

View file

@ -3,7 +3,6 @@
<string name="info_app_desc">مشغّل موسيقى بسيط ومعقول للأندرويد.</string>
<string name="lbl_observing">مراقبة مكتبة الموسيقى</string>
<string name="lbl_retry">إعادة المحاولة</string>
<string name="lbl_grant">منح</string>
<string name="lbl_albums">الألبومات</string>
<string name="lbl_songs">أغاني</string>
<string name="lbl_song">أغنية</string>
@ -18,7 +17,6 @@
<string name="lbl_queue_add">إضافة للطابور</string>
<string name="lbl_playlist_add">إضافة لقائمة التشغيل</string>
<string name="lbl_reset">إعادة ضبط</string>
<string name="lbl_add">إضافة مجلد</string>
<string name="lng_indexing">جارِ تحميل مكتبتك الموسيقية…</string>
<string name="lng_queue_added">أضيفت للطابور</string>
<string name="lng_playlist_created">تم إنشاء قائمة التشغيل</string>
@ -85,7 +83,6 @@
<string name="def_disc">لا قرص</string>
<string name="cdc_mp4">صوت MPEG-4</string>
<string name="cdc_ogg">أوغ الصوت</string>
<string name="cdc_mka">صوت ماتروسكا</string>
<string name="cdc_flac">برنامج ترميز الصوت المجاني بدون فقدان البيانات (FLAC)</string>
<string name="clr_indigo">نيلي</string>
<string name="clr_blue">أزرق</string>
@ -109,7 +106,6 @@
</plurals>
<string name="set_hide_collaborators_desc">إظهار فقط الفنانين المُعتمدين مباشرة على الألبوم (يعمل بشكل أفضل في المكتبات المعروفة بتوسيماتها الجيدة)</string>
<string name="set_content">المحتوى</string>
<string name="set_locations_list">مجلدات</string>
<string name="set_hide_collaborators">إخفاء المتعاونين</string>
<string name="set_audio_desc">ضبط سلوك وصوت التشغيل</string>
<string name="set_rewind_prev">إعادة التشغيل قبل الانتقال للوراء</string>
@ -117,7 +113,6 @@
<string name="set_remember_pause_desc">البقاء على التشغيل/الإيقاف عند الانتقال أو تعديل قائمة التشغيل</string>
<string name="set_remember_pause">تذكر الإيقاف المؤقت</string>
<string name="set_rescan_desc">مسح ذاكرة التخزين المؤقت للعلامات وإعادة تحميل كامل مكتبة الموسيقى (أبطأ ولكن أكثر اكتمالًا)</string>
<string name="err_no_perms">يحتاج Auxio إلى إذن لقراءة مكتبتك الموسيقية</string>
<string name="err_import_failed">غير قادر على استيراد قائمة التشغيل من هذا الملف</string>
<string name="err_no_app">لم يتم العثور على تطبيق يمكنه التعامل مع هذه المهمة</string>
<string name="desc_play_pause">تشغيل أو إيقاف مؤقت</string>
@ -140,7 +135,6 @@
<string name="lbl_demos">تسجيلات تجريبية</string>
<string name="lbl_mixes">اغاني دي جي</string>
<string name="lbl_mix">اغنية دي جي</string>
<string name="lbl_show_error_info">المزيد</string>
<string name="desc_selection_image">صورة التحديد</string>
<string name="desc_remove_song">إزالة هذه الأغنية</string>
<string name="desc_song_handle">نقل هذه الأغنية</string>
@ -169,9 +163,7 @@
<string name="lbl_single_remix">اغنية فردية ريميكس</string>
<string name="set_images">الصور</string>
<string name="set_reindex_desc">إعادة تحميل مكتبة الموسيقى، باستخدام العلامات المخزنة مؤقتًا عند الإمكان</string>
<string name="err_no_locations">لا توجد مجلدات</string>
<string name="err_bad_location">هذا المجلد غير مدعوم</string>
<string name="desc_shuffle_all">خلط جميع الأغاني</string>
<string name="clr_cyan">ازرق سماوي</string>
<string name="fmt_editing">تحرير %s</string>
<string name="set_theme_auto">تلقائي</string>
@ -248,7 +240,6 @@
<string name="set_pre_amp_desc">يتم تطبيق مكبر الصوت المسبق على التعديل الحالي أثناء التشغيل</string>
<string name="set_pre_amp_with">ضبط مع العلامات</string>
<string name="set_reindex">تحديث الموسيقى</string>
<string name="err_no_music">لم يتم العثور على موسيقى</string>
<string name="def_track">لا مسار</string>
<string name="def_playback">لا يوجد تشغيل الموسيقى</string>
<string name="cdc_aac">ترميز الصوت المتقدم (AAC)</string>

View file

@ -3,7 +3,6 @@
<string name="lbl_indexer">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_grant">Qəbul et</string>
<string name="lbl_songs">Mahnılar</string>
<string name="lbl_all_songs">Bütün mahnılar</string>
<string name="lbl_albums">Albomlar</string>
@ -35,7 +34,6 @@
<string name="lbl_artist">Sənətkar</string>
<string name="lbl_artists">Sənətkarlar</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_mixtapes">Qarışıq lentlər</string>
<string name="lbl_mixtape">Qarışıq lent</string>
@ -76,7 +74,6 @@
<string name="lbl_album_details">Alboma keç</string>
<string name="lbl_parent_detail">Baxış</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_sort_mode">Çeşidləmə üsulu</string>
<string name="lbl_sort_direction">Göstəriş</string>

View file

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

View file

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

View file

@ -7,7 +7,6 @@
<!-- Label Namespace | Static Labels -->
<string name="lng_indexing">Načítání vaší hudební knihovny…</string>
<string name="lbl_retry">Zkusit znovu</string>
<string name="lbl_grant">Udělit</string>
<string name="lbl_genres">Žánry</string>
<string name="lbl_artists">Umělci</string>
<string name="lbl_albums">Alba</string>
@ -42,7 +41,6 @@
<string name="lbl_ok">OK</string>
<!-- Actual string: Cancel -->
<string name="lbl_cancel">Zrušit</string>
<string name="lbl_add">Přidat</string>
<string name="lbl_save">Uložit</string>
<string name="lbl_about">O aplikaci</string>
<string name="lbl_version">Verze</string>
@ -90,11 +88,8 @@
<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>
<!-- 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_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_locations">Žádné složky</string>
<string name="err_bad_location">Tato složka není podporována</string>
<!-- Hint Namespace | EditText Hints -->
<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_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_all">Náhodně přehrávat vše</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_tab_handle">Přesunout tuto kartu</string>
@ -167,7 +161,6 @@
<string name="cdc_mp3">Zvuk MPEG-1</string>
<string name="cdc_mp4">Zvuk MPEG-4</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_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="fmt_bitrate">%d kbps</string>
@ -246,7 +239,6 @@
<string name="lbl_wiki">Wiki</string>
<string name="fmt_list">%1$s, %2$s</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_behavior">Chování</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="desc_selection_image">Výběr obrázku</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_copied">Zkopírovat</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_playlists">Vaše seznamy skladeb se zobrazí zde.</string>
<string name="lng_empty_genres">Vaše žánry se zobrazí zde.</string>
</resources>
<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>

View file

@ -4,7 +4,6 @@
<string name="lbl_indexer">Llwytho cerddoriaeth</string>
<string name="lbl_observing">Yn monitro llyfrgell cerddoriaeth</string>
<string name="lbl_retry">Ceisio eto</string>
<string name="lbl_grant">Caniatáu</string>
<string name="lbl_songs">Caneuon</string>
<string name="lbl_song">Cân</string>
<string name="lbl_all_songs">Holl ganeuon</string>
@ -24,7 +23,6 @@
<string name="lbl_mixtapes">Tapiau cymysgiad</string>
<string name="lbl_mixtape">Tâp cymysgiad</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_name">Enw</string>
<string name="lbl_date">Dyddiad</string>
@ -34,7 +32,6 @@
<string name="lbl_track">Trac</string>
<string name="lbl_sort">Didoli</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_new_playlist">Rhestr chwarae newydd</string>
<string name="lbl_empty_playlist">Rhestr chwarae gwag</string>
@ -89,7 +86,6 @@
<string name="set_locations">Ffolderi cerddoriaeth</string>
<string name="set_reindex">Adnewyddu cerddoriaeth</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_genre">Genre anhysbys</string>
<string name="def_date">Dim dyddiad</string>
@ -157,7 +153,6 @@
<string name="lbl_cancel">Diddymu</string>
<string name="lbl_save">Cadw</string>
<string name="lbl_reset">Ailosod</string>
<string name="lbl_add">Ychwanegu</string>
<string name="lbl_path_style">Dull llwybr</string>
<string name="lbl_windows_paths">Defnyddio llwybrau Windows</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_album">Ffafrio albwm</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_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_locations">Dim ffolderi</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_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_queue_bar">Agor y ciw</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>
<plurals name="fmt_song_count">
<item quantity="zero">%d caneuon</item>

View file

@ -2,7 +2,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Erneut versuchen</string>
<string name="lbl_grant">Gewähren</string>
<string name="lbl_genres">Genres</string>
<string name="lbl_artists">Künstler</string>
<string name="lbl_albums">Alben</string>
@ -24,9 +23,7 @@
<string name="lng_queue_added">Der Warteschlange hinzugefügt</string>
<string name="lbl_artist_details">Zum Künstler 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="err_no_locations">Keine Ordner</string>
<string name="lbl_about">Über</string>
<string name="lbl_version">Version</string>
<string name="lbl_code">Quellcode</string>
@ -64,9 +61,7 @@
<string name="set_reindex">Musik neu laden</string>
<string name="set_reindex_desc">Musikbibliothek neu laden, verwendet gecachte Tags wenn möglich</string>
<!-- 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_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_bad_location">Das Verzeichnis wird nicht unterstützt</string>
<!-- Hint Namespace | EditText Hints -->
@ -129,7 +124,6 @@
<string name="set_lib_tabs">Bibliotheks-Registerkarten</string>
<string name="set_lib_tabs_desc">Sichtbarkeit und Ordnung der Bibliotheksregisterkarten ändern</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_tab_handle">Tab versetzen</string>
<string name="def_artist">Unbekannter Künstler</string>
@ -158,7 +152,6 @@
<string name="cdc_ogg">Ogg-Audio</string>
<string name="cdc_mp4">MPEG-4-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_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="fmt_bitrate">%d kB/s</string>
@ -244,7 +237,6 @@
<string name="set_music">Musik</string>
<string name="set_images">Bilder</string>
<string name="set_library">Bibliothek</string>
<string name="set_locations_list">Ordner</string>
<string name="set_playback">Wiedergabe</string>
<string name="set_audio_desc">Ton und Wiedergabeverhalten konfigurieren</string>
<string name="set_replay_gain">Lautstärkenormalisierung</string>
@ -281,7 +273,6 @@
<string name="lbl_sort_mode">Sortieren nach</string>
<string name="desc_selection_image">Auswahl-Bild</string>
<string name="lbl_selection">Auswahl</string>
<string name="lbl_show_error_info">Mehr</string>
<string name="lbl_copied">Kopiert</string>
<string name="lbl_report">Melden</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_genres">Deine Genres werden hier angezeigt.</string>
<string name="lng_empty_artists">Deine Künstler werden hier angezeigt.</string>
</resources>
<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>

View file

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

View file

@ -5,7 +5,6 @@
<string name="lng_widget">Ver y controlar la reproducción musical</string>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Reintentar</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_genres">Géneros</string>
<string name="lbl_artists">Artistas</string>
<string name="lbl_albums">Álbumes</string>
@ -22,38 +21,36 @@
<string name="lbl_sort_asc">Ascendente</string>
<string name="lbl_playback">En reproducción</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_album">Reproducir por álbum</string>
<string name="set_play_song_from_artist">Reproducir por artista</string>
<string name="lbl_queue">Cola</string>
<string name="lbl_play_next">Reproducir siguiente</string>
<string name="lbl_queue_add">Agregar a la cola</string>
<string name="lng_queue_added">Agregado a la cola</string>
<string name="lbl_queue_add">Añadir 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_album_details">Ir al álbum</string>
<string name="lbl_add">Agregar</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_version">Versión</string>
<string name="lbl_code">Código fuente</string>
<string name="lbl_licenses">Licencias</string>
<string name="lbl_author_name">Desarrollado por Alexander Capehart</string>
<!-- Settings namespace | Settings-related labels -->
<string name="set_root_title">Ajustes</string>
<string name="set_ui">Aspecto y Comportamiento</string>
<string name="set_root_title">Configuración</string>
<string name="set_ui">Aspecto y comportamiento</string>
<string name="set_theme">Tema</string>
<string name="set_theme_auto">Automático</string>
<string name="set_theme_day">Claro</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_desc">Usar un tema completamente negro</string>
<string name="set_display">Pantalla</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_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_notif_action">Usar acciones de notificación personalizadas</string>
<string name="set_audio">Sonido</string>
@ -73,13 +70,11 @@
<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>
<!-- 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_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_bad_location">Directorio no soportado</string>
<string name="err_bad_location">No se admite esta carpeta</string>
<!-- 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 -->
<string name="desc_track_number">Pista %d</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_change_repeat">Cambiar modo de repetición</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_song_handle">Mover canción en la cola</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_shuffle_shortcut_short">Mezclar</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="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_play_song_none">Reproducir desde el elemento que se muestra</string>
<string name="cdc_mka">Audio matroska</string>
<string name="cdc_flac">Free Losless Audio Codec (FLAC)</string>
<string name="cdc_flac">Códec de audio sin pérdida libre (FLAC)</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_lib_artist_count">Artistas cargados: %d</string>
@ -157,15 +150,15 @@
<string name="lbl_song_count">Número de canciones</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="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_observing">Monitorizando la librería de música</string>
<string name="lng_observing">Monitorizando cambios en tu librería de música…</string>
<string name="cdc_ogg">Audio ogg</string>
<string name="lbl_observing">Monitorizando la fonoteca</string>
<string name="lng_observing">Monitorizando cambios en la fonoteca…</string>
<string name="cdc_ogg">Audio Ogg</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_sample_rate">Frecuencia de muestreo</string>
<string name="lbl_sample_rate">Tasa de muestreo</string>
<string name="lbl_cancel">Cancelar</string>
<string name="set_headset_autoplay">Reproducción automática con auriculares</string>
<string name="set_locations">Carpetas de música</string>
@ -176,9 +169,9 @@
<string name="lbl_ep">EP</string>
<string name="lbl_singles">Sencillos</string>
<string name="lbl_single">Sencillo</string>
<string name="lbl_soundtrack">Pista de audio</string>
<string name="lbl_album_remix">Álbum remix</string>
<string name="lbl_soundtracks">Pistas de audio</string>
<string name="lbl_soundtrack">Banda sonora</string>
<string name="lbl_album_remix">Álbum de remezclas</string>
<string name="lbl_soundtracks">Bandas sonoras</string>
<string name="lbl_mixtapes">Mixtapes (recopilación de canciones)</string>
<string name="lbl_mixtape">Mixtape (recopilación de canciones)</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_total_duration">Duración total: %s</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_live_group">En directo</string>
<string name="cdc_mp3">Audio MPEG-1</string>
@ -199,9 +192,9 @@
<string name="fmt_bitrate">%d kbps</string>
<string name="fmt_db_neg">-%.1f dB</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_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="lbl_genre">Género</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_equalizer">Ecualizador</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_separators_plus">Más (+)</string>
<string name="set_separators_and">Signo et</string>
@ -248,7 +241,6 @@
<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_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_personalize_desc">Personalizar los controles y el comportamiento de la interfaz de usuario</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="lbl_new_playlist">Nueva lista de reproducción</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_created">Lista de reproducción creada</string>
<string name="def_song_count">No hay canciones</string>
<string name="lbl_delete">Borrar</string>
<string name="lbl_rename">Cambiar el nombre</string>
<string name="lbl_rename_playlist">Cambiar el nombre de la lista de reproducción</string>
<string name="lbl_delete">Eliminar</string>
<string name="lbl_rename">Cambiar nombre</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_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="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="fmt_editing">Editando %s</string>
<string name="lbl_appears_on">Aparece en</string>
@ -285,7 +277,6 @@
<string name="lbl_sort_direction">Dirección</string>
<string name="desc_selection_image">Selección de imágenes</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_copied">Copiado</string>
<string name="lbl_report">Informar</string>
@ -328,12 +319,15 @@
<string name="def_album">Álbum desconocido</string>
<string name="cdc_unknown">Desconocido</string>
<string name="cnt_mp4">El MPEG-4 contiene %s</string>
<string name="cdc_alac">Apple Lossless Audio Codec (ALAC)</string>
<string name="lng_empty_albums">Tus álbumes aparecerán aquí.</string>
<string name="lng_empty_artists">Tus artistas aparecerán aquí.</string>
<string name="lng_empty_genres">Tus géneros aparecerán aquí.</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">Tus listas de reproducción aparecerán aquí.</string>
<string name="lng_empty_songs">Tus canciones aparecerán aquí.</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>

View file

@ -2,8 +2,6 @@
<resources>
<string name="lbl_indexer">Muusika on laadimisel</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_albums">Albumid</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_cancel">Katkesta</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_absolute">Absoluutne</string>
<string name="lbl_about">Rakenduse teave</string>
@ -230,7 +227,7 @@
<string name="set_separators_comma">Koma (,)</string>
<string name="set_separators_semicolon">Semikoolon (;)</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_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>
@ -243,19 +240,15 @@
<string name="set_library">Muusikakogu</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_list">Kaustad</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_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="err_no_music">Muusikat ei leidu</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_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="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="desc_play_pause">Esita või peata</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_queue_bar">Ava esitusjärjekord</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_song_handle">Tõsta see pala teise kohta</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_mp3">MPEG-1 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="fmt_lib_song_count">Laaditud palasid: %d</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_albums">Sinu albumid saavad olema nähtavad siin.</string>
<string name="lng_empty_playlists">Sinu esitusloendid saavad olema nähtavad siin.</string>
</resources>
<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>

View file

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

View file

@ -4,7 +4,6 @@
<string name="lbl_indexer">Musiikki latautuu</string>
<string name="lbl_indexing">Ladataan musiikkia</string>
<string name="lbl_retry">Yritä uudelleen</string>
<string name="lbl_grant">Anna lupa</string>
<string name="lbl_songs">Kappaleet</string>
<string name="lbl_all_songs">Kaikki kappaleet</string>
<string name="lbl_albums">Albumit</string>
@ -51,7 +50,6 @@
<string name="lbl_cancel">Peruuta</string>
<string name="lbl_save">Tallenna</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="lbl_shuffle_shortcut_short">Sekoita</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_separators">Moniarvoerottimet</string>
<string name="set_exclude_non_music_desc">Ohita äänitiedostot, jotka eivät ole musiikkia, kuten podcastit</string>
<string name="set_separators_and">Ampersand (&amp;)</string>
<string name="set_separators_and">Ampersand &amp;</string>
<string name="set_separators_comma">Pilkku (,)</string>
<string name="set_separators_plus">Plus (+)</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_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_locations">Ei kansioita</string>
<string name="desc_track_number">Raita %d</string>
<string name="desc_skip_next">Siirry seuraavaan kappaleeseen</string>
<string name="desc_change_repeat">Muuta kertaustilaa</string>
@ -106,7 +103,6 @@
<string name="cdc_mp3">MPEG-1-ääni</string>
<string name="cdc_mp4">MPEG-4-ää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_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="clr_red">Punainen</string>
@ -165,10 +161,8 @@
<string name="set_round_mode">Pyöristetty tila</string>
<string name="lbl_soundtracks">Elokuvamusiikit</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="lbl_sort">Järjestä</string>
<string name="err_no_music">Musiikkia ei löytynyt</string>
<string name="lbl_wiki">Wiki</string>
<string name="clr_grey">Harmaa</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_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="set_locations_list">Kansiot</string>
<string name="desc_play_pause">Toista tai keskeytä</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_all">Sekoita kaikki kappaleet</string>
<string name="desc_tab_handle">Siirry tätä välilehteä</string>
<string name="desc_clear_search">Tyhjennä hakuehto</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="lbl_song">Kappale</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_report">Ilmoita virheestä</string>
<string name="lbl_selection">Valinta</string>

View file

@ -51,7 +51,6 @@
<string name="lbl_bitrate">Tulin ng mga bit</string>
<string name="lbl_sample_rate">Tulin ng sample</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_about">Tungkol</string>
<string name="lbl_version">Ulat</string>
@ -88,7 +87,6 @@
<string name="lbl_live_group">Live</string>
<string name="lbl_search">Hanapin</string>
<string name="lbl_singles">Mga Single</string>
<string name="lbl_grant">Bigyan</string>
<string name="lbl_genres">Mga Genre</string>
<string name="lng_widget">Tignan at ayusin ang pagtugtog ng kanta</string>
<string name="set_theme">Tema</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Réessayer</string>
<string name="lbl_grant">Accorder</string>
<string name="lbl_genres">Genres</string>
<string name="lbl_artists">Artistes</string>
<string name="lbl_albums">Albums</string>
@ -38,7 +37,6 @@
<string name="set_audio">Audio</string>
<string name="set_personalize">Comportement</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Pas de musique trouvée</string>
<!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Morceau %d</string>
<string name="desc_play_pause">Lecture ou pause</string>
@ -85,7 +83,6 @@
<string name="lbl_cancel">Annuler</string>
<string name="lbl_save">Enregistrer</string>
<string name="lbl_size">Taille</string>
<string name="lbl_add">Ajouter</string>
<string name="set_display">Affichage</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>
@ -125,13 +122,11 @@
<string name="lbl_album_remix">Album de remix</string>
<string name="lbl_genre">Genre</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_no_cover">Couverture de l\'album</string>
<string name="def_genre">Genre inconnu</string>
<string name="clr_dynamic">Dynamique</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="def_artist">Artiste inconnu</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_track">Par chanson</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_library">Bibliothèque</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="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_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>
@ -222,7 +215,6 @@
<string name="fmt_sample_rate">%d Hz</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="cdc_mka">Audio Matroska</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="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_direction">Direction</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_report">Signaler</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_compilations">Compilacións</string>
<string name="lbl_compilation">Compilación</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_albums">Álbums</string>
<string name="lbl_single_remix">Sinxelo remix</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_props">Propiedades da canción</string>
<string name="lbl_save">Gardar</string>
<string name="lbl_add">Engadir</string>
<string name="lbl_licenses">Licenzas</string>
<string name="lng_queue_added">Engadido á cola</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="desc_change_repeat">Cambiar o modo de repetición</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_queue_bar">Abrir a cola</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_mp4">Audio MPEG-4</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_locations">Sen cartafois</string>
<string name="cdc_ogg">Audio ogg</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</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_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_locations_list">Cartafois</string>
<string name="def_track">Ningunha pista</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="cdc_mka">Audio Matroska</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_remix_group">Remix</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">पुन: प्रयास करें</string>
<string name="lbl_grant">अनुदान</string>
<string name="lbl_artists">कलाकार</string>
<string name="lbl_albums">एल्बम</string>
<string name="lbl_songs">गीत</string>
@ -31,7 +30,6 @@
<string name="set_audio">ऑडियो</string>
<string name="set_personalize">चाल चलन</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">कोई संगीत नहीं मिला</string>
<!-- Description Namespace | Accessibility Strings -->
<string name="desc_play_pause">चलाएं/रोकें</string>
<!-- Hint Namespace | EditText Hints -->
@ -141,7 +139,6 @@
<item quantity="other">%d कलाकार</item>
</plurals>
<string name="lbl_observing">संगीत लाइब्रेरी की निगरानी</string>
<string name="lbl_add">जोड़ें</string>
<string name="lbl_ep">ईपी</string>
<string name="lbl_rename">नाम बदलें</string>
<string name="set_separators_semicolon">अर्धविराम (;)</string>
@ -202,12 +199,10 @@
<string name="set_repeat_pause_desc">जब कोई गीत दोहराया जाता है तो रुक जाएं</string>
<string name="set_pre_amp">रीप्लेगेन प्री-एम्प</string>
<string name="set_pre_amp_with">टैग के साथ समायोजन</string>
<string name="set_locations_list">फ़ोल्डर</string>
<string name="err_index_failed">संगीत लोड करना विफल रहा</string>
<string name="err_bad_location">यह फ़ोल्डर समर्थित नहीं है</string>
<string name="desc_change_repeat">रिपीट मोड बदलें</string>
<string name="desc_shuffle">शफ़ल चालू या बंद करें</string>
<string name="desc_shuffle_all">सभी गीत शफ़ल करें</string>
<string name="desc_exit">प्लेबैक बंद करो</string>
<string name="desc_song_handle">इस गीत को इस स्थानांतरित करें</string>
<string name="def_genre">अज्ञात शैली</string>
@ -261,8 +256,6 @@
<string name="set_rewind_prev">वापस जाने से पहले रिवाइंड करें</string>
<string name="set_replay_gain_mode_track">ट्रैक को प्राथमिकता दें</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_yellow">पीला</string>
<string name="clr_lime">नींबू रंग</string>
@ -271,7 +264,6 @@
<string name="desc_skip_next">अगले गाने पर जाएं</string>
<string name="desc_auxio_icon">ऑक्सियो आइकन</string>
<string name="cdc_ogg">Ogg ऑडियो</string>
<string name="cdc_mka">Matroska ऑडियो</string>
<string name="clr_pink">गुलाबी</string>
<string name="set_intelligent_sorting">बुद्धिमान छंटाई</string>
<string name="set_intelligent_sorting_desc">संख्याओं या \"the\" जैसे शब्दों से शुरू होने वाले नामों को सही ढंग से क्रमबद्ध करें (अंग्रेजी भाषा के संगीत के साथ सबसे अच्छा काम करता है)</string>
@ -283,7 +275,6 @@
<string name="lbl_error_info">त्रुटि की जानकारी</string>
<string name="lbl_report">रिपोर्ट करें</string>
<string name="lbl_copied">कापी किया गया</string>
<string name="lbl_show_error_info">और</string>
<string name="def_album_count">कोई एल्बम नहीं</string>
<string name="lbl_demo">डेमो</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_ok">U redu</string>
<string name="lbl_cancel">Odustani</string>
<string name="lbl_add">Dodaj</string>
<string name="lbl_save">Spremi</string>
<string name="lbl_about">O</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_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="err_no_music">Nijedna glazba nije pronađena</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_locations">Nema mapa</string>
<string name="err_bad_location">Ova mapa nije podržana</string>
<string name="lng_search_library">Pretraži svoju zbirku …</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_all">Izmiješaj sve pjesme</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_tab_handle">Pomakni ovu karticu</string>
@ -158,7 +153,6 @@
<string name="lbl_retry">Pokušaj ponovo</string>
<string name="lbl_indexer">Učitavanje 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_remix">Singl remiks</string>
<string name="lbl_single">Singl</string>
@ -191,7 +185,6 @@
<string name="desc_skip_prev">Preskoči na prethodnu pjesmu</string>
<string name="desc_change_repeat">Promijeni način ponavljanja</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="lbl_genre">Žanr</string>
<string name="set_separators_comma">Zarez (,)</string>
@ -233,7 +226,6 @@
<string name="fmt_list">%1$s, %2$s</string>
<string name="lbl_reset">Resetiraj</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="set_ui_desc">Promijenite temu i boje aplikacije</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="desc_selection_image">Slika odabira</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_report">Prijavi</string>
<string name="lbl_copied">Kopirano</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Újra</string>
<string name="lbl_grant">Engedélyez</string>
<string name="lbl_genres">Műfajok</string>
<string name="lbl_artists">Előadók</string>
<string name="lbl_albums">Albumok</string>
@ -37,7 +36,6 @@
<string name="set_audio">Hang</string>
<string name="set_personalize">Testreszabás</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nem található zene</string>
<!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Keresés a könyvtárban…</string>
<!-- Description Namespace | Accessibility Strings -->
@ -112,7 +110,6 @@
<string name="lbl_mix">DJ Mix</string>
<string name="lbl_genre">Műfaj</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="clr_dynamic">Dinamikus</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">Átnevez</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_reset">Alaphelyzet</string>
<string name="lbl_author_name">Fejlesztő Alexander Capehart</string>
@ -185,7 +181,6 @@
<string name="def_date">Nincs dátum</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="desc_shuffle_all">Keverés minden dalból</string>
<string name="cdc_ogg">Ogg audio</string>
<string name="set_display">Megjelenítés</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="desc_exit">Lejátszás megállítása</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_singles">Kislemezek</string>
<string name="lbl_single">Kislemez</string>
@ -222,7 +216,6 @@
<string name="lbl_shuffle_shortcut_short">Keverés</string>
<string name="lbl_artist">Előadó</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="set_separators_slash">Per jel (/)</string>
<plurals name="fmt_artist_count">
@ -266,7 +259,6 @@
<string name="lbl_appears_on">Megjelenik itt,</string>
<string name="lbl_share">Megoszt</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_auxio_icon">Auxio ikon</string>
<string name="def_disc">Nincs lemez</string>
@ -280,7 +272,6 @@
<string name="lbl_sort_mode">Rendezés</string>
<string name="lbl_selection">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_report">Jelentés</string>
<string name="lbl_error_info">Hiba információ</string>

View file

@ -2,8 +2,6 @@
<resources>
<string name="lbl_indexing">Cargante le musica</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_song">Canto</string>
<string name="lbl_all_songs">Tote le cantos</string>
@ -45,7 +43,6 @@
<string name="lbl_play">Reproducer</string>
<string name="lbl_play_next">Reproducer sequente</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_code">Codice fonte</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_from_artist">Reproducer ab artista</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="fmt_lib_genre_count">Generes cargate: %d</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_remember_pause">Rememorar le pausa</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="err_no_music">Nulle musica trovate</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="desc_track_number">Tracia %d</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_mp3">Audio MPEG-1</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_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_selected">%d seligite</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Coba lagi</string>
<string name="lbl_grant">Izinkan</string>
<string name="lbl_genres">Aliran</string>
<string name="lbl_artists">Artis</string>
<string name="lbl_albums">Album</string>
@ -38,7 +37,6 @@
<string name="set_personalize">Personalisasi</string>
<string name="set_keep_shuffle">Ingat daftar putar acak</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Musik tidak ditemukan</string>
<!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Telusuri pustaka Anda…</string>
<!-- Description Namespace | Accessibility Strings -->
@ -55,7 +53,6 @@
<string name="lbl_bitrate">Laju bit</string>
<string name="lbl_ok">OK</string>
<string name="lbl_cancel">Batal</string>
<string name="lbl_add">Tambah</string>
<string name="lbl_save">Simpan</string>
<string name="set_black_mode">Tema hitam</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_locations">Folder musik</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_shuffle_all">Acak semua lagu</string>
<string name="def_date">Tidak ada tanggal</string>
<string name="err_index_failed">Pemuatan musik gagal</string>
<string name="desc_album_cover">Sampul album untuk %s</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_music_location_delete">Hapus folder</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="desc_genre_image">Gambar genre untuk %s</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_yellow">Kuning</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_balanced">Cepat</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_observing">Memantau pustaka musik</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_compilation">Kompilasi</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_album_live">Album live</string>
<plurals name="fmt_artist_count">

View file

@ -5,7 +5,6 @@
<string name="lng_widget">Visualizza e gestisci la riproduzione musicale</string>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Riprova</string>
<string name="lbl_grant">Autorizza</string>
<string name="lbl_genres">Generi</string>
<string name="lbl_artists">Artisti</string>
<string name="lbl_albums">Album</string>
@ -32,9 +31,7 @@
<string name="lng_queue_added">Aggiungi alla coda</string>
<string name="lbl_artist_details">Vai all\'artista</string>
<string name="lbl_album_details">Vai all\'album</string>
<string name="lbl_add">Aggiungi</string>
<string name="lbl_save">Salva</string>
<string name="err_no_locations">Nessuna cartella</string>
<string name="lbl_about">Informazioni</string>
<string name="lbl_version">Versione</string>
<string name="lbl_code">Codice sorgente</string>
@ -42,7 +39,7 @@
<string name="lbl_author_name">Alexander Capehart</string>
<string name="lbl_library_counts">Statistiche della libreria</string>
<!-- 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_theme">Tema</string>
<string name="set_theme_auto">Sistema</string>
@ -76,9 +73,7 @@
<string name="set_reindex">Aggiorna libreria</string>
<string name="set_reindex_desc">Ricarica la libreria musicale, usando i tag nella cache quando possibile</string>
<!-- 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_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_bad_location">Questa cartella non è supportata</string>
<!-- Hint Namespace | EditText Hints -->
@ -90,7 +85,6 @@
<string name="desc_skip_prev">Passa all\'ultimo brano</string>
<string name="desc_change_repeat">Cambia modalità ripetizione</string>
<string name="desc_shuffle">Attiva o disattiva la riproduzione casuale</string>
<string name="desc_shuffle_all">Riproduce casualmente tutti i brani</string>
<string name="desc_remove_song">Rimuovi questo brano</string>
<string name="desc_song_handle">Sposta questo brano</string>
<string name="desc_tab_handle">Sposta questa scheda</string>
@ -152,12 +146,11 @@
<string name="set_pre_amp_without">Regolazione senza tag</string>
<string name="lbl_shuffle_shortcut_short">Casuale</string>
<string name="lbl_shuffle_shortcut_long">Tutto in casuale</string>
<string name="set_pre_amp_with">Regolazione mediante 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_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">Cartelle musicali</string>
<string name="cdc_mka">Matroska audio</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="fmt_disc_no">Disco %d</string>
@ -182,7 +175,7 @@
<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_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="lbl_eps">EP</string>
<string name="lbl_ep">EP</string>
@ -219,7 +212,7 @@
<string name="set_separators">Separatori multi-valore</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_warning">Attenzione: potrebbero verificarsi degli errori nell\'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="lbl_compilation_live">Compilation live</string>
<string name="lbl_compilation_remix">Compilation remix</string>
@ -242,7 +235,6 @@
<string name="fmt_list">%1$s, %2$s</string>
<string name="lbl_reset">Ripristina</string>
<string name="set_behavior">Comportamento</string>
<string name="set_locations_list">Cartelle</string>
<string name="set_music">Musica</string>
<string name="set_images">Immagini</string>
<string name="set_library">Libreria</string>
@ -285,7 +277,6 @@
<string name="lbl_imported_playlist">Playlist esterna</string>
<string name="err_export_failed">Impossibile esportare la playlist in questo file</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="lbl_selection">Selezione</string>
<string name="lbl_copied">Copiato</string>
@ -330,8 +321,11 @@
<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">Libera spazio</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>
</resources>
<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>

View file

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

View file

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

View file

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

View file

@ -38,7 +38,6 @@
<string name="lbl_props">Dainos ypatybės</string>
<string name="lbl_save">Išsaugoti</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="lbl_format">Formatas</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="lbl_genres">Žanrai</string>
<string name="lbl_retry">Pakartoti</string>
<string name="lbl_grant">Suteikti</string>
<string name="lbl_indexing">Įkeliama muzika</string>
<string name="lng_indexing">Įkeliamas tavo muzikos biblioteka…</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_remix">Remikso mini albumas</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_remix">Remikso albumas</string>
<string name="lbl_live_group">Gyvai</string>
@ -122,7 +119,6 @@
<string name="cdc_ogg">Ogg garsas</string>
<string name="lbl_author_name">Aleksandras Keiphartas (angl. Alexander Capehart)</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="desc_play_pause">Leisti arba pristabdyti</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_tab_handle">Perkelti šį skirtuką</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_db_pos">+%.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="lbl_equalizer">Ekvalaizeris</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="def_track">Nėra takelio</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_artist_count">Įkelti atlikėjai: %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_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>
@ -245,7 +238,6 @@
<string name="set_images">Vaizdai</string>
<string name="set_playback">Įrašo perklausa</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="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>
@ -281,7 +273,6 @@
<string name="lbl_selection">Pasirinkimas</string>
<string name="lbl_error_info">Klaidos informacija</string>
<string name="lbl_copied">Nukopijuota</string>
<string name="lbl_show_error_info">Daugiau</string>
<string name="lbl_report">Pranešti</string>
<string name="def_album_count">Nėra albumų</string>
<string name="lbl_demo">Demo versija</string>
@ -330,4 +321,7 @@
<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>
</resources>
<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>

View file

@ -3,7 +3,6 @@
<string name="lbl_save">രക്ഷിക്കുക</string>
<string name="set_behavior">പെരുമാറ്റം</string>
<string name="set_content">ഉള്ളടക്കം</string>
<string name="err_no_music">സംഗീതമൊന്നും കണ്ടെത്തിയില്ല</string>
<string name="desc_queue_bar">വരി തുറക്കുക</string>
<string name="def_artist">അജ്ഞാത കലാകാരൻ</string>
<string name="clr_grey">ചാരനിറം</string>
@ -23,7 +22,6 @@
<string name="lbl_play_next">അടുത്തത് കളിക്കുക</string>
<string name="lbl_format">രൂപകല്പന</string>
<string name="lbl_size">വലിപ്പം</string>
<string name="lbl_add">ചേർക്കുക</string>
<string name="lbl_ok">ശരി</string>
<string name="lbl_cancel">റദ്ദാക്കുക</string>
<string name="set_theme_day">വെളിച്ചം</string>
@ -71,7 +69,6 @@
<string name="lbl_indexing">സംഗീതം ലോഡ് ചെയ്യുന്നു</string>
<string name="lbl_observing">സംഗീത ഗ്രന്ഥശാല നിരീക്ഷിക്കുന്നു</string>
<string name="lbl_retry">വീണ്ടും ശ്രമിക്കുക</string>
<string name="lbl_grant">അനുവദിക്കുക</string>
<string name="lbl_songs">ഗാനങ്ങൾ</string>
<string name="lbl_song_count">പാട്ടുകളുടെ എണ്ണം</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="lbl_date">Dato</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="set_intelligent_sorting">Intelligent sortering</string>
<string name="lbl_rename">Gi nytt navn</string>
@ -119,7 +118,6 @@
<string name="lbl_version">Versjon</string>
<string name="lbl_wiki">Wiki</string>
<string name="lbl_reset">Tilbakestill</string>
<string name="lbl_add">Legg til</string>
<string name="set_accent">Fargedrakt</string>
<string name="set_black_mode">Svart 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_rescan">Reskann musikk</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="lbl_library_counts">Bibliotekstatistikk</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="desc_skip_next">Hopp til neste 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="def_genre">Ukjent sjanger</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="desc_play_pause">Spill av eller pause</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_grey">Grå</string>
<string name="fmt_editing">Redigerer %s</string>
@ -239,7 +234,6 @@
<string name="lbl_single_live">Live-singel</string>
<string name="lbl_indexing">Laster inn musikk</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_songs">Spor</string>
<string name="lbl_album">Album</string>
@ -257,8 +251,6 @@
<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_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="cdc_ogg">OGG-lyd</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="lbl_demo">Demo</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_copied">Kopiert</string>
<string name="lbl_replaygain_album">ReplayGain-albumjustering</string>

View file

@ -20,8 +20,6 @@
<string name="lbl_indexing">गीतहरु लोड गर्दै</string>
<string name="lbl_observing">सङ्गीत लाइब्रेरी निगरानी गर्दै</string>
<string name="lbl_music_sources">फोल्डर छान्नुहोस्</string>
<string name="lbl_show_error_info">अझै</string>
<string name="lbl_grant">दिनुहोस्</string>
<string name="lbl_songs">गीतहरु</string>
<string name="lbl_song">गीत</string>
<string name="lbl_all_songs">सबै गीत</string>

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>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Probeer opnieuw</string>
<string name="lbl_grant">Sta toe</string>
<string name="lbl_genres">Genres</string>
<string name="lbl_artists">Artiesten</string>
<string name="lbl_albums">Albums</string>
@ -27,9 +26,7 @@
<string name="lng_queue_added">Toegevoegd aan wachtrij</string>
<string name="lbl_artist_details">Ga naar artiest</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="err_no_locations">Geen mappen</string>
<string name="lbl_about">Over</string>
<string name="lbl_version">Versie</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_content">Inhoud</string>
<!-- 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_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_bad_location">Deze map wordt niet ondersteund</string>
<!-- Hint Namespace | EditText Hints -->
@ -133,7 +128,6 @@
<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="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_reindex">Muziek opnieuw laden</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_mp4">MPEG-4 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_artist_count">Artiesten 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_confirm_delete_playlist">Verwijder afspeellijst?</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="fmt_deletion_info">%s verwijderen\? Dit kan niet ongedaan worden gemaakt.</string>
<string name="set_cover_mode_off">Uit</string>
@ -282,7 +274,6 @@
<string name="lbl_demo">Demo</string>
<string name="lbl_demos">Demo\'s</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_replaygain_track">ReplayGain spoor 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_ok">OK</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_save">Lagre</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="lbl_indexer">Musikk vert lasta inn</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_song">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_indexing">Lastar inn musikk</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_soundtrack">Ljodspor</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_library">Bibliotek</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="err_import_failed">Kan ikkje importere ei speleliste frå denne fila</string>
<string name="desc_skip_next">Hopp til neste spor</string>
@ -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_locations">Musikkmapper</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_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="err_index_failed">Klarte ikkje å laste inn musikk</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_auxio_icon">Auxio-ikon</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_song_handle">Flytt dette sporet</string>
<string name="desc_skip_prev">Hopp til siste spor</string>
@ -289,7 +281,6 @@
<string name="clr_yellow">Gul</string>
<string name="clr_orange">Oransje</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="cdc_mp4">MPEG-4-ljod</string>
<string name="cdc_aac">Avansert audio-koding (AAC)</string>

View file

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

View file

@ -6,7 +6,6 @@
<string name="lbl_mixtape">ਮਿਕਸਟੇਪ</string>
<string name="lbl_indexing">ਸੰਗੀਤ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</string>
<string name="lbl_retry">ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
<string name="lbl_grant">ਇਜਾਜ਼ਤ ਦਿਉ</string>
<string name="lbl_all_songs">ਸਾਰੇ ਗੀਤ</string>
<string name="lbl_albums">ਐਲਬਮ</string>
<string name="lbl_album">ਐਲਬਮ</string>
@ -75,7 +74,6 @@
<string name="lbl_artist_details">ਕਲਾਕਾਰ \'ਤੇ ਜਾਓ</string>
<string name="lbl_bitrate">ਬਿੱਟ ਰੇਟ</string>
<string name="lbl_sample_rate">ਸੈਂਪਲ ਰੇਟ</string>
<string name="lbl_add">ਸ਼ਾਮਿਲ ਕਰੋ</string>
<string name="lng_observing">ਤਬਦੀਲੀਆਂ ਲਈ ਤੁਹਾਡੀ ਸੰਗੀਤ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਨਿਗਰਾਨੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…</string>
<string name="lbl_licenses">ਲਾਈਸੈਂਸ</string>
<string name="lng_widget">ਸੰਗੀਤ ਪਲੇਬੈਕ ਵੇਖੋ ਅਤੇ ਕੰਟਰੋਲ ਕਰੋ</string>
@ -120,10 +118,8 @@
<string name="set_replay_gain_mode_album">ਐਲਬਮ ਨੂੰ ਤਰਜੀਹ</string>
<string name="set_pre_amp_without">ਬਿਨਾਂ ਟੈਗਾਂ ਦੇ ਐਡਜਸਟਮੈਂਟ</string>
<string name="set_locations_desc">ਪ੍ਰਬੰਧਿਤ ਕਰੋ ਕਿ ਸੰਗੀਤ ਕਿੱਥੋਂ ਲੋਡ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ</string>
<string name="set_locations_list">ਫੋਲਡਰ</string>
<string name="set_reindex">ਸੰਗੀਤ ਤਾਜ਼ਾ-ਤਰੀਨ ਕਰੋ</string>
<string name="err_no_app">ਕੋਈ ਐਪ ਨਹੀਂ ਮਿਲੀ ਜੋ ਇਸ ਕਾਰਜ ਨੂੰ ਸੰਭਾਲ ਸਕਦੀ ਹੈ</string>
<string name="err_no_locations">ਕੋਈ ਫੋਲਡਰ ਨਹੀਂ</string>
<string name="err_bad_location">ਇਹ ਫੋਲਡਰ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ</string>
<string name="desc_play_pause">ਚਲਾਓ ਜਾਂ ਰੋਕੋ</string>
<string name="desc_skip_next">ਅਗਲੇ ਗੀਤ \'ਤੇ ਜਾਓ</string>
@ -137,9 +133,7 @@
<string name="set_pre_amp_with">ਟੈਗਸ ਨਾਲ ਐਡਜਸਟਮੈਂਟ</string>
<string name="set_pre_amp_warning">ਚੇਤਾਵਨੀ: ਪ੍ਰੀ-ਐਂਪ ਨੂੰ ਉੱਚ ਸਕਾਰਾਤਮਕ ਮੁੱਲ ਵਿੱਚ ਬਦਲਣ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕੁਝ ਆਡੀਓ ਟਰੈਕਾਂ \'ਤੇ ਸਿਖਰ ਹੋ ਸਕਦਾ ਹੈ।</string>
<string name="set_rescan_desc">ਟੈਗ ਕੈਸ਼ ਨੂੰ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਸੰਗੀਤ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਰੀਲੋਡ ਕਰੋ (ਹੌਲੀ, ਪਰ ਵਧੇਰੇ ਸੰਪੂਰਨ)</string>
<string name="err_no_music">ਕੋਈ ਸੰਗੀਤ ਨਹੀਂ ਮਿਲਿਆ</string>
<string name="err_index_failed">ਸੰਗੀਤ ਲੋਡ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</string>
<string name="err_no_perms">Auxio ਨੂੰ ਤੁਹਾਡੀ ਸੰਗੀਤ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਪੜ੍ਹਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</string>
<string name="desc_track_number">%d ਨੂੰ ਟਰੈਕ ਕਰੋ</string>
<string name="set_hide_collaborators_desc">ਸਿਰਫ਼ ਉਹਨਾਂ ਕਲਾਕਾਰਾਂ ਨੂੰ ਦਿਖਾਓ ਜੋ ਕਿਸੇ ਐਲਬਮ \'ਤੇ ਸਿੱਧੇ ਤੌਰ \'ਤੇ ਕ੍ਰੈਡਿਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ (ਚੰਗੀ ਤਰ੍ਹਾਂ ਨਾਲ ਟੈਗ ਕੀਤੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ \'ਤੇ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ</string>
<string name="set_exclude_non_music_desc">ਉਹਨਾਂ ਆਡੀਓ ਫਾਈਲਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰੋ ਜੋ ਸੰਗੀਤ ਨਹੀਂ ਹਨ, ਜਿਵੇਂ ਕਿ ਪੌਡਕਾਸਟ</string>
@ -178,7 +172,6 @@
<string name="desc_song_handle">ਇਸ ਕਤਾਰ ਗੀਤ ਨੂੰ ਮੂਵ ਕਰੋ</string>
<string name="desc_change_repeat">ਦੁਹਰਾਓ ਮੋਡ ਬਦਲੋ</string>
<string name="desc_shuffle">ਸ਼ਫਲ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰੋ</string>
<string name="desc_shuffle_all">ਸਾਰੇ ਗੀਤਾਂ ਨੂੰ ਸ਼ਫਲ ਕਰੋ</string>
<string name="desc_exit">ਪਲੇਬੈਕ ਬੰਦ ਕਰੋ</string>
<string name="lbl_new_playlist">ਨਵੀਂ ਪਲੇਅ-ਲਿਸਟ</string>
<string name="lbl_playlist_add">ਪਲੇਅ-ਲਿਸਟ ਵਿੱਚ ਜੋੜ੍ਹੋ</string>
@ -193,7 +186,6 @@
<string name="lng_playlist_added">ਪਲੇਅ- ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕੀਤਾ</string>
<string name="desc_tab_handle">ਇਹ ਟੈਬ ਹਿਲਾਓ</string>
<string name="def_song_count">ਕੋਈ ਗੀਤ ਨਹੀਂ</string>
<string name="cdc_mka">Matroska ਆਡੀਓ</string>
<string name="clr_deep_purple">ਗੂੜ੍ਹਾ ਜ੍ਹਾਮਣੀ</string>
<string name="cdc_ogg">Ogg ਆਡੀਓ</string>
<string name="fmt_lib_song_count">%d: ਗੀਤ ਲੋਡ ਕੀਤੇ</string>
@ -273,7 +265,6 @@
<string name="lbl_sort_direction">ਦਿਸ਼ਾ</string>
<string name="lbl_selection">ਚੋਣ</string>
<string name="desc_selection_image">ਚੋਣ ਚਿੱਤਰ</string>
<string name="lbl_show_error_info">ਹੋਰ</string>
<string name="lbl_error_info">ਤਰੁੱਟੀ ਦੀ ਜਾਣਕਾਰੀ</string>
<string name="lbl_copied">ਕਾਪੀ ਕੀਤਾ ਗਿਆ</string>
<string name="lbl_report">ਰਿਪੋਰਟ ਕਰੋ</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Ponów</string>
<string name="lbl_grant">Zezwól</string>
<string name="lbl_genres">Gatunki</string>
<string name="lbl_artists">Wykonawcy</string>
<string name="lbl_albums">Albumy</string>
@ -37,7 +36,6 @@
<string name="set_audio">Dźwięk</string>
<string name="set_personalize">Interfejs</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nie znaleziono utworów</string>
<!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Utwór %d</string>
<string name="desc_play_pause">Odtwórz albo zapauzuj</string>
@ -108,7 +106,6 @@
<string name="lbl_genre">Gatunek</string>
<string name="lbl_shuffle_shortcut_long">Wszystkie losowo</string>
<string name="fmt_sample_rate">%d Hz</string>
<string name="lbl_add">Dodaj</string>
<string name="set_black_mode">Czarny motyw</string>
<string name="clr_deep_purple">Ciemny fioletowy</string>
<string name="fmt_db_neg">-%.1f dB</string>
@ -129,7 +126,6 @@
<string name="def_track">Brak utworu</string>
<string name="lbl_equalizer">Korektor</string>
<string name="lbl_size">Rozmiar</string>
<string name="err_no_locations">Brak folderów</string>
<string name="set_play_song_from_all">Odtwórz wszystkie utwory</string>
<string name="set_play_song_from_album">Odtwórz album</string>
<string name="set_headset_autoplay_desc">Automatycznie odtwórz muzykę po podłączeniu słuchawek (może nie działać na wszystkich urządzeniach)</string>
@ -179,7 +175,6 @@
<string name="set_display">Elementy</string>
<string name="clr_dynamic">Material You</string>
<string name="fmt_bitrate">%d kb/s</string>
<string name="cdc_mka">Matroska</string>
<string name="set_locations">Foldery z muzyką</string>
<string name="set_locations_desc">Wybierz z których folderów importowane są utwory</string>
<string name="set_rewind_prev">Przewiń przed odtworzeniem poprzedniego utworu</string>
@ -205,7 +200,6 @@
<string name="set_repeat_pause_desc">Zatrzymaj odtwarzanie, kiedy utwór się powtórzy</string>
<string name="set_separators">Znaki oddzielające wartości</string>
<string name="set_separators_desc">Wybierz znaki oddzielające poszczególne wartości w metadanych</string>
<string name="err_no_perms">Auxio wymaga zgody na dostęp do twojej biblioteki muzycznej</string>
<string name="err_bad_location">Ten folder nie jest wspierany</string>
<string name="def_playback">Utwory nie są odtwarzane</string>
<string name="fmt_indexing">Importuję bibliotekę muzyczną… (%1$d/%2$d)</string>
@ -213,7 +207,6 @@
<string name="fmt_lib_genre_count">Zaimportowane gatunki: %d</string>
<string name="fmt_lib_total_duration">Łączny czas trwania: %s</string>
<string name="desc_change_repeat">Zmień tryb powtarzania</string>
<string name="desc_shuffle_all">Odtwórz losowo wszystkie utwory</string>
<string name="lng_observing">Monitoruję zmiany w bibliotece muzycznej…</string>
<string name="lbl_indexer">Importowanie utworów</string>
<string name="lbl_observing">Monitoruję bibliotekę muzyczną</string>
@ -234,7 +227,6 @@
<string name="set_personalize_desc">Dostosuj elementy i funkcje interfejsu</string>
<string name="set_hide_collaborators_desc">Pokaż tylko artystów bezpośrednio przypisanych do albumu (działa najlepiej w przypadku dobrze otagowanych bibliotek)</string>
<string name="set_playback">Odtwarzanie</string>
<string name="set_locations_list">Foldery</string>
<string name="set_images">Obrazy</string>
<string name="set_audio_desc">Zarządzaj dźwiękiem i odtwarzaniem muzyki</string>
<string name="fmt_selected">Wybrano %d</string>
@ -295,7 +287,6 @@
<string name="lbl_export">Eksportuj</string>
<string name="lbl_path_style">Styl ścieżki</string>
<string name="desc_selection_image">Wybór obrazu</string>
<string name="lbl_show_error_info">Więcej</string>
<string name="lbl_selection">Zaznaczenie</string>
<string name="lbl_copied">Skopiowano</string>
<string name="lbl_author">Autor</string>
@ -335,4 +326,4 @@
<string name="lng_empty_artists">Tutaj pojawią się dodani artyści.</string>
<string name="lng_empty_playlists">Tutaj pojawią się dodane playlisty.</string>
<string name="lng_empty_genres">Tutaj pojawią się dodane gatunki.</string>
</resources>
</resources>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Tentar novamente</string>
<string name="lbl_grant">Confirmar</string>
<string name="lbl_genres">Gêneros</string>
<string name="lbl_artists">Artistas</string>
<string name="lbl_albums">Álbuns</string>
@ -38,7 +37,6 @@
<string name="set_personalize">Comportamento</string>
<string name="set_keep_shuffle">Manter modo aleatório ativado</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nenhuma música encontrada</string>
<!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Faixa %d</string>
<string name="desc_play_pause">Reproduzir ou pausar</string>
@ -74,7 +72,6 @@
<string name="lbl_song_detail">Ver propriedades</string>
<string name="lbl_shuffle_shortcut_short">Aleatório</string>
<string name="lbl_shuffle_shortcut_long">Aleatorizar tudo</string>
<string name="lbl_add">Adicionar</string>
<string name="lbl_save">Salvar</string>
<string name="lbl_library_counts">Estatísticas da biblioteca</string>
<string name="set_notif_action">Usar player de notificação alternativo</string>
@ -84,14 +81,12 @@
<string name="set_locations_desc">Gerencia de onde as músicas devem ser carregadas</string>
<string name="err_index_failed">Falha ao carregar músicas</string>
<string name="err_no_app">Nenhum aplicativo encontrado que possa lidar com esta tarefa</string>
<string name="err_no_locations">Sem pastas</string>
<string name="err_bad_location">Esta pasta não é compatível</string>
<string name="set_reindex_desc">Recarrega a biblioteca de músicas usando metadados salvos em cache quando possível</string>
<string name="set_rewind_prev">Retroceder antes de voltar</string>
<string name="set_reindex">Recarregar música</string>
<string name="set_rewind_prev_desc">Retroceder a música antes de voltar para a anterior</string>
<string name="err_no_perms">O Auxio precisa de permissão para ler sua biblioteca de músicas</string>
<string name="info_app_desc">Um reprodutor de música simples e racional para android.</string>
<string name="info_app_desc">Um reprodutor de música simples e racional para Android.</string>
<string name="lng_indexing">Carregando a sua biblioteca de músicas…</string>
<string name="lbl_date">Ano</string>
<string name="lbl_duration">Duração</string>
@ -114,7 +109,6 @@
<string name="set_repeat_pause_desc">Pausar quando uma música se repete</string>
<string name="desc_skip_prev">Pular para a música anterior</string>
<string name="desc_change_repeat">Alterar o modo de repetição</string>
<string name="desc_shuffle_all">Aleatorizar todas das músicas</string>
<string name="desc_remove_song">Remover esta música da fila</string>
<string name="desc_clear_search">Limpar histórico de pesquisa</string>
<string name="desc_album_cover">Capa do álbum para %s</string>
@ -136,7 +130,6 @@
<string name="cdc_mp3">Áudio MPEG-1</string>
<string name="cdc_mp4">Áudio MPEG-4</string>
<string name="cdc_ogg">Áudio Ogg</string>
<string name="cdc_mka">Áudio Matroska</string>
<string name="cdc_aac">Advanced Audio Coding (AAC)</string>
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
<string name="desc_song_handle">Mover esta música da fila</string>
@ -167,17 +160,17 @@
<string name="lbl_album_live">Álbum ao vivo</string>
<string name="lbl_soundtracks">Trilhas sonoras</string>
<string name="lbl_soundtrack">Trilha sonora</string>
<string name="lbl_album_remix">Álbum remix</string>
<string name="lbl_album_remix">Álbum de remix</string>
<string name="lbl_ep_live">EP ao vivo</string>
<string name="lbl_ep_remix">Álbum de Remix</string>
<string name="lbl_ep_remix">EP de remix</string>
<string name="lbl_single_live">Single ao vivo</string>
<string name="lng_observing">Monitorando alterações na sua biblioteca de músicas…</string>
<string name="set_lib_tabs">Abas da biblioteca</string>
<string name="lbl_genre">Gênero</string>
<string name="set_play_song_from_artist">Reproduzir do artista</string>
<string name="set_pre_amp_with">Ajuste em faixas com metadados</string>
<string name="lbl_indexer">Carregando música</string>
<string name="lbl_indexing">Carregando música</string>
<string name="lbl_indexer">Carregamento de músicas</string>
<string name="lbl_indexing">Carregando músicas</string>
<string name="lbl_observing">Monitorando a biblioteca de músicas</string>
<string name="set_round_mode">Cantos arredondados</string>
<string name="set_action_mode_next">Pular para o próximo</string>
@ -219,9 +212,9 @@
<string name="set_exclude_non_music_desc">Ignora arquivos de áudio que não sejam música, como podcasts</string>
<string name="set_separators_warning">Aviso: Usar essa configuração pode resultar em alguns metadados serem interpretadas incorretamente como tendo múltiplos valores. Você pode resolver isso pré-definindo caracteres de separador indesejados com uma barra invertida (\\).</string>
<string name="set_exclude_non_music">Ignorar arquivos que não sejam músicas</string>
<string name="set_cover_mode">Capas de álbuns</string>
<string name="set_cover_mode_off">Desligado</string>
<string name="set_cover_mode_balanced">Rápido</string>
<string name="set_cover_mode">Qualidade das capas de álbuns</string>
<string name="set_cover_mode_off">Desativado</string>
<string name="set_cover_mode_balanced">Equilibrado</string>
<string name="set_cover_mode_high_quality">Alta qualidade</string>
<string name="lbl_mixes">Mixagens de DJ</string>
<string name="lbl_mix">Mixagem de DJ</string>
@ -249,7 +242,6 @@
<string name="set_replay_gain">Normalização de volume</string>
<string name="set_library">Biblioteca</string>
<string name="set_behavior">Comportamento</string>
<string name="set_locations_list">Pastas</string>
<string name="lbl_sort_dsc">Decrescente</string>
<string name="set_intelligent_sorting">Ignorar artigos ao classificar</string>
<string name="set_intelligent_sorting_desc">Ignore palavras como \"the\" ao classificar por nome (funciona melhor com músicas em inglês)</string>
@ -257,7 +249,6 @@
<string name="fmt_def_playlist">Playlist %d</string>
<string name="lbl_playlist">Playlist</string>
<string name="lng_playlist_created">Playlist criada</string>
<string name="lbl_show_error_info">Mais</string>
<string name="lbl_delete">Apagar</string>
<string name="lbl_copied">Copiado</string>
<string name="lbl_playlist_add">Adicionar à playlist</string>
@ -332,6 +323,9 @@
<string name="lng_empty_artists">Os seus artistas aparecerão aqui.</string>
<string name="lng_empty_playlists">As suas playlists aparecerão aqui.</string>
<string name="lng_empty_genres">Os seus gêneros aparecerão aqui.</string>
<string name="set_cover_mode_save_space">Salvar espaço</string>
<string name="set_cover_mode_save_space">Economizar espaço</string>
<string name="set_locations_new">Nova pasta</string>
</resources>
<string name="set_cover_mode_as_is">Qualidade original</string>
<string name="set_with_hidden_desc">Ignorar arquivos e pastas que estão ocultos (por exemplo, .cache)</string>
<string name="set_with_hidden">Ignorar arquivos ocultos</string>
</resources>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Tentar novamente</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_genres">Géneros</string>
<string name="lbl_artists">Artistas</string>
<string name="lbl_albums">Álbuns</string>
@ -39,7 +38,6 @@
<string name="set_personalize">Personalizar</string>
<string name="set_keep_shuffle">Memorizar música misturada</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nenhuma música encontrada</string>
<!-- Description Namespace | Accessibility Strings -->
<string name="desc_track_number">Música %d</string>
<string name="desc_play_pause">Reproduzir ou pausar</string>
@ -95,8 +93,6 @@
<string name="set_action_mode_repeat">Modo de repetição</string>
<string name="set_play_song_from_artist">Reproduzir do artista</string>
<string name="set_repeat_pause">Pausar na repetição</string>
<string name="err_no_perms">O Auxio precisa de permissão para ler a sua biblioteca de músicas</string>
<string name="err_no_locations">Sem pastas</string>
<string name="err_bad_location">Esta pasta não é compatível</string>
<string name="desc_song_handle">Mover esta música da fila</string>
<string name="desc_music_location_delete">Remover pasta</string>
@ -119,7 +115,6 @@
<string name="lbl_song_detail">Propriedades</string>
<string name="lbl_props">Propriedades da música</string>
<string name="lbl_ok">OK</string>
<string name="lbl_add">Adicionar</string>
<string name="set_black_mode">Tema preto</string>
<string name="desc_clear_search">Limpar consulta de pesquisa</string>
<string name="desc_genre_image">Imagem de gênero para %s</string>
@ -182,9 +177,7 @@
<string name="set_play_song_from_all">Reproduzir de todas as músicas</string>
<string name="set_repeat_pause_desc">Pausar quando uma música é repetida</string>
<string name="desc_shuffle">Ativar ou desativar a reprodução aleatória</string>
<string name="desc_shuffle_all">Embaralhar todas as músicas</string>
<string name="desc_remove_song">Remover esta música de fila</string>
<string name="cdc_mka">Áudio Matroska</string>
<string name="cdc_aac">Codificação de Audio Avançada (AAC)</string>
<string name="lbl_album">Álbum</string>
<string name="lbl_eps">Miniálbuns</string>
@ -247,7 +240,6 @@
<string name="set_images">Imagens</string>
<string name="set_audio_desc">Configurar o som e comportamento da reprodução</string>
<string name="set_playback">Reprodução</string>
<string name="set_locations_list">Pastas</string>
<string name="set_library">Biblioteca</string>
<string name="set_separators_and">E comercial (&amp;)</string>
<string name="set_behavior">Comportamento</string>
@ -261,7 +253,6 @@
<string name="fmt_def_playlist">Lista de reprodução %d</string>
<string name="lbl_playlist">Lista de reprodução</string>
<string name="lng_playlist_created">Lista de reprodução criada</string>
<string name="lbl_show_error_info">Mais</string>
<string name="desc_playlist_image">Imagem da lista de reprodução de %s</string>
<string name="lbl_delete">Eliminar</string>
<string name="def_disc">Nenhum disco</string>

View file

@ -3,9 +3,7 @@
<string name="lng_playlist_imported">Lista de reprodução importada</string>
<string name="lbl_observing">A monitorizar a biblioteca de música</string>
<string name="lbl_retry">Tentar novamente</string>
<string name="lbl_show_error_info">Mais</string>
<string name="info_app_desc">Um reprodutor de música simples e racional para Android.</string>
<string name="lbl_grant">Permitir</string>
<string name="lbl_song">Música</string>
<string name="lbl_all_songs">Todas as músicas</string>
<string name="lbl_albums">Álbuns</string>
@ -77,7 +75,6 @@
<string name="lbl_edit">Editar</string>
<string name="lbl_name">Nome</string>
<string name="lbl_cancel">Cancelar</string>
<string name="lbl_add">Adicionar</string>
<string name="lbl_save">Salvar</string>
<string name="set_ui_desc">Mudar o tema e cores da app</string>
<string name="set_theme">Tema</string>
@ -114,7 +111,6 @@
<string name="lng_search_library">Procurar na biblioteca…</string>
<string name="set_replay_gain_mode_off">Desligado</string>
<string name="set_locations_desc">Configurar onde a música deve ser carregada</string>
<string name="set_locations_list">Pastas</string>
<string name="desc_shuffle">Ativar ou desativar a reprodução aleatória</string>
<string name="desc_selection_image">Seleção de imagem</string>
<string name="clr_green">Verde</string>
@ -185,14 +181,11 @@
<string name="set_pre_amp_desc">O pré-amplificador é aplicado ao ajuste existente durante a reprodução</string>
<string name="set_pre_amp_with">Ajustar com etiquetas</string>
<string name="set_pre_amp_without">Ajustar sem etiquetas</string>
<string name="err_no_music">Nenhuma música encontrada</string>
<string name="err_index_failed">Falha ao carregar música</string>
<string name="err_no_perms">O Auxio precisa de permissão para ler a sua biblioteca de músicas</string>
<string name="desc_track_number">Música %d</string>
<string name="desc_play_pause">Reproduzir ou pausar</string>
<string name="desc_skip_next">Pular para a próxima música</string>
<string name="desc_skip_prev">Pular para a última música</string>
<string name="desc_shuffle_all">Embaralhar todas as músicas</string>
<string name="desc_auxio_icon">Ícone do Auxio</string>
<string name="desc_no_cover">Capa do álbum</string>
<string name="def_disc">Nenhum disco</string>
@ -280,7 +273,6 @@
<string name="err_import_failed">Não foi possível importar uma lista de reprodução deste ficheiro</string>
<string name="err_export_failed">Incapaz de exportar a lista de reprodução para este ficheiro</string>
<string name="err_no_app">Nenhuma aplicação encontrada que possa executar esta tarefa</string>
<string name="err_no_locations">Sem pastas</string>
<string name="err_bad_location">Esta pasta não é compatível</string>
<string name="desc_change_repeat">Alterar o modo de repetição</string>
<string name="desc_exit">Parar reprodução</string>
@ -299,7 +291,6 @@
<string name="cdc_mp3">Áudio MPEG-1</string>
<string name="cdc_mp4">Áudio MPEG-4</string>
<string name="cdc_ogg">Áudio Ogg</string>
<string name="cdc_mka">Áudio Matroska</string>
<string name="clr_deep_blue">Azul profundo</string>
<string name="clr_teal">Azul-verde</string>
<string name="clr_grey">Grisalho</string>

View file

@ -2,7 +2,6 @@
<resources>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Reîncercați</string>
<string name="lbl_grant">Permiteți</string>
<string name="lbl_genres">Genuri</string>
<string name="lbl_artists">Artiști</string>
<string name="lbl_albums">Albume</string>
@ -38,7 +37,6 @@
<string name="set_audio">Audio</string>
<string name="set_personalize">Comportament</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Nu a fost găsită muzică</string>
<!-- Hint Namespace | EditText Hints -->
<string name="lng_search_library">Căutați în bibliotecă…</string>
<!-- Description Namespace | Accessibility Strings -->
@ -106,7 +104,6 @@
<string name="lbl_format">Format</string>
<string name="lbl_props">Proprietățile cântecului</string>
<string name="lbl_shuffle_shortcut_short">Amestecare</string>
<string name="lbl_add">Adaugă</string>
<string name="lbl_sample_rate">Frecvența de eșantionare</string>
<string name="lbl_save">Salvează</string>
<string name="lbl_genre">Gen</string>
@ -194,7 +191,6 @@
<string name="set_rescan">Re-scanează muzica</string>
<string name="set_rescan_desc">Șterge memoria cache cu taguri și reîncarcă biblioteca de muzică de tot (mai încet, dar mai complet)</string>
<string name="fmt_lib_song_count">Cântece încărcate %d</string>
<string name="desc_shuffle_all">Amestecă toate cântecele</string>
<string name="clr_cyan">Bleu</string>
<string name="def_playback">Nu se redă muzică</string>
<string name="fmt_deletion_info">Ștergi %s? Nu te poți răzgândi după aceea.</string>
@ -215,10 +211,8 @@
<string name="desc_genre_image">Imagine gen pentru %s</string>
<string name="desc_playlist_image">Imagine playlist pentru %s</string>
<string name="def_artist">Artist necunoscut</string>
<string name="lbl_show_error_info">Vezi mai mult</string>
<string name="set_separators_desc">Configurează caracterele care denotă mai multe valori de taguri</string>
<string name="set_locations">Foldere cu muzică</string>
<string name="set_locations_list">Foldere</string>
<string name="def_song_count">Fără cântece</string>
<string name="desc_artist_image">Imagine artist pentru %s</string>
<string name="lng_playlist_imported">Playlist importat</string>
@ -258,9 +252,7 @@
<string name="set_play_song_by_itself">Redă cântecul fără să facă parte din nicio listă</string>
<string name="set_repeat_pause_desc">Pune pauză atunci când un cântec se repetă</string>
<string name="err_index_failed">Încărcarea muzicii a eșuat</string>
<string name="err_no_perms">Auxio are nevoie de permisiune ca să-ți acceseze biblioteca de muzică</string>
<string name="desc_song_handle">Mută acest cântec</string>
<string name="err_no_locations">Niciun dosar</string>
<string name="desc_shuffle">Pornește sau oprește amestecarea</string>
<string name="desc_exit">Oprește redarea</string>
<string name="desc_remove_song">Elimină acest cântec</string>

View file

@ -5,7 +5,6 @@
<string name="lng_widget">Настройки воспроизведения</string>
<!-- Label Namespace | Static Labels -->
<string name="lbl_retry">Повторить попытку</string>
<string name="lbl_grant">Разрешить</string>
<string name="lbl_genres">Жанры</string>
<string name="lbl_artists">Исполнители</string>
<string name="lbl_albums">Альбомы</string>
@ -32,9 +31,7 @@
<string name="lng_queue_added">Добавлено в очередь</string>
<string name="lbl_artist_details">Перейти к исполнителю</string>
<string name="lbl_album_details">Перейти к альбому</string>
<string name="lbl_add">Добавить</string>
<string name="lbl_save">Сохранить</string>
<string name="err_no_locations">Нет папок</string>
<string name="lbl_about">О программе</string>
<string name="lbl_version">Версия</string>
<string name="lbl_code">Исходный код</string>
@ -75,9 +72,7 @@
<string name="set_reindex">Обновить музыку</string>
<string name="set_reindex_desc">Обновлять библиотеку, при возможности используя кэш тегов</string>
<!-- Error Namespace | Error Labels -->
<string name="err_no_music">Треков нет</string>
<string name="err_index_failed">Ошибка чтения библиотеки</string>
<string name="err_no_perms">Auxio требуется разрешение на чтение музыкальной библиотеки</string>
<string name="err_no_app">Нет приложений для открытия данной ссылки</string>
<string name="err_bad_location">Эта папка не поддерживается</string>
<!-- Hint Namespace | EditText Hints -->
@ -89,7 +84,6 @@
<string name="desc_skip_prev">Вернуться к предыдущему треку</string>
<string name="desc_change_repeat">Режим повтора</string>
<string name="desc_shuffle">Перемешивание</string>
<string name="desc_shuffle_all">Перемешать все треки</string>
<string name="desc_remove_song">Удалить трек из очереди</string>
<string name="desc_song_handle">Переместить трек в очереди</string>
<string name="desc_tab_handle">Переместить вкладку</string>
@ -172,7 +166,6 @@
<string name="cdc_mp3">MPEG-1</string>
<string name="cdc_flac">FLAC</string>
<string name="fmt_lib_total_duration">Общая продолжительность: %s</string>
<string name="cdc_mka">Matroska</string>
<string name="fmt_disc_no">Диск %d</string>
<string name="fmt_db_pos">+%.1f дБ</string>
<string name="desc_queue_bar">Открыть очередь</string>
@ -254,7 +247,6 @@
<string name="set_content_desc">Управляйте загрузкой музыки и изображений</string>
<string name="set_audio_desc">Настройка звука и поведения при воспроизведении</string>
<string name="set_playback">Воспроизведение</string>
<string name="set_locations_list">Папки</string>
<string name="lbl_sort_dsc">По убыванию</string>
<string name="lbl_playlist">Плейлист</string>
<string name="lbl_playlists">Плейлисты</string>
@ -288,7 +280,6 @@
<string name="lbl_sort_direction">Направление</string>
<string name="lbl_selection">Выберите</string>
<string name="desc_selection_image">Выберите изображение</string>
<string name="lbl_show_error_info">Дополнительно</string>
<string name="lbl_error_info">Информация об ошибке</string>
<string name="lbl_report">Отчёт об ошибке</string>
<string name="lbl_copied">Скопировано</string>

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