From 90cd359f6323ba57f2dd8f9ade65f6dcb5accc2a Mon Sep 17 00:00:00 2001 From: dwi336 Date: Sun, 7 Apr 2019 21:10:04 +0200 Subject: [PATCH] Merged with upstream project --- .classpath | 2 +- README.md | 2 +- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 12 +- .../org/lineageos/eleven/BuildConstants.java | 21 + .../lineageos/eleven/ElevenApplication.java | 67 +- .../eleven/MediaButtonIntentReceiver.java | 2 +- .../eleven/MusicPlaybackService.java | 144 +-- .../eleven/adapters/AlbumArtPagerAdapter.java | 6 +- .../eleven/adapters/PagerAdapter.java | 4 +- .../eleven/appwidgets/AppWidgetBase.java | 2 - .../eleven/appwidgets/AppWidgetLarge.java | 1 - .../appwidgets/AppWidgetLargeAlternate.java | 1 - .../eleven/appwidgets/AppWidgetSmall.java | 1 - .../eleven/cache/BitmapWorkerTask.java | 2 +- .../eleven/cache/BlurBitmapWorkerTask.java | 4 +- .../lineageos/eleven/cache/DiskLruCache.java | 969 ------------------ .../lineageos/eleven/cache/ImageCache.java | 87 +- .../lineageos/eleven/cache/ImageWorker.java | 4 +- .../org/lineageos/eleven/cache/LruCache.java | 4 +- .../eleven/cache/PlaylistWorkerTask.java | 14 +- .../cache/disklrucache/DiskLruCache.java | 943 +++++++++++++++++ .../cache/disklrucache/StrictLineReader.java | 196 ++++ .../eleven/cache/disklrucache/Util.java | 77 ++ .../eleven/loaders/NowPlayingCursor.java | 1 - .../eleven/loaders/PlaylistSongLoader.java | 2 +- .../lineageos/eleven/loaders/SongLoader.java | 15 +- .../eleven/loaders/SortedCursor.java | 8 +- .../eleven/locale/HanziToPinyin.java | 223 ---- .../eleven/locale/LocaleChangeReceiver.java | 5 +- .../lineageos/eleven/locale/LocaleSet.java | 3 +- .../eleven/locale/LocaleSetManager.java | 20 +- .../lineageos/eleven/locale/LocaleUtils.java | 275 +---- .../eleven/menu/PhotoSelectionDialog.java | 3 +- .../org/lineageos/eleven/model/Playlist.java | 46 +- .../lineageos/eleven/model/SearchResult.java | 2 +- .../eleven/provider/LocalizedStore.java | 17 +- .../lineageos/eleven/provider/MusicDB.java | 5 +- .../eleven/provider/PlaylistArtworkStore.java | 123 +-- .../eleven/provider/SearchHistory.java | 2 +- .../eleven/provider/SongPlayCount.java | 7 +- .../eleven/sectionadapter/SectionAdapter.java | 2 +- .../eleven/sectionadapter/SectionCreator.java | 2 +- .../org/lineageos/eleven/ui/MusicHolder.java | 24 +- .../eleven/ui/activities/BaseActivity.java | 40 +- .../eleven/ui/activities/HomeActivity.java | 6 +- .../eleven/ui/activities/SearchActivity.java | 60 +- .../preview/AudioPreviewActivity.java | 2 +- .../eleven/ui/fragments/AlbumFragment.java | 2 +- .../eleven/ui/fragments/ArtistFragment.java | 4 +- .../ui/fragments/AudioPlayerFragment.java | 76 +- .../eleven/ui/fragments/PlaylistFragment.java | 93 +- .../eleven/ui/fragments/QueueFragment.java | 24 +- .../eleven/ui/fragments/RecentFragment.java | 4 +- .../eleven/ui/fragments/SongFragment.java | 2 +- .../fragments/profile/BasicSongFragment.java | 2 +- .../fragments/profile/LastAddedFragment.java | 4 +- .../fragments/profile/TopTracksFragment.java | 4 +- .../eleven/utils/BitmapWithColors.java | 2 +- .../eleven/utils/ContextMenuBuilder.java | 248 ----- .../lineageos/eleven/utils/ElevenUtils.java | 14 +- .../org/lineageos/eleven/utils/IoUtils.java | 36 + .../eleven/utils/ListMenuPresenterHelper.java | 77 -- .../org/lineageos/eleven/utils/Lists.java | 4 +- .../eleven/utils/MenuBuilderHelper.java | 509 --------- .../eleven/utils/MenuDialogHelper.java | 154 --- .../lineageos/eleven/utils/MusicUtils.java | 814 +++++++++------ .../org/lineageos/eleven/utils/NavUtils.java | 4 - .../eleven/utils/PopupMenuHelper.java | 46 +- .../eleven/utils/SectionCreatorUtils.java | 323 +++--- .../lineageos/eleven/utils/ShakeDetector.java | 2 +- .../org/lineageos/eleven/utils/SrtParser.java | 4 +- .../eleven/widgets/AlphaPatternDrawable.java | 6 +- .../widgets/LayoutSuppressingImageView.java | 2 + .../eleven/widgets/LetterTileDrawable.java | 11 +- .../eleven/widgets/LoadingEmptyContainer.java | 23 +- .../eleven/widgets/NoResultsContainer.java | 7 +- .../eleven/widgets/SeparatedListAdapter.java | 4 +- .../lineageos/eleven/widgets/SquareView.java | 4 +- .../eleven/widgets/VisualizerView.java | 83 +- .../main/res/layout/no_results_message.xml | 1 + app/src/main/res/values-af/plurals.xml | 99 +- app/src/main/res/values-af/strings.xml | 324 +++--- app/src/main/res/values-ar/plurals.xml | 187 ++-- app/src/main/res/values-ar/strings.xml | 326 +++--- app/src/main/res/values-as-rIN/plurals.xml | 83 +- app/src/main/res/values-as-rIN/strings.xml | 324 +++--- app/src/main/res/values-as/plurals.xml | 56 + app/src/main/res/values-as/strings.xml | 175 ++++ app/src/main/res/values-ast-rES/plurals.xml | 95 +- app/src/main/res/values-ast-rES/strings.xml | 271 ++--- app/src/main/res/values-az/plurals.xml | 99 +- app/src/main/res/values-az/strings.xml | 320 +++--- app/src/main/res/values-be/strings.xml | 324 +++--- app/src/main/res/values-bg/plurals.xml | 99 +- app/src/main/res/values-bg/strings.xml | 326 +++--- app/src/main/res/values-ca/plurals.xml | 99 +- app/src/main/res/values-ca/strings.xml | 326 +++--- app/src/main/res/values-cs/strings.xml | 325 +++--- app/src/main/res/values-cy/plurals.xml | 99 +- app/src/main/res/values-cy/strings.xml | 151 ++- app/src/main/res/values-da/plurals.xml | 99 +- app/src/main/res/values-da/strings.xml | 324 +++--- app/src/main/res/values-de/plurals.xml | 99 +- app/src/main/res/values-de/strings.xml | 326 +++--- app/src/main/res/values-el/plurals.xml | 99 +- app/src/main/res/values-el/strings.xml | 326 +++--- app/src/main/res/values-en-rAU/plurals.xml | 99 +- app/src/main/res/values-en-rAU/strings.xml | 326 +++--- app/src/main/res/values-en-rCA/plurals.xml | 55 +- app/src/main/res/values-en-rCA/strings.xml | 170 ++- app/src/main/res/values-en-rGB/plurals.xml | 99 +- app/src/main/res/values-en-rGB/strings.xml | 325 +++--- app/src/main/res/values-en-rIN/plurals.xml | 99 +- app/src/main/res/values-en-rIN/strings.xml | 326 +++--- app/src/main/res/values-eo/strings.xml | 62 +- app/src/main/res/values-es-rUS/plurals.xml | 99 +- app/src/main/res/values-es-rUS/strings.xml | 14 - app/src/main/res/values-es/plurals.xml | 99 +- app/src/main/res/values-es/strings.xml | 324 +++--- app/src/main/res/values-et/plurals.xml | 99 +- app/src/main/res/values-et/strings.xml | 325 +++--- app/src/main/res/values-eu/plurals.xml | 99 +- app/src/main/res/values-eu/strings.xml | 326 +++--- app/src/main/res/values-fa/plurals.xml | 99 +- app/src/main/res/values-fa/strings.xml | 324 +++--- app/src/main/res/values-fi/plurals.xml | 99 +- app/src/main/res/values-fi/strings.xml | 326 +++--- app/src/main/res/values-fr/plurals.xml | 99 +- app/src/main/res/values-fr/strings.xml | 326 +++--- app/src/main/res/values-fy-rNL/strings.xml | 34 +- app/src/main/res/values-gd/plurals.xml | 11 - app/src/main/res/values-gd/strings.xml | 14 - app/src/main/res/values-gl/plurals.xml | 99 +- app/src/main/res/values-gl/strings.xml | 326 +++--- app/src/main/res/values-gu/plurals.xml | 99 +- app/src/main/res/values-gu/strings.xml | 324 +++--- app/src/main/res/values-hi/plurals.xml | 99 +- app/src/main/res/values-hi/strings.xml | 324 +++--- app/src/main/res/values-hr/plurals.xml | 121 +-- app/src/main/res/values-hr/strings.xml | 324 +++--- app/src/main/res/values-hu/plurals.xml | 99 +- app/src/main/res/values-hu/strings.xml | 324 +++--- app/src/main/res/values-in/plurals.xml | 77 +- app/src/main/res/values-in/strings.xml | 326 +++--- app/src/main/res/values-it/plurals.xml | 99 +- app/src/main/res/values-it/strings.xml | 326 +++--- app/src/main/res/values-iw/plurals.xml | 143 ++- app/src/main/res/values-iw/strings.xml | 324 +++--- app/src/main/res/values-ja/plurals.xml | 77 +- app/src/main/res/values-ja/strings.xml | 326 +++--- app/src/main/res/values-kn/plurals.xml | 99 +- app/src/main/res/values-kn/strings.xml | 325 +++--- app/src/main/res/values-ko/plurals.xml | 77 +- app/src/main/res/values-ko/strings.xml | 326 +++--- app/src/main/res/values-ku/strings.xml | 208 ++-- app/src/main/res/values-lb/plurals.xml | 99 +- app/src/main/res/values-lb/strings.xml | 324 +++--- app/src/main/res/values-lt/strings.xml | 324 +++--- app/src/main/res/values-lv/plurals.xml | 121 +-- app/src/main/res/values-lv/strings.xml | 312 +++--- app/src/main/res/values-ml/plurals.xml | 99 +- app/src/main/res/values-ml/strings.xml | 324 +++--- app/src/main/res/values-mr/plurals.xml | 99 +- app/src/main/res/values-mr/strings.xml | 324 +++--- app/src/main/res/values-nb/plurals.xml | 99 +- app/src/main/res/values-nb/strings.xml | 324 +++--- app/src/main/res/values-nl/plurals.xml | 99 +- app/src/main/res/values-nl/strings.xml | 324 +++--- app/src/main/res/values-or-rIN/plurals.xml | 99 +- app/src/main/res/values-or-rIN/strings.xml | 324 +++--- app/src/main/res/values-or/plurals.xml | 64 ++ app/src/main/res/values-or/strings.xml | 175 ++++ app/src/main/res/values-pl/strings.xml | 325 +++--- app/src/main/res/values-pt-rBR/plurals.xml | 99 +- app/src/main/res/values-pt-rBR/strings.xml | 326 +++--- app/src/main/res/values-pt-rPT/plurals.xml | 99 +- app/src/main/res/values-pt-rPT/strings.xml | 326 +++--- app/src/main/res/values-ro/plurals.xml | 121 +-- app/src/main/res/values-ro/strings.xml | 326 +++--- app/src/main/res/values-ru/plurals.xml | 143 ++- app/src/main/res/values-ru/strings.xml | 326 +++--- app/src/main/res/values-sc-rIT/strings.xml | 62 +- app/src/main/res/values-sk/plurals.xml | 143 ++- app/src/main/res/values-sk/strings.xml | 326 +++--- app/src/main/res/values-sl/plurals.xml | 143 ++- app/src/main/res/values-sl/strings.xml | 326 +++--- app/src/main/res/values-sq/plurals.xml | 99 +- app/src/main/res/values-sq/strings.xml | 172 ++-- app/src/main/res/values-sr/plurals.xml | 121 +-- app/src/main/res/values-sr/strings.xml | 324 +++--- app/src/main/res/values-sv/plurals.xml | 99 +- app/src/main/res/values-sv/strings.xml | 324 +++--- app/src/main/res/values-ta/plurals.xml | 83 +- app/src/main/res/values-ta/strings.xml | 324 +++--- app/src/main/res/values-te/plurals.xml | 99 +- app/src/main/res/values-te/strings.xml | 324 +++--- app/src/main/res/values-th/plurals.xml | 77 +- app/src/main/res/values-th/strings.xml | 324 +++--- app/src/main/res/values-tr/plurals.xml | 99 +- app/src/main/res/values-tr/strings.xml | 326 +++--- app/src/main/res/values-ug/strings.xml | 324 +++--- app/src/main/res/values-uk/strings.xml | 324 +++--- app/src/main/res/values-vi/plurals.xml | 77 +- app/src/main/res/values-vi/strings.xml | 326 +++--- app/src/main/res/values-zh-rCN/plurals.xml | 77 +- app/src/main/res/values-zh-rCN/strings.xml | 326 +++--- app/src/main/res/values-zh-rHK/plurals.xml | 59 +- app/src/main/res/values-zh-rHK/strings.xml | 304 +++--- app/src/main/res/values-zh-rTW/plurals.xml | 77 +- app/src/main/res/values-zh-rTW/strings.xml | 326 +++--- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 213 files changed, 15273 insertions(+), 16957 deletions(-) create mode 100644 app/src/main/java/org/lineageos/eleven/BuildConstants.java delete mode 100644 app/src/main/java/org/lineageos/eleven/cache/DiskLruCache.java create mode 100644 app/src/main/java/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java create mode 100644 app/src/main/java/org/lineageos/eleven/cache/disklrucache/StrictLineReader.java create mode 100644 app/src/main/java/org/lineageos/eleven/cache/disklrucache/Util.java delete mode 100644 app/src/main/java/org/lineageos/eleven/locale/HanziToPinyin.java delete mode 100644 app/src/main/java/org/lineageos/eleven/utils/ContextMenuBuilder.java create mode 100644 app/src/main/java/org/lineageos/eleven/utils/IoUtils.java delete mode 100644 app/src/main/java/org/lineageos/eleven/utils/ListMenuPresenterHelper.java delete mode 100644 app/src/main/java/org/lineageos/eleven/utils/MenuBuilderHelper.java delete mode 100644 app/src/main/java/org/lineageos/eleven/utils/MenuDialogHelper.java create mode 100644 app/src/main/res/values-as/plurals.xml create mode 100644 app/src/main/res/values-as/strings.xml create mode 100644 app/src/main/res/values-or/plurals.xml create mode 100644 app/src/main/res/values-or/strings.xml diff --git a/.classpath b/.classpath index c117472..178d421 100644 --- a/.classpath +++ b/.classpath @@ -8,6 +8,6 @@ - + diff --git a/README.md b/README.md index b68bb1f..fa8e884 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Eleven music player (CyanogenMod/LineageOS) - compatible with Android version >1 Copied from https://github.com/LineageOS/android_packages_apps_Eleven/archive/cm-14.1.zip (03.08.2017) Moved to lineage-15.1 branch. -Merged with upstream project on 31.12.2018 +Merged with upstream project on 07.04.2019 Made compatibility changes for android version >14 using as much material design as possible diff --git a/app/build.gradle b/app/build.gradle index 31716a1..e8e2aa6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -58,7 +58,7 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.preference:preference:1.0.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' - implementation 'androidx.media:media:1.0.0' + implementation 'androidx.media:media:1.0.1' implementation 'com.google.guava:guava:24.1-jre' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 22e151a..f06531f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + android:versionName="3.0" + tools:ignore="GradleOverrides"> - - + + + @@ -86,7 +90,7 @@ - + diff --git a/app/src/main/java/org/lineageos/eleven/BuildConstants.java b/app/src/main/java/org/lineageos/eleven/BuildConstants.java new file mode 100644 index 0000000..9e730ce --- /dev/null +++ b/app/src/main/java/org/lineageos/eleven/BuildConstants.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.eleven; + +public class BuildConstants { + public static final String PACKAGE_NAME = BuildConfig.APPLICATION_ID; +} diff --git a/app/src/main/java/org/lineageos/eleven/ElevenApplication.java b/app/src/main/java/org/lineageos/eleven/ElevenApplication.java index e61c6d7..5830cf5 100644 --- a/app/src/main/java/org/lineageos/eleven/ElevenApplication.java +++ b/app/src/main/java/org/lineageos/eleven/ElevenApplication.java @@ -1,14 +1,19 @@ /* * Copyright (C) 2012 Andrew Neal * Copyright (C) 2014 The CyanogenMod Project - * Licensed under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. + * Copyright (C) 2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.lineageos.eleven; @@ -18,34 +23,16 @@ import org.lineageos.eleven.cache.ImageCache; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Used to turn off logging for jaudiotagger and free up memory when - * {@code #onLowMemory()} is called on pre-ICS devices. On post-ICS memory is - * released within {@link ImageCache}. - * - * @author Andrew Neal (andrewdneal@gmail.com) - */ public class ElevenApplication extends Application { - private static final boolean DEBUG = false; - - /** - * {@inheritDoc} - */ @Override public void onCreate() { super.onCreate(); - // Enable strict mode logging - enableStrictMode(); - // Turn off logging for jaudiotagger. - Logger.getLogger("org.jaudiotagger").setLevel(Level.OFF); + + if (BuildConfig.DEBUG) { + enableStrictMode(); + } } - /** - * {@inheritDoc} - */ @Override public void onLowMemory() { ImageCache.getInstance(this).evictAll(); @@ -53,15 +40,15 @@ public void onLowMemory() { } private void enableStrictMode() { - if (DEBUG) { - final StrictMode.ThreadPolicy.Builder threadPolicyBuilder = new StrictMode.ThreadPolicy.Builder() - .detectAll().penaltyLog(); - final StrictMode.VmPolicy.Builder vmPolicyBuilder = new StrictMode.VmPolicy.Builder() - .detectAll().penaltyLog(); - - threadPolicyBuilder.penaltyFlashScreen(); - StrictMode.setThreadPolicy(threadPolicyBuilder.build()); - StrictMode.setVmPolicy(vmPolicyBuilder.build()); - } + final StrictMode.ThreadPolicy.Builder threadPolicyBuilder = new StrictMode.ThreadPolicy.Builder() + .detectAll() + .penaltyLog() + .penaltyFlashScreen(); + final StrictMode.VmPolicy.Builder vmPolicyBuilder = new StrictMode.VmPolicy.Builder() + .detectAll() + .penaltyLog(); + + StrictMode.setThreadPolicy(threadPolicyBuilder.build()); + StrictMode.setVmPolicy(vmPolicyBuilder.build()); } } diff --git a/app/src/main/java/org/lineageos/eleven/MediaButtonIntentReceiver.java b/app/src/main/java/org/lineageos/eleven/MediaButtonIntentReceiver.java index 432b7fb..2182d2a 100644 --- a/app/src/main/java/org/lineageos/eleven/MediaButtonIntentReceiver.java +++ b/app/src/main/java/org/lineageos/eleven/MediaButtonIntentReceiver.java @@ -22,7 +22,7 @@ public class MediaButtonIntentReceiver extends WakefulBroadcastReceiver { private static final boolean DEBUG = false; - private static final String TAG = "MediaButtonIntentRecei"; + private static final String TAG = "MediaButtonIntentReceiv"; /** * {@inheritDoc} diff --git a/app/src/main/java/org/lineageos/eleven/MusicPlaybackService.java b/app/src/main/java/org/lineageos/eleven/MusicPlaybackService.java index a7c4972..2f53cb0 100644 --- a/app/src/main/java/org/lineageos/eleven/MusicPlaybackService.java +++ b/app/src/main/java/org/lineageos/eleven/MusicPlaybackService.java @@ -17,8 +17,8 @@ import android.annotation.SuppressLint; import android.app.AlarmManager; import android.app.Notification; -import android.app.NotificationManager; import android.app.NotificationChannel; +import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.appwidget.AppWidgetManager; @@ -61,8 +61,10 @@ import android.util.Log; import android.util.LongSparseArray; import android.view.KeyEvent; +import androidx.annotation.NonNull; import androidx.core.app.NotificationCompat; import androidx.core.content.ContextCompat; +import androidx.core.os.BuildCompat; import androidx.media.app.NotificationCompat.MediaStyle; import org.lineageos.eleven.Config.IdType; @@ -104,96 +106,96 @@ public class MusicPlaybackService extends Service { /** * Indicates that the music has paused or resumed */ - public static final String PLAYSTATE_CHANGED = "org.lineageos.eleven.playstatechanged"; + public static final String PLAYSTATE_CHANGED = BuildConstants.PACKAGE_NAME + ".playstatechanged"; /** * Indicates that music playback position within * a title was changed */ - public static final String POSITION_CHANGED = "org.lineageos.eleven.positionchanged"; + public static final String POSITION_CHANGED = BuildConstants.PACKAGE_NAME + ".positionchanged"; /** * Indicates the meta data has changed in some way, like a track change */ - public static final String META_CHANGED = "org.lineageos.eleven.metachanged"; + public static final String META_CHANGED = BuildConstants.PACKAGE_NAME + ".metachanged"; /** * Indicates the queue has been updated */ - public static final String QUEUE_CHANGED = "org.lineageos.eleven.queuechanged"; + public static final String QUEUE_CHANGED = BuildConstants.PACKAGE_NAME + ".queuechanged"; /** * Indicates the queue has been updated */ - public static final String PLAYLIST_CHANGED = "org.lineageos.eleven.playlistchanged"; + public static final String PLAYLIST_CHANGED = BuildConstants.PACKAGE_NAME + ".playlistchanged"; /** * Indicates the repeat mode changed */ - public static final String REPEATMODE_CHANGED = "org.lineageos.eleven.repeatmodechanged"; + public static final String REPEATMODE_CHANGED = BuildConstants.PACKAGE_NAME + ".repeatmodechanged"; /** * Indicates the shuffle mode changed */ - public static final String SHUFFLEMODE_CHANGED = "org.lineageos.eleven.shufflemodechanged"; + public static final String SHUFFLEMODE_CHANGED = BuildConstants.PACKAGE_NAME + ".shufflemodechanged"; /** * Indicates the track fails to play */ - public static final String TRACK_ERROR = "org.lineageos.eleven.trackerror"; + public static final String TRACK_ERROR = BuildConstants.PACKAGE_NAME + ".trackerror"; /** * For backwards compatibility reasons, also provide sticky * broadcasts under the music package */ - public static final String ELEVEN_PACKAGE_NAME = "org.lineageos.eleven"; + public static final String ELEVEN_PACKAGE_NAME = BuildConstants.PACKAGE_NAME; public static final String MUSIC_PACKAGE_NAME = "com.android.music"; /** * Called to indicate a general service commmand. Used in * {@link MediaButtonIntentReceiver} */ - public static final String SERVICECMD = "org.lineageos.eleven.musicservicecommand"; + public static final String SERVICECMD = BuildConstants.PACKAGE_NAME + ".musicservicecommand"; /** * Called to go toggle between pausing and playing the music */ - public static final String TOGGLEPAUSE_ACTION = "org.lineageos.eleven.togglepause"; + public static final String TOGGLEPAUSE_ACTION = BuildConstants.PACKAGE_NAME + ".togglepause"; /** * Called to go to pause the playback */ - public static final String PAUSE_ACTION = "org.lineageos.eleven.pause"; + public static final String PAUSE_ACTION = BuildConstants.PACKAGE_NAME + ".pause"; /** * Called to go to stop the playback */ - public static final String STOP_ACTION = "org.lineageos.eleven.stop"; + public static final String STOP_ACTION = BuildConstants.PACKAGE_NAME + ".stop"; /** * Called to go to the previous track or the beginning of the track if partway through the track */ - public static final String PREVIOUS_ACTION = "org.lineageos.eleven.previous"; + public static final String PREVIOUS_ACTION = BuildConstants.PACKAGE_NAME + ".previous"; /** * Called to go to the previous track regardless of how far in the current track the playback is */ - public static final String PREVIOUS_FORCE_ACTION = "org.lineageos.eleven.previous.force"; + public static final String PREVIOUS_FORCE_ACTION = BuildConstants.PACKAGE_NAME + ".previous.force"; /** * Called to go to the next track */ - public static final String NEXT_ACTION = "org.lineageos.eleven.next"; + public static final String NEXT_ACTION = BuildConstants.PACKAGE_NAME + ".next"; /** * Called to change the repeat mode */ - public static final String REPEAT_ACTION = "org.lineageos.eleven.repeat"; + public static final String REPEAT_ACTION = BuildConstants.PACKAGE_NAME + ".repeat"; /** * Called to change the shuffle mode */ - public static final String SHUFFLE_ACTION = "org.lineageos.eleven.shuffle"; + public static final String SHUFFLE_ACTION = BuildConstants.PACKAGE_NAME + ".shuffle"; public static final String FROM_MEDIA_BUTTON = "frommediabutton"; @@ -203,22 +205,22 @@ public class MusicPlaybackService extends Service { * Used to easily notify a list that it should refresh. i.e. A playlist * changes */ - public static final String REFRESH = "org.lineageos.eleven.refresh"; + public static final String REFRESH = BuildConstants.PACKAGE_NAME + ".refresh"; /** * Used by the alarm intent to shutdown the service after being idle */ - private static final String SHUTDOWN = "org.lineageos.eleven.shutdown"; + private static final String SHUTDOWN = BuildConstants.PACKAGE_NAME + ".shutdown"; /** * Called to notify of a timed text */ - public static final String NEW_LYRICS = "org.lineageos.eleven.lyrics"; + public static final String NEW_LYRICS = BuildConstants.PACKAGE_NAME + ".lyrics"; /** * Called to update the remote control client */ - public static final String UPDATE_LOCKSCREEN = "org.lineageos.eleven.updatelockscreen"; + public static final String UPDATE_LOCKSCREEN = BuildConstants.PACKAGE_NAME + ".updatelockscreen"; public static final String CMDNAME = "command"; @@ -341,6 +343,8 @@ public class MusicPlaybackService extends Service { */ public static final int MAX_HISTORY_SIZE = 1000; + private static final String ACTION_AUDIO_PLAYER = BuildConstants.PACKAGE_NAME + ".AUDIO_PLAYER"; + private static final String CHANNEL_NAME = "eleven_playback"; public interface TrackErrorExtra { @@ -498,7 +502,7 @@ public interface TrackErrorExtra { private String mLyrics; - private ArrayList mPlaylist = new ArrayList(100); + private ArrayList mPlaylist = new ArrayList<>(100); private long[] mAutoShuffleList = null; @@ -751,7 +755,7 @@ public void onSkipToQueueItem(long id) { setQueuePosition((int) id); } @Override - public boolean onMediaButtonEvent(Intent mediaButtonIntent) { + public boolean onMediaButtonEvent(@NonNull Intent mediaButtonIntent) { if (Intent.ACTION_MEDIA_BUTTON.equals(mediaButtonIntent.getAction())) { KeyEvent ke = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (ke != null && ke.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK) { @@ -916,7 +920,7 @@ private void handleHeadsetHookClick(long timestamp) { // Make sure we don't indefinitely hold the wake lock under any circumstances mHeadsetHookWakeLock.acquire(10000); - Message msg = mPlayerHandler.obtainMessage(HEADSET_HOOK_EVENT, Long.valueOf(timestamp)); + Message msg = mPlayerHandler.obtainMessage(HEADSET_HOOK_EVENT, timestamp); msg.sendToTarget(); } @@ -1155,7 +1159,7 @@ private void addToPlayList(final long[] list, int position, long sourceId, IdTyp position = mPlaylist.size(); } - final ArrayList arrayList = new ArrayList(addlen); + final ArrayList arrayList = new ArrayList<>(addlen); for (int i = 0; i < list.length; i++) { arrayList.add(new MusicPlaybackTrack(list[i], sourceId, sourceType, i)); } @@ -1332,7 +1336,7 @@ private int getNextPosition(final boolean force) { // has been played final int numHistory = mHistory.size(); for (int i = 0; i < numHistory; i++) { - final int idx = mHistory.get(i).intValue(); + final int idx = mHistory.get(i); if (idx >= 0 && idx < numTracks) { trackNumPlays[idx]++; } @@ -1347,12 +1351,12 @@ private int getNextPosition(final boolean force) { // how many tracks share that count int minNumPlays = Integer.MAX_VALUE; int numTracksWithMinNumPlays = 0; - for (int i = 0; i < trackNumPlays.length; i++) { + for (final int trackNumPlay : trackNumPlays) { // if we found a new track that has less number of plays, reset the counters - if (trackNumPlays[i] < minNumPlays) { - minNumPlays = trackNumPlays[i]; + if (trackNumPlay < minNumPlays) { + minNumPlays = trackNumPlay; numTracksWithMinNumPlays = 1; - } else if (trackNumPlays[i] == minNumPlays) { + } else if (trackNumPlay == minNumPlays) { // increment this track shares the # of tracks numTracksWithMinNumPlays++; } @@ -1532,26 +1536,30 @@ private void notifyChange(final String what) { musicIntent.setAction(what.replace(ELEVEN_PACKAGE_NAME, MUSIC_PACKAGE_NAME)); sendStickyBroadcast(musicIntent); - if (what.equals(META_CHANGED)) { - // Add the track to the recently played list. - mRecentsCache.addSongId(getAudioId()); - - mSongPlayCountCache.bumpSongCount(getAudioId()); - } else if (what.equals(QUEUE_CHANGED)) { - saveQueue(true); - if (isPlaying()) { - // if we are in shuffle mode and our next track is still valid, - // try to re-use the track - // We need to reimplement the queue to prevent hacky solutions like this - if (mNextPlayPos >= 0 && mNextPlayPos < mPlaylist.size() - && getShuffleMode() != SHUFFLE_NONE) { - setNextTrack(mNextPlayPos); - } else { - setNextTrack(); + switch (what) { + case META_CHANGED: + // Add the track to the recently played list. + mRecentsCache.addSongId(getAudioId()); + + mSongPlayCountCache.bumpSongCount(getAudioId()); + break; + case QUEUE_CHANGED: + saveQueue(true); + if (isPlaying()) { + // if we are in shuffle mode and our next track is still valid, + // try to re-use the track + // We need to reimplement the queue to prevent hacky solutions like this + if (mNextPlayPos >= 0 && mNextPlayPos < mPlaylist.size() + && getShuffleMode() != SHUFFLE_NONE) { + setNextTrack(mNextPlayPos); + } else { + setNextTrack(); + } } - } - } else { - saveQueue(false); + break; + default: + saveQueue(false); + break; } if (what.equals(PLAYSTATE_CHANGED)) { @@ -1644,7 +1652,7 @@ private Notification buildNotification() { .setMediaSession(mSession.getSessionToken()) .setShowActionsInCompactView(0, 1, 2); - Intent nowPlayingIntent = new Intent("org.lineageos.eleven.AUDIO_PLAYER") + Intent nowPlayingIntent = new Intent(ACTION_AUDIO_PLAYER) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent clickIntent = PendingIntent.getActivity(this, 0, nowPlayingIntent, 0); BitmapWithColors artwork = getAlbumArt(false); @@ -1674,8 +1682,7 @@ private Notification buildNotification() { builder.setColor(artwork.getVibrantDarkColor()); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (BuildCompat.isAtLeastO()) { NotificationChannel channel = mNotificationManager .getNotificationChannel(CHANNEL_NAME); @@ -2657,7 +2664,7 @@ public int getPreviousPlayPosition(boolean removeFromHistory) { if (removeFromHistory) { mHistory.remove(histsize - 1); } - return pos.intValue(); + return pos; } else { if (mPlayPos > 0) { return mPlayPos - 1; @@ -3014,7 +3021,7 @@ private static final class MusicPlayerHandler extends Handler { */ public MusicPlayerHandler(final MusicPlaybackService service, final Looper looper) { super(looper); - mService = new WeakReference(service); + mService = new WeakReference<>(service); } /** @@ -3146,9 +3153,9 @@ public void handleMessage(final Message msg) { private static final class Shuffler { - private final LinkedList mHistoryOfNumbers = new LinkedList(); + private final LinkedList mHistoryOfNumbers = new LinkedList<>(); - private final TreeSet mPreviousNumbers = new TreeSet(); + private final TreeSet mPreviousNumbers = new TreeSet<>(); private final Random mRandom = new Random(); @@ -3169,8 +3176,7 @@ public int nextInt(final int interval) { int next; do { next = mRandom.nextInt(interval); - } while (next == mPrevious && interval > 1 - && !mPreviousNumbers.contains(Integer.valueOf(next))); + } while (next == mPrevious && interval > 1 && !mPreviousNumbers.contains(next)); mPrevious = next; mHistoryOfNumbers.add(mPrevious); mPreviousNumbers.add(mPrevious); @@ -3268,7 +3274,7 @@ private static final class MultiPlayer implements MediaPlayer.OnErrorListener, * Constructor of MultiPlayer */ public MultiPlayer(final MusicPlaybackService service) { - mService = new WeakReference(service); + mService = new WeakReference<>(service); mSrtManager = new SrtManager() { @Override public void onTimedText(String text) { @@ -3451,7 +3457,12 @@ public void pause() { * @return The duration in milliseconds */ public long duration() { - return mCurrentMediaPlayer.getDuration(); + try { + return mCurrentMediaPlayer.getDuration(); + } catch (IllegalStateException exc) { + Log.e(TAG, "Could not get duration", exc); + } + return 0L; } /** @@ -3460,7 +3471,12 @@ public long duration() { * @return The current position in milliseconds */ public long position() { - return mCurrentMediaPlayer.getCurrentPosition(); + try { + return mCurrentMediaPlayer.getCurrentPosition(); + } catch (IllegalStateException exc) { + Log.e(TAG, "Could not get current position", exc); + } + return 0L; } /** @@ -3552,7 +3568,7 @@ private static final class ServiceStub extends IElevenService.Stub { private final WeakReference mService; private ServiceStub(final MusicPlaybackService service) { - mService = new WeakReference(service); + mService = new WeakReference<>(service); } /** diff --git a/app/src/main/java/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java b/app/src/main/java/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java index 604429a..6396656 100644 --- a/app/src/main/java/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java +++ b/app/src/main/java/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java @@ -27,6 +27,7 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; +import org.lineageos.eleven.BuildConstants; import org.lineageos.eleven.MusicPlaybackService; import org.lineageos.eleven.R; import org.lineageos.eleven.cache.ICacheListener; @@ -50,7 +51,7 @@ public class AlbumArtPagerAdapter extends FragmentStatePagerAdapter { private static final int MAX_ALBUM_ARTIST_SIZE = 10; // This helps with flickering and jumping and reloading the same tracks - private final static LinkedList sCacheAlbumArtistDetails = new LinkedList(); + private final static LinkedList sCacheAlbumArtistDetails = new LinkedList<>(); /** * Adds the album artist details to the cache @@ -152,7 +153,8 @@ private long getTrackId(int position) { * and handles loading the album art for a given audio id */ public static class AlbumArtFragment extends Fragment implements ICacheListener { - private static final String ID = "org.lineageos.eleven.adapters.AlbumArtPagerAdapter.AlbumArtFragment.ID"; + private static final String ID = BuildConstants.PACKAGE_NAME + + ".adapters.AlbumArtPagerAdapter.AlbumArtFragment.ID"; private View mRootView; private AlbumArtistLoader mTask; diff --git a/app/src/main/java/org/lineageos/eleven/adapters/PagerAdapter.java b/app/src/main/java/org/lineageos/eleven/adapters/PagerAdapter.java index 1f76e3f..48d4dc8 100644 --- a/app/src/main/java/org/lineageos/eleven/adapters/PagerAdapter.java +++ b/app/src/main/java/org/lineageos/eleven/adapters/PagerAdapter.java @@ -38,7 +38,7 @@ */ public class PagerAdapter extends FragmentPagerAdapter { - private final SparseArray> mFragmentArray = new SparseArray>(); + private final SparseArray> mFragmentArray = new SparseArray<>(); private final List mHolderList = Lists.newArrayList(); @@ -99,7 +99,7 @@ public Object instantiateItem(final ViewGroup container, final int position) { if (mWeakFragment != null) { mWeakFragment.clear(); } - mFragmentArray.put(position, new WeakReference(mFragment)); + mFragmentArray.put(position, new WeakReference<>(mFragment)); return mFragment; } diff --git a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetBase.java b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetBase.java index 6f07f38..e6ab4ce 100644 --- a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetBase.java +++ b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetBase.java @@ -19,8 +19,6 @@ import android.content.Context; import android.content.Intent; -import org.lineageos.eleven.MusicPlaybackService; - public abstract class AppWidgetBase extends AppWidgetProvider { protected PendingIntent buildPendingIntent(Context context, final String action, diff --git a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLarge.java b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLarge.java index c7dbdd2..b66ffb3 100644 --- a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLarge.java +++ b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLarge.java @@ -26,7 +26,6 @@ import org.lineageos.eleven.MusicPlaybackService; import org.lineageos.eleven.R; import org.lineageos.eleven.ui.activities.HomeActivity; -import org.lineageos.eleven.utils.ElevenUtils; /** * 4x2 App-Widget diff --git a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java index a1ef39c..032d139 100644 --- a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java +++ b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java @@ -26,7 +26,6 @@ import org.lineageos.eleven.MusicPlaybackService; import org.lineageos.eleven.R; import org.lineageos.eleven.ui.activities.HomeActivity; -import org.lineageos.eleven.utils.ElevenUtils; import org.lineageos.eleven.widgets.RepeatButton; import org.lineageos.eleven.widgets.ShuffleButton; diff --git a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetSmall.java b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetSmall.java index cf8b335..56c8b3f 100644 --- a/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetSmall.java +++ b/app/src/main/java/org/lineageos/eleven/appwidgets/AppWidgetSmall.java @@ -28,7 +28,6 @@ import org.lineageos.eleven.MusicPlaybackService; import org.lineageos.eleven.R; import org.lineageos.eleven.ui.activities.HomeActivity; -import org.lineageos.eleven.utils.ElevenUtils; /** * 4x1 App-Widget diff --git a/app/src/main/java/org/lineageos/eleven/cache/BitmapWorkerTask.java b/app/src/main/java/org/lineageos/eleven/cache/BitmapWorkerTask.java index 177e772..bf8cbaa 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/BitmapWorkerTask.java +++ b/app/src/main/java/org/lineageos/eleven/cache/BitmapWorkerTask.java @@ -88,7 +88,7 @@ public BitmapWorkerTask(final String key, final ImageView imageView, final Image mImageCache = ImageCache.getInstance(mContext); mResources = mContext.getResources(); - mImageReference = new WeakReference(imageView); + mImageReference = new WeakReference<>(imageView); mImageType = imageType; // A transparent image (layer 0) and the new result (layer 1) diff --git a/app/src/main/java/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java b/app/src/main/java/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java index 351db41..582f86e 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java +++ b/app/src/main/java/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java @@ -80,7 +80,7 @@ public BlurBitmapWorkerTask(final String key, final BlurScrimImage blurScrimImag final ImageType imageType, final Drawable fromDrawable, final Context context, final RenderScript renderScript) { super(key, blurScrimImage.getImageView(), imageType, fromDrawable, context); - mBlurScrimImage = new WeakReference(blurScrimImage); + mBlurScrimImage = new WeakReference<>(blurScrimImage); mRenderScript = renderScript; // use the existing image as the drawable and if it doesn't exist fallback to transparent @@ -192,4 +192,4 @@ protected final ImageView getAttachedImageView() { } return null; } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/cache/DiskLruCache.java b/app/src/main/java/org/lineageos/eleven/cache/DiskLruCache.java deleted file mode 100644 index 7c904ac..0000000 --- a/app/src/main/java/org/lineageos/eleven/cache/DiskLruCache.java +++ /dev/null @@ -1,969 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project Licensed under the Apache - * License, Version 2.0 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -package org.lineageos.eleven.cache; - -import java.io.BufferedInputStream; -import java.io.BufferedWriter; -import java.io.Closeable; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Reader; -import java.io.StringWriter; -import java.io.Writer; -import java.lang.reflect.Array; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - ****************************************************************************** Taken from the JB source code, can be found in: - * libcore/luni/src/main/java/libcore/io/DiskLruCache.java or direct link: - * https: - * //android.googlesource.com/platform/libcore/+/android-4.1.1_r1/luni/src/ - * main/java/libcore/io/DiskLruCache.java A cache that uses a bounded amount of - * space on a filesystem. Each cache entry has a string key and a fixed number - * of values. Values are byte sequences, accessible as streams or files. Each - * value must be between {@code 0} and {@code Integer.MAX_VALUE} bytes in - * length. - *

- * The cache stores its data in a directory on the filesystem. This directory - * must be exclusive to the cache; the cache may delete or overwrite files from - * its directory. It is an error for multiple processes to use the same cache - * directory at the same time. - *

- * This cache limits the number of bytes that it will store on the filesystem. - * When the number of stored bytes exceeds the limit, the cache will remove - * entries in the background until the limit is satisfied. The limit is not - * strict: the cache may temporarily exceed it while waiting for files to be - * deleted. The limit does not include filesystem overhead or the cache journal - * so space-sensitive applications should set a conservative limit. - *

- * Clients call {@link #edit} to create or update the values of an entry. An - * entry may have only one editor at one time; if a value is not available to be - * edited then {@link #edit} will return null. - *

    - *
  • When an entry is being created it is necessary to supply - * a full set of values; the empty value should be used as a placeholder if - * necessary. - *
  • When an entry is being edited, it is not necessary to - * supply data for every value; values default to their previous value. - *
- * Every {@link #edit} call must be matched by a call to {@link Editor#commit} - * or {@link Editor#abort}. Committing is atomic: a read observes the full set - * of values as they were before or after the commit, but never a mix of values. - *

- * Clients call {@link #get} to read a snapshot of an entry. The read will - * observe the value at the time that {@link #get} was called. Updates and - * removals after the call do not impact ongoing reads. - *

- * This class is tolerant of some I/O errors. If files are missing from the - * filesystem, the corresponding entries will be dropped from the cache. If an - * error occurs while writing a cache value, the edit will fail silently. - * Callers should handle other problems by catching {@code IOException} and - * responding appropriately. - */ -public final class DiskLruCache implements Closeable { - static final String JOURNAL_FILE = "journal"; - - static final String JOURNAL_FILE_TMP = "journal.tmp"; - - static final String MAGIC = "libcore.io.DiskLruCache"; - - static final String VERSION_1 = "1"; - - static final long ANY_SEQUENCE_NUMBER = -1; - - private static final String CLEAN = "CLEAN"; - - private static final String DIRTY = "DIRTY"; - - private static final String REMOVE = "REMOVE"; - - private static final String READ = "READ"; - - private static final Charset UTF_8 = Charset.forName("UTF-8"); - - private static final int IO_BUFFER_SIZE = 8 * 1024; - - /* - * This cache uses a journal file named "journal". A typical journal file - * looks like this: libcore.io.DiskLruCache 1 100 2 CLEAN - * 3400330d1dfc7f3f7f4b8d4d803dfcf6 832 21054 DIRTY - * 335c4c6028171cfddfbaae1a9c313c52 CLEAN 335c4c6028171cfddfbaae1a9c313c52 - * 3934 2342 REMOVE 335c4c6028171cfddfbaae1a9c313c52 DIRTY - * 1ab96a171faeeee38496d8b330771a7a CLEAN 1ab96a171faeeee38496d8b330771a7a - * 1600 234 READ 335c4c6028171cfddfbaae1a9c313c52 READ - * 3400330d1dfc7f3f7f4b8d4d803dfcf6 The first five lines of the journal form - * its header. They are the constant string "libcore.io.DiskLruCache", the - * disk cache's version, the application's version, the value count, and a - * blank line. Each of the subsequent lines in the file is a record of the - * state of a cache entry. Each line contains space-separated values: a - * state, a key, and optional state-specific values. o DIRTY lines track - * that an entry is actively being created or updated. Every successful - * DIRTY action should be followed by a CLEAN or REMOVE action. DIRTY lines - * without a matching CLEAN or REMOVE indicate that temporary files may need - * to be deleted. o CLEAN lines track a cache entry that has been - * successfully published and may be read. A publish line is followed by the - * lengths of each of its values. o READ lines track accesses for LRU. o - * REMOVE lines track entries that have been deleted. The journal file is - * appended to as cache operations occur. The journal may occasionally be - * compacted by dropping redundant lines. A temporary file named - * "journal.tmp" will be used during compaction; that file should be deleted - * if it exists when the cache is opened. - */ - - private final File directory; - - private final File journalFile; - - private final File journalFileTmp; - - private final int appVersion; - - private final long maxSize; - - private final int valueCount; - - private long size = 0; - - private Writer journalWriter; - - private final LinkedHashMap lruEntries = new LinkedHashMap(0, - 0.75f, true); - - private int redundantOpCount; - - /** - * To differentiate between old and current snapshots, each entry is given a - * sequence number each time an edit is committed. A snapshot is stale if - * its sequence number is not equal to its entry's sequence number. - */ - private long nextSequenceNumber = 0; - - /* From java.util.Arrays */ - @SuppressWarnings("unchecked") - private static T[] copyOfRange(final T[] original, final int start, final int end) { - final int originalLength = original.length; // For exception priority - // compatibility. - if (start > end) { - throw new IllegalArgumentException(); - } - if (start < 0 || start > originalLength) { - throw new ArrayIndexOutOfBoundsException(); - } - final int resultLength = end - start; - final int copyLength = Math.min(resultLength, originalLength - start); - final T[] result = (T[])Array.newInstance(original.getClass().getComponentType(), - resultLength); - System.arraycopy(original, start, result, 0, copyLength); - return result; - } - - /** - * Returns the remainder of 'reader' as a string, closing it when done. - */ - public static String readFully(final Reader reader) throws IOException { - try { - final StringWriter writer = new StringWriter(); - final char[] buffer = new char[1024]; - int count; - while ((count = reader.read(buffer)) != -1) { - writer.write(buffer, 0, count); - } - return writer.toString(); - } finally { - reader.close(); - } - } - - /** - * Returns the ASCII characters up to but not including the next "\r\n", or - * "\n". - * - * @throws java.io.EOFException if the stream is exhausted before the next - * newline character. - */ - public static String readAsciiLine(final InputStream in) throws IOException { - // TODO: support UTF-8 here instead - - final StringBuilder result = new StringBuilder(80); - while (true) { - final int c = in.read(); - if (c == -1) { - throw new EOFException(); - } else if (c == '\n') { - break; - } - - result.append((char)c); - } - final int length = result.length(); - if (length > 0 && result.charAt(length - 1) == '\r') { - result.setLength(length - 1); - } - return result.toString(); - } - - /** - * Closes 'closeable', ignoring any checked exceptions. Does nothing if - * 'closeable' is null. - */ - public static void closeQuietly(final Closeable closeable) { - if (closeable != null) { - try { - closeable.close(); - } catch (final RuntimeException rethrown) { - throw rethrown; - } catch (final Exception ignored) { - } - } - } - - /** - * Recursively delete everything in {@code dir}. - */ - // TODO: this should specify paths as Strings rather than as Files - public static void deleteContents(final File dir) throws IOException { - final File[] files = dir.listFiles(); - if (files == null) { - throw new IllegalArgumentException("not a directory: " + dir); - } - for (final File file : files) { - if (file.isDirectory()) { - deleteContents(file); - } - if (!file.delete()) { - throw new IOException("failed to delete file: " + file); - } - } - } - - /** This cache uses a single background thread to evict entries. */ - private final ExecutorService executorService = new ThreadPoolExecutor(0, 1, 60L, - TimeUnit.SECONDS, new LinkedBlockingQueue()); - - private final Callable cleanupCallable = new Callable() { - @Override - public Void call() throws Exception { - synchronized (DiskLruCache.this) { - if (journalWriter == null) { - return null; // closed - } - trimToSize(); - if (journalRebuildRequired()) { - rebuildJournal(); - redundantOpCount = 0; - } - } - return null; - } - }; - - private DiskLruCache(final File directory, final int appVersion, final int valueCount, - final long maxSize) { - this.directory = directory; - this.appVersion = appVersion; - journalFile = new File(directory, JOURNAL_FILE); - journalFileTmp = new File(directory, JOURNAL_FILE_TMP); - this.valueCount = valueCount; - this.maxSize = maxSize; - } - - /** - * Opens the cache in {@code directory}, creating a cache if none exists - * there. - * - * @param directory a writable directory - * @param appVersion - * @param valueCount the number of values per cache entry. Must be positive. - * @param maxSize the maximum number of bytes this cache should use to store - * @throws IOException if reading or writing the cache directory fails - */ - public static DiskLruCache open(final File directory, final int appVersion, - final int valueCount, final long maxSize) throws IOException { - if (maxSize <= 0) { - throw new IllegalArgumentException("maxSize <= 0"); - } - if (valueCount <= 0) { - throw new IllegalArgumentException("valueCount <= 0"); - } - - // prefer to pick up where we left off - DiskLruCache cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); - if (cache.journalFile.exists()) { - try { - cache.readJournal(); - cache.processJournal(); - cache.journalWriter = new BufferedWriter(new FileWriter(cache.journalFile, true), - IO_BUFFER_SIZE); - return cache; - } catch (final IOException journalIsCorrupt) { - // System.logW("DiskLruCache " + directory + " is corrupt: " - // + journalIsCorrupt.getMessage() + ", removing"); - cache.delete(); - } - } - - // create a new empty cache - directory.mkdirs(); - cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); - cache.rebuildJournal(); - return cache; - } - - private void readJournal() throws IOException { - final InputStream in = new BufferedInputStream(new FileInputStream(journalFile), - IO_BUFFER_SIZE); - try { - final String magic = readAsciiLine(in); - final String version = readAsciiLine(in); - final String appVersionString = readAsciiLine(in); - final String valueCountString = readAsciiLine(in); - final String blank = readAsciiLine(in); - if (!MAGIC.equals(magic) || !VERSION_1.equals(version) - || !Integer.toString(appVersion).equals(appVersionString) - || !Integer.toString(valueCount).equals(valueCountString) || !"".equals(blank)) { - throw new IOException("unexpected journal header: [" + magic + ", " + version - + ", " + valueCountString + ", " + blank + "]"); - } - - while (true) { - try { - readJournalLine(readAsciiLine(in)); - } catch (final EOFException endOfJournal) { - break; - } - } - } finally { - closeQuietly(in); - } - } - - private void readJournalLine(final String line) throws IOException { - final String[] parts = line.split(" "); - if (parts.length < 2) { - throw new IOException("unexpected journal line: " + line); - } - - final String key = parts[1]; - if (parts[0].equals(REMOVE) && parts.length == 2) { - lruEntries.remove(key); - return; - } - - Entry entry = lruEntries.get(key); - if (entry == null) { - entry = new Entry(key); - lruEntries.put(key, entry); - } - - if (parts[0].equals(CLEAN) && parts.length == 2 + valueCount) { - entry.readable = true; - entry.currentEditor = null; - entry.setLengths(copyOfRange(parts, 2, parts.length)); - } else if (parts[0].equals(DIRTY) && parts.length == 2) { - entry.currentEditor = new Editor(entry); - } else if (parts[0].equals(READ) && parts.length == 2) { - // this work was already done by calling lruEntries.get() - } else { - throw new IOException("unexpected journal line: " + line); - } - } - - /** - * Computes the initial size and collects garbage as a part of opening the - * cache. Dirty entries are assumed to be inconsistent and will be deleted. - */ - private void processJournal() throws IOException { - deleteIfExists(journalFileTmp); - for (final Iterator i = lruEntries.values().iterator(); i.hasNext();) { - final Entry entry = i.next(); - if (entry.currentEditor == null) { - for (int t = 0; t < valueCount; t++) { - size += entry.lengths[t]; - } - } else { - entry.currentEditor = null; - for (int t = 0; t < valueCount; t++) { - deleteIfExists(entry.getCleanFile(t)); - deleteIfExists(entry.getDirtyFile(t)); - } - i.remove(); - } - } - } - - /** - * Creates a new journal that omits redundant information. This replaces the - * current journal if it exists. - */ - private synchronized void rebuildJournal() throws IOException { - if (journalWriter != null) { - journalWriter.close(); - } - - final Writer writer = new BufferedWriter(new FileWriter(journalFileTmp), IO_BUFFER_SIZE); - writer.write(MAGIC); - writer.write("\n"); - writer.write(VERSION_1); - writer.write("\n"); - writer.write(Integer.toString(appVersion)); - writer.write("\n"); - writer.write(Integer.toString(valueCount)); - writer.write("\n"); - writer.write("\n"); - - for (final Entry entry : lruEntries.values()) { - if (entry.currentEditor != null) { - writer.write(DIRTY + ' ' + entry.key + '\n'); - } else { - writer.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); - } - } - - writer.close(); - journalFileTmp.renameTo(journalFile); - journalWriter = new BufferedWriter(new FileWriter(journalFile, true), IO_BUFFER_SIZE); - } - - private static void deleteIfExists(final File file) throws IOException { - // try { - // Libcore.os.remove(file.getPath()); - // } catch (ErrnoException errnoException) { - // if (errnoException.errno != OsConstants.ENOENT) { - // throw errnoException.rethrowAsIOException(); - // } - // } - if (file.exists() && !file.delete()) { - throw new IOException(); - } - } - - /** - * Returns a snapshot of the entry named {@code key}, or null if it doesn't - * exist is not currently readable. If a value is returned, it is moved to - * the head of the LRU queue. - */ - public synchronized Snapshot get(final String key) throws IOException { - checkNotClosed(); - validateKey(key); - final Entry entry = lruEntries.get(key); - if (entry == null) { - return null; - } - - if (!entry.readable) { - return null; - } - - /* - * Open all streams eagerly to guarantee that we see a single published - * snapshot. If we opened streams lazily then the streams could come - * from different edits. - */ - final InputStream[] ins = new InputStream[valueCount]; - try { - for (int i = 0; i < valueCount; i++) { - ins[i] = new FileInputStream(entry.getCleanFile(i)); - } - } catch (final FileNotFoundException e) { - // a file must have been deleted manually! - return null; - } - - redundantOpCount++; - journalWriter.append(READ + ' ').append(key).append('\n'); - if (journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - - return new Snapshot(key, entry.sequenceNumber, ins); - } - - /** - * Returns an editor for the entry named {@code key}, or null if another - * edit is in progress. - */ - public Editor edit(final String key) throws IOException { - return edit(key, ANY_SEQUENCE_NUMBER); - } - - private synchronized Editor edit(final String key, final long expectedSequenceNumber) - throws IOException { - checkNotClosed(); - validateKey(key); - Entry entry = lruEntries.get(key); - if (expectedSequenceNumber != ANY_SEQUENCE_NUMBER - && (entry == null || entry.sequenceNumber != expectedSequenceNumber)) { - return null; // snapshot is stale - } - if (entry == null) { - entry = new Entry(key); - lruEntries.put(key, entry); - } else if (entry.currentEditor != null) { - return null; // another edit is in progress - } - - final Editor editor = new Editor(entry); - entry.currentEditor = editor; - - // flush the journal before creating files to prevent file leaks - journalWriter.write(DIRTY + ' ' + key + '\n'); - journalWriter.flush(); - return editor; - } - - /** - * Returns the directory where this cache stores its data. - */ - public File getDirectory() { - return directory; - } - - /** - * Returns the maximum number of bytes that this cache should use to store - * its data. - */ - public long maxSize() { - return maxSize; - } - - /** - * Returns the number of bytes currently being used to store the values in - * this cache. This may be greater than the max size if a background - * deletion is pending. - */ - public synchronized long size() { - return size; - } - - private synchronized void completeEdit(final Editor editor, final boolean success) - throws IOException { - final Entry entry = editor.entry; - if (entry.currentEditor != editor) { - throw new IllegalStateException(); - } - - // if this edit is creating the entry for the first time, every index - // must have a value - if (success && !entry.readable) { - for (int i = 0; i < valueCount; i++) { - if (!entry.getDirtyFile(i).exists()) { - editor.abort(); - throw new IllegalStateException("edit didn't create file " + i); - } - } - } - - for (int i = 0; i < valueCount; i++) { - final File dirty = entry.getDirtyFile(i); - if (success) { - if (dirty.exists()) { - final File clean = entry.getCleanFile(i); - dirty.renameTo(clean); - final long oldLength = entry.lengths[i]; - final long newLength = clean.length(); - entry.lengths[i] = newLength; - size = size - oldLength + newLength; - } - } else { - deleteIfExists(dirty); - } - } - - redundantOpCount++; - entry.currentEditor = null; - if (entry.readable | success) { - entry.readable = true; - journalWriter.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); - if (success) { - entry.sequenceNumber = nextSequenceNumber++; - } - } else { - lruEntries.remove(entry.key); - journalWriter.write(REMOVE + ' ' + entry.key + '\n'); - } - - if (size > maxSize || journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - } - - /** - * We only rebuild the journal when it will halve the size of the journal - * and eliminate at least 2000 ops. - */ - private boolean journalRebuildRequired() { - final int REDUNDANT_OP_COMPACT_THRESHOLD = 2000; - return redundantOpCount >= REDUNDANT_OP_COMPACT_THRESHOLD - && redundantOpCount >= lruEntries.size(); - } - - /** - * Drops the entry for {@code key} if it exists and can be removed. Entries - * actively being edited cannot be removed. - * - * @return true if an entry was removed. - */ - public synchronized boolean remove(final String key) throws IOException { - checkNotClosed(); - validateKey(key); - final Entry entry = lruEntries.get(key); - if (entry == null || entry.currentEditor != null) { - return false; - } - - for (int i = 0; i < valueCount; i++) { - final File file = entry.getCleanFile(i); - if (!file.delete()) { - throw new IOException("failed to delete " + file); - } - size -= entry.lengths[i]; - entry.lengths[i] = 0; - } - - redundantOpCount++; - journalWriter.append(REMOVE + ' ').append(key).append('\n'); - lruEntries.remove(key); - - if (journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - - return true; - } - - /** - * Returns true if this cache has been closed. - */ - public boolean isClosed() { - return journalWriter == null; - } - - private void checkNotClosed() { - if (journalWriter == null) { - throw new IllegalStateException("cache is closed"); - } - } - - /** - * Force buffered operations to the filesystem. - */ - public synchronized void flush() throws IOException { - checkNotClosed(); - trimToSize(); - journalWriter.flush(); - } - - /** - * Closes this cache. Stored values will remain on the filesystem. - */ - @Override - public synchronized void close() throws IOException { - if (journalWriter == null) { - return; // already closed - } - for (final Entry entry : new ArrayList(lruEntries.values())) { - if (entry.currentEditor != null) { - entry.currentEditor.abort(); - } - } - trimToSize(); - journalWriter.close(); - journalWriter = null; - } - - private void trimToSize() throws IOException { - while (size > maxSize) { - // Map.Entry toEvict = lruEntries.eldest(); - final Map.Entry toEvict = lruEntries.entrySet().iterator().next(); - remove(toEvict.getKey()); - } - } - - /** - * Closes the cache and deletes all of its stored values. This will delete - * all files in the cache directory including files that weren't created by - * the cache. - */ - public void delete() throws IOException { - close(); - deleteContents(directory); - } - - private void validateKey(final String key) { - if (key.contains(" ") || key.contains("\n") || key.contains("\r")) { - throw new IllegalArgumentException("keys must not contain spaces or newlines: \"" + key - + "\""); - } - } - - private static String inputStreamToString(final InputStream in) throws IOException { - return readFully(new InputStreamReader(in, UTF_8)); - } - - /** - * A snapshot of the values for an entry. - */ - public final class Snapshot implements Closeable { - private final String key; - - private final long sequenceNumber; - - private final InputStream[] ins; - - private Snapshot(final String key, final long sequenceNumber, final InputStream[] ins) { - this.key = key; - this.sequenceNumber = sequenceNumber; - this.ins = ins; - } - - /** - * Returns an editor for this snapshot's entry, or null if either the - * entry has changed since this snapshot was created or if another edit - * is in progress. - */ - public Editor edit() throws IOException { - return DiskLruCache.this.edit(key, sequenceNumber); - } - - /** - * Returns the unbuffered stream with the value for {@code index}. - */ - public InputStream getInputStream(final int index) { - return ins[index]; - } - - /** - * Returns the string value for {@code index}. - */ - public String getString(final int index) throws IOException { - return inputStreamToString(getInputStream(index)); - } - - @Override - public void close() { - for (final InputStream in : ins) { - closeQuietly(in); - } - } - } - - /** - * Edits the values for an entry. - */ - public final class Editor { - private final Entry entry; - - private boolean hasErrors; - - private Editor(final Entry entry) { - this.entry = entry; - } - - /** - * Returns an unbuffered input stream to read the last committed value, - * or null if no value has been committed. - */ - public InputStream newInputStream(final int index) throws IOException { - synchronized (DiskLruCache.this) { - if (entry.currentEditor != this) { - throw new IllegalStateException(); - } - if (!entry.readable) { - return null; - } - return new FileInputStream(entry.getCleanFile(index)); - } - } - - /** - * Returns the last committed value as a string, or null if no value has - * been committed. - */ - public String getString(final int index) throws IOException { - final InputStream in = newInputStream(index); - return in != null ? inputStreamToString(in) : null; - } - - /** - * Returns a new unbuffered output stream to write the value at - * {@code index}. If the underlying output stream encounters errors when - * writing to the filesystem, this edit will be aborted when - * {@link #commit} is called. The returned output stream does not throw - * IOExceptions. - */ - public OutputStream newOutputStream(final int index) throws IOException { - synchronized (DiskLruCache.this) { - if (entry.currentEditor != this) { - throw new IllegalStateException(); - } - return new FaultHidingOutputStream(new FileOutputStream(entry.getDirtyFile(index))); - } - } - - /** - * Sets the value at {@code index} to {@code value}. - */ - public void set(final int index, final String value) throws IOException { - Writer writer = null; - try { - writer = new OutputStreamWriter(newOutputStream(index), UTF_8); - writer.write(value); - } finally { - closeQuietly(writer); - } - } - - /** - * Commits this edit so it is visible to readers. This releases the edit - * lock so another edit may be started on the same key. - */ - public void commit() throws IOException { - if (hasErrors) { - completeEdit(this, false); - remove(entry.key); // the previous entry is stale - } else { - completeEdit(this, true); - } - } - - /** - * Aborts this edit. This releases the edit lock so another edit may be - * started on the same key. - */ - public void abort() throws IOException { - completeEdit(this, false); - } - - private class FaultHidingOutputStream extends FilterOutputStream { - private FaultHidingOutputStream(final OutputStream out) { - super(out); - } - - @Override - public void write(final int oneByte) { - try { - out.write(oneByte); - } catch (final IOException e) { - hasErrors = true; - } - } - - @Override - public void write(final byte[] buffer, final int offset, final int length) { - try { - out.write(buffer, offset, length); - } catch (final IOException e) { - hasErrors = true; - } - } - - @Override - public void close() { - try { - out.close(); - } catch (final IOException e) { - hasErrors = true; - } - } - - @Override - public void flush() { - try { - out.flush(); - } catch (final IOException e) { - hasErrors = true; - } - } - } - } - - private final class Entry { - private final String key; - - /** Lengths of this entry's files. */ - private final long[] lengths; - - /** True if this entry has ever been published */ - private boolean readable; - - /** The ongoing edit or null if this entry is not being edited. */ - private Editor currentEditor; - - /** - * The sequence number of the most recently committed edit to this - * entry. - */ - private long sequenceNumber; - - private Entry(final String key) { - this.key = key; - lengths = new long[valueCount]; - } - - public String getLengths() throws IOException { - final StringBuilder result = new StringBuilder(); - for (final long size : lengths) { - result.append(' ').append(size); - } - return result.toString(); - } - - /** - * Set lengths using decimal numbers like "10123". - */ - private void setLengths(final String[] strings) throws IOException { - if (strings.length != valueCount) { - throw invalidLengths(strings); - } - - try { - for (int i = 0; i < strings.length; i++) { - lengths[i] = Long.parseLong(strings[i]); - } - } catch (final NumberFormatException e) { - throw invalidLengths(strings); - } - } - - private IOException invalidLengths(final String[] strings) throws IOException { - throw new IOException("unexpected journal line: " + Arrays.toString(strings)); - } - - public File getCleanFile(final int i) { - return new File(directory, key + "." + i); - } - - public File getDirtyFile(final int i) { - return new File(directory, key + "." + i + ".tmp"); - } - } -} diff --git a/app/src/main/java/org/lineageos/eleven/cache/ImageCache.java b/app/src/main/java/org/lineageos/eleven/cache/ImageCache.java index 7b837b6..83d2410 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/ImageCache.java +++ b/app/src/main/java/org/lineageos/eleven/cache/ImageCache.java @@ -13,7 +13,6 @@ package org.lineageos.eleven.cache; -import android.annotation.SuppressLint; import android.app.Activity; import android.app.ActivityManager; import android.app.Fragment; @@ -33,7 +32,9 @@ import android.os.ParcelFileDescriptor; import android.util.Log; +import org.lineageos.eleven.cache.disklrucache.DiskLruCache; import org.lineageos.eleven.utils.ElevenUtils; +import org.lineageos.eleven.utils.IoUtils; import java.io.File; import java.io.FileDescriptor; @@ -49,7 +50,6 @@ * This class holds the memory and disk bitmap caches. */ public final class ImageCache { - private static final String TAG = ImageCache.class.getSimpleName(); /** @@ -95,7 +95,7 @@ public final class ImageCache { /** * listeners to the cache state */ - private HashSet mListeners = new HashSet(); + private HashSet mListeners = new HashSet<>(); private static ImageCache sInstance; @@ -183,7 +183,6 @@ private synchronized void initDiskCache(final Context context) { * * @param context The {@link Context} to use */ - @SuppressLint("NewApi") public void initLruCache(final Context context) { final ActivityManager activityManager = (ActivityManager)context .getSystemService(Context.ACTIVITY_SERVICE); @@ -194,9 +193,6 @@ public void initLruCache(final Context context) { // Release some memory as needed context.registerComponentCallbacks(new ComponentCallbacks2() { - /** - * {@inheritDoc} - */ @Override public void onTrimMemory(final int level) { if (level >= TRIM_MEMORY_MODERATE) { @@ -206,17 +202,11 @@ public void onTrimMemory(final int level) { } } - /** - * {@inheritDoc} - */ @Override public void onLowMemory() { // Nothing to do } - /** - * {@inheritDoc} - */ @Override public void onConfigurationChanged(final Configuration newConfig) { // Nothing to do @@ -233,7 +223,7 @@ public void onConfigurationChanged(final Configuration newConfig) { * @return An existing retained ImageCache object or a new one if one did * not exist */ - public static final ImageCache findOrCreateCache(final Activity activity) { + public static ImageCache findOrCreateCache(final Activity activity) { // Search for, or create an instance of the non-UI RetainFragment final RetainFragment retainFragment = findOrCreateRetainFragment( @@ -258,7 +248,7 @@ public static final ImageCache findOrCreateCache(final Activity activity) { * @return The existing instance of the {@link Fragment} or the new instance * if just created */ - public static final RetainFragment findOrCreateRetainFragment(final FragmentManager fm) { + public static RetainFragment findOrCreateRetainFragment(final FragmentManager fm) { // Check to see if we have retained the worker fragment RetainFragment retainFragment = (RetainFragment)fm.findFragmentByTag(TAG); @@ -316,23 +306,14 @@ public void addBitmapToCache(final String data, final Bitmap bitmap, final boole } } } catch (final IOException e) { - Log.e(TAG, "addBitmapToCache - " + e); + Log.e(TAG, "addBitmapToCache", e); } catch (final IllegalStateException e) { // if the user clears the cache while we have an async task going we could try // writing to the disk cache while it isn't ready. Catching here will silently // fail instead - Log.e(TAG, "addBitmapToCache - " + e); + Log.e(TAG, "addBitmapToCache", e); } finally { - try { - if (out != null) { - out.close(); - out = null; - } - } catch (final IOException e) { - Log.e(TAG, "addBitmapToCache - " + e); - } catch (final IllegalStateException e) { - Log.e(TAG, "addBitmapToCache - " + e); - } + IoUtils.closeQuietly(out); } } } @@ -416,14 +397,9 @@ public final Bitmap getBitmapFromDiskCache(final String data) { } } } catch (final IOException e) { - Log.e(TAG, "getBitmapFromDiskCache - " + e); + Log.e(TAG, "getBitmapFromDiskCache", e); } finally { - try { - if (inputStream != null) { - inputStream.close(); - } - } catch (final IOException e) { - } + IoUtils.closeQuietly(inputStream); } } return null; @@ -488,10 +464,11 @@ public final Bitmap getArtworkFromFile(final Context context, final long albumId } Bitmap artwork = null; waitUntilUnpaused(); + + ParcelFileDescriptor parcelFileDescriptor = null; try { final Uri uri = ContentUris.withAppendedId(mArtworkUri, albumId); - final ParcelFileDescriptor parcelFileDescriptor = context.getContentResolver() - .openFileDescriptor(uri, "r"); + parcelFileDescriptor = context.getContentResolver().openFileDescriptor(uri, "r"); if (parcelFileDescriptor != null) { final FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor(); artwork = BitmapFactory.decodeFileDescriptor(fileDescriptor); @@ -503,6 +480,8 @@ public final Bitmap getArtworkFromFile(final Context context, final long albumId } catch (final OutOfMemoryError evict) { // Log.e(TAG, "OutOfMemoryError - getArtworkFromFile - ", evict); evictAll(); + } finally { + IoUtils.closeQuietly(parcelFileDescriptor); } return artwork; } @@ -522,12 +501,12 @@ protected Void doInBackground(final Void... unused) { mDiskCache.flush(); } } catch (final IOException e) { - Log.e(TAG, "flush - " + e); + Log.e(TAG, "flush", e); } } return null; } - }, (Void[])null); + }); } /** @@ -545,13 +524,13 @@ protected Void doInBackground(final Void... unused) { mDiskCache = null; } } catch (final IOException e) { - Log.e(TAG, "clearCaches - " + e); + Log.e(TAG, "clearCaches", e); } // Clear the memory cache evictAll(); return null; } - }, (Void[])null); + }); } /** @@ -571,12 +550,12 @@ protected Void doInBackground(final Void... unused) { mDiskCache = null; } } catch (final IOException e) { - Log.e(TAG, "close - " + e); + Log.e(TAG, "close", e); } } return null; } - }, (Void[]) null); + }); } /** @@ -608,7 +587,7 @@ public void removeFromCache(final String key) { mDiskCache.remove(hashKeyForDisk(key)); } } catch (final IOException e) { - Log.e(TAG, "remove - " + e); + Log.e(TAG, "removeFromCache(" + key + ")", e); } flush(); } @@ -671,7 +650,7 @@ public void removeCacheListener(ICacheListener listener) { * directory * @return The cache directory */ - public static final File getDiskCacheDir(final Context context, final String uniqueName) { + public static File getDiskCacheDir(final Context context, final String uniqueName) { // getExternalCacheDir(context) returns null if external storage is not ready final String cachePath = getExternalCacheDir(context) != null ? getExternalCacheDir(context).getPath() @@ -685,7 +664,7 @@ public static final File getDiskCacheDir(final Context context, final String uni * @return True if external storage is removable (like an SD card), false * otherwise */ - public static final boolean isExternalStorageRemovable() { + public static boolean isExternalStorageRemovable() { return Environment.isExternalStorageRemovable(); } @@ -695,7 +674,7 @@ public static final boolean isExternalStorageRemovable() { * @param context The {@link Context} to use * @return The external cache directory */ - public static final File getExternalCacheDir(final Context context) { + public static File getExternalCacheDir(final Context context) { return context.getExternalCacheDir(); } @@ -705,7 +684,7 @@ public static final File getExternalCacheDir(final Context context) { * @param path The path to check * @return The space available in bytes */ - public static final long getUsableSpace(final File path) { + public static long getUsableSpace(final File path) { return path.getUsableSpace(); } @@ -715,7 +694,7 @@ public static final long getUsableSpace(final File path) { * * @param key The key used to store the file */ - public static final String hashKeyForDisk(final String key) { + public static String hashKeyForDisk(final String key) { String cacheKey; try { final MessageDigest digest = MessageDigest.getInstance("MD5"); @@ -734,7 +713,7 @@ public static final String hashKeyForDisk(final String key) { * @return A {@link String} converted from the bytes of a hashable key used * to store a filename on the disk, to hex digits. */ - private static final String bytesToHexString(final byte[] bytes) { + private static String bytesToHexString(final byte[] bytes) { final StringBuilder builder = new StringBuilder(); for (final byte b : bytes) { final String hex = Integer.toHexString(0xFF & b); @@ -764,9 +743,6 @@ public static final class RetainFragment extends Fragment { public RetainFragment() { } - /** - * {@inheritDoc} - */ @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -810,18 +786,13 @@ public MemoryCache(final int maxSize) { /** * Get the size in bytes of a bitmap. */ - public static final int getBitmapSize(final Bitmap bitmap) { + public static int getBitmapSize(final Bitmap bitmap) { return bitmap.getByteCount(); } - /** - * {@inheritDoc} - */ @Override protected int sizeOf(final String paramString, final Bitmap paramBitmap) { return getBitmapSize(paramBitmap); } - } - } diff --git a/app/src/main/java/org/lineageos/eleven/cache/ImageWorker.java b/app/src/main/java/org/lineageos/eleven/cache/ImageWorker.java index 8d7fd1b..16d838d 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/ImageWorker.java +++ b/app/src/main/java/org/lineageos/eleven/cache/ImageWorker.java @@ -21,7 +21,6 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; -import android.text.TextUtils; import android.view.View; import android.widget.ImageView; // Because of androidx.renderscript issue https://issuetracker.google.com/u/0/issues/119582492 @@ -29,7 +28,6 @@ import android.support.v8.renderscript.RenderScript; //import androidx.renderscript.RenderScript; -import org.lineageos.eleven.R; import org.lineageos.eleven.provider.PlaylistArtworkStore; import org.lineageos.eleven.utils.ElevenUtils; import org.lineageos.eleven.utils.ImageUtils; @@ -372,7 +370,7 @@ public static final class AsyncTaskContainer { * Constructor of AsyncDrawable */ public AsyncTaskContainer(final BitmapWorkerTask bitmapWorkerTask) { - mBitmapWorkerTaskReference = new WeakReference(bitmapWorkerTask); + mBitmapWorkerTaskReference = new WeakReference<>(bitmapWorkerTask); mKey = bitmapWorkerTask.mKey; } diff --git a/app/src/main/java/org/lineageos/eleven/cache/LruCache.java b/app/src/main/java/org/lineageos/eleven/cache/LruCache.java index 62f9385..c81dad1 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/LruCache.java +++ b/app/src/main/java/org/lineageos/eleven/cache/LruCache.java @@ -56,7 +56,7 @@ public LruCache(final int maxSize) { throw new IllegalArgumentException("maxSize <= 0"); } this.maxSize = maxSize; - this.map = new LinkedHashMap(0, 0.75f, true); + this.map = new LinkedHashMap<>(0, 0.75f, true); } /** @@ -319,7 +319,7 @@ public synchronized final int evictionCount() { * recently accessed to most recently accessed. */ public synchronized final Map snapshot() { - return new LinkedHashMap(this.map); + return new LinkedHashMap<>(this.map); } @SuppressLint("DefaultLocale") diff --git a/app/src/main/java/org/lineageos/eleven/cache/PlaylistWorkerTask.java b/app/src/main/java/org/lineageos/eleven/cache/PlaylistWorkerTask.java index b44bdbd..42bde74 100644 --- a/app/src/main/java/org/lineageos/eleven/cache/PlaylistWorkerTask.java +++ b/app/src/main/java/org/lineageos/eleven/cache/PlaylistWorkerTask.java @@ -25,14 +25,12 @@ import android.provider.MediaStore; import android.widget.ImageView; -import org.lineageos.eleven.R; import org.lineageos.eleven.cache.ImageWorker.ImageType; import org.lineageos.eleven.loaders.PlaylistSongLoader; import org.lineageos.eleven.loaders.SortedCursor; import org.lineageos.eleven.provider.PlaylistArtworkStore; import org.lineageos.eleven.provider.SongPlayCount; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashSet; @@ -277,7 +275,7 @@ protected Bitmap loadTopSongs(Cursor sortedCursor) { return null; } - ArrayList loadedBitmaps = new ArrayList(MAX_NUM_BITMAPS_TO_LOAD); + ArrayList loadedBitmaps = new ArrayList<>(MAX_NUM_BITMAPS_TO_LOAD); final int artistIdx = sortedCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST); final int albumIdIdx = sortedCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM_ID); @@ -289,7 +287,7 @@ protected Bitmap loadTopSongs(Cursor sortedCursor) { long albumId = -1; // create a hashset of the keys so we don't load images from the same album multiple times - HashSet keys = new HashSet(sortedCursor.getCount()); + HashSet keys = new HashSet<>(sortedCursor.getCount()); do { if (isCancelled()) { @@ -346,14 +344,6 @@ protected Bitmap loadTopSongs(Cursor sortedCursor) { combinedCanvas.drawBitmap(loadedBitmaps.get(3), null, new Rect(width / 2, height / 2, width, height), null); - // combinedCanvas.release(); - try { - Class clazz = combinedCanvas.getClass(); - Method m = clazz.getMethod("release", new Class[0]); - m.invoke(combinedCanvas, new Object[0]); - } catch (Exception ex) { - throw new RuntimeException(ex); - } combinedCanvas = null; bitmap = combinedBitmap; } diff --git a/app/src/main/java/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java new file mode 100644 index 0000000..e218d1e --- /dev/null +++ b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java @@ -0,0 +1,943 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.eleven.cache.disklrucache; + +import java.io.BufferedWriter; +import java.io.Closeable; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FilterOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * A cache that uses a bounded amount of space on a filesystem. Each cache + * entry has a string key and a fixed number of values. Each key must match + * the regex [a-z0-9_-]{1,120}. Values are byte sequences, + * accessible as streams or files. Each value must be between {@code 0} and + * {@code Integer.MAX_VALUE} bytes in length. + * + *

The cache stores its data in a directory on the filesystem. This + * directory must be exclusive to the cache; the cache may delete or overwrite + * files from its directory. It is an error for multiple processes to use the + * same cache directory at the same time. + * + *

This cache limits the number of bytes that it will store on the + * filesystem. When the number of stored bytes exceeds the limit, the cache will + * remove entries in the background until the limit is satisfied. The limit is + * not strict: the cache may temporarily exceed it while waiting for files to be + * deleted. The limit does not include filesystem overhead or the cache + * journal so space-sensitive applications should set a conservative limit. + * + *

Clients call {@link #edit} to create or update the values of an entry. An + * entry may have only one editor at one time; if a value is not available to be + * edited then {@link #edit} will return null. + *

    + *
  • When an entry is being created it is necessary to + * supply a full set of values; the empty value should be used as a + * placeholder if necessary. + *
  • When an entry is being edited, it is not necessary + * to supply data for every value; values default to their previous + * value. + *
+ * Every {@link #edit} call must be matched by a call to {@link Editor#commit} + * or {@link Editor#abort}. Committing is atomic: a read observes the full set + * of values as they were before or after the commit, but never a mix of values. + * + *

Clients call {@link #get} to read a snapshot of an entry. The read will + * observe the value at the time that {@link #get} was called. Updates and + * removals after the call do not impact ongoing reads. + * + *

This class is tolerant of some I/O errors. If files are missing from the + * filesystem, the corresponding entries will be dropped from the cache. If + * an error occurs while writing a cache value, the edit will fail silently. + * Callers should handle other problems by catching {@code IOException} and + * responding appropriately. + */ +public final class DiskLruCache implements Closeable { + static final String JOURNAL_FILE = "journal"; + static final String JOURNAL_FILE_TEMP = "journal.tmp"; + static final String JOURNAL_FILE_BACKUP = "journal.bkp"; + static final String MAGIC = "libcore.io.DiskLruCache"; + static final String VERSION_1 = "1"; + static final long ANY_SEQUENCE_NUMBER = -1; + static final String STRING_KEY_PATTERN = "[a-z0-9_-]{1,120}"; + static final Pattern LEGAL_KEY_PATTERN = Pattern.compile(STRING_KEY_PATTERN); + private static final String CLEAN = "CLEAN"; + private static final String DIRTY = "DIRTY"; + private static final String REMOVE = "REMOVE"; + private static final String READ = "READ"; + + /* + * This cache uses a journal file named "journal". A typical journal file + * looks like this: + * libcore.io.DiskLruCache + * 1 + * 100 + * 2 + * + * CLEAN 3400330d1dfc7f3f7f4b8d4d803dfcf6 832 21054 + * DIRTY 335c4c6028171cfddfbaae1a9c313c52 + * CLEAN 335c4c6028171cfddfbaae1a9c313c52 3934 2342 + * REMOVE 335c4c6028171cfddfbaae1a9c313c52 + * DIRTY 1ab96a171faeeee38496d8b330771a7a + * CLEAN 1ab96a171faeeee38496d8b330771a7a 1600 234 + * READ 335c4c6028171cfddfbaae1a9c313c52 + * READ 3400330d1dfc7f3f7f4b8d4d803dfcf6 + * + * The first five lines of the journal form its header. They are the + * constant string "libcore.io.DiskLruCache", the disk cache's version, + * the application's version, the value count, and a blank line. + * + * Each of the subsequent lines in the file is a record of the state of a + * cache entry. Each line contains space-separated values: a state, a key, + * and optional state-specific values. + * o DIRTY lines track that an entry is actively being created or updated. + * Every successful DIRTY action should be followed by a CLEAN or REMOVE + * action. DIRTY lines without a matching CLEAN or REMOVE indicate that + * temporary files may need to be deleted. + * o CLEAN lines track a cache entry that has been successfully published + * and may be read. A publish line is followed by the lengths of each of + * its values. + * o READ lines track accesses for LRU. + * o REMOVE lines track entries that have been deleted. + * + * The journal file is appended to as cache operations occur. The journal may + * occasionally be compacted by dropping redundant lines. A temporary file named + * "journal.tmp" will be used during compaction; that file should be deleted if + * it exists when the cache is opened. + */ + + private final File directory; + private final File journalFile; + private final File journalFileTmp; + private final File journalFileBackup; + private final int appVersion; + private long maxSize; + private final int valueCount; + private long size = 0; + private Writer journalWriter; + private final LinkedHashMap lruEntries = + new LinkedHashMap(0, 0.75f, true); + private int redundantOpCount; + + /** + * To differentiate between old and current snapshots, each entry is given + * a sequence number each time an edit is committed. A snapshot is stale if + * its sequence number is not equal to its entry's sequence number. + */ + private long nextSequenceNumber = 0; + + /** This cache uses a single background thread to evict entries. */ + final ThreadPoolExecutor executorService = + new ThreadPoolExecutor(0, 1, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue()); + private final Callable cleanupCallable = new Callable() { + public Void call() throws Exception { + synchronized (DiskLruCache.this) { + if (journalWriter == null) { + return null; // Closed. + } + trimToSize(); + if (journalRebuildRequired()) { + rebuildJournal(); + redundantOpCount = 0; + } + } + return null; + } + }; + + private DiskLruCache(File directory, int appVersion, int valueCount, long maxSize) { + this.directory = directory; + this.appVersion = appVersion; + this.journalFile = new File(directory, JOURNAL_FILE); + this.journalFileTmp = new File(directory, JOURNAL_FILE_TEMP); + this.journalFileBackup = new File(directory, JOURNAL_FILE_BACKUP); + this.valueCount = valueCount; + this.maxSize = maxSize; + } + + /** + * Opens the cache in {@code directory}, creating a cache if none exists + * there. + * + * @param directory a writable directory + * @param valueCount the number of values per cache entry. Must be positive. + * @param maxSize the maximum number of bytes this cache should use to store + * @throws IOException if reading or writing the cache directory fails + */ + public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize) + throws IOException { + if (maxSize <= 0) { + throw new IllegalArgumentException("maxSize <= 0"); + } + if (valueCount <= 0) { + throw new IllegalArgumentException("valueCount <= 0"); + } + + // If a bkp file exists, use it instead. + File backupFile = new File(directory, JOURNAL_FILE_BACKUP); + if (backupFile.exists()) { + File journalFile = new File(directory, JOURNAL_FILE); + // If journal file also exists just delete backup file. + if (journalFile.exists()) { + backupFile.delete(); + } else { + renameTo(backupFile, journalFile, false); + } + } + + // Prefer to pick up where we left off. + DiskLruCache cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); + if (cache.journalFile.exists()) { + try { + cache.readJournal(); + cache.processJournal(); + return cache; + } catch (IOException journalIsCorrupt) { + System.out + .println("DiskLruCache " + + directory + + " is corrupt: " + + journalIsCorrupt.getMessage() + + ", removing"); + cache.delete(); + } + } + + // Create a new empty cache. + directory.mkdirs(); + cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); + cache.rebuildJournal(); + return cache; + } + + private void readJournal() throws IOException { + StrictLineReader reader = new StrictLineReader(new FileInputStream(journalFile), Util.US_ASCII); + try { + String magic = reader.readLine(); + String version = reader.readLine(); + String appVersionString = reader.readLine(); + String valueCountString = reader.readLine(); + String blank = reader.readLine(); + if (!MAGIC.equals(magic) + || !VERSION_1.equals(version) + || !Integer.toString(appVersion).equals(appVersionString) + || !Integer.toString(valueCount).equals(valueCountString) + || !"".equals(blank)) { + throw new IOException("unexpected journal header: [" + magic + ", " + version + ", " + + valueCountString + ", " + blank + "]"); + } + + int lineCount = 0; + while (true) { + try { + readJournalLine(reader.readLine()); + lineCount++; + } catch (EOFException endOfJournal) { + break; + } + } + redundantOpCount = lineCount - lruEntries.size(); + + // If we ended on a truncated line, rebuild the journal before appending to it. + if (reader.hasUnterminatedLine()) { + rebuildJournal(); + } else { + journalWriter = new BufferedWriter(new OutputStreamWriter( + new FileOutputStream(journalFile, true), Util.US_ASCII)); + } + } finally { + Util.closeQuietly(reader); + } + } + + private void readJournalLine(String line) throws IOException { + int firstSpace = line.indexOf(' '); + if (firstSpace == -1) { + throw new IOException("unexpected journal line: " + line); + } + + int keyBegin = firstSpace + 1; + int secondSpace = line.indexOf(' ', keyBegin); + final String key; + if (secondSpace == -1) { + key = line.substring(keyBegin); + if (firstSpace == REMOVE.length() && line.startsWith(REMOVE)) { + lruEntries.remove(key); + return; + } + } else { + key = line.substring(keyBegin, secondSpace); + } + + Entry entry = lruEntries.get(key); + if (entry == null) { + entry = new Entry(key); + lruEntries.put(key, entry); + } + + if (secondSpace != -1 && firstSpace == CLEAN.length() && line.startsWith(CLEAN)) { + String[] parts = line.substring(secondSpace + 1).split(" "); + entry.readable = true; + entry.currentEditor = null; + entry.setLengths(parts); + } else if (secondSpace == -1 && firstSpace == DIRTY.length() && line.startsWith(DIRTY)) { + entry.currentEditor = new Editor(entry); + } else if (secondSpace == -1 && firstSpace == READ.length() && line.startsWith(READ)) { + // This work was already done by calling lruEntries.get(). + } else { + throw new IOException("unexpected journal line: " + line); + } + } + + /** + * Computes the initial size and collects garbage as a part of opening the + * cache. Dirty entries are assumed to be inconsistent and will be deleted. + */ + private void processJournal() throws IOException { + deleteIfExists(journalFileTmp); + for (Iterator i = lruEntries.values().iterator(); i.hasNext(); ) { + Entry entry = i.next(); + if (entry.currentEditor == null) { + for (int t = 0; t < valueCount; t++) { + size += entry.lengths[t]; + } + } else { + entry.currentEditor = null; + for (int t = 0; t < valueCount; t++) { + deleteIfExists(entry.getCleanFile(t)); + deleteIfExists(entry.getDirtyFile(t)); + } + i.remove(); + } + } + } + + /** + * Creates a new journal that omits redundant information. This replaces the + * current journal if it exists. + */ + private synchronized void rebuildJournal() throws IOException { + if (journalWriter != null) { + journalWriter.close(); + } + + Writer writer = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(journalFileTmp), Util.US_ASCII)); + try { + writer.write(MAGIC); + writer.write("\n"); + writer.write(VERSION_1); + writer.write("\n"); + writer.write(Integer.toString(appVersion)); + writer.write("\n"); + writer.write(Integer.toString(valueCount)); + writer.write("\n"); + writer.write("\n"); + + for (Entry entry : lruEntries.values()) { + if (entry.currentEditor != null) { + writer.write(DIRTY + ' ' + entry.key + '\n'); + } else { + writer.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); + } + } + } finally { + writer.close(); + } + + if (journalFile.exists()) { + renameTo(journalFile, journalFileBackup, true); + } + renameTo(journalFileTmp, journalFile, false); + journalFileBackup.delete(); + + journalWriter = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(journalFile, true), Util.US_ASCII)); + } + + private static void deleteIfExists(File file) throws IOException { + if (file.exists() && !file.delete()) { + throw new IOException(); + } + } + + private static void renameTo(File from, File to, boolean deleteDestination) throws IOException { + if (deleteDestination) { + deleteIfExists(to); + } + if (!from.renameTo(to)) { + throw new IOException(); + } + } + + /** + * Returns a snapshot of the entry named {@code key}, or null if it doesn't + * exist is not currently readable. If a value is returned, it is moved to + * the head of the LRU queue. + */ + public synchronized Snapshot get(String key) throws IOException { + checkNotClosed(); + validateKey(key); + Entry entry = lruEntries.get(key); + if (entry == null) { + return null; + } + + if (!entry.readable) { + return null; + } + + // Open all streams eagerly to guarantee that we see a single published + // snapshot. If we opened streams lazily then the streams could come + // from different edits. + InputStream[] ins = new InputStream[valueCount]; + try { + for (int i = 0; i < valueCount; i++) { + ins[i] = new FileInputStream(entry.getCleanFile(i)); + } + } catch (FileNotFoundException e) { + // A file must have been deleted manually! + for (int i = 0; i < valueCount; i++) { + if (ins[i] != null) { + Util.closeQuietly(ins[i]); + } else { + break; + } + } + return null; + } + + redundantOpCount++; + journalWriter.append(READ + ' ' + key + '\n'); + if (journalRebuildRequired()) { + executorService.submit(cleanupCallable); + } + + return new Snapshot(key, entry.sequenceNumber, ins, entry.lengths); + } + + /** + * Returns an editor for the entry named {@code key}, or null if another + * edit is in progress. + */ + public Editor edit(String key) throws IOException { + return edit(key, ANY_SEQUENCE_NUMBER); + } + + private synchronized Editor edit(String key, long expectedSequenceNumber) throws IOException { + checkNotClosed(); + validateKey(key); + Entry entry = lruEntries.get(key); + if (expectedSequenceNumber != ANY_SEQUENCE_NUMBER && (entry == null + || entry.sequenceNumber != expectedSequenceNumber)) { + return null; // Snapshot is stale. + } + if (entry == null) { + entry = new Entry(key); + lruEntries.put(key, entry); + } else if (entry.currentEditor != null) { + return null; // Another edit is in progress. + } + + Editor editor = new Editor(entry); + entry.currentEditor = editor; + + // Flush the journal before creating files to prevent file leaks. + journalWriter.write(DIRTY + ' ' + key + '\n'); + journalWriter.flush(); + return editor; + } + + /** Returns the directory where this cache stores its data. */ + public File getDirectory() { + return directory; + } + + /** + * Returns the maximum number of bytes that this cache should use to store + * its data. + */ + public synchronized long getMaxSize() { + return maxSize; + } + + /** + * Changes the maximum number of bytes the cache can store and queues a job + * to trim the existing store, if necessary. + */ + public synchronized void setMaxSize(long maxSize) { + this.maxSize = maxSize; + executorService.submit(cleanupCallable); + } + + /** + * Returns the number of bytes currently being used to store the values in + * this cache. This may be greater than the max size if a background + * deletion is pending. + */ + public synchronized long size() { + return size; + } + + private synchronized void completeEdit(Editor editor, boolean success) throws IOException { + Entry entry = editor.entry; + if (entry.currentEditor != editor) { + throw new IllegalStateException(); + } + + // If this edit is creating the entry for the first time, every index must have a value. + if (success && !entry.readable) { + for (int i = 0; i < valueCount; i++) { + if (!editor.written[i]) { + editor.abort(); + throw new IllegalStateException("Newly created entry didn't create value for index " + i); + } + if (!entry.getDirtyFile(i).exists()) { + editor.abort(); + return; + } + } + } + + for (int i = 0; i < valueCount; i++) { + File dirty = entry.getDirtyFile(i); + if (success) { + if (dirty.exists()) { + File clean = entry.getCleanFile(i); + dirty.renameTo(clean); + long oldLength = entry.lengths[i]; + long newLength = clean.length(); + entry.lengths[i] = newLength; + size = size - oldLength + newLength; + } + } else { + deleteIfExists(dirty); + } + } + + redundantOpCount++; + entry.currentEditor = null; + if (entry.readable | success) { + entry.readable = true; + journalWriter.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); + if (success) { + entry.sequenceNumber = nextSequenceNumber++; + } + } else { + lruEntries.remove(entry.key); + journalWriter.write(REMOVE + ' ' + entry.key + '\n'); + } + journalWriter.flush(); + + if (size > maxSize || journalRebuildRequired()) { + executorService.submit(cleanupCallable); + } + } + + /** + * We only rebuild the journal when it will halve the size of the journal + * and eliminate at least 2000 ops. + */ + private boolean journalRebuildRequired() { + final int redundantOpCompactThreshold = 2000; + return redundantOpCount >= redundantOpCompactThreshold // + && redundantOpCount >= lruEntries.size(); + } + + /** + * Drops the entry for {@code key} if it exists and can be removed. Entries + * actively being edited cannot be removed. + * + * @return true if an entry was removed. + */ + public synchronized boolean remove(String key) throws IOException { + checkNotClosed(); + validateKey(key); + Entry entry = lruEntries.get(key); + if (entry == null || entry.currentEditor != null) { + return false; + } + + for (int i = 0; i < valueCount; i++) { + File file = entry.getCleanFile(i); + if (file.exists() && !file.delete()) { + throw new IOException("failed to delete " + file); + } + size -= entry.lengths[i]; + entry.lengths[i] = 0; + } + + redundantOpCount++; + journalWriter.append(REMOVE + ' ' + key + '\n'); + lruEntries.remove(key); + + if (journalRebuildRequired()) { + executorService.submit(cleanupCallable); + } + + return true; + } + + /** Returns true if this cache has been closed. */ + public synchronized boolean isClosed() { + return journalWriter == null; + } + + private void checkNotClosed() { + if (journalWriter == null) { + throw new IllegalStateException("cache is closed"); + } + } + + /** Force buffered operations to the filesystem. */ + public synchronized void flush() throws IOException { + checkNotClosed(); + trimToSize(); + journalWriter.flush(); + } + + /** Closes this cache. Stored values will remain on the filesystem. */ + public synchronized void close() throws IOException { + if (journalWriter == null) { + return; // Already closed. + } + for (Entry entry : new ArrayList(lruEntries.values())) { + if (entry.currentEditor != null) { + entry.currentEditor.abort(); + } + } + trimToSize(); + journalWriter.close(); + journalWriter = null; + } + + private void trimToSize() throws IOException { + while (size > maxSize) { + Map.Entry toEvict = lruEntries.entrySet().iterator().next(); + remove(toEvict.getKey()); + } + } + + /** + * Closes the cache and deletes all of its stored values. This will delete + * all files in the cache directory including files that weren't created by + * the cache. + */ + public void delete() throws IOException { + close(); + Util.deleteContents(directory); + } + + private void validateKey(String key) { + Matcher matcher = LEGAL_KEY_PATTERN.matcher(key); + if (!matcher.matches()) { + throw new IllegalArgumentException("keys must match regex " + + STRING_KEY_PATTERN + ": \"" + key + "\""); + } + } + + private static String inputStreamToString(InputStream in) throws IOException { + return Util.readFully(new InputStreamReader(in, Util.UTF_8)); + } + + /** A snapshot of the values for an entry. */ + public final class Snapshot implements Closeable { + private final String key; + private final long sequenceNumber; + private final InputStream[] ins; + private final long[] lengths; + + private Snapshot(String key, long sequenceNumber, InputStream[] ins, long[] lengths) { + this.key = key; + this.sequenceNumber = sequenceNumber; + this.ins = ins; + this.lengths = lengths; + } + + /** + * Returns an editor for this snapshot's entry, or null if either the + * entry has changed since this snapshot was created or if another edit + * is in progress. + */ + public Editor edit() throws IOException { + return DiskLruCache.this.edit(key, sequenceNumber); + } + + /** Returns the unbuffered stream with the value for {@code index}. */ + public InputStream getInputStream(int index) { + return ins[index]; + } + + /** Returns the string value for {@code index}. */ + public String getString(int index) throws IOException { + return inputStreamToString(getInputStream(index)); + } + + /** Returns the byte length of the value for {@code index}. */ + public long getLength(int index) { + return lengths[index]; + } + + public void close() { + for (InputStream in : ins) { + Util.closeQuietly(in); + } + } + } + + private static final OutputStream NULL_OUTPUT_STREAM = new OutputStream() { + @Override + public void write(int b) throws IOException { + // Eat all writes silently. Nom nom. + } + }; + + /** Edits the values for an entry. */ + public final class Editor { + private final Entry entry; + private final boolean[] written; + private boolean hasErrors; + private boolean committed; + + private Editor(Entry entry) { + this.entry = entry; + this.written = (entry.readable) ? null : new boolean[valueCount]; + } + + /** + * Returns an unbuffered input stream to read the last committed value, + * or null if no value has been committed. + */ + public InputStream newInputStream(int index) throws IOException { + synchronized (DiskLruCache.this) { + if (entry.currentEditor != this) { + throw new IllegalStateException(); + } + if (!entry.readable) { + return null; + } + try { + return new FileInputStream(entry.getCleanFile(index)); + } catch (FileNotFoundException e) { + return null; + } + } + } + + /** + * Returns the last committed value as a string, or null if no value + * has been committed. + */ + public String getString(int index) throws IOException { + InputStream in = newInputStream(index); + return in != null ? inputStreamToString(in) : null; + } + + /** + * Returns a new unbuffered output stream to write the value at + * {@code index}. If the underlying output stream encounters errors + * when writing to the filesystem, this edit will be aborted when + * {@link #commit} is called. The returned output stream does not throw + * IOExceptions. + */ + public OutputStream newOutputStream(int index) throws IOException { + if (index < 0 || index >= valueCount) { + throw new IllegalArgumentException("Expected index " + index + " to " + + "be greater than 0 and less than the maximum value count " + + "of " + valueCount); + } + synchronized (DiskLruCache.this) { + if (entry.currentEditor != this) { + throw new IllegalStateException(); + } + if (!entry.readable) { + written[index] = true; + } + File dirtyFile = entry.getDirtyFile(index); + FileOutputStream outputStream; + try { + outputStream = new FileOutputStream(dirtyFile); + } catch (FileNotFoundException e) { + // Attempt to recreate the cache directory. + directory.mkdirs(); + try { + outputStream = new FileOutputStream(dirtyFile); + } catch (FileNotFoundException e2) { + // We are unable to recover. Silently eat the writes. + return NULL_OUTPUT_STREAM; + } + } + return new FaultHidingOutputStream(outputStream); + } + } + + /** Sets the value at {@code index} to {@code value}. */ + public void set(int index, String value) throws IOException { + Writer writer = null; + try { + writer = new OutputStreamWriter(newOutputStream(index), Util.UTF_8); + writer.write(value); + } finally { + Util.closeQuietly(writer); + } + } + + /** + * Commits this edit so it is visible to readers. This releases the + * edit lock so another edit may be started on the same key. + */ + public void commit() throws IOException { + if (hasErrors) { + completeEdit(this, false); + remove(entry.key); // The previous entry is stale. + } else { + completeEdit(this, true); + } + committed = true; + } + + /** + * Aborts this edit. This releases the edit lock so another edit may be + * started on the same key. + */ + public void abort() throws IOException { + completeEdit(this, false); + } + + public void abortUnlessCommitted() { + if (!committed) { + try { + abort(); + } catch (IOException ignored) { + } + } + } + + private class FaultHidingOutputStream extends FilterOutputStream { + private FaultHidingOutputStream(OutputStream out) { + super(out); + } + + @Override public void write(int oneByte) { + try { + out.write(oneByte); + } catch (IOException e) { + hasErrors = true; + } + } + + @Override public void write(byte[] buffer, int offset, int length) { + try { + out.write(buffer, offset, length); + } catch (IOException e) { + hasErrors = true; + } + } + + @Override public void close() { + try { + out.close(); + } catch (IOException e) { + hasErrors = true; + } + } + + @Override public void flush() { + try { + out.flush(); + } catch (IOException e) { + hasErrors = true; + } + } + } + } + + private final class Entry { + private final String key; + + /** Lengths of this entry's files. */ + private final long[] lengths; + + /** True if this entry has ever been published. */ + private boolean readable; + + /** The ongoing edit or null if this entry is not being edited. */ + private Editor currentEditor; + + /** The sequence number of the most recently committed edit to this entry. */ + private long sequenceNumber; + + private Entry(String key) { + this.key = key; + this.lengths = new long[valueCount]; + } + + public String getLengths() { + StringBuilder result = new StringBuilder(); + for (long size : lengths) { + result.append(' ').append(size); + } + return result.toString(); + } + + /** Set lengths using decimal numbers like "10123". */ + private void setLengths(String[] strings) throws IOException { + if (strings.length != valueCount) { + throw invalidLengths(strings); + } + + try { + for (int i = 0; i < strings.length; i++) { + lengths[i] = Long.parseLong(strings[i]); + } + } catch (NumberFormatException e) { + throw invalidLengths(strings); + } + } + + private IOException invalidLengths(String[] strings) throws IOException { + throw new IOException("unexpected journal line: " + java.util.Arrays.toString(strings)); + } + + public File getCleanFile(int i) { + return new File(directory, key + "." + i); + } + + public File getDirtyFile(int i) { + return new File(directory, key + "." + i + ".tmp"); + } + } +} diff --git a/app/src/main/java/org/lineageos/eleven/cache/disklrucache/StrictLineReader.java b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/StrictLineReader.java new file mode 100644 index 0000000..96d3d35 --- /dev/null +++ b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/StrictLineReader.java @@ -0,0 +1,196 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.eleven.cache.disklrucache; + +import java.io.ByteArrayOutputStream; +import java.io.Closeable; +import java.io.EOFException; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; + +/** + * Buffers input from an {@link InputStream} for reading lines. + * + *

This class is used for buffered reading of lines. For purposes of this class, a line ends + * with "\n" or "\r\n". End of input is reported by throwing {@code EOFException}. Unterminated + * line at end of input is invalid and will be ignored, the caller may use {@code + * hasUnterminatedLine()} to detect it after catching the {@code EOFException}. + * + *

This class is intended for reading input that strictly consists of lines, such as line-based + * cache entries or cache journal. Unlike the {@link java.io.BufferedReader} which in conjunction + * with {@link java.io.InputStreamReader} provides similar functionality, this class uses different + * end-of-input reporting and a more restrictive definition of a line. + * + *

This class supports only charsets that encode '\r' and '\n' as a single byte with value 13 + * and 10, respectively, and the representation of no other character contains these values. + * We currently check in constructor that the charset is one of US-ASCII, UTF-8 and ISO-8859-1. + * The default charset is US_ASCII. + */ +class StrictLineReader implements Closeable { + private static final byte CR = (byte) '\r'; + private static final byte LF = (byte) '\n'; + + private final InputStream in; + private final Charset charset; + + /* + * Buffered data is stored in {@code buf}. As long as no exception occurs, 0 <= pos <= end + * and the data in the range [pos, end) is buffered for reading. At end of input, if there is + * an unterminated line, we set end == -1, otherwise end == pos. If the underlying + * {@code InputStream} throws an {@code IOException}, end may remain as either pos or -1. + */ + private byte[] buf; + private int pos; + private int end; + + /** + * Constructs a new {@code LineReader} with the specified charset and the default capacity. + * + * @param in the {@code InputStream} to read data from. + * @param charset the charset used to decode data. Only US-ASCII, UTF-8 and ISO-8859-1 are + * supported. + * @throws NullPointerException if {@code in} or {@code charset} is null. + * @throws IllegalArgumentException if the specified charset is not supported. + */ + public StrictLineReader(InputStream in, Charset charset) { + this(in, 8192, charset); + } + + /** + * Constructs a new {@code LineReader} with the specified capacity and charset. + * + * @param in the {@code InputStream} to read data from. + * @param capacity the capacity of the buffer. + * @param charset the charset used to decode data. Only US-ASCII, UTF-8 and ISO-8859-1 are + * supported. + * @throws NullPointerException if {@code in} or {@code charset} is null. + * @throws IllegalArgumentException if {@code capacity} is negative or zero + * or the specified charset is not supported. + */ + public StrictLineReader(InputStream in, int capacity, Charset charset) { + if (in == null || charset == null) { + throw new NullPointerException(); + } + if (capacity < 0) { + throw new IllegalArgumentException("capacity <= 0"); + } + if (!(charset.equals(Util.US_ASCII))) { + throw new IllegalArgumentException("Unsupported encoding"); + } + + this.in = in; + this.charset = charset; + buf = new byte[capacity]; + } + + /** + * Closes the reader by closing the underlying {@code InputStream} and + * marking this reader as closed. + * + * @throws IOException for errors when closing the underlying {@code InputStream}. + */ + public void close() throws IOException { + synchronized (in) { + if (buf != null) { + buf = null; + in.close(); + } + } + } + + /** + * Reads the next line. A line ends with {@code "\n"} or {@code "\r\n"}, + * this end of line marker is not included in the result. + * + * @return the next line from the input. + * @throws IOException for underlying {@code InputStream} errors. + * @throws EOFException for the end of source stream. + */ + public String readLine() throws IOException { + synchronized (in) { + if (buf == null) { + throw new IOException("LineReader is closed"); + } + + // Read more data if we are at the end of the buffered data. + // Though it's an error to read after an exception, we will let {@code fillBuf()} + // throw again if that happens; thus we need to handle end == -1 as well as end == pos. + if (pos >= end) { + fillBuf(); + } + // Try to find LF in the buffered data and return the line if successful. + for (int i = pos; i != end; ++i) { + if (buf[i] == LF) { + int lineEnd = (i != pos && buf[i - 1] == CR) ? i - 1 : i; + String res = new String(buf, pos, lineEnd - pos, charset.name()); + pos = i + 1; + return res; + } + } + + // Let's anticipate up to 80 characters on top of those already read. + ByteArrayOutputStream out = new ByteArrayOutputStream(end - pos + 80) { + @Override + public String toString() { + int length = (count > 0 && buf[count - 1] == CR) ? count - 1 : count; + try { + return new String(buf, 0, length, charset.name()); + } catch (UnsupportedEncodingException e) { + throw new AssertionError(e); // Since we control the charset this will never happen. + } + } + }; + + while (true) { + out.write(buf, pos, end - pos); + // Mark unterminated line in case fillBuf throws EOFException or IOException. + end = -1; + fillBuf(); + // Try to find LF in the buffered data and return the line if successful. + for (int i = pos; i != end; ++i) { + if (buf[i] == LF) { + if (i != pos) { + out.write(buf, pos, i - pos); + } + pos = i + 1; + return out.toString(); + } + } + } + } + } + + public boolean hasUnterminatedLine() { + return end == -1; + } + + /** + * Reads new input data into the buffer. Call only with pos == end or end == -1, + * depending on the desired outcome if the function throws. + */ + private void fillBuf() throws IOException { + int result = in.read(buf, 0, buf.length); + if (result == -1) { + throw new EOFException(); + } + pos = 0; + end = result; + } +} + diff --git a/app/src/main/java/org/lineageos/eleven/cache/disklrucache/Util.java b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/Util.java new file mode 100644 index 0000000..801eca4 --- /dev/null +++ b/app/src/main/java/org/lineageos/eleven/cache/disklrucache/Util.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.eleven.cache.disklrucache; + +import java.io.Closeable; +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.io.StringWriter; +import java.nio.charset.Charset; + +/** Junk drawer of utility methods. */ +final class Util { + static final Charset US_ASCII = Charset.forName("US-ASCII"); + static final Charset UTF_8 = Charset.forName("UTF-8"); + + private Util() { + } + + static String readFully(Reader reader) throws IOException { + try { + StringWriter writer = new StringWriter(); + char[] buffer = new char[1024]; + int count; + while ((count = reader.read(buffer)) != -1) { + writer.write(buffer, 0, count); + } + return writer.toString(); + } finally { + reader.close(); + } + } + + /** + * Deletes the contents of {@code dir}. Throws an IOException if any file + * could not be deleted, or if {@code dir} is not a readable directory. + */ + static void deleteContents(File dir) throws IOException { + File[] files = dir.listFiles(); + if (files == null) { + throw new IOException("not a readable directory: " + dir); + } + for (File file : files) { + if (file.isDirectory()) { + deleteContents(file); + } + if (!file.delete()) { + throw new IOException("failed to delete file: " + file); + } + } + } + + static void closeQuietly(/*Auto*/Closeable closeable) { + if (closeable != null) { + try { + closeable.close(); + } catch (RuntimeException rethrown) { + throw rethrown; + } catch (Exception ignored) { + } + } + } +} diff --git a/app/src/main/java/org/lineageos/eleven/loaders/NowPlayingCursor.java b/app/src/main/java/org/lineageos/eleven/loaders/NowPlayingCursor.java index 5061d28..4808caf 100644 --- a/app/src/main/java/org/lineageos/eleven/loaders/NowPlayingCursor.java +++ b/app/src/main/java/org/lineageos/eleven/loaders/NowPlayingCursor.java @@ -266,7 +266,6 @@ private void makeNowPlayingCursor() { mSize = mNowPlaying.length; if (mSize == 0) { mCursorIndexes = null; - return; } } } diff --git a/app/src/main/java/org/lineageos/eleven/loaders/PlaylistSongLoader.java b/app/src/main/java/org/lineageos/eleven/loaders/PlaylistSongLoader.java index 0297434..f9cb03a 100644 --- a/app/src/main/java/org/lineageos/eleven/loaders/PlaylistSongLoader.java +++ b/app/src/main/java/org/lineageos/eleven/loaders/PlaylistSongLoader.java @@ -176,7 +176,7 @@ private static void cleanupPlaylist(final Context context, final long playlistId final int idCol = cursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.Members.AUDIO_ID); final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); - ArrayList ops = new ArrayList(); + ArrayList ops = new ArrayList<>(); // Delete all results in the playlist ops.add(ContentProviderOperation.newDelete(uri).build()); diff --git a/app/src/main/java/org/lineageos/eleven/loaders/SongLoader.java b/app/src/main/java/org/lineageos/eleven/loaders/SongLoader.java index c0a16f9..e013f80 100644 --- a/app/src/main/java/org/lineageos/eleven/loaders/SongLoader.java +++ b/app/src/main/java/org/lineageos/eleven/loaders/SongLoader.java @@ -134,13 +134,14 @@ protected Cursor getCursor() { * @param sortOrder the song ordering preference selected by the user */ private static LocalizedStore.SortParameter getSortParameter(String sortOrder) { - if (sortOrder.equals(SortOrder.SongSortOrder.SONG_A_Z) || - sortOrder.equals(SortOrder.SongSortOrder.SONG_Z_A)) { - return LocalizedStore.SortParameter.Song; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_ALBUM)) { - return LocalizedStore.SortParameter.Album; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_ARTIST)) { - return LocalizedStore.SortParameter.Artist; + switch (sortOrder) { + case SortOrder.SongSortOrder.SONG_A_Z: + case SortOrder.SongSortOrder.SONG_Z_A: + return SortParameter.Song; + case SortOrder.SongSortOrder.SONG_ALBUM: + return SortParameter.Album; + case SortOrder.SongSortOrder.SONG_ARTIST: + return SortParameter.Artist; } return null; diff --git a/app/src/main/java/org/lineageos/eleven/loaders/SortedCursor.java b/app/src/main/java/org/lineageos/eleven/loaders/SortedCursor.java index 78285af..1b97e48 100644 --- a/app/src/main/java/org/lineageos/eleven/loaders/SortedCursor.java +++ b/app/src/main/java/org/lineageos/eleven/loaders/SortedCursor.java @@ -64,12 +64,12 @@ public SortedCursor(final Cursor cursor, final long[] order, final String column */ private ArrayList buildCursorPositionMapping(final long[] order, final String columnName, final List extraData) { - ArrayList missingIds = new ArrayList(); + ArrayList missingIds = new ArrayList<>(); - mOrderedPositions = new ArrayList(mCursor.getCount()); - mExtraData = new ArrayList(); + mOrderedPositions = new ArrayList<>(mCursor.getCount()); + mExtraData = new ArrayList<>(); - mMapCursorPositions = new HashMap(mCursor.getCount()); + mMapCursorPositions = new HashMap<>(mCursor.getCount()); final int idPosition = mCursor.getColumnIndex(columnName); if (mCursor.moveToFirst()) { diff --git a/app/src/main/java/org/lineageos/eleven/locale/HanziToPinyin.java b/app/src/main/java/org/lineageos/eleven/locale/HanziToPinyin.java deleted file mode 100644 index fb7d61f..0000000 --- a/app/src/main/java/org/lineageos/eleven/locale/HanziToPinyin.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.lineageos.eleven.locale; - -import android.os.Build; -import android.text.TextUtils; -import android.util.Log; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.util.ArrayList; - -/** - * An object to convert Chinese character to its corresponding pinyin string. - * For characters with multiple possible pinyin string, only one is selected - * according to ICU Transliterator class. Polyphone is not supported in this - * implementation. - */ -public class HanziToPinyin { - private static final String TAG = "HanziToPinyin"; - - private static HanziToPinyin sInstance; - private Object mPinyinTransliterator; //ObjectType=Transliterator - private Object mAsciiTransliterator; //ObjectType=Transliterator - private Method transliterateMethod; - - public static class Token { - /** - * Separator between target string for each source char - */ - public static final String SEPARATOR = " "; - - public static final int LATIN = 1; - public static final int PINYIN = 2; - public static final int UNKNOWN = 3; - - public Token() { - } - - public Token(int type, String source, String target) { - this.type = type; - this.source = source; - this.target = target; - } - - /** - * Type of this token, ASCII, PINYIN or UNKNOWN. - */ - public int type; - /** - * Original string before translation. - */ - public String source; - /** - * Translated string of source. For Han, target is corresponding Pinyin. Otherwise target is - * original string in source. - */ - public String target; - } - - private HanziToPinyin() { - try { - Class clazz = null; - //mPinyinTransliterator = Transliterator.getInstance("Han-Latin/Names; Latin-Ascii; Any-Upper"); - //mAsciiTransliterator = Transliterator.getInstance("Latin-Ascii"); - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ - clazz = Class.forName("android.icu.text.Transliterator"); - Method m = clazz.getMethod("getInstance", new Class[] { String.class }); - mPinyinTransliterator = m.invoke(clazz, new Object[] { new String("Han-Latin/Names; Latin-Ascii; Any-Upper") }); - mAsciiTransliterator = m.invoke(clazz, new Object[] { new String("Latin-Ascii") }); - //mPinyinTransliterator = new Transliterator("Han-Latin/Names; Latin-Ascii; Any-Upper"); - //mAsciiTransliterator = new Transliterator("Latin-Ascii"); - } else { - clazz = Class.forName("libcore.icu.Transliterator"); - Constructor constructor = clazz.getConstructor(new Class[] { String.class }); - mPinyinTransliterator = constructor.newInstance(new Object[] { new String("Han-Latin/Names; Latin-Ascii; Any-Upper") }); - mAsciiTransliterator = constructor.newInstance(new Object[] { new String("Latin-Ascii") }); - } - - transliterateMethod = clazz.getMethod("transliterate", new Class[] { String.class }); - } catch (RuntimeException e) { - Log.w(TAG, "Han-Latin/Names transliterator data is missing," - + " HanziToPinyin is disabled"); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public boolean hasChineseTransliterator() { - return mPinyinTransliterator != null; - } - - public static HanziToPinyin getInstance() { - synchronized (HanziToPinyin.class) { - if (sInstance == null) { - sInstance = new HanziToPinyin(); - } - return sInstance; - } - } - - private void tokenize(char character, Token token) { - token.source = Character.toString(character); - - // ASCII - if (character < 128) { - token.type = Token.LATIN; - token.target = token.source; - return; - } - - // Extended Latin. Transcode these to ASCII equivalents - if (character < 0x250 || (0x1e00 <= character && character < 0x1eff)) { - token.type = Token.LATIN; - //mAsciiTransliterator.transliterate(token.source) - try { - token.target = mAsciiTransliterator == null ? token.source : - ((String)(transliterateMethod.invoke(mAsciiTransliterator, new Object[]{token.source}))); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return; - } - - token.type = Token.PINYIN; - //token.target = mPinyinTransliterator.transliterate(token.source); - try { - token.target = ((String)(transliterateMethod.invoke(mPinyinTransliterator, new Object[]{token.source}))); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - if (TextUtils.isEmpty(token.target) || - TextUtils.equals(token.source, token.target)) { - token.type = Token.UNKNOWN; - token.target = token.source; - } - } - - public String transliterate(final String input) { - if (!hasChineseTransliterator() || TextUtils.isEmpty(input)) { - return null; - } - //mPinyinTransliterator.transliterate(input) - String transliteration = null; - try { - transliteration = ((String)(transliterateMethod.invoke(mPinyinTransliterator, new Object[]{input}))); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return transliteration; - } - - /** - * Convert the input to a array of tokens. The sequence of ASCII or Unknown characters without - * space will be put into a Token, One Hanzi character which has pinyin will be treated as a - * Token. If there is no Chinese transliterator, the empty token array is returned. - */ - public ArrayList getTokens(final String input) { - ArrayList tokens = new ArrayList(); - if (!hasChineseTransliterator() || TextUtils.isEmpty(input)) { - // return empty tokens. - return tokens; - } - - final int inputLength = input.length(); - final StringBuilder sb = new StringBuilder(); - int tokenType = Token.LATIN; - Token token = new Token(); - - // Go through the input, create a new token when - // a. Token type changed - // b. Get the Pinyin of current charater. - // c. current character is space. - for (int i = 0; i < inputLength; i++) { - final char character = input.charAt(i); - if (Character.isSpaceChar(character)) { - if (sb.length() > 0) { - addToken(sb, tokens, tokenType); - } - } else { - tokenize(character, token); - if (token.type == Token.PINYIN) { - if (sb.length() > 0) { - addToken(sb, tokens, tokenType); - } - tokens.add(token); - token = new Token(); - } else { - if (tokenType != token.type && sb.length() > 0) { - addToken(sb, tokens, tokenType); - } - sb.append(token.target); - } - tokenType = token.type; - } - } - if (sb.length() > 0) { - addToken(sb, tokens, tokenType); - } - return tokens; - } - - private void addToken( - final StringBuilder sb, final ArrayList tokens, final int tokenType) { - String str = sb.toString(); - tokens.add(new Token(tokenType, str, str)); - sb.setLength(0); - } -} diff --git a/app/src/main/java/org/lineageos/eleven/locale/LocaleChangeReceiver.java b/app/src/main/java/org/lineageos/eleven/locale/LocaleChangeReceiver.java index 7d30523..37902f0 100644 --- a/app/src/main/java/org/lineageos/eleven/locale/LocaleChangeReceiver.java +++ b/app/src/main/java/org/lineageos/eleven/locale/LocaleChangeReceiver.java @@ -30,6 +30,9 @@ public class LocaleChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - LocalizedStore.getInstance(context).onLocaleChanged(); + final String action = intent.getAction(); + if (Intent.ACTION_LOCALE_CHANGED.equals(action)) { + LocalizedStore.getInstance(context).onLocaleChanged(); + } } } diff --git a/app/src/main/java/org/lineageos/eleven/locale/LocaleSet.java b/app/src/main/java/org/lineageos/eleven/locale/LocaleSet.java index 1bdd04f..0922de2 100644 --- a/app/src/main/java/org/lineageos/eleven/locale/LocaleSet.java +++ b/app/src/main/java/org/lineageos/eleven/locale/LocaleSet.java @@ -18,8 +18,7 @@ import android.os.Build; import android.text.TextUtils; - -import com.google.common.annotations.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import java.lang.reflect.Method; import java.util.Locale; diff --git a/app/src/main/java/org/lineageos/eleven/locale/LocaleSetManager.java b/app/src/main/java/org/lineageos/eleven/locale/LocaleSetManager.java index 304dfa0..7d92ea9 100644 --- a/app/src/main/java/org/lineageos/eleven/locale/LocaleSetManager.java +++ b/app/src/main/java/org/lineageos/eleven/locale/LocaleSetManager.java @@ -17,13 +17,13 @@ package org.lineageos.eleven.locale; import android.content.Context; +import android.os.Build; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.VisibleForTesting; import org.lineageos.eleven.provider.PropertiesStore; -import com.google.common.annotations.VisibleForTesting; -import java.lang.reflect.Method; import java.util.Locale; public class LocaleSetManager { @@ -56,18 +56,9 @@ public boolean localeSetNeedsUpdate() { // if our icu version has changed, return true final String storedICUversion = PropertiesStore.getInstance(mContext) .getProperty(PropertiesStore.DbProperties.ICU_VERSION); - // ICU.getIcuVersion() - String icuVersion = null; - try { - Class clazz = Class.forName("libcore.icu.ICU"); - Method m = clazz.getMethod("getIcuVersion", new Class[0]); - icuVersion = ((String)(m.invoke(clazz, new Object[0]))); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - if (!icuVersion.equals(storedICUversion)) { + if (!String.valueOf(Build.VERSION.SDK_INT).equals(storedICUversion)) { Log.d(TAG, "ICU version has changed from: " + storedICUversion + " to " - + icuVersion); + + String.valueOf(Build.VERSION.SDK_INT)); return true; } @@ -82,8 +73,7 @@ public boolean localeSetNeedsUpdate() { public void updateLocaleSet(LocaleSet localeSet) { Log.d(TAG, "Locale Changed from: " + mCurrentLocales + " to " + localeSet); mCurrentLocales = localeSet; - LocaleUtils.getInstance(); - LocaleUtils.setLocales(mCurrentLocales); + LocaleUtils.getInstance().setLocales(mCurrentLocales); } /** diff --git a/app/src/main/java/org/lineageos/eleven/locale/LocaleUtils.java b/app/src/main/java/org/lineageos/eleven/locale/LocaleUtils.java index 77a5e86..f55d022 100644 --- a/app/src/main/java/org/lineageos/eleven/locale/LocaleUtils.java +++ b/app/src/main/java/org/lineageos/eleven/locale/LocaleUtils.java @@ -16,33 +16,16 @@ package org.lineageos.eleven.locale; -import android.os.Build; -import android.provider.ContactsContract.FullNameStyle; -import android.provider.ContactsContract.PhoneticNameStyle; -import android.text.TextUtils; import android.util.Log; +import androidx.annotation.VisibleForTesting; -import org.lineageos.eleven.locale.HanziToPinyin.Token; - -import com.google.common.annotations.VisibleForTesting; - -import java.lang.Character.UnicodeBlock; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; import java.util.Locale; -import java.util.Set; //import libcore.icu.AlphabeticIndex; -//import libcore.icu.AlphabeticIndex.ImmutableIndex; -//import libcore.icu.Transliterator; - //import android.icu.text.AlphabeticIndex; -//import android.icu.text.AlphabeticIndex.ImmutableIndex; -//import android.icu.text.Transliterator; + /** * This utility class provides specialized handling for locale specific @@ -84,7 +67,6 @@ private static class LocaleUtilsBase { protected AlphabeticIndexCompat mAlphabeticIndex; //ImmutableIndex private final int mAlphabeticIndexBucketCount; private final int mNumberBucketIndex; - private final boolean mEnableSecondaryLocalePinyin; public LocaleUtilsBase(LocaleSet locales) { // AlphabeticIndex.getBucketLabel() uses a binary search across @@ -99,7 +81,6 @@ public LocaleUtilsBase(LocaleSet locales) { // Latin based alphabets. Ukrainian and Serbian are chosen for // Cyrillic because their alphabets are complementary supersets // of Russian. - mEnableSecondaryLocalePinyin = locales.isSecondaryLocaleSimplifiedChinese(); mAlphabeticIndex = new AlphabeticIndexCompat(locales); mAlphabeticIndexBucketCount = mAlphabeticIndex.getBucketCount(); mNumberBucketIndex = mAlphabeticIndexBucketCount - 1; @@ -144,15 +125,7 @@ public int getBucketIndex(String name) { return mNumberBucketIndex; } - /** - * TODO: ICU 52 AlphabeticIndex doesn't support Simplified Chinese - * as a secondary locale. Remove the following if that is added. - */ - if (mEnableSecondaryLocalePinyin) { - name = HanziToPinyin.getInstance().transliterate(name); - } - //final int bucket = mAlphabeticIndex.getBucketIndex(name); - int bucket = mAlphabeticIndex.getBucketIndex(name); + final int bucket = mAlphabeticIndex.getBucketIndex(name); if (bucket < 0) { return -1; } @@ -183,7 +156,6 @@ public String getBucketLabel(int bucketIndex) { } else if (bucketIndex > mNumberBucketIndex) { --bucketIndex; } - //return mAlphabeticIndex.getBucketLabel(bucketIndex); //return (mAlphabeticIndex.getBucket(bucketIndex)).getLabel(); return mAlphabeticIndex.getBucketLabel(bucketIndex); } @@ -195,7 +167,7 @@ public Iterator getNameLookupKeys(String name, int nameStyle) { public ArrayList getLabels() { final int bucketCount = getBucketCount(); - final ArrayList labels = new ArrayList(bucketCount); + final ArrayList labels = new ArrayList<>(bucketCount); for(int i = 0; i < bucketCount; ++i) { labels.add(getBucketLabel(i)); } @@ -203,236 +175,6 @@ public ArrayList getLabels() { } } - /** - * Japanese specific locale overrides. - * - * sortKey: unchanged (same as name) - * nameLookupKeys: unchanged (none) - * labels: extends default labels by labeling unlabeled CJ characters - * with the Japanese character 他 ("misc"). Japanese labels are: - * あ, か, さ, た, な, は, ま, や, ら, わ, 他, [A-Z], #, " " - */ - private static class JapaneseContactUtils extends LocaleUtilsBase { - // \u4ed6 is Japanese character 他 ("misc") - private static final String JAPANESE_MISC_LABEL = "\u4ed6"; - private final int mMiscBucketIndex; - - public JapaneseContactUtils(LocaleSet locales) { - super(locales); - // Determine which bucket AlphabeticIndex is lumping unclassified - // Japanese characters into by looking up the bucket index for - // a representative Kanji/CJK unified ideograph (\u65e5 is the - // character '日'). - mMiscBucketIndex = super.getBucketIndex("\u65e5"); - } - - // Set of UnicodeBlocks for unified CJK (Chinese) characters and - // Japanese characters. This includes all code blocks that might - // contain a character used in Japanese (which is why unified CJK - // blocks are included but Korean Hangul and jamo are not). - private static final Set CJ_BLOCKS; - static { - Set set = new HashSet(); - set.add(UnicodeBlock.HIRAGANA); - set.add(UnicodeBlock.KATAKANA); - set.add(UnicodeBlock.KATAKANA_PHONETIC_EXTENSIONS); - set.add(UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS); - set.add(UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS); - set.add(UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A); - set.add(UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B); - set.add(UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION); - set.add(UnicodeBlock.CJK_RADICALS_SUPPLEMENT); - set.add(UnicodeBlock.CJK_COMPATIBILITY); - set.add(UnicodeBlock.CJK_COMPATIBILITY_FORMS); - set.add(UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS); - set.add(UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT); - CJ_BLOCKS = Collections.unmodifiableSet(set); - } - - /** - * Helper routine to identify unlabeled Chinese or Japanese characters - * to put in a 'misc' bucket. - * - * @return true if the specified Unicode code point is Chinese or - * Japanese - */ - private static boolean isChineseOrJapanese(int codePoint) { - return CJ_BLOCKS.contains(UnicodeBlock.of(codePoint)); - } - - /** - * Returns the bucket index for the specified string. Adds an - * additional 'misc' bucket for Kanji characters to the base class set. - */ - @Override - public int getBucketIndex(String name) { - final int bucketIndex = super.getBucketIndex(name); - if ((bucketIndex == mMiscBucketIndex && - !isChineseOrJapanese(Character.codePointAt(name, 0))) || - bucketIndex > mMiscBucketIndex) { - return bucketIndex + 1; - } - return bucketIndex; - } - - /** - * Returns the number of buckets in use (one more than the base class - * uses, because this class adds a bucket for Kanji). - */ - @Override - public int getBucketCount() { - return super.getBucketCount() + 1; - } - - /** - * Returns the label for the specified bucket index if a valid index, - * otherwise returns an empty string. '他' is returned for unclassified - * Kanji; for all others, the label determined by the base class is - * returned. - */ - @Override - public String getBucketLabel(int bucketIndex) { - if (bucketIndex == mMiscBucketIndex) { - return JAPANESE_MISC_LABEL; - } else if (bucketIndex > mMiscBucketIndex) { - --bucketIndex; - } - return super.getBucketLabel(bucketIndex); - } - - @Override - public Iterator getNameLookupKeys(String name, int nameStyle) { - // Hiragana and Katakana will be positively identified as Japanese. - if (nameStyle == PhoneticNameStyle.JAPANESE) { - return getRomajiNameLookupKeys(name); - } - return null; - } - - private static boolean mInitializedTransliterator; - private static Object mJapaneseTransliterator; - - private static Object getJapaneseTransliterator() { - synchronized(JapaneseContactUtils.class) { - if (!mInitializedTransliterator) { - mInitializedTransliterator = true; - Object t = null; - try { - //t = Transliterator.getInstance("Hiragana-Latin; Katakana-Latin;" - // + " Latin-Ascii"); - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ - Class clazz = Class.forName("android.icu.text.Transliterator"); - Method m = clazz.getMethod("getInstance", String.class); - t = m.invoke(null,new Object[] {new String("Hiragana-Latin; Katakana-Latin; Latin-Ascii")}); - //t = new Transliterator("Hiragana-Latin; Katakana-Latin;" - // + " Latin-Ascii"); - } else { - Class clazz = Class.forName("libcore.icu.Transliterator"); - Constructor constructor = clazz.getConstructor(new Class[] { String.class }); - t = constructor.newInstance(new Object[] { new String("Hiragana-Latin; Katakana-Latin; Latin-Ascii") }); - } - } catch (Exception ex) { - Log.w(TAG, "Hiragana/Katakana-Latin transliterator data" - + " is missing"); - throw new RuntimeException(ex); - } - mJapaneseTransliterator = t; - } - return mJapaneseTransliterator; - } - } - - public static Iterator getRomajiNameLookupKeys(String name) { - final Object t = getJapaneseTransliterator(); - if (t == null) { - return null; - } - String romajiName = null; - - try { - Class clazz = t.getClass(); - Method m = clazz.getMethod("transliterate", new Class[] { String.class } ); - romajiName = (String)(m.invoke(t, new Object[] { name })); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - - if (TextUtils.isEmpty(romajiName) || - TextUtils.equals(name, romajiName)) { - return null; - } - final HashSet keys = new HashSet(); - keys.add(romajiName); - return keys.iterator(); - } - } - - /** - * Simplified Chinese specific locale overrides. Uses ICU Transliterator - * for generating pinyin transliteration. - * - * sortKey: unchanged (same as name) - * nameLookupKeys: adds additional name lookup keys - * - Chinese character's pinyin and pinyin's initial character. - * - Latin word and initial character. - * labels: unchanged - * Simplified Chinese labels are the same as English: [A-Z], #, " " - */ - private static class SimplifiedChineseContactUtils - extends LocaleUtilsBase { - public SimplifiedChineseContactUtils(LocaleSet locales) { - super(locales); - } - - @Override - public Iterator getNameLookupKeys(String name, int nameStyle) { - if (nameStyle != FullNameStyle.JAPANESE && - nameStyle != FullNameStyle.KOREAN) { - return getPinyinNameLookupKeys(name); - } - return null; - } - - public static Iterator getPinyinNameLookupKeys(String name) { - // TODO : Reduce the object allocation. - HashSet keys = new HashSet(); - ArrayList tokens = HanziToPinyin.getInstance().getTokens(name); - final int tokenCount = tokens.size(); - final StringBuilder keyPinyin = new StringBuilder(); - final StringBuilder keyInitial = new StringBuilder(); - // There is no space among the Chinese Characters, the variant name - // lookup key wouldn't work for Chinese. The keyOriginal is used to - // build the lookup keys for itself. - final StringBuilder keyOriginal = new StringBuilder(); - for (int i = tokenCount - 1; i >= 0; i--) { - final Token token = tokens.get(i); - if (Token.UNKNOWN == token.type) { - continue; - } - if (Token.PINYIN == token.type) { - keyPinyin.insert(0, token.target); - keyInitial.insert(0, token.target.charAt(0)); - } else if (Token.LATIN == token.type) { - // Avoid adding space at the end of String. - if (keyPinyin.length() > 0) { - keyPinyin.insert(0, ' '); - } - if (keyOriginal.length() > 0) { - keyOriginal.insert(0, ' '); - } - keyPinyin.insert(0, token.source); - keyInitial.insert(0, token.source.charAt(0)); - } - keyOriginal.insert(0, token.source); - keys.add(keyOriginal.toString()); - keys.add(keyPinyin.toString()); - keys.add(keyInitial.toString()); - } - return keys.iterator(); - } - } - - private static final String JAPANESE_LANGUAGE = Locale.JAPANESE.getLanguage().toLowerCase(Locale.US); private static LocaleUtils sSingleton; private final LocaleSet mLocales; @@ -444,13 +186,8 @@ private LocaleUtils(LocaleSet locales) { } else { mLocales = locales; } - if (mLocales.isPrimaryLanguage(JAPANESE_LANGUAGE)) { - mUtils = new JapaneseContactUtils(mLocales); - } else if (mLocales.isPrimaryLocaleSimplifiedChinese()) { - mUtils = new SimplifiedChineseContactUtils(mLocales); - } else { - mUtils = new LocaleUtilsBase(mLocales); - } + + mUtils = new LocaleUtilsBase(mLocales); Log.i(TAG, "AddressBook Labels [" + mLocales.toString() + "]: " + getLabels().toString()); } diff --git a/app/src/main/java/org/lineageos/eleven/menu/PhotoSelectionDialog.java b/app/src/main/java/org/lineageos/eleven/menu/PhotoSelectionDialog.java index 9fc89c9..fcd81f4 100644 --- a/app/src/main/java/org/lineageos/eleven/menu/PhotoSelectionDialog.java +++ b/app/src/main/java/org/lineageos/eleven/menu/PhotoSelectionDialog.java @@ -25,7 +25,6 @@ import org.lineageos.eleven.Config; import org.lineageos.eleven.R; import org.lineageos.eleven.ui.activities.HomeActivity; -import org.lineageos.eleven.utils.ElevenUtils; import org.lineageos.eleven.utils.Lists; import org.lineageos.eleven.utils.MusicUtils; @@ -94,7 +93,7 @@ public Dialog onCreateDialog(final Bundle savedInstanceState) { } // Dialog item Adapter final HomeActivity activity = (HomeActivity) getActivity(); - final ListAdapter adapter = new ArrayAdapter(activity, + final ListAdapter adapter = new ArrayAdapter<>(activity, android.R.layout.select_dialog_item, mChoices); Dialog dialog = new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setTitle(title) .setAdapter(adapter, new DialogInterface.OnClickListener() { diff --git a/app/src/main/java/org/lineageos/eleven/model/Playlist.java b/app/src/main/java/org/lineageos/eleven/model/Playlist.java index 91d11df..72e4c35 100644 --- a/app/src/main/java/org/lineageos/eleven/model/Playlist.java +++ b/app/src/main/java/org/lineageos/eleven/model/Playlist.java @@ -1,19 +1,27 @@ /* * Copyright (C) 2012 Andrew Neal * Copyright (C) 2014 The CyanogenMod Project - * Licensed under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. + * Copyright (C) 2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.lineageos.eleven.model; import android.text.TextUtils; +import androidx.annotation.NonNull; + +import java.util.Comparator; /** * A class that represents a playlist. @@ -50,9 +58,6 @@ public Playlist(final long playlistId, final String playlistName, final int song mSongCount = songCount; } - /** - * {@inheritDoc} - */ @Override public int hashCode() { final int prime = 31; @@ -63,9 +68,6 @@ public int hashCode() { return result; } - /** - * {@inheritDoc} - */ @Override public boolean equals(final Object obj) { if (this == obj) { @@ -89,12 +91,13 @@ public boolean equals(final Object obj) { return TextUtils.equals(mPlaylistName, other.mPlaylistName); } - /** - * {@inheritDoc} - */ + @NonNull @Override public String toString() { - return mPlaylistName; + return "Playlist[playlistId=" + mPlaylistId + + ", playlistName=" + mPlaylistName + + ", songCount=" + mSongCount + + "]"; } /** @@ -103,4 +106,11 @@ public String toString() { public boolean isSmartPlaylist() { return mPlaylistId < 0; } + + public static class IgnoreCaseComparator implements Comparator { + @Override + public int compare(Playlist p1, Playlist p2) { + return p1.mPlaylistName.compareToIgnoreCase(p2.mPlaylistName); + } + } } diff --git a/app/src/main/java/org/lineageos/eleven/model/SearchResult.java b/app/src/main/java/org/lineageos/eleven/model/SearchResult.java index 5a8814b..692edd2 100644 --- a/app/src/main/java/org/lineageos/eleven/model/SearchResult.java +++ b/app/src/main/java/org/lineageos/eleven/model/SearchResult.java @@ -26,7 +26,7 @@ public class SearchResult { private static final String TAG = SearchResult.class.getSimpleName(); - public static final Comparator COMPARATOR = new Comparator() { + public static final Comparator COMPARATOR = new Comparator() { @Override public int compare(final SearchResult lhs, final SearchResult rhs) { return lhs.mType.ordinal() - rhs.mType.ordinal(); diff --git a/app/src/main/java/org/lineageos/eleven/provider/LocalizedStore.java b/app/src/main/java/org/lineageos/eleven/provider/LocalizedStore.java index f7652a8..b517797 100644 --- a/app/src/main/java/org/lineageos/eleven/provider/LocalizedStore.java +++ b/app/src/main/java/org/lineageos/eleven/provider/LocalizedStore.java @@ -19,6 +19,7 @@ import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; @@ -34,7 +35,6 @@ import org.lineageos.eleven.locale.LocaleUtils; import org.lineageos.eleven.utils.MusicUtils; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -175,19 +175,12 @@ private void rebuildLocaleData(LocaleSet locales) { updateLocalizedStore(db, null); - // ICU.getIcuVersion() - String icuVersion = null; - try { - Class clazz = Class.forName("libcore.icu.ICU"); - Method m = clazz.getMethod("getIcuVersion", new Class[0]); - icuVersion = ((String)(m.invoke(clazz, new Object[0]))); - } catch (Exception ex) { - throw new RuntimeException(ex); - } // Update the ICU version used to generate the locale derived data // so we can tell when we need to rebuild with new ICU versions. + // But assume that ICU versions are only able to change on Android version upgrades and + // use SDK INT as identifier. PropertiesStore.getInstance(mContext).storeProperty( - PropertiesStore.DbProperties.ICU_VERSION, icuVersion); + PropertiesStore.DbProperties.ICU_VERSION, String.valueOf(Build.VERSION.SDK_INT)); PropertiesStore.getInstance(mContext).storeProperty(PropertiesStore.DbProperties.LOCALE, locales.toString()); @@ -407,7 +400,7 @@ public SortData getSortOrder(SortParameter itemType, SortParameter sortType, if (c != null && c.moveToFirst()) { sortData.ids = new long[c.getCount()]; - sortData.bucketLabels = new ArrayList(c.getCount()); + sortData.bucketLabels = new ArrayList<>(c.getCount()); do { sortData.ids[c.getPosition()] = c.getLong(0); sortData.bucketLabels.add(c.getString(1)); diff --git a/app/src/main/java/org/lineageos/eleven/provider/MusicDB.java b/app/src/main/java/org/lineageos/eleven/provider/MusicDB.java index a1d7575..5914447 100644 --- a/app/src/main/java/org/lineageos/eleven/provider/MusicDB.java +++ b/app/src/main/java/org/lineageos/eleven/provider/MusicDB.java @@ -38,7 +38,7 @@ public class MusicDB extends SQLiteOpenHelper { private static final int VERSION = 4; /* Name of database file */ - public static final String DATABASENAME = "musicdb.db"; + private static final String DATABASENAME = "musicdb.db"; private static MusicDB sInstance = null; @@ -48,7 +48,7 @@ public class MusicDB extends SQLiteOpenHelper { * @param context The {@link android.content.Context} to use * @return A new instance of this class. */ - public static final synchronized MusicDB getInstance(final Context context) { + public static synchronized MusicDB getInstance(final Context context) { if (sInstance == null) { sInstance = new MusicDB(context.getApplicationContext()); } @@ -57,7 +57,6 @@ public static final synchronized MusicDB getInstance(final Context context) { public MusicDB(final Context context) { super(context, DATABASENAME, null, VERSION); - mContext = context; } diff --git a/app/src/main/java/org/lineageos/eleven/provider/PlaylistArtworkStore.java b/app/src/main/java/org/lineageos/eleven/provider/PlaylistArtworkStore.java index 3fa886c..bf83714 100644 --- a/app/src/main/java/org/lineageos/eleven/provider/PlaylistArtworkStore.java +++ b/app/src/main/java/org/lineageos/eleven/provider/PlaylistArtworkStore.java @@ -1,18 +1,19 @@ /* -* Copyright (C) 2014 The CyanogenMod Project -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright (C) 2014 The CyanogenMod Project + * Copyright (C) 2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.lineageos.eleven.provider; import android.content.ContentValues; @@ -31,13 +32,14 @@ public class PlaylistArtworkStore { private static PlaylistArtworkStore sInstance = null; - private MusicDB mMusicDatabase = null; + private final Context mContext; + private final MusicDB mMusicDatabase; /** * @param context The {@link android.content.Context} to use * @return A new instance of this class. */ - public static final synchronized PlaylistArtworkStore getInstance(final Context context) { + public static synchronized PlaylistArtworkStore getInstance(final Context context) { if (sInstance == null) { sInstance = new PlaylistArtworkStore(context.getApplicationContext()); } @@ -48,7 +50,7 @@ public static final synchronized PlaylistArtworkStore getInstance(final Context * @param playlistId playlist identifier * @return the key used for the imagae cache for the cover art */ - public static final String getCoverCacheKey(final long playlistId) { + public static String getCoverCacheKey(final long playlistId) { return "playlist_cover_" + playlistId; } @@ -56,21 +58,18 @@ public static final String getCoverCacheKey(final long playlistId) { * @param playlistId playlist identifier * @return the key used for the imagae cache for the top artist image */ - public static final String getArtistCacheKey(final long playlistId) { + public static String getArtistCacheKey(final long playlistId) { return "playlist_artist_" + playlistId; } - private final Context mContext; - /** * Constructor of RecentStore * * @param context The {@link android.content.Context} to use */ public PlaylistArtworkStore(final Context context) { - mMusicDatabase = MusicDB.getInstance(context); - mContext = context; + mMusicDatabase = MusicDB.getInstance(context); } public void onCreate(final SQLiteDatabase db) { @@ -127,7 +126,8 @@ public boolean needsCoverArtUpdate(final long playlistId) { * @param playlistId playlist identifier */ public void updateArtistArt(final long playlistId) { - updateOrInsertTime(playlistId, PlaylistArtworkStoreColumns.LAST_UPDATE_ARTIST, + updateOrInsertTime(playlistId, + PlaylistArtworkStoreColumns.LAST_UPDATE_ARTIST, PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_ARTIST); } @@ -136,7 +136,8 @@ public void updateArtistArt(final long playlistId) { * @param playlistId playlist identifier */ public void updateCoverArt(final long playlistId) { - updateOrInsertTime(playlistId, PlaylistArtworkStoreColumns.LAST_UPDATE_COVER, + updateOrInsertTime(playlistId, + PlaylistArtworkStoreColumns.LAST_UPDATE_COVER, PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_COVER); } @@ -147,12 +148,11 @@ public void updateCoverArt(final long playlistId) { * @param countColumnName the column to set the # of songs to based on the playlist */ private void updateOrInsertTime(final long playlistId, final String columnName, final String countColumnName) { - SQLiteDatabase database = mMusicDatabase.getWritableDatabase(); - + final SQLiteDatabase database = mMusicDatabase.getWritableDatabase(); database.beginTransaction(); // gets the existing values for the entry if it exists - ContentValues values = getExistingContentValues(playlistId); + ContentValues values = getExistingContentValues(database, playlistId); boolean existingEntry = values.size() > 0; // update the values values.put(PlaylistArtworkStoreColumns.ID, playlistId); @@ -176,17 +176,22 @@ private void updateOrInsertTime(final long playlistId, final String columnName, * @param playlistId playlist identifier * @return the content values */ - private ContentValues getExistingContentValues(final long playlistId) { - ContentValues values = new ContentValues(4); - Cursor c = getEntry(playlistId); - if (c != null && c.moveToFirst()) { - values.put(PlaylistArtworkStoreColumns.ID, c.getLong(0)); - values.put(PlaylistArtworkStoreColumns.LAST_UPDATE_ARTIST, c.getLong(1)); - values.put(PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_ARTIST, c.getInt(2)); - values.put(PlaylistArtworkStoreColumns.LAST_UPDATE_COVER, c.getLong(3)); - values.put(PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_COVER, c.getInt(4)); - c.close(); - c = null; + private ContentValues getExistingContentValues(final SQLiteDatabase database, final long playlistId) { + final ContentValues values = new ContentValues(5); + Cursor c = null; + try { + c = getEntry(database, playlistId); + if (c != null && c.moveToFirst()) { + values.put(PlaylistArtworkStoreColumns.ID, c.getLong(0)); + values.put(PlaylistArtworkStoreColumns.LAST_UPDATE_ARTIST, c.getLong(1)); + values.put(PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_ARTIST, c.getInt(2)); + values.put(PlaylistArtworkStoreColumns.LAST_UPDATE_COVER, c.getLong(3)); + values.put(PlaylistArtworkStoreColumns.NUM_SONGS_LAST_UPDATE_COVER, c.getInt(4)); + } + } finally { + if (c != null) { + c.close(); + } } return values; @@ -200,23 +205,26 @@ private ContentValues getExistingContentValues(final long playlistId) { * @return */ private boolean needsUpdate(final long playlistId, final String columnName, final String countColumnName) { - // get the entry - Cursor c = getEntry(playlistId); - - if (c != null && c.moveToFirst()) { - final long lastUpdate = c.getLong(c.getColumnIndex(columnName)); - final long msSinceEpoch = System.currentTimeMillis(); - final int songCount = MusicUtils.getSongCountForPlaylist(mContext, playlistId); - final int lastUpdatedSongCount = c.getInt(c.getColumnIndex(countColumnName)); - - c.close(); - c = null; - - // if the elapsed time since our last update is less than a day and the - // number of songs in the playlist hasn't changed, then don't update - if (msSinceEpoch - lastUpdate < ONE_DAY_IN_MS && - songCount == lastUpdatedSongCount) { - return false; + final SQLiteDatabase database = mMusicDatabase.getReadableDatabase(); + Cursor c = null; + try { + c = getEntry(database, playlistId); + if (c != null && c.moveToFirst()) { + final long lastUpdate = c.getLong(c.getColumnIndex(columnName)); + final long msSinceEpoch = System.currentTimeMillis(); + final int songCount = MusicUtils.getSongCountForPlaylist(mContext, playlistId); + final int lastUpdatedSongCount = c.getInt(c.getColumnIndex(countColumnName)); + + // if the elapsed time since our last update is less than a day and the + // number of songs in the playlist hasn't changed, then don't update + if (msSinceEpoch - lastUpdate < ONE_DAY_IN_MS && + songCount == lastUpdatedSongCount) { + return false; + } + } + } finally { + if (c != null) { + c.close(); } } @@ -228,9 +236,8 @@ private boolean needsUpdate(final long playlistId, final String columnName, fina * @param playlistId playlist identifier * @return cursor */ - private Cursor getEntry(final long playlistId) { - SQLiteDatabase db = mMusicDatabase.getReadableDatabase(); - return db.query(PlaylistArtworkStoreColumns.NAME, null, + private Cursor getEntry(final SQLiteDatabase database, final long playlistId) { + return database.query(PlaylistArtworkStoreColumns.NAME, null, PlaylistArtworkStoreColumns.ID + "=" + playlistId, null, null, null, null); } diff --git a/app/src/main/java/org/lineageos/eleven/provider/SearchHistory.java b/app/src/main/java/org/lineageos/eleven/provider/SearchHistory.java index 18d25cb..ab2e208 100644 --- a/app/src/main/java/org/lineageos/eleven/provider/SearchHistory.java +++ b/app/src/main/java/org/lineageos/eleven/provider/SearchHistory.java @@ -139,7 +139,7 @@ public Cursor queryRecentSearches(final String limit) { public ArrayList getRecentSearches() { Cursor searches = queryRecentSearches(String.valueOf(MAX_ITEMS_IN_DB)); - ArrayList results = new ArrayList(MAX_ITEMS_IN_DB); + ArrayList results = new ArrayList<>(MAX_ITEMS_IN_DB); try { if (searches != null && searches.moveToFirst()) { diff --git a/app/src/main/java/org/lineageos/eleven/provider/SongPlayCount.java b/app/src/main/java/org/lineageos/eleven/provider/SongPlayCount.java index 5fcd83f..5dfaaa6 100644 --- a/app/src/main/java/org/lineageos/eleven/provider/SongPlayCount.java +++ b/app/src/main/java/org/lineageos/eleven/provider/SongPlayCount.java @@ -285,7 +285,7 @@ public long[] getTopPlayedResultsForList(long[] ids) { return null; } - HashSet uniqueIds = new HashSet(ids.length); + HashSet uniqueIds = new HashSet<>(ids.length); // create the list of ids to select against StringBuilder selection = new StringBuilder(); @@ -344,9 +344,8 @@ public long[] getTopPlayedResultsForList(long[] ids) { } // append the remaining items - these are songs that haven't been played recently - Iterator iter = uniqueIds.iterator(); - while (iter.hasNext()) { - sortedList[idx++] = iter.next(); + for (final Long uniqueId : uniqueIds) { + sortedList[idx++] = uniqueId; } return sortedList; diff --git a/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionAdapter.java b/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionAdapter.java index f052a6a..81c59f0 100644 --- a/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionAdapter.java +++ b/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionAdapter.java @@ -87,7 +87,7 @@ public SectionAdapter(final Activity context, final TArrayAdapter underlyingAdap mContext = context; mUnderlyingAdapter = underlyingAdapter; mUnderlyingAdapter.setPopupMenuClickedListener(this); - mSections = new TreeMap(); + mSections = new TreeMap<>(); setupHeaderParameters(R.layout.list_header, false); // since we have no good default footer, just re-use the header layout setupFooterParameters(R.layout.list_header, false); diff --git a/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionCreator.java b/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionCreator.java index b731973..5c9eda1 100644 --- a/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionCreator.java +++ b/app/src/main/java/org/lineageos/eleven/sectionadapter/SectionCreator.java @@ -73,6 +73,6 @@ public SectionListContainer loadInBackground() { sections = SectionCreatorUtils.createSections(results, mComparator); } - return new SectionListContainer(sections, results); + return new SectionListContainer<>(sections, results); } } diff --git a/app/src/main/java/org/lineageos/eleven/ui/MusicHolder.java b/app/src/main/java/org/lineageos/eleven/ui/MusicHolder.java index 3313ea2..ada4574 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/MusicHolder.java +++ b/app/src/main/java/org/lineageos/eleven/ui/MusicHolder.java @@ -100,34 +100,34 @@ public class MusicHolder { public MusicHolder(final View view) { super(); // Initialize mImage - mImage = new WeakReference((ImageView)view.findViewById(R.id.image)); + mImage = new WeakReference<>((ImageView) view.findViewById(R.id.image)); // Initialize mLineOne - mLineOne = new WeakReference((TextView)view.findViewById(R.id.line_one)); + mLineOne = new WeakReference<>((TextView) view.findViewById(R.id.line_one)); // Initialize mLineOneRight - mLineOneRight = new WeakReference( - (TextView)view.findViewById(R.id.line_one_right)); + mLineOneRight = new WeakReference<>( + (TextView) view.findViewById(R.id.line_one_right)); // Initialize mLineTwo - mLineTwo = new WeakReference((TextView)view.findViewById(R.id.line_two)); + mLineTwo = new WeakReference<>((TextView) view.findViewById(R.id.line_two)); // Initialize Circular progress bar container - mPlayPauseProgressButton = new WeakReference( - (PlayPauseProgressButton)view.findViewById(R.id.playPauseProgressButton)); + mPlayPauseProgressButton = new WeakReference<>( + (PlayPauseProgressButton) view.findViewById(R.id.playPauseProgressButton)); // Get the padding container for the progress bar - mPlayPauseProgressContainer = new WeakReference( + mPlayPauseProgressContainer = new WeakReference<>( view.findViewById(R.id.play_pause_container)); - mNowPlayingIndicator = new WeakReference(view.findViewById(R.id.now_playing)); + mNowPlayingIndicator = new WeakReference<>(view.findViewById(R.id.now_playing)); // Get the divider for the list item - mDivider = new WeakReference(view.findViewById(R.id.divider)); + mDivider = new WeakReference<>(view.findViewById(R.id.divider)); // Get the pop up menu button - mPopupMenuButton = new WeakReference( - (PopupMenuButton)view.findViewById(R.id.popup_menu_button)); + mPopupMenuButton = new WeakReference<>( + (PopupMenuButton) view.findViewById(R.id.popup_menu_button)); } /** diff --git a/app/src/main/java/org/lineageos/eleven/ui/activities/BaseActivity.java b/app/src/main/java/org/lineageos/eleven/ui/activities/BaseActivity.java index 3267951..fc05242 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/activities/BaseActivity.java +++ b/app/src/main/java/org/lineageos/eleven/ui/activities/BaseActivity.java @@ -383,7 +383,7 @@ private final static class PlaybackStatus extends BroadcastReceiver { * Constructor of PlaybackStatus */ public PlaybackStatus(final BaseActivity activity) { - mReference = new WeakReference(activity); + mReference = new WeakReference<>(activity); } /** @@ -392,21 +392,31 @@ public PlaybackStatus(final BaseActivity activity) { @Override public void onReceive(final Context context, final Intent intent) { final String action = intent.getAction(); - BaseActivity baseActivity = mReference.get(); + if (action == null || action.isEmpty()) { + return; + } + + final BaseActivity baseActivity = mReference.get(); if (baseActivity != null) { - if (action.equals(MusicPlaybackService.META_CHANGED)) { - baseActivity.onMetaChanged(); - } else if (action.equals(MusicPlaybackService.PLAYSTATE_CHANGED)) { - // Set the play and pause image - baseActivity.mPlayPauseProgressButton.getPlayPauseButton().updateState(); - } else if (action.equals(MusicPlaybackService.REFRESH)) { - baseActivity.restartLoader(); - } else if (action.equals(MusicPlaybackService.PLAYLIST_CHANGED)) { - baseActivity.onPlaylistChanged(); - } else if (action.equals(MusicPlaybackService.TRACK_ERROR)) { - final String errorMsg = context.getString(R.string.error_playing_track, - intent.getStringExtra(MusicPlaybackService.TrackErrorExtra.TRACK_NAME)); - Toast.makeText(baseActivity, errorMsg, Toast.LENGTH_SHORT).show(); + switch (action) { + case MusicPlaybackService.META_CHANGED: + baseActivity.onMetaChanged(); + break; + case MusicPlaybackService.PLAYSTATE_CHANGED: + // Set the play and pause image + baseActivity.mPlayPauseProgressButton.getPlayPauseButton().updateState(); + break; + case MusicPlaybackService.REFRESH: + baseActivity.restartLoader(); + break; + case MusicPlaybackService.PLAYLIST_CHANGED: + baseActivity.onPlaylistChanged(); + break; + case MusicPlaybackService.TRACK_ERROR: + final String errorMsg = context.getString(R.string.error_playing_track, + intent.getStringExtra(MusicPlaybackService.TrackErrorExtra.TRACK_NAME)); + Toast.makeText(baseActivity, errorMsg, Toast.LENGTH_SHORT).show(); + break; } } } diff --git a/app/src/main/java/org/lineageos/eleven/ui/activities/HomeActivity.java b/app/src/main/java/org/lineageos/eleven/ui/activities/HomeActivity.java index 62a2cd9..5679db2 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/activities/HomeActivity.java +++ b/app/src/main/java/org/lineageos/eleven/ui/activities/HomeActivity.java @@ -345,9 +345,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Prevents race condition while AlbumAdapter load default image // and store it in the ImageCache. If an image already exists // for an Album, no new Image can be stored. - // new Thread(new Runnable() { - // @Override - // public void run() { + // new Thread(() -> { Bitmap bitmap = ImageFetcher.decodeSampledBitmapFromUri(getContentResolver(), selectedImage); ImageFetcher imageFetcher = ElevenUtils.getImageFetcher(HomeActivity.this); @@ -528,7 +526,7 @@ private boolean needRequestStoragePermission() { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE }; - ArrayList permissionList = new ArrayList(); + ArrayList permissionList = new ArrayList<>(); for (String permission : permissions) { if (ContextCompat.checkSelfPermission(this,permission) != PackageManager.PERMISSION_GRANTED) { permissionList.add(permission); diff --git a/app/src/main/java/org/lineageos/eleven/ui/activities/SearchActivity.java b/app/src/main/java/org/lineageos/eleven/ui/activities/SearchActivity.java index 0872dbe..60768af 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/activities/SearchActivity.java +++ b/app/src/main/java/org/lineageos/eleven/ui/activities/SearchActivity.java @@ -94,6 +94,11 @@ public class SearchActivity extends AppCompatActivity implements LoaderCallbacks>, OnScrollListener, OnQueryTextListener, OnItemClickListener, ServiceConnection, OnTouchListener { + /** + * Intent extra for identifying the search type to filter for + */ + public static String EXTRA_SEARCH_MODE = "search_mode"; + /** * Loading delay of 500ms so we don't flash the screen too much when loading new searches */ @@ -197,8 +202,6 @@ enum VisibleState { */ private PopupMenuHelper mPopupMenuHelper; - private boolean hasCallbacks; - /** * {@inheritDoc} */ @@ -274,7 +277,7 @@ protected String getArtistName() { // Initialize the adapter SummarySearchAdapter adapter = new SummarySearchAdapter(this); - mAdapter = new SectionAdapter(this, adapter); + mAdapter = new SectionAdapter<>(this, adapter); // Set the prefix mAdapter.getUnderlyingAdapter().setPrefix(mFilterString); mAdapter.setupHeaderParameters(R.layout.list_search_header, false); @@ -302,7 +305,6 @@ public void run() { setState(VisibleState.Loading); } }; - hasCallbacks = false; // Theme the action bar final ActionBar actionBar = getSupportActionBar(); @@ -316,12 +318,7 @@ public void run() { mTopLevelSearch = false; // get the search type to filter by - int type; - try { - type = getIntent().getIntExtra((String)SearchManager.class.getField("SEARCH_MODE").get(null), -1); - } catch (Exception ex) { - throw new RuntimeException(ex); - } + int type = getIntent().getIntExtra(SearchActivity.EXTRA_SEARCH_MODE, -1); if (type >= 0 && type < ResultType.values().length) { mSearchType = ResultType.values()[type]; } @@ -412,7 +409,7 @@ public Loader> onCreateLoader(final int id, comparator = SectionCreatorUtils.createSearchResultComparison(this); } - return new SectionCreator(this, + return new SectionCreator<>(this, new SummarySearchLoader(this, mFilterString, mSearchType), comparator); } @@ -572,20 +569,8 @@ public void hideInputManager() { */ public void setLoading() { if (mCurrentState != VisibleState.Loading) { - //mHandler.hasCallbacks(mLoadingRunnable - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - try { - Class clazz = mHandler.getClass(); - Method m = clazz.getMethod("hasCallbacks", Runnable.class); - hasCallbacks = ((Boolean)(m.invoke(mHandler, new Object[] {mLoadingRunnable}))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - if (!hasCallbacks) { - mHandler.postDelayed(mLoadingRunnable, LOADING_DELAY); - hasCallbacks = true; - } + mHandler.removeCallbacks(mLoadingRunnable); + mHandler.postDelayed(mLoadingRunnable, LOADING_DELAY); } } @@ -597,7 +582,6 @@ public void setState(VisibleState state) { // remove any delayed runnables. This has to be before mCurrentState == state // in case the state doesn't change but we've created a loading runnable mHandler.removeCallbacks(mLoadingRunnable); - hasCallbacks = false; // if we are already looking at view already, just quit if (mCurrentState == state) { @@ -676,11 +660,7 @@ public void onItemClick(final AdapterView parent, final View view, final int SearchResult item = mAdapter.getTItem(position - 1); Intent intent = new Intent(this, SearchActivity.class); intent.putExtra(SearchManager.QUERY, mFilterString); - try { - intent.putExtra((String)SearchManager.class.getField("SEARCH_MODE").get(null), item.mType.ordinal()); - } catch (Exception ex) { - throw new RuntimeException(ex); - } + intent.putExtra(SearchActivity.EXTRA_SEARCH_MODE, item.mType.ordinal()); startActivity(intent); } else { SearchResult item = mAdapter.getTItem(position); @@ -791,7 +771,7 @@ public List loadInBackground() { * @return the results for that search */ protected List runSearchForType() { - ArrayList results = new ArrayList(); + ArrayList results = new ArrayList<>(); Cursor cursor = null; try { if (mSearchType == ResultType.Playlist) { @@ -837,7 +817,7 @@ protected List runSearchForType() { * @return the results for that search */ public List runGenericSearch() { - ArrayList results = new ArrayList(); + ArrayList results = new ArrayList<>(); // number of types to query for final int numTypes = ResultType.getNumTypes(); @@ -933,14 +913,12 @@ public static Cursor makePlaylistSearchCursor(final Context context, keywords[i] = "%" + keywords[i] + "%"; } - String where = ""; - - // make the where clause + final StringBuilder where = new StringBuilder(); for (int i = 0; i < keywords.length; i++) { if (i == 0) { - where = "name LIKE ?"; + where.append("name LIKE ?"); } else { - where += " AND name LIKE ?"; + where.append(" AND name LIKE ?"); } } @@ -951,7 +929,7 @@ public static Cursor makePlaylistSearchCursor(final Context context, BaseColumns._ID, /* 1 */ MediaStore.Audio.PlaylistsColumns.NAME - }, where, keywords, MediaStore.Audio.Playlists.DEFAULT_SORT_ORDER); + }, where.toString(), keywords, MediaStore.Audio.Playlists.DEFAULT_SORT_ORDER); } } @@ -966,7 +944,7 @@ public SearchHistoryLoader(Context context) { @Override public ArrayAdapter loadInBackground() { ArrayList strings = SearchHistory.getInstance(getContext()).getRecentSearches(); - ArrayAdapter adapter = new ArrayAdapter(getContext(), + ArrayAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.list_item_search_history, R.id.line_one); adapter.addAll(strings); return adapter; @@ -996,7 +974,7 @@ public void onLoadFinished(Loader> searchHistoryAdapterLoad @Override public void onLoaderReset(Loader> cursorAdapterLoader) { - ((ArrayAdapter)mSearchHistoryListView.getAdapter()).clear(); + ((ArrayAdapter)mSearchHistoryListView.getAdapter()).clear(); } } diff --git a/app/src/main/java/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java b/app/src/main/java/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java index 4002f6b..d03a425 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java +++ b/app/src/main/java/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java @@ -722,7 +722,7 @@ private static class PreviewPlayer extends MediaPlayer if (activity == null) { throw new IllegalArgumentException("'activity' cannot be null!"); } - mActivityReference = new WeakReference(activity); + mActivityReference = new WeakReference<>(activity); setOnErrorListener(activity); setOnCompletionListener(activity); } diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/AlbumFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/AlbumFragment.java index 2743775..7ebcf6e 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/AlbumFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/AlbumFragment.java @@ -189,7 +189,7 @@ public Loader> onCreateLoader(final int id, final Bu mLoadingEmptyContainer.showLoading(); // if we ever decide to add section headers for grid items, we can pass a compartor // instead of null - return new SectionCreator(getActivity(), new AlbumLoader(getActivity()), null); + return new SectionCreator<>(getActivity(), new AlbumLoader(getActivity()), null); } /** diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/ArtistFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/ArtistFragment.java index 1c9ad8d..c6183fb 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/ArtistFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/ArtistFragment.java @@ -111,7 +111,7 @@ public Artist getArtist(int position) { // Create the adapter final int layout = R.layout.list_item_normal; ArtistAdapter adapter = new ArtistAdapter(getActivity(), layout); - mAdapter = new SectionAdapter(getActivity(), adapter); + mAdapter = new SectionAdapter<>(getActivity(), adapter); mAdapter.setPopupMenuClickedListener(new IPopupMenuCallback.IListener() { @Override public void onPopupMenuClicked(View v, int position) { @@ -197,7 +197,7 @@ public Loader> onCreateLoader(final int id, final B mLoadingEmptyContainer.showLoading(); final Context context = getActivity(); IItemCompare comparator = SectionCreatorUtils.createArtistComparison(context); - return new SectionCreator(getActivity(), new ArtistLoader(context), comparator); + return new SectionCreator<>(getActivity(), new ArtistLoader(context), comparator); } /** diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java index 74a1ef8..c70c8ad 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java @@ -62,11 +62,9 @@ import org.lineageos.eleven.utils.MusicUtils; import org.lineageos.eleven.utils.NavUtils; import org.lineageos.eleven.utils.PreferenceUtils; -import org.lineageos.eleven.widgets.BrowseButton; import org.lineageos.eleven.widgets.LoadingEmptyContainer; import org.lineageos.eleven.widgets.NoResultsContainer; import org.lineageos.eleven.widgets.PlayPauseProgressButton; -import org.lineageos.eleven.widgets.QueueButton; import org.lineageos.eleven.widgets.RepeatButton; import org.lineageos.eleven.widgets.RepeatingImageButton; import org.lineageos.eleven.widgets.ShuffleButton; @@ -803,7 +801,7 @@ private static final class TimeHandler extends Handler { * Constructor of TimeHandler */ public TimeHandler(final AudioPlayerFragment player) { - mAudioPlayer = new WeakReference(player); + mAudioPlayer = new WeakReference<>(player); } @Override @@ -830,7 +828,7 @@ private static final class PlaybackStatus extends BroadcastReceiver { * Constructor of PlaybackStatus */ public PlaybackStatus(final AudioPlayerFragment fragment) { - mReference = new WeakReference(fragment); + mReference = new WeakReference<>(fragment); } /** @@ -838,37 +836,49 @@ public PlaybackStatus(final AudioPlayerFragment fragment) { */ @Override public void onReceive(final Context context, final Intent intent) { - final AudioPlayerFragment audioPlayerFragment = mReference.get(); final String action = intent.getAction(); - if (action.equals(MusicPlaybackService.META_CHANGED)) { - // if we are repeating current and the track has changed, re-create the adapter - if (MusicUtils.getRepeatMode() == MusicPlaybackService.REPEAT_CURRENT) { - mReference.get().createAndSetAdapter(); - } + if (action == null || action.isEmpty()) { + return; + } - // Current info - audioPlayerFragment.updateNowPlayingInfo(); - audioPlayerFragment.dismissPopupMenu(); - } else if (action.equals(MusicPlaybackService.PLAYSTATE_CHANGED)) { - // Set the play and pause image - audioPlayerFragment.mPlayPauseProgressButton.getPlayPauseButton().updateState(); - audioPlayerFragment.mVisualizerView.setPlaying(MusicUtils.isPlaying()); - } else if (action.equals(MusicPlaybackService.REPEATMODE_CHANGED) - || action.equals(MusicPlaybackService.SHUFFLEMODE_CHANGED)) { - // Set the repeat image - audioPlayerFragment.mRepeatButton.updateRepeatState(); - // Set the shuffle image - audioPlayerFragment.mShuffleButton.updateShuffleState(); - - // Update the queue - audioPlayerFragment.createAndSetAdapter(); - } else if (action.equals(MusicPlaybackService.QUEUE_CHANGED)) { - audioPlayerFragment.createAndSetAdapter(); - } else if (action.equals(MusicPlaybackService.NEW_LYRICS)) { - audioPlayerFragment.onLyrics(intent.getStringExtra("lyrics")); - } else if ( (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) && - action.equals(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED)) { - audioPlayerFragment.updateVisualizerPowerSaveMode(); + final AudioPlayerFragment audioPlayerFragment = mReference.get(); + switch (action) { + case MusicPlaybackService.META_CHANGED: + // if we are repeating current and the track has changed, re-create the adapter + if (MusicUtils.getRepeatMode() == MusicPlaybackService.REPEAT_CURRENT) { + mReference.get().createAndSetAdapter(); + } + + // Current info + audioPlayerFragment.updateNowPlayingInfo(); + audioPlayerFragment.dismissPopupMenu(); + break; + case MusicPlaybackService.PLAYSTATE_CHANGED: + // Set the play and pause image + audioPlayerFragment.mPlayPauseProgressButton.getPlayPauseButton().updateState(); + audioPlayerFragment.mVisualizerView.setPlaying(MusicUtils.isPlaying()); + break; + case MusicPlaybackService.REPEATMODE_CHANGED: + case MusicPlaybackService.SHUFFLEMODE_CHANGED: + // Set the repeat image + audioPlayerFragment.mRepeatButton.updateRepeatState(); + // Set the shuffle image + audioPlayerFragment.mShuffleButton.updateShuffleState(); + + // Update the queue + audioPlayerFragment.createAndSetAdapter(); + break; + case MusicPlaybackService.QUEUE_CHANGED: + audioPlayerFragment.createAndSetAdapter(); + break; + case MusicPlaybackService.NEW_LYRICS: + audioPlayerFragment.onLyrics(intent.getStringExtra("lyrics")); + break; + case PowerManager.ACTION_POWER_SAVE_MODE_CHANGED: + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + audioPlayerFragment.updateVisualizerPowerSaveMode(); + } + break; } } } diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/PlaylistFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/PlaylistFragment.java index f09ba88..18bcf27 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/PlaylistFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/PlaylistFragment.java @@ -1,14 +1,19 @@ /* * Copyright (C) 2012 Andrew Neal * Copyright (C) 2014 The CyanogenMod Project - * Licensed under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. + * Copyright (C) 2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.lineageos.eleven.ui.fragments; @@ -20,6 +25,7 @@ import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.loader.app.LoaderManager.LoaderCallbacks; import androidx.loader.content.Loader; @@ -40,6 +46,8 @@ import org.lineageos.eleven.widgets.IPopupMenuCallback; import org.lineageos.eleven.widgets.LoadingEmptyContainer; +import java.util.Collections; +import java.util.Iterator; import java.util.List; /** @@ -75,6 +83,7 @@ public class PlaylistFragment extends MusicBrowserFragment implements * Empty constructor as per the {@link Fragment} documentation */ public PlaylistFragment() { + // empty } @Override @@ -82,9 +91,6 @@ public int getLoaderId() { return PagerAdapter.MusicFragments.PLAYLIST.ordinal(); } - /** - * {@inheritDoc} - */ @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -97,24 +103,16 @@ public Playlist getPlaylist(int position) { // Create the adapter mAdapter = new PlaylistAdapter(getActivity()); - mAdapter.setPopupMenuClickedListener(new IPopupMenuCallback.IListener() { - @Override - public void onPopupMenuClicked(View v, int position) { - mPopupMenuHelper.showPopupMenu(v, position); - } - }); + mAdapter.setPopupMenuClickedListener((v, position) -> mPopupMenuHelper.showPopupMenu(v, position)); } - /** - * {@inheritDoc} - */ @Override - public View onCreateView(final LayoutInflater inflater, final ViewGroup container, + public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { // The View for the fragment's UI - final ViewGroup rootView = (ViewGroup)inflater.inflate(R.layout.list_base, container, false); + final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.list_base, container, false); // Initialize the list - mListView = (ListView)rootView.findViewById(R.id.list_base); + mListView = rootView.findViewById(R.id.list_base); // Set the data behind the grid mListView.setAdapter(mAdapter); // Release any references to the recycled Views @@ -122,8 +120,7 @@ public View onCreateView(final LayoutInflater inflater, final ViewGroup containe // Play the selected song mListView.setOnItemClickListener(this); // Setup the loading and empty state - mLoadingEmptyContainer = - (LoadingEmptyContainer)rootView.findViewById(R.id.loading_empty_container); + mLoadingEmptyContainer = rootView.findViewById(R.id.loading_empty_container); mListView.setEmptyView(mLoadingEmptyContainer); // Register the music status listener @@ -139,10 +136,6 @@ public void onDestroyView() { ((BaseActivity)getActivity()).removeMusicStateListenerListener(this); } - - /** - * {@inheritDoc} - */ @Override public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -152,9 +145,6 @@ public void onActivityCreated(final Bundle savedInstanceState) { initLoader(null, this); } - /** - * {@inheritDoc} - */ @Override public void onItemClick(final AdapterView parent, final View view, final int position, final long id) { @@ -168,9 +158,7 @@ public void onItemClick(final AdapterView parent, final View view, final int } } - /** - * {@inheritDoc} - */ + @NonNull @Override public Loader> onCreateLoader(final int id, final Bundle args) { // show the loading progress bar @@ -178,39 +166,41 @@ public Loader> onCreateLoader(final int id, final Bundle args) { return new PlaylistLoader(getActivity()); } - /** - * {@inheritDoc} - */ @Override - public void onLoadFinished(final Loader> loader, final List data) { - // Check for any errors + public void onLoadFinished(@NonNull final Loader> loader, final List data) { if (data.isEmpty()) { mLoadingEmptyContainer.showNoResults(); return; } - // Start fresh + // Start fresh, fill adapter with new data and create cache mAdapter.unload(); - // Add the data to the adpater + + // iterate through playlist list and add "smart playlists" first + final Iterator playlistIterator = data.listIterator(); + while (playlistIterator.hasNext()) { + final Playlist playlist = playlistIterator.next(); + if (playlist.mSongCount < 0) { + mAdapter.add(playlist); + playlistIterator.remove(); + } + } + + // after the "smart playlists" are added, sort and add remaining playlists + Collections.sort(data, new Playlist.IgnoreCaseComparator()); for (final Playlist playlist : data) { mAdapter.add(playlist); } - // Build the cache + mAdapter.buildCache(); } - /** - * {@inheritDoc} - */ @Override - public void onLoaderReset(final Loader> loader) { + public void onLoaderReset(@NonNull final Loader> loader) { // Clear the data in the adapter mAdapter.unload(); } - /** - * {@inheritDoc} - */ @Override public void restartLoader() { restartLoader(null, this); @@ -221,9 +211,6 @@ public void onPlaylistChanged() { restartLoader(); } - /** - * {@inheritDoc} - */ @Override public void onMetaChanged() { // Nothing to do diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/QueueFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/QueueFragment.java index e4ed00c..8c8461d 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/QueueFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/QueueFragment.java @@ -457,7 +457,7 @@ private static final class QueueUpdateListener extends BroadcastReceiver { * Constructor of PlaybackStatus */ public QueueUpdateListener(final QueueFragment fragment) { - mReference = new WeakReference(fragment); + mReference = new WeakReference<>(fragment); } /** @@ -467,13 +467,21 @@ public QueueUpdateListener(final QueueFragment fragment) { public void onReceive(final Context context, final Intent intent) { // TODO: Invalid options menu if opened? final String action = intent.getAction(); - if (action.equals(MusicPlaybackService.META_CHANGED)) { - mReference.get().mAdapter.setCurrentQueuePosition(MusicUtils.getQueuePosition()); - } else if (action.equals(MusicPlaybackService.PLAYSTATE_CHANGED)) { - mReference.get().mAdapter.notifyDataSetChanged(); - } else if (action.equals(MusicPlaybackService.QUEUE_CHANGED)) { - mReference.get().refreshQueue(); + if (action == null || action.isEmpty()) { + return; + } + + switch (action) { + case MusicPlaybackService.META_CHANGED: + mReference.get().mAdapter.setCurrentQueuePosition(MusicUtils.getQueuePosition()); + break; + case MusicPlaybackService.PLAYSTATE_CHANGED: + mReference.get().mAdapter.notifyDataSetChanged(); + break; + case MusicPlaybackService.QUEUE_CHANGED: + mReference.get().refreshQueue(); + break; } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/RecentFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/RecentFragment.java index a777075..63a0d4a 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/RecentFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/RecentFragment.java @@ -64,7 +64,7 @@ public Loader> onCreateLoader(final int id, final Bun TopTracksLoader loader = new TopTracksLoader(getActivity(), TopTracksLoader.QueryType.RecentSongs); - return new SectionCreator(getActivity(), loader, null); + return new SectionCreator<>(getActivity(), loader, null); } /** @@ -133,4 +133,4 @@ protected boolean showNowPlayingIndicator(Song song, int position) { @Override protected void clearList() { MusicUtils.clearRecent(getActivity()); } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/SongFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/SongFragment.java index 856f0d9..38ae0bf 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/SongFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/SongFragment.java @@ -64,7 +64,7 @@ public Loader> onCreateLoader(final int id, final Bun SectionCreatorUtils.IItemCompare songComparison = SectionCreatorUtils.createSongComparison(context); // return the wrapped section creator - return new SectionCreator(context, songLoader, songComparison); + return new SectionCreator<>(context, songLoader, songComparison); } diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java index 2df0b75..60e998a 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java @@ -116,7 +116,7 @@ protected void updateMenuIds(PopupMenuType type, TreeSet set) { }; // Create the adapter - mAdapter = new SectionAdapter(getActivity(), createAdapter()); + mAdapter = new SectionAdapter<>(getActivity(), createAdapter()); mAdapter.setPopupMenuClickedListener(new IPopupMenuCallback.IListener() { @Override public void onPopupMenuClicked(View v, int position) { diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java index 8748a65..d2dc541 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java @@ -48,7 +48,7 @@ public Loader> onCreateLoader(final int id, final Bun mLoadingEmptyContainer.showLoading(); LastAddedLoader loader = new LastAddedLoader(getActivity()); - return new SectionCreator(getActivity(), loader, null); + return new SectionCreator<>(getActivity(), loader, null); } @Override @@ -89,4 +89,4 @@ protected SmartPlaylistType getSmartPlaylistType() { @Override protected void clearList() { MusicUtils.clearLastAdded(getActivity()); } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java index 36ea5d2..3dedcf1 100644 --- a/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java +++ b/app/src/main/java/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java @@ -58,7 +58,7 @@ public Loader> onCreateLoader(final int id, final Bun TopTracksLoader loader = new TopTracksLoader(getActivity(), TopTracksLoader.QueryType.TopTracks); - return new SectionCreator(getActivity(), loader, null); + return new SectionCreator<>(getActivity(), loader, null); } @Override @@ -115,4 +115,4 @@ protected long getFragmentSourceId() { @Override protected void clearList() { MusicUtils.clearTopTracks(getActivity()); } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/utils/BitmapWithColors.java b/app/src/main/java/org/lineageos/eleven/utils/BitmapWithColors.java index efbb9f8..01b6194 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/BitmapWithColors.java +++ b/app/src/main/java/org/lineageos/eleven/utils/BitmapWithColors.java @@ -67,7 +67,7 @@ public String toString() { private static final int CACHE_SIZE_MAX = 20; private static final LruCache sCachedColors = - new LruCache(CACHE_SIZE_MAX); + new LruCache<>(CACHE_SIZE_MAX); private Bitmap mBitmap; private int mBitmapKey; diff --git a/app/src/main/java/org/lineageos/eleven/utils/ContextMenuBuilder.java b/app/src/main/java/org/lineageos/eleven/utils/ContextMenuBuilder.java deleted file mode 100644 index 6d6ef20..0000000 --- a/app/src/main/java/org/lineageos/eleven/utils/ContextMenuBuilder.java +++ /dev/null @@ -1,248 +0,0 @@ -package org.lineageos.eleven.utils; - -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.ArrayList; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.graphics.drawable.Drawable; -import android.os.IBinder; -import android.util.EventLog; -import android.view.ContextMenu; -import android.view.KeyEvent; -import android.view.MenuItem; -import android.view.SubMenu; -import android.view.View; - -import androidx.appcompat.view.menu.MenuBuilder; -import androidx.appcompat.view.menu.MenuItemImpl; - - -/** - * Implementation of the {@link android.view.ContextMenu} interface. - *

- * Most clients of the menu framework will never need to touch this - * class. However, if the client has a window that - * is not a content view of a Dialog or Activity (for example, the - * view was added directly to the window manager) and needs to show - * context menus, it will use this class. - *

- * To use this class, instantiate it via {@link #ContextMenuBuilder(Context)}, - * and optionally populate it with any of your custom items. Finally, - * call {@link #show(View, IBinder)} which will populate the menu - * with a view's context menu items and show the context menu. - */ -public class ContextMenuBuilder implements ContextMenu { - - MenuBuilder menuBuilder = null; - - public ContextMenuBuilder(Context context) { - menuBuilder = MenuBuilderHelper.createInstance(context); - } - - public void setCallback(MenuBuilder.Callback cb) { - MenuBuilderHelper.setCallback(menuBuilder, cb); - } - - public ContextMenu setHeaderIcon(Drawable icon) { - MenuBuilderHelper.setHeaderIconInt(menuBuilder, icon); - return (ContextMenu) this; - } - - public ContextMenu setHeaderIcon(int iconRes) { - MenuBuilderHelper.setHeaderIconInt(menuBuilder, iconRes); - return (ContextMenu) this; - } - - public ContextMenu setHeaderTitle(CharSequence title) { - MenuBuilderHelper.setHeaderTitleInt(menuBuilder, title); - return (ContextMenu) this; - } - - public ContextMenu setHeaderTitle(int titleRes) { - MenuBuilderHelper.setHeaderTitleInt(menuBuilder, titleRes); - return (ContextMenu) this; - } - - public ContextMenu setHeaderView(View view) { - MenuBuilderHelper.setHeaderViewInt(menuBuilder, view); - return (ContextMenu) this; - } - - public ArrayList getVisibleItems() { - return MenuBuilderHelper.getVisibleItems(menuBuilder); - } - - - @Override - public MenuItem add(CharSequence title) { - return MenuBuilderHelper.add(menuBuilder, title); - } - - @Override - public MenuItem add(int titleRes) { - return MenuBuilderHelper.add(menuBuilder, titleRes); - } - - @Override - public MenuItem add(int groupId, int itemId, int order, CharSequence title) { - return MenuBuilderHelper.add(menuBuilder, groupId, itemId, order, title); - } - - @Override - public MenuItem add(int groupId, int itemId, int order, int titleRes) { - return MenuBuilderHelper.add(menuBuilder, groupId, itemId, order, titleRes); - } - - @Override - public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, - Intent intent, int flags, MenuItem[] outSpecificItems) { - return MenuBuilderHelper.addIntentOptions(menuBuilder, groupId, itemId, order, caller, specifics, intent, flags, outSpecificItems); - } - - @Override - public SubMenu addSubMenu(CharSequence title) { - return MenuBuilderHelper.addSubMenu(menuBuilder, title); - } - - @Override - public SubMenu addSubMenu(int titleRes) { - return MenuBuilderHelper.addSubMenu(menuBuilder, titleRes); - } - - @Override - public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) { - return MenuBuilderHelper.addSubMenu(menuBuilder, groupId, itemId, order, title); - } - - @Override - public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) { - return MenuBuilderHelper.addSubMenu(menuBuilder, groupId, itemId, order, titleRes); - } - - @Override - public void clear() { - MenuBuilderHelper.clear(menuBuilder); - } - - @Override - public void close() { - MenuBuilderHelper.close(menuBuilder); - } - - @Override - public MenuItem findItem(int id) { - return MenuBuilderHelper.findItem(menuBuilder, id); - } - - @Override - public MenuItem getItem(int index) { - return MenuBuilderHelper.getItem(menuBuilder, index); - } - - @Override - public boolean hasVisibleItems() { - return MenuBuilderHelper.hasVisibleItems(menuBuilder); - } - - @Override - public boolean isShortcutKey(int keyCode, KeyEvent event) { - return MenuBuilderHelper.isShortcutKey(menuBuilder, keyCode, event); - } - - @Override - public boolean performIdentifierAction(int id, int flags) { - return MenuBuilderHelper.performIdentifierAction(menuBuilder, id, flags); - } - - @Override - public boolean performShortcut(int keyCode, KeyEvent event, int flags) { - return MenuBuilderHelper.performShortcut(menuBuilder, keyCode, event, flags); - } - - @Override - public void removeGroup(int groupId) { - MenuBuilderHelper.removeGroup(menuBuilder, groupId); - } - - @Override - public void removeItem(int id) { - MenuBuilderHelper.removeItem(menuBuilder, id); - } - - @Override - public void setGroupCheckable(int group, boolean checkable, boolean exclusive) { - MenuBuilderHelper.setGroupCheckable(menuBuilder, group, checkable, exclusive); - } - - @Override - public void setGroupEnabled(int group, boolean enabled) { - MenuBuilderHelper.setGroupEnabled(menuBuilder, group, enabled); - } - - @Override - public void setGroupVisible(int group, boolean visible) { - MenuBuilderHelper.setGroupVisible(menuBuilder, group, visible); - } - - @Override - public void setQwertyMode(boolean isQwerty) { - MenuBuilderHelper.setQwertyMode(menuBuilder, isQwerty); - } - - @Override - public int size() { - return MenuBuilderHelper.size(menuBuilder); - } - - @Override - public void clearHeader() { - MenuBuilderHelper.clearHeader(menuBuilder); - } - - /** - * Shows this context menu, allowing the optional original view (and its - * ancestors) to add items. - * - * @param originalView Optional, the original view that triggered the - * context menu. - * @param token Optional, the window token that should be set on the context - * menu's window. - * @return If the context menu was shown, the {@link MenuDialogHelper} for - * dismissing it. Otherwise, null. - */ - public MenuDialogHelper show(View originalView, IBinder token) { - if (originalView != null) { - // Let relevant views and their populate context listeners populate - // the context menu - originalView.createContextMenu(this); - } - - if (getVisibleItems().size() > 0) { - EventLog.writeEvent(50001, 1); - - MenuDialogHelper helper = new MenuDialogHelper(this.menuBuilder); - helper.show(token); - - return helper; - } - - return null; - } - -} diff --git a/app/src/main/java/org/lineageos/eleven/utils/ElevenUtils.java b/app/src/main/java/org/lineageos/eleven/utils/ElevenUtils.java index f964c2d..0a63213 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/ElevenUtils.java +++ b/app/src/main/java/org/lineageos/eleven/utils/ElevenUtils.java @@ -24,7 +24,6 @@ import android.net.NetworkInfo; import android.net.Uri; import android.os.AsyncTask; -import android.os.Build; import android.provider.BaseColumns; import android.provider.MediaStore; import android.util.Log; @@ -84,7 +83,7 @@ public ElevenUtils() { * @param context The {@link Context} to use. * @return True if the device is a tablet, false otherwise. */ - public static final boolean isTablet(final Context context) { + public static boolean isTablet(final Context context) { final int layout = context.getResources().getConfiguration().screenLayout; return (layout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } @@ -95,7 +94,7 @@ public static final boolean isTablet(final Context context) { * @param context The {@link Context} to use. * @return True if the device is in landscape mode, false otherwise. */ - public static final boolean isLandscape(final Context context) { + public static boolean isLandscape(final Context context) { final int orientation = context.getResources().getConfiguration().orientation; return orientation == Configuration.ORIENTATION_LANDSCAPE; } @@ -109,14 +108,9 @@ public static final boolean isLandscape(final Context context) { * {@link AsyncTask#execute(Object[])} * @param Task argument type */ - @SuppressLint("NewApi") public static void execute(final boolean forceSerial, final AsyncTask task, final T... args) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.DONUT) { - throw new UnsupportedOperationException( - "This class can only be used on API 4 and newer."); - } - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB || forceSerial) { + if (forceSerial) { task.execute(args); } else { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, args); @@ -133,7 +127,7 @@ public static void execute(final boolean forceSerial, final AsyncTask cListMenuPresenter; - private static Constructor mConstructor; - private static Method mSetCallback; - private static Method mGetAdapter; - private static Method mOnCloseMenu; - - static { - try { - cListMenuPresenter = ListMenuPresenter.class; - mConstructor = cListMenuPresenter.getConstructor(new Class[] {Context.class, int.class}); - mSetCallback = cListMenuPresenter.getMethod("setCallback", new Class[] {MenuPresenter.Callback.class}); - mGetAdapter = cListMenuPresenter.getMethod("getAdapter", new Class[0]); - mOnCloseMenu = cListMenuPresenter.getMethod("onCloseMenu", new Class[] {MenuBuilder.class, boolean.class}); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static ListMenuPresenter createInstance(Context context, int itemLayoutRes) { - ListMenuPresenter result = null; - try { - result = (ListMenuPresenter) mConstructor.newInstance(new Object[] { context, itemLayoutRes }); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static void setCallback(ListMenuPresenter listMenuPresenter, MenuPresenter.Callback cb) { - try { - mSetCallback.invoke(listMenuPresenter, cb); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static ListAdapter getAdapter(ListMenuPresenter listMenuPresenter) { - ListAdapter result = null; - try { - result = (ListAdapter)(mGetAdapter.invoke(listMenuPresenter)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static void onCloseMenu(ListMenuPresenter listMenuPresenter, MenuBuilder menu, boolean allMenusAreClosing) { - try { - mOnCloseMenu.invoke(listMenuPresenter, menu, allMenusAreClosing); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - -} diff --git a/app/src/main/java/org/lineageos/eleven/utils/Lists.java b/app/src/main/java/org/lineageos/eleven/utils/Lists.java index ceca2a6..f48005c 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/Lists.java +++ b/app/src/main/java/org/lineageos/eleven/utils/Lists.java @@ -34,7 +34,7 @@ public Lists() { * @return a newly-created, initially-empty {@code ArrayList} */ public static final ArrayList newArrayList() { - return new ArrayList(); + return new ArrayList<>(); } /** @@ -46,7 +46,7 @@ public static final ArrayList newArrayList() { * @return a newly-created, initially-empty {@code LinkedList} */ public static final LinkedList newLinkedList() { - return new LinkedList(); + return new LinkedList<>(); } } diff --git a/app/src/main/java/org/lineageos/eleven/utils/MenuBuilderHelper.java b/app/src/main/java/org/lineageos/eleven/utils/MenuBuilderHelper.java deleted file mode 100644 index cbf65bc..0000000 --- a/app/src/main/java/org/lineageos/eleven/utils/MenuBuilderHelper.java +++ /dev/null @@ -1,509 +0,0 @@ -package org.lineageos.eleven.utils; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.util.ArrayList; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.graphics.drawable.Drawable; -import android.view.KeyEvent; -import android.view.MenuItem; -import android.view.SubMenu; -import android.view.View; -import androidx.appcompat.view.menu.MenuBuilder; -import androidx.appcompat.view.menu.MenuItemImpl; -import androidx.appcompat.view.menu.MenuPresenter; - -public class MenuBuilderHelper { - - /** - * Calling internal methods via reflection - */ - private static Class cMenuBuilder; - private static Constructor mConstructor; - private static Method mSetCallback; - private static Method mAddMenuPresenter; - private static Method mSetHeaderIconIntDrawable; - private static Method mSetHeaderIconIntInt; - private static Method mSetHeaderTitleIntCharSequence; - private static Method mSetHeaderTitleIntInt; - private static Method mSetHeaderViewInt; - private static Method mGetHeaderIcon; - private static Method mGetHeaderTitle; - private static Method mGetHeaderView; - private static Method mGetVisibleItems; - private static Method mGetContext; - - private static Method mAddCharSequence; - private static Method mAddInt; - private static Method mAddIntIntIntCharSequence; - private static Method mAddIntIntIntInt; - private static Method mAddIntentOptions; - private static Method mAddSubMenuCharSequence; - private static Method mAddSubMenuInt; - private static Method mAddSubMenuIntIntIntCharSequence; - private static Method mAddSubMenuIntIntIntInt; - private static Method mClear; - private static Method mClose; - private static Method mCloseBoolean; - private static Method mFindItem; - private static Method mGetItem; - private static Method mHasVisibleItems; - private static Method mIsShortcutKey; - private static Method mPerformIdentifierAction; - private static Method mPerformItemAction; - private static Method mPerformShortcut; - private static Method mRemoveGroup; - private static Method mRemoveItem; - private static Method mSetGroupCheckable; - private static Method mSetGroupEnabled; - private static Method mSetGroupVisible; - private static Method mSetQwertyMode; - private static Method mSize; - private static Method mClearHeader; - - static { - try { - cMenuBuilder = MenuBuilder.class; - mConstructor = cMenuBuilder.getConstructor(new Class[] {Context.class}); - mSetCallback = cMenuBuilder.getMethod("setCallback", new Class[] {MenuBuilder.Callback.class}); - mAddMenuPresenter = cMenuBuilder.getMethod("addMenuPresenter", new Class[] {MenuPresenter.class}); - mSetHeaderIconIntDrawable = cMenuBuilder.getDeclaredMethod("setHeaderIconInt", new Class[] {Drawable.class}); - mSetHeaderIconIntDrawable.setAccessible(true); - mSetHeaderIconIntInt = cMenuBuilder.getDeclaredMethod("setHeaderIconInt", new Class[] {int.class}); - mSetHeaderIconIntInt.setAccessible(true); - mSetHeaderTitleIntCharSequence = cMenuBuilder.getDeclaredMethod("setHeaderTitleInt", new Class[] {CharSequence.class}); - mSetHeaderTitleIntCharSequence.setAccessible(true); - mSetHeaderTitleIntInt = cMenuBuilder.getDeclaredMethod("setHeaderTitleInt", new Class[] {int.class}); - mSetHeaderTitleIntInt.setAccessible(true); - mSetHeaderViewInt = cMenuBuilder.getDeclaredMethod("setHeaderViewInt", new Class[] {View.class}); - mSetHeaderViewInt.setAccessible(true); - mGetHeaderIcon = cMenuBuilder.getMethod("getHeaderIcon", new Class[0]); - mGetHeaderTitle = cMenuBuilder.getMethod("getHeaderTitle", new Class[0]); - mGetHeaderView = cMenuBuilder.getMethod("getHeaderView", new Class[0]); - mGetVisibleItems = cMenuBuilder.getMethod("getVisibleItems", new Class[0]); - mGetContext = cMenuBuilder.getMethod("getContext", new Class[0]); - mAddCharSequence = cMenuBuilder.getMethod("add", new Class[] {CharSequence.class}); - mAddInt = cMenuBuilder.getMethod("add", new Class[] {int.class}); - mAddIntIntIntCharSequence = cMenuBuilder.getMethod("add", new Class[] {int.class, int.class, int.class, CharSequence.class}); - mAddIntIntIntInt = cMenuBuilder.getMethod("add", new Class[] {int.class, int.class, int.class, int.class}); - mAddIntentOptions = cMenuBuilder.getMethod("addIntentOptions", new Class[] {int.class, int.class, int.class, ComponentName.class, Intent[].class, Intent.class, int.class, MenuItem[].class}); - mAddSubMenuCharSequence = cMenuBuilder.getMethod("addSubMenu", new Class[] {CharSequence.class}); - mAddSubMenuInt = cMenuBuilder.getMethod("addSubMenu", new Class[] {int.class}); - mAddSubMenuIntIntIntCharSequence = cMenuBuilder.getMethod("addSubMenu", new Class[] {int.class, int.class, int.class, CharSequence.class}); - mAddSubMenuIntIntIntInt = cMenuBuilder.getMethod("addSubMenu", new Class[] {int.class, int.class, int.class, int.class}); - mClear = cMenuBuilder.getMethod("clear", new Class[0]); - mClose = cMenuBuilder.getMethod("close", new Class[0]); - mCloseBoolean = cMenuBuilder.getMethod("close", new Class[] {boolean.class}); - mFindItem = cMenuBuilder.getMethod("findItem", new Class[] {int.class}); - mGetItem = cMenuBuilder.getMethod("getItem", new Class[] {int.class}); - mHasVisibleItems = cMenuBuilder.getMethod("hasVisibleItems", new Class[0]); - mIsShortcutKey = cMenuBuilder.getMethod("isShortcutKey", new Class[] {int.class, KeyEvent.class}); - mPerformIdentifierAction = cMenuBuilder.getMethod("performIdentifierAction", new Class[] {int.class, int.class}); - mPerformItemAction = cMenuBuilder.getMethod("performItemAction", new Class[] {MenuItem.class, int.class}); - mPerformShortcut = cMenuBuilder.getMethod("performShortcut", new Class[] {int.class, KeyEvent.class, int.class}); - mRemoveGroup = cMenuBuilder.getMethod("removeGroup", new Class[] {int.class}); - mRemoveItem = cMenuBuilder.getMethod("removeItem", new Class[] {int.class}); - mSetGroupCheckable = cMenuBuilder.getMethod("setGroupCheckable", new Class[] {int.class, boolean.class, boolean.class}); - mSetGroupEnabled = cMenuBuilder.getMethod("setGroupEnabled", new Class[] {int.class, boolean.class}); - mSetGroupVisible = cMenuBuilder.getMethod("setGroupVisible", new Class[] {int.class, boolean.class}); - mSetQwertyMode = cMenuBuilder.getMethod("setQwertyMode", new Class[] {boolean.class}); - mSize = cMenuBuilder.getMethod("size", new Class[0]); - mClearHeader = cMenuBuilder.getMethod("clearHeader", new Class[0]); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static MenuBuilder createInstance(Context context) { - MenuBuilder result = null; - try { - result = (MenuBuilder) mConstructor.newInstance(new Object[] { context }); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static void setCallback(MenuBuilder menuBuilder, MenuBuilder.Callback cb) { - try { - mSetCallback.invoke(menuBuilder, cb); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void addMenuPresenter(MenuBuilder menuBuilder, MenuPresenter presenter) { - try { - mAddMenuPresenter.invoke(menuBuilder, presenter); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static MenuBuilder setHeaderIconInt(MenuBuilder menuBuilder, Drawable icon) { - MenuBuilder result = null; - try { - result = (MenuBuilder)(mSetHeaderIconIntDrawable.invoke(menuBuilder, icon)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static MenuBuilder setHeaderIconInt(MenuBuilder menuBuilder, int iconRes) { - MenuBuilder result = null; - try { - result = (MenuBuilder)(mSetHeaderIconIntInt.invoke(menuBuilder, iconRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static MenuBuilder setHeaderTitleInt(MenuBuilder menuBuilder, CharSequence title) { - MenuBuilder result = null; - try { - result = (MenuBuilder)(mSetHeaderTitleIntCharSequence.invoke(menuBuilder, title)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static MenuBuilder setHeaderTitleInt(MenuBuilder menuBuilder, int titleRes) { - MenuBuilder result = null; - try { - result = (MenuBuilder)(mSetHeaderTitleIntInt.invoke(menuBuilder, titleRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static MenuBuilder setHeaderViewInt(MenuBuilder menuBuilder, View view) { - MenuBuilder result = null; - try { - result = (MenuBuilder)(mSetHeaderViewInt.invoke(menuBuilder, view)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static Drawable getHeaderIcon(MenuBuilder menuBuilder) { - Drawable icon = null; - try { - icon = (Drawable)(mGetHeaderIcon.invoke(menuBuilder)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return icon; - } - - public static CharSequence getHeaderTitle(MenuBuilder menuBuilder) { - CharSequence title = null; - try { - title = (CharSequence)(mGetHeaderTitle.invoke(menuBuilder)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return title; - } - - public static View getHeaderView(MenuBuilder menuBuilder) { - View view = null; - try { - view = (View)(mGetHeaderView.invoke(menuBuilder)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return view; - } - - public static ArrayList getVisibleItems(MenuBuilder menuBuilder) { - ArrayList mVisibleItems = null; - try { - Object obj = (mGetVisibleItems.invoke(menuBuilder)); - if (obj instanceof ArrayList) { - ArrayList al = (ArrayList) obj; - mVisibleItems = new ArrayList(); - if (al.size() > 0) { - for (int i = 0; i < al.size(); i++) { - Object o = al.get(i); - if (o instanceof MenuItemImpl) { - mVisibleItems.add((MenuItemImpl) o); - } - } - } - } - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return mVisibleItems; - } - - public static Context getContext(MenuBuilder menuBuilder) { - Context context = null; - try { - context = (Context)(mGetContext.invoke(menuBuilder)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return context; - } - - public static MenuItem add(MenuBuilder menuBuilder, CharSequence title) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mAddCharSequence.invoke(menuBuilder, title)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static MenuItem add(MenuBuilder menuBuilder, int titleRes) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mAddInt.invoke(menuBuilder, titleRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static MenuItem add(MenuBuilder menuBuilder, int groupId, int itemId, int order, CharSequence title) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mAddIntIntIntCharSequence.invoke(menuBuilder, groupId, itemId, order, title)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static MenuItem add(MenuBuilder menuBuilder, int groupId, int itemId, int order, int titleRes) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mAddIntIntIntInt.invoke(menuBuilder, groupId, itemId, order,titleRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static int addIntentOptions(MenuBuilder menuBuilder, int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, - Intent intent, int flags, MenuItem[] outSpecificItems) { - int result = 0; - try { - result = ((Integer)(mAddIntentOptions.invoke(menuBuilder, groupId, itemId, order, caller, specifics, intent, flags, outSpecificItems))).intValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static SubMenu addSubMenu(MenuBuilder menuBuilder, CharSequence title) { - SubMenu subMenu = null; - try { - subMenu = (SubMenu)(mAddSubMenuCharSequence.invoke(menuBuilder, title)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return subMenu; - } - - public static SubMenu addSubMenu(MenuBuilder menuBuilder, int titleRes) { - SubMenu subMenu = null; - try { - subMenu = (SubMenu)(mAddSubMenuInt.invoke(menuBuilder, titleRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return subMenu; - } - - public static SubMenu addSubMenu(MenuBuilder menuBuilder, int groupId, int itemId, int order, CharSequence title) { - SubMenu subMenu = null; - try { - subMenu = (SubMenu)(mAddSubMenuIntIntIntCharSequence.invoke(menuBuilder, groupId, itemId, order, title)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return subMenu; - } - - public static SubMenu addSubMenu(MenuBuilder menuBuilder, int groupId, int itemId, int order, int titleRes) { - SubMenu subMenu = null; - try { - subMenu = (SubMenu)(mAddSubMenuIntIntIntInt.invoke(menuBuilder, groupId, itemId, order, titleRes)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return subMenu; - } - - public static void clear(MenuBuilder menuBuilder) { - try { - mClear.invoke(menuBuilder); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void close(MenuBuilder menuBuilder) { - try { - mClose.invoke(menuBuilder); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void close(MenuBuilder menuBuilder, boolean closeAllMenus) { - try { - mCloseBoolean.invoke(menuBuilder, closeAllMenus); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static MenuItem findItem(MenuBuilder menuBuilder, int id) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mFindItem.invoke(menuBuilder, id)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static MenuItem getItem(MenuBuilder menuBuilder, int index) { - MenuItem menuItem = null; - try { - menuItem = (MenuItem)(mGetItem.invoke(menuBuilder, index)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return menuItem; - } - - public static boolean hasVisibleItems(MenuBuilder menuBuilder) { - boolean result = false; - try { - result = ((Boolean)(mHasVisibleItems.invoke(menuBuilder))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static boolean isShortcutKey(MenuBuilder menuBuilder, int keyCode, KeyEvent event) { - boolean result = false; - try { - result = ((Boolean)(mIsShortcutKey.invoke(menuBuilder, keyCode, event))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static boolean performIdentifierAction(MenuBuilder menuBuilder, int id, int flags) { - boolean result = false; - try { - result = ((Boolean)(mPerformIdentifierAction.invoke(menuBuilder, id, flags))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static boolean performItemAction(MenuBuilder menuBuilder, MenuItem item, int flags) { - boolean result = false; - try { - result = ((Boolean)(mPerformItemAction.invoke(menuBuilder, item, flags))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static boolean performShortcut(MenuBuilder menuBuilder, int keyCode, KeyEvent event, int flags) { - boolean result = false; - try { - result = ((Boolean)(mPerformShortcut.invoke(menuBuilder, keyCode, event, flags))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static void removeGroup(MenuBuilder menuBuilder, int groupId) { - try { - mRemoveGroup.invoke(menuBuilder, groupId); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void removeItem(MenuBuilder menuBuilder, int id) { - try { - mRemoveItem.invoke(menuBuilder, id); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void setGroupCheckable(MenuBuilder menuBuilder, int group, boolean checkable, boolean exclusive) { - try { - mSetGroupCheckable.invoke(menuBuilder, group, checkable, exclusive); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void setGroupEnabled(MenuBuilder menuBuilder, int group, boolean enabled) { - try { - mSetGroupEnabled.invoke(menuBuilder, group, enabled); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void setGroupVisible(MenuBuilder menuBuilder, int group, boolean visible) { - try { - mSetGroupVisible.invoke(menuBuilder, group, visible); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static void setQwertyMode(MenuBuilder menuBuilder, boolean isQwerty) { - try { - mSetQwertyMode.invoke(menuBuilder, isQwerty); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - public static int size(MenuBuilder menuBuilder) { - int result = 0; - try { - result = ((Integer)(mSize.invoke(menuBuilder))).intValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return result; - } - - public static void clearHeader(MenuBuilder menuBuilder) { - try { - mClearHeader.invoke(menuBuilder); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - -} diff --git a/app/src/main/java/org/lineageos/eleven/utils/MenuDialogHelper.java b/app/src/main/java/org/lineageos/eleven/utils/MenuDialogHelper.java deleted file mode 100644 index 49e9537..0000000 --- a/app/src/main/java/org/lineageos/eleven/utils/MenuDialogHelper.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.lineageos.eleven.utils; - -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import android.app.Dialog; -import android.content.DialogInterface; -import android.os.IBinder; -import android.view.KeyEvent; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.view.menu.MenuBuilder; -import androidx.appcompat.view.menu.MenuItemImpl; -import androidx.appcompat.view.menu.ListMenuPresenter; -import androidx.appcompat.view.menu.MenuPresenter; - -import org.lineageos.eleven.R; - -/** - * Helper for menus that appear as Dialogs (context and submenus). - */ -class MenuDialogHelper implements DialogInterface.OnKeyListener, - DialogInterface.OnClickListener, - DialogInterface.OnDismissListener, - MenuPresenter.Callback { - private MenuBuilder mMenu; - private AlertDialog mDialog; - ListMenuPresenter mPresenter; - private MenuPresenter.Callback mPresenterCallback; - public MenuDialogHelper(MenuBuilder menu) { - mMenu = menu; - } - /** - * Shows menu as a dialog. - * - * @param windowToken Optional token to assign to the window. - */ - public void show(IBinder windowToken) { - // Many references to mMenu, create local reference - final MenuBuilder menu = mMenu; - // Get the builder for the dialog - final AlertDialog.Builder builder = new AlertDialog.Builder(MenuBuilderHelper.getContext(menu)); - mPresenter = ListMenuPresenterHelper.createInstance(builder.getContext(), - R.layout.abc_list_menu_item_layout); - ListMenuPresenterHelper.setCallback(mPresenter, this); - MenuBuilderHelper.addMenuPresenter(mMenu,mPresenter); - builder.setAdapter(ListMenuPresenterHelper.getAdapter(mPresenter), this); - // Set the title - final View headerView = MenuBuilderHelper.getHeaderView(menu); - if (headerView != null) { - // Menu's client has given a custom header view, use it - builder.setCustomTitle(headerView); - } else { - // Otherwise use the (text) title and icon - builder.setIcon(MenuBuilderHelper.getHeaderIcon(menu)).setTitle(MenuBuilderHelper.getHeaderTitle(menu)); - } - // Set the key listener - builder.setOnKeyListener(this); - // Show the menu - mDialog = builder.create(); - mDialog.setOnDismissListener(this); - WindowManager.LayoutParams lp = mDialog.getWindow().getAttributes(); - lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG; - if (windowToken != null) { - lp.token = windowToken; - } - lp.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; - mDialog.show(); - } - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_BACK) { - if (event.getAction() == KeyEvent.ACTION_DOWN - && event.getRepeatCount() == 0) { - Window win = mDialog.getWindow(); - if (win != null) { - View decor = win.getDecorView(); - if (decor != null) { - KeyEvent.DispatcherState ds = decor.getKeyDispatcherState(); - if (ds != null) { - ds.startTracking(event, this); - return true; - } - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP && !event.isCanceled()) { - Window win = mDialog.getWindow(); - if (win != null) { - View decor = win.getDecorView(); - if (decor != null) { - KeyEvent.DispatcherState ds = decor.getKeyDispatcherState(); - if (ds != null && ds.isTracking(event)) { - MenuBuilderHelper.close(mMenu,true); - dialog.dismiss(); - return true; - } - } - } - } - } - // Menu shortcut matching - return MenuBuilderHelper.performShortcut(mMenu, keyCode, event, 0); - } - public void setPresenterCallback(MenuPresenter.Callback cb) { - mPresenterCallback = cb; - } - /** - * Dismisses the menu's dialog. - * - * @see Dialog#dismiss() - */ - public void dismiss() { - if (mDialog != null) { - mDialog.dismiss(); - } - } - @Override - public void onDismiss(DialogInterface dialog) { - ListMenuPresenterHelper.onCloseMenu(mPresenter, mMenu, true); - } - @Override - public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { - if (allMenusAreClosing || menu == mMenu) { - dismiss(); - } - if (mPresenterCallback != null) { - mPresenterCallback.onCloseMenu(menu, allMenusAreClosing); - } - } - @Override - public boolean onOpenSubMenu(MenuBuilder subMenu) { - if (mPresenterCallback != null) { - return mPresenterCallback.onOpenSubMenu(subMenu); - } - return false; - } - public void onClick(DialogInterface dialog, int which) { - MenuBuilderHelper.performItemAction(mMenu,(MenuItemImpl) ListMenuPresenterHelper.getAdapter(mPresenter).getItem(which), 0); - } -} \ No newline at end of file diff --git a/app/src/main/java/org/lineageos/eleven/utils/MusicUtils.java b/app/src/main/java/org/lineageos/eleven/utils/MusicUtils.java index 3cc52e1..fb4ca3d 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/MusicUtils.java +++ b/app/src/main/java/org/lineageos/eleven/utils/MusicUtils.java @@ -1,18 +1,23 @@ /* * Copyright (C) 2012 Andrew Neal * Copyright (C) 2014 The CyanogenMod Project - * Licensed under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. + * Copyright (C) 2019 The LineageOS Project + * Copyright (C) 2019 SHIFT GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.lineageos.eleven.utils; - import android.app.Activity; import android.content.ComponentName; import android.content.ContentResolver; @@ -24,7 +29,6 @@ import android.content.ServiceConnection; import android.database.Cursor; import android.net.Uri; -import android.os.AsyncTask; import android.os.Build; import android.os.IBinder; import android.os.RemoteException; @@ -41,6 +45,7 @@ import android.util.Log; import android.view.Menu; import android.widget.Toast; +import androidx.annotation.WorkerThread; import org.lineageos.eleven.Config.IdType; import org.lineageos.eleven.Config.SmartPlaylistType; @@ -55,18 +60,19 @@ import org.lineageos.eleven.loaders.TopTracksLoader; import org.lineageos.eleven.locale.LocaleUtils; import org.lineageos.eleven.menu.FragmentMenuItems; -import org.lineageos.eleven.model.Album; import org.lineageos.eleven.model.AlbumArtistDetails; -import org.lineageos.eleven.model.Artist; -import org.lineageos.eleven.model.Song; import org.lineageos.eleven.provider.RecentStore; import org.lineageos.eleven.provider.SongPlayCount; import org.lineageos.eleven.service.MusicPlaybackTrack; import java.io.File; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; +import java.util.List; import java.util.WeakHashMap; /** @@ -75,6 +81,7 @@ * @author Andrew Neal (andrewdneal@gmail.com) */ public final class MusicUtils { + public static final String TAG = MusicUtils.class.getSimpleName(); public static IElevenService mService = null; @@ -93,7 +100,7 @@ public final class MusicUtils { public static final long UPDATE_FREQUENCY_FAST_MS = 30; static { - mConnectionMap = new WeakHashMap(); + mConnectionMap = new WeakHashMap<>(); sEmptyList = new long[0]; } @@ -106,7 +113,7 @@ public MusicUtils() { * @param callback The {@link ServiceConnection} to use * @return The new instance of {@link ServiceToken} */ - public static final ServiceToken bindToService(final Context context, + public static ServiceToken bindToService(final Context context, final ServiceConnection callback) { Activity realActivity = ((Activity)context).getParent(); if (realActivity == null) { @@ -183,7 +190,7 @@ public ServiceToken(final ContextWrapper context) { } } - public static final boolean isPlaybackServiceConnected() { + public static boolean isPlaybackServiceConnected() { return mService != null; } @@ -197,7 +204,7 @@ public static final boolean isPlaybackServiceConnected() { * @return A {@link String} used as a label for the number of artists, * albums, songs, genres, and playlists. */ - public static final String makeLabel(final Context context, final int pluralInt, + public static String makeLabel(final Context context, final int pluralInt, final int number) { return context.getResources().getQuantityString(pluralInt, number, number); } @@ -209,7 +216,7 @@ public static final String makeLabel(final Context context, final int pluralInt, * @param secs The track in seconds. * @return Duration of a track that's properly formatted. */ - public static final String makeShortTimeString(final Context context, long secs) { + public static String makeShortTimeString(final Context context, long secs) { long hours, mins; hours = secs / 3600; @@ -229,7 +236,7 @@ public static final String makeShortTimeString(final Context context, long secs) * @param secs The duration seconds. * @return Duration properly formatted in #h #m format */ - public static final String makeLongTimeString(final Context context, long secs) { + public static String makeLongTimeString(final Context context, long secs) { long hours, mins; hours = secs / 3600; @@ -257,7 +264,7 @@ public static final String makeLongTimeString(final Context context, long secs) * @param second string to combine * @return the combined string */ - public static final String makeCombinedString(final Context context, final String first, + public static String makeCombinedString(final Context context, final String first, final String second) { final String formatter = context.getResources().getString(R.string.combine_two_strings); return String.format(formatter, first, second); @@ -271,7 +278,8 @@ public static void next() { if (mService != null) { mService.next(); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "next()", exc); } } @@ -283,7 +291,8 @@ public static void setShakeToPlayEnabled(final boolean enabled) { if (mService != null) { mService.setShakeToPlayEnabled(enabled); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "setShakeToPlayEnabled(" + enabled + ")", exc); } } @@ -295,7 +304,8 @@ public static void setShowAlbumArtOnLockscreen(final boolean enabled) { if (mService != null) { mService.setLockscreenAlbumArt(enabled); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "setLockscreenAlbumArt(" + enabled + ")", exc); } } @@ -313,10 +323,10 @@ public static void asyncNext(final Context context) { * * @NOTE The AIDL isn't used here in order to properly use the previous * action. When the user is shuffling, because {@link - * MusicPlaybackService.#openCurrentAndNext()} is used, the user won't + * MusicPlaybackService#openCurrentAndNext()} is used, the user won't * be able to travel to the previously skipped track. To remedy this, - * {@link MusicPlaybackService.#openCurrent()} is called in {@link - * MusicPlaybackService.#prev()}. {@code #startService(Intent intent)} + * {@link MusicPlaybackService#openCurrent()} is called in {@link + * MusicPlaybackService#prev(boolean)}. {@code #startService(Intent intent)} * is called here to specifically invoke the onStartCommand used by * {@link MusicPlaybackService}, which states if the current position * less than 2000 ms, start the track over, otherwise move to the @@ -344,7 +354,8 @@ public static void playOrPause() { mService.play(); } } - } catch (final Exception ignored) { + } catch (final Exception exc) { + Log.e(TAG, "playOrPause()", exc); } } @@ -369,7 +380,8 @@ public static void cycleRepeat() { break; } } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "cycleRepeat()", exc); } } @@ -396,18 +408,20 @@ public static void cycleShuffle() { break; } } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "cycleShuffle()", exc); } } /** * @return True if we're playing music, false otherwise. */ - public static final boolean isPlaying() { + public static boolean isPlaying() { if (mService != null) { try { return mService.isPlaying(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "isPlaying()", exc); } } return false; @@ -416,11 +430,12 @@ public static final boolean isPlaying() { /** * @return The current shuffle mode. */ - public static final int getShuffleMode() { + public static int getShuffleMode() { if (mService != null) { try { return mService.getShuffleMode(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getShuffleMode()", exc); } } return 0; @@ -429,11 +444,12 @@ public static final int getShuffleMode() { /** * @return The current repeat mode. */ - public static final int getRepeatMode() { + public static int getRepeatMode() { if (mService != null) { try { return mService.getRepeatMode(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getRepeatMode()", exc); } } return 0; @@ -442,11 +458,12 @@ public static final int getRepeatMode() { /** * @return The current track name. */ - public static final String getTrackName() { + public static String getTrackName() { if (mService != null) { try { return mService.getTrackName(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getTrackName()", exc); } } return null; @@ -455,11 +472,12 @@ public static final String getTrackName() { /** * @return The current artist name. */ - public static final String getArtistName() { + public static String getArtistName() { if (mService != null) { try { return mService.getArtistName(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getArtistName()", exc); } } return null; @@ -468,11 +486,12 @@ public static final String getArtistName() { /** * @return The current album name. */ - public static final String getAlbumName() { + public static String getAlbumName() { if (mService != null) { try { return mService.getAlbumName(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getAlbumName()", exc); } } return null; @@ -481,11 +500,12 @@ public static final String getAlbumName() { /** * @return The current album Id. */ - public static final long getCurrentAlbumId() { + public static long getCurrentAlbumId() { if (mService != null) { try { return mService.getAlbumId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getCurrentAlbumId()", exc); } } return -1; @@ -494,11 +514,12 @@ public static final long getCurrentAlbumId() { /** * @return The current song Id. */ - public static final long getCurrentAudioId() { + public static long getCurrentAudioId() { if (mService != null) { try { return mService.getAudioId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getCurrentAudioId()", exc); } } return -1; @@ -507,11 +528,12 @@ public static final long getCurrentAudioId() { /** * @return The current Music Playback Track */ - public static final MusicPlaybackTrack getCurrentTrack() { + public static MusicPlaybackTrack getCurrentTrack() { if (mService != null) { try { return mService.getCurrentTrack(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getCurrentTrack()", exc); } } return null; @@ -520,11 +542,12 @@ public static final MusicPlaybackTrack getCurrentTrack() { /** * @return The Music Playback Track at the specified index */ - public static final MusicPlaybackTrack getTrack(int index) { + public static MusicPlaybackTrack getTrack(int index) { if (mService != null) { try { return mService.getTrack(index); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getTrack(" + index + ")", exc); } } return null; @@ -533,11 +556,12 @@ public static final MusicPlaybackTrack getTrack(int index) { /** * @return The next song Id. */ - public static final long getNextAudioId() { + public static long getNextAudioId() { if (mService != null) { try { return mService.getNextAudioId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getNextAudioId()", exc); } } return -1; @@ -546,11 +570,12 @@ public static final long getNextAudioId() { /** * @return The previous song Id. */ - public static final long getPreviousAudioId() { + public static long getPreviousAudioId() { if (mService != null) { try { return mService.getPreviousAudioId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getPreviousAudioId()", exc); } } return -1; @@ -559,11 +584,12 @@ public static final long getPreviousAudioId() { /** * @return The current artist Id. */ - public static final long getCurrentArtistId() { + public static long getCurrentArtistId() { if (mService != null) { try { return mService.getArtistId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getArtistId()", exc); } } return -1; @@ -572,11 +598,12 @@ public static final long getCurrentArtistId() { /** * @return The audio session Id. */ - public static final int getAudioSessionId() { + public static int getAudioSessionId() { if (mService != null) { try { return mService.getAudioSessionId(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getAudioSessionId()", exc); } } return -1; @@ -585,28 +612,27 @@ public static final int getAudioSessionId() { /** * @return The queue. */ - public static final long[] getQueue() { + public static long[] getQueue() { try { if (mService != null) { return mService.getQueue(); - } else { } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueue()", exc); } return sEmptyList; } /** - * @param position * @return the id of the track in the queue at the given position */ - public static final long getQueueItemAtPosition(int position) { + public static long getQueueItemAtPosition(int position) { try { if (mService != null) { return mService.getQueueItemAtPosition(position); - } else { } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueueItemAtPosition(" + position + ")", exc); } return -1; } @@ -614,13 +640,13 @@ public static final long getQueueItemAtPosition(int position) { /** * @return the current queue size */ - public static final int getQueueSize() { + public static int getQueueSize() { try { if (mService != null) { return mService.getQueueSize(); - } else { } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueueSize()", exc); } return 0; } @@ -628,12 +654,13 @@ public static final int getQueueSize() { /** * @return The position of the current track in the queue. */ - public static final int getQueuePosition() { + public static int getQueuePosition() { try { if (mService != null) { return mService.getQueuePosition(); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueuePosition()", exc); } return 0; } @@ -641,11 +668,12 @@ public static final int getQueuePosition() { /** * @return The queue history size */ - public static final int getQueueHistorySize() { + public static int getQueueHistorySize() { if (mService != null) { try { return mService.getQueueHistorySize(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueueHistorySize()", exc); } } return 0; @@ -654,11 +682,12 @@ public static final int getQueueHistorySize() { /** * @return The queue history position at the position */ - public static final int getQueueHistoryPosition(int position) { + public static int getQueueHistoryPosition(int position) { if (mService != null) { try { return mService.getQueueHistoryPosition(position); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueueHistoryPosition(" + position + ")", exc); } } return -1; @@ -667,11 +696,12 @@ public static final int getQueueHistoryPosition(int position) { /** * @return The queue history */ - public static final int[] getQueueHistoryList() { + public static int[] getQueueHistoryList() { if (mService != null) { try { return mService.getQueueHistoryList(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getQueueHistoryList()", exc); } } return null; @@ -681,12 +711,13 @@ public static final int[] getQueueHistoryList() { * @param id The ID of the track to remove. * @return removes track from a playlist or the queue. */ - public static final int removeTrack(final long id) { + public static int removeTrack(final long id) { try { if (mService != null) { return mService.removeTrack(id); } - } catch (final RemoteException ingored) { + } catch (final RemoteException exc) { + Log.e(TAG, "removeTrack(" + id + ")", exc); } return 0; } @@ -699,12 +730,13 @@ public static final int removeTrack(final long id) { * * @return true if successful, false otherwise */ - public static final boolean removeTrackAtPosition(final long id, final int position) { + public static boolean removeTrackAtPosition(final long id, final int position) { try { if (mService != null) { return mService.removeTrackAtPosition(id, position); } - } catch (final RemoteException ingored) { + } catch (final RemoteException exc) { + Log.e(TAG, "removeTrackAtPosition(" + id + ", " + position + ")", exc); } return false; } @@ -713,7 +745,7 @@ public static final boolean removeTrackAtPosition(final long id, final int posit * @param cursor The {@link Cursor} used to perform our query. * @return The song list for a MIME type. */ - public static final long[] getSongListForCursor(Cursor cursor) { + public static long[] getSongListForCursor(Cursor cursor) { if (cursor == null) { return sEmptyList; } @@ -726,12 +758,14 @@ public static final long[] getSongListForCursor(Cursor cursor) { } catch (final IllegalArgumentException notaplaylist) { columnIndex = cursor.getColumnIndexOrThrow(BaseColumns._ID); } - for (int i = 0; i < len; i++) { - list[i] = cursor.getLong(columnIndex); - cursor.moveToNext(); + try { + for (int i = 0; i < len; i++) { + list[i] = cursor.getLong(columnIndex); + cursor.moveToNext(); + } + } finally { + cursor.close(); } - cursor.close(); - cursor = null; return list; } @@ -740,20 +774,25 @@ public static final long[] getSongListForCursor(Cursor cursor) { * @param id The ID of the artist. * @return The song list for an artist. */ - public static final long[] getSongListForArtist(final Context context, final long id) { + public static long[] getSongListForArtist(final Context context, final long id) { final String[] projection = new String[] { BaseColumns._ID }; final String selection = AudioColumns.ARTIST_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC + "=1"; - Cursor cursor = context.getContentResolver().query( + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, AudioColumns.ALBUM_KEY + "," + AudioColumns.TRACK); - if (cursor != null) { - final long[] mList = getSongListForCursor(cursor); - cursor.close(); - cursor = null; - return mList; + if (cursor != null) { + return getSongListForCursor(cursor); + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return sEmptyList; } @@ -763,20 +802,25 @@ public static final long[] getSongListForArtist(final Context context, final lon * @param id The ID of the album. * @return The song list for an album. */ - public static final long[] getSongListForAlbum(final Context context, final long id) { + public static long[] getSongListForAlbum(final Context context, final long id) { final String[] projection = new String[] { BaseColumns._ID }; final String selection = AudioColumns.ALBUM_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC + "=1"; - Cursor cursor = context.getContentResolver().query( - MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, - AudioColumns.TRACK + ", " + MediaStore.Audio.Media.DEFAULT_SORT_ORDER); - if (cursor != null) { - final long[] mList = getSongListForCursor(cursor); - cursor.close(); - cursor = null; - return mList; + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, + AudioColumns.TRACK + ", " + MediaStore.Audio.Media.DEFAULT_SORT_ORDER); + if (cursor != null) { + return getSongListForCursor(cursor); + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return sEmptyList; } @@ -800,20 +844,25 @@ public static void playArtist(final Context context, final long artistId, int po * @param id The ID of the genre. * @return The song list for an genre. */ - public static final long[] getSongListForGenre(final Context context, final long id) { + public static long[] getSongListForGenre(final Context context, final long id) { final String[] projection = new String[] { BaseColumns._ID }; String selection = (AudioColumns.IS_MUSIC + "=1") + " AND " + MediaColumns.TITLE + "!=''"; - final Uri uri = MediaStore.Audio.Genres.Members.getContentUri("external", Long.valueOf(id)); - Cursor cursor = context.getContentResolver().query(uri, projection, selection, + final Uri uri = MediaStore.Audio.Genres.Members.getContentUri("external", id); + Cursor cursor = null; + try { + cursor = context.getContentResolver().query(uri, projection, selection, null, null); - if (cursor != null) { - final long[] mList = getSongListForCursor(cursor); - cursor.close(); - cursor = null; - return mList; + if (cursor != null) { + return getSongListForCursor(cursor); + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return sEmptyList; } @@ -841,7 +890,8 @@ public static void playFile(final Context context, final Uri uri) { mService.stop(); mService.openFile(filename); mService.play(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "playFile(" + uri + ")", exc); } } @@ -866,7 +916,8 @@ public static void playAll(final Context context, final long[] list, int positio } mService.open(list, forceShuffle ? -1 : position, sourceId, sourceType.mId); mService.play(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "playAll(...)", exc); } } @@ -879,7 +930,8 @@ public static void playNext(final long[] list, final long sourceId, final IdType } try { mService.enqueue(list, MusicPlaybackService.NEXT, sourceId, sourceType.mId); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "playNext(" + Arrays.asList(list) + ", " + sourceId + ", " + sourceType + ")", exc); } } @@ -887,17 +939,28 @@ public static void playNext(final long[] list, final long sourceId, final IdType * @param context The {@link Context} to use. */ public static void shuffleAll(final Context context) { - Cursor cursor = SongLoader.makeSongCursor(context, null); - final long[] mTrackList = getSongListForCursor(cursor); + long[] mTrackListTmp; + Cursor cursor = null; + try { + cursor = SongLoader.makeSongCursor(context, null); + mTrackListTmp = getSongListForCursor(cursor); + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } + } + + final long[] mTrackList = mTrackListTmp; if (mTrackList.length == 0 || mService == null) { return; } + try { mService.setShuffleMode(MusicPlaybackService.SHUFFLE_NORMAL); final long mCurrentId = mService.getAudioId(); final int mCurrentQueuePosition = getQueuePosition(); - if (mCurrentQueuePosition == 0 - && mCurrentId == mTrackList[0]) { + if (mCurrentQueuePosition == 0 && mCurrentId == mTrackList[0]) { final long[] mPlaylist = getQueue(); if (Arrays.equals(mTrackList, mPlaylist)) { mService.play(); @@ -906,9 +969,8 @@ public static void shuffleAll(final Context context) { } mService.open(mTrackList, -1, -1, IdType.NA.mId); mService.play(); - cursor.close(); - cursor = null; - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "shuffleAll()", exc); } } @@ -919,39 +981,47 @@ public static void shuffleAll(final Context context) { * @param name The name of the playlist. * @return The ID for a playlist. */ - public static final long getIdForPlaylist(final Context context, final String name) { - Cursor cursor = context.getContentResolver().query( - MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[]{ - BaseColumns._ID - }, PlaylistsColumns.NAME + "=?", new String[]{ - name - }, PlaylistsColumns.NAME); - int id = -1; - if (cursor != null) { - cursor.moveToFirst(); - if (!cursor.isAfterLast()) { - id = cursor.getInt(0); + public static long getIdForPlaylist(final Context context, final String name) { + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + Playlists.EXTERNAL_CONTENT_URI, + new String[]{BaseColumns._ID}, PlaylistsColumns.NAME + "=?", + new String[]{name}, PlaylistsColumns.NAME); + if (cursor != null) { + cursor.moveToFirst(); + if (!cursor.isAfterLast()) { + return cursor.getInt(0); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; } - cursor.close(); - cursor = null; } - return id; + return -1; } /** @param context The {@link Context} to use. * @param id The id of the playlist. * @return The name for a playlist. */ - public static final String getNameForPlaylist(final Context context, final long id) { - Cursor cursor = context.getContentResolver().query( - MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, - new String[] { PlaylistsColumns.NAME }, - BaseColumns._ID + "=?", - new String[] { Long.toString(id) }, - null); - if (cursor != null) { - try { - if(cursor.moveToFirst()) { return cursor.getString(0); } - } finally { cursor.close(); } + public static String getNameForPlaylist(final Context context, final long id) { + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + Playlists.EXTERNAL_CONTENT_URI, new String[]{PlaylistsColumns.NAME}, + BaseColumns._ID + "=?", new String[]{Long.toString(id)}, null); + if (cursor != null) { + if (cursor.moveToFirst()) { + return cursor.getString(0); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } // nothing found return null; @@ -964,23 +1034,25 @@ public static final String getNameForPlaylist(final Context context, final long * @param name The name of the artist. * @return The ID for an artist. */ - public static final long getIdForArtist(final Context context, final String name) { - Cursor cursor = context.getContentResolver().query( - MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI, new String[]{ - BaseColumns._ID - }, ArtistColumns.ARTIST + "=?", new String[]{ - name - }, ArtistColumns.ARTIST); - int id = -1; - if (cursor != null) { - cursor.moveToFirst(); - if (!cursor.isAfterLast()) { - id = cursor.getInt(0); + public static long getIdForArtist(final Context context, final String name) { + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, + ArtistColumns.ARTIST + "=?", new String[]{name}, ArtistColumns.ARTIST); + if (cursor != null) { + cursor.moveToFirst(); + if (!cursor.isAfterLast()) { + return cursor.getInt(0); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; } - cursor.close(); - cursor = null; } - return id; + return -1; } /** @@ -991,24 +1063,28 @@ public static final long getIdForArtist(final Context context, final String name * @param artistName The name of the artist * @return The ID for an album. */ - public static final long getIdForAlbum(final Context context, final String albumName, + public static long getIdForAlbum(final Context context, final String albumName, final String artistName) { - Cursor cursor = context.getContentResolver().query( - MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, new String[] { - BaseColumns._ID - }, AlbumColumns.ALBUM + "=? AND " + AlbumColumns.ARTIST + "=?", new String[] { - albumName, artistName + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, + AlbumColumns.ALBUM + "=? AND " + AlbumColumns.ARTIST + "=?", new String[]{ + albumName, artistName }, AlbumColumns.ALBUM); - int id = -1; - if (cursor != null) { - cursor.moveToFirst(); - if (!cursor.isAfterLast()) { - id = cursor.getInt(0); + if (cursor != null) { + cursor.moveToFirst(); + if (!cursor.isAfterLast()) { + return cursor.getInt(0); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; } - cursor.close(); - cursor = null; } - return id; + return -1; } /** @@ -1025,7 +1101,6 @@ public static void playAlbum(final Context context, final long albumId, int posi } } - /* */ public static void makeInsertItems(final long[] ids, final int offset, int len, final int base) { if (offset + len > ids.length) { len = ids.length - offset; @@ -1048,25 +1123,33 @@ public static void makeInsertItems(final long[] ids, final int offset, int len, * @param name The name of the new playlist. * @return A new playlist ID. */ - public static final long createPlaylist(final Context context, final String name) { + public static long createPlaylist(final Context context, final String name) { if (name != null && name.length() > 0) { final ContentResolver resolver = context.getContentResolver(); final String[] projection = new String[] { PlaylistsColumns.NAME }; final String selection = PlaylistsColumns.NAME + " = '" + name + "'"; - Cursor cursor = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, + Cursor cursor = null; + try { + cursor = resolver.query(Playlists.EXTERNAL_CONTENT_URI, projection, selection, null, null); - if (cursor.getCount() <= 0) { - final ContentValues values = new ContentValues(1); - values.put(PlaylistsColumns.NAME, name); - final Uri uri = resolver.insert(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, - values); - return Long.parseLong(uri.getLastPathSegment()); - } - if (cursor != null) { - cursor.close(); - cursor = null; + if (cursor != null) { + if (cursor.getCount() <= 0) { + final ContentValues values = new ContentValues(1); + values.put(PlaylistsColumns.NAME, name); + final Uri uri = resolver.insert( + Playlists.EXTERNAL_CONTENT_URI, values); + if (uri != null && uri.getLastPathSegment() != null) { + return Long.parseLong(uri.getLastPathSegment()); + } + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return -1; } @@ -1080,7 +1163,6 @@ public static final long createPlaylist(final Context context, final String name public static void clearPlaylist(final Context context, final int playlistId) { final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); context.getContentResolver().delete(uri, null, null); - return; } /** remove all backing data for top tracks playlist */ @@ -1111,12 +1193,11 @@ public static void addToPlaylist(final Context context, final long[] ids, final "max(" + Playlists.Members.PLAY_ORDER + ")", }; final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid); - Cursor cursor = null; - int base = 0; + int base = 0; + Cursor cursor = null; try { cursor = resolver.query(uri, projection, null, null, null); - if (cursor != null && cursor.moveToFirst()) { base = cursor.getInt(0) + 1; } @@ -1134,7 +1215,7 @@ public static void addToPlaylist(final Context context, final long[] ids, final } final String message = context.getResources().getQuantityString( R.plurals.NNNtrackstoplaylist, numinserted, numinserted); - Toast.makeText((Activity)context, message, Toast.LENGTH_SHORT).show(); + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); playlistChanged(); } @@ -1153,7 +1234,7 @@ public static void removeFromPlaylist(final Context context, final long id, }); final String message = context.getResources().getQuantityString( R.plurals.NNNtracksfromplaylist, 1, 1); - Toast.makeText((Activity)context, message, Toast.LENGTH_SHORT).show(); + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); playlistChanged(); } @@ -1170,7 +1251,8 @@ public static void addToQueue(final Context context, final long[] list, long sou mService.enqueue(list, MusicPlaybackService.LAST, sourceId, sourceType.mId); final String message = makeLabel(context, R.plurals.NNNtrackstoqueue, list.length); Toast.makeText((Activity) context, message, Toast.LENGTH_SHORT).show(); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "addToQueue(...)", exc); } } @@ -1186,7 +1268,7 @@ public static void setRingtone(final Context context, final long id) { values.put(AudioColumns.IS_RINGTONE, "1"); values.put(AudioColumns.IS_ALARM, "1"); resolver.update(uri, values, null, null); - } catch (final UnsupportedOperationException ingored) { + } catch (final UnsupportedOperationException ignored) { return; } @@ -1195,9 +1277,10 @@ public static void setRingtone(final Context context, final long id) { }; final String selection = BaseColumns._ID + "=" + id; - Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, - selection, null, null); + Cursor cursor = null; try { + cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, + selection, null, null); if (cursor != null && cursor.getCount() == 1) { cursor.moveToFirst(); // Check since M whether has the write settings permission or not. @@ -1230,22 +1313,28 @@ public static void setRingtone(final Context context, final long id) { * @param id The id of the album. * @return The song count for an album. */ - public static final int getSongCountForAlbumInt(final Context context, final long id) { + public static int getSongCountForAlbumInt(final Context context, final long id) { int songCount = 0; if (id == -1) { return songCount; } Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, id); - Cursor cursor = context.getContentResolver().query(uri, - new String[] { AlbumColumns.NUMBER_OF_SONGS }, null, null, null); - if (cursor != null) { - cursor.moveToFirst(); - if (!cursor.isAfterLast()) { - if(!cursor.isNull(0)) { - songCount = cursor.getInt(0); + Cursor cursor = null; + try { + cursor = context.getContentResolver().query(uri, + new String[]{AlbumColumns.NUMBER_OF_SONGS}, null, null, null); + if (cursor != null) { + cursor.moveToFirst(); + if (!cursor.isAfterLast()) { + if (!cursor.isNull(0)) { + songCount = cursor.getInt(0); + } } } - cursor.close(); - cursor = null; + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return songCount; @@ -1257,29 +1346,33 @@ public static final int getSongCountForAlbumInt(final Context context, final lon * @param playlistId the id of the playlist * @return the # of songs in the playlist */ - public static final int getSongCountForPlaylist(final Context context, final long playlistId) { - Cursor c = context.getContentResolver().query( - MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId), + public static int getSongCountForPlaylist(final Context context, final long playlistId) { + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + Playlists.Members.getContentUri("external", playlistId), new String[]{BaseColumns._ID}, MusicUtils.MUSIC_ONLY_SELECTION, null, null); - - if (c != null) { - int count = 0; - if (c.moveToFirst()) { - count = c.getCount(); + if (cursor != null) { + int count = 0; + if (cursor.moveToFirst()) { + count = cursor.getCount(); + } + return count; + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; } - c.close(); - c = null; - return count; } - return 0; } - public static final AlbumArtistDetails getAlbumArtDetails(final Context context, final long trackId) { + public static AlbumArtistDetails getAlbumArtDetails(final Context context, final long trackId) { String selection = (AudioColumns.IS_MUSIC + "=1") + " AND " + BaseColumns._ID + " = '" + trackId + "'"; - Cursor cursor = context.getContentResolver().query( + final Cursor cursor = context.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { /* 0 */ @@ -1291,19 +1384,24 @@ public static final AlbumArtistDetails getAlbumArtDetails(final Context context, }, selection, null, null ); - if (!cursor.moveToFirst()) { - cursor.close(); + if (cursor == null) { return null; } - AlbumArtistDetails result = new AlbumArtistDetails(); - result.mAudioId = trackId; - result.mAlbumId = cursor.getLong(0); - result.mAlbumName = cursor.getString(1); - result.mArtistName = cursor.getString(2); - cursor.close(); + try { + if (!cursor.moveToFirst()) { + return null; + } - return result; + final AlbumArtistDetails result = new AlbumArtistDetails(); + result.mAudioId = trackId; + result.mAlbumId = cursor.getLong(0); + result.mAlbumName = cursor.getString(1); + result.mArtistName = cursor.getString(2); + return result; + } finally { + cursor.close(); + } } /** @@ -1311,22 +1409,28 @@ public static final AlbumArtistDetails getAlbumArtDetails(final Context context, * @param id The id of the album. * @return The release date for an album. */ - public static final String getReleaseDateForAlbum(final Context context, final long id) { + public static String getReleaseDateForAlbum(final Context context, final long id) { if (id == -1) { return null; } Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, id); - Cursor cursor = context.getContentResolver().query(uri, new String[] { - AlbumColumns.FIRST_YEAR - }, null, null, null); String releaseDate = null; - if (cursor != null) { - cursor.moveToFirst(); - if (!cursor.isAfterLast()) { - releaseDate = cursor.getString(0); + Cursor cursor = null; + try { + cursor = context.getContentResolver().query(uri, new String[] { + AlbumColumns.FIRST_YEAR + }, null, null, null); + if (cursor != null) { + cursor.moveToFirst(); + if (!cursor.isAfterLast()) { + releaseDate = cursor.getString(0); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; } - cursor.close(); - cursor = null; } return releaseDate; } @@ -1334,12 +1438,13 @@ public static final String getReleaseDateForAlbum(final Context context, final l /** * @return The path to the currently playing file as {@link String} */ - public static final String getFilePath() { + public static String getFilePath() { try { if (mService != null) { return mService.getPath(); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "getFilePath()", exc); } return null; } @@ -1352,9 +1457,9 @@ public static void moveQueueItem(final int from, final int to) { try { if (mService != null) { mService.moveQueueItem(from, to); - } else { } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "moveQueueItem(" + from + ", " + to + ")", exc); } } @@ -1363,14 +1468,18 @@ public static void moveQueueItem(final int from, final int to) { * @param playlistId The playlist Id * @return The track list for a playlist */ - public static final long[] getSongListForPlaylist(final Context context, final long playlistId) { - Cursor cursor = PlaylistSongLoader.makePlaylistSongCursor(context, playlistId); - - if (cursor != null) { - final long[] list = getSongListForCursor(cursor); - cursor.close(); - cursor = null; - return list; + public static long[] getSongListForPlaylist(final Context context, final long playlistId) { + Cursor cursor = null; + try { + cursor = PlaylistSongLoader.makePlaylistSongCursor(context, playlistId); + if (cursor != null) { + return getSongListForCursor(cursor); + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } } return sEmptyList; } @@ -1393,7 +1502,7 @@ public static void playPlaylist(final Context context, final long playlistId, bo * @param type The Smart Playlist Type * @return The song list for the last added playlist */ - public static final long[] getSongListForSmartPlaylist(final Context context, + public static long[] getSongListForSmartPlaylist(final Context context, final SmartPlaylistType type) { Cursor cursor = null; try { @@ -1412,7 +1521,6 @@ public static final long[] getSongListForSmartPlaylist(final Context context, } finally { if (cursor != null) { cursor.close(); - cursor = null; } } } @@ -1430,7 +1538,40 @@ public static void playSmartPlaylist(final Context context, final int position, } /** - * Creates a sub menu used to add items to a new playlist or an existsing + * Creates a map used to add items to a new playlist or an existing one. + * + * @param context The {@link Context} to use. + */ + public static List makePlaylist(final Context context) { + final List menuItemMap = new ArrayList<>(); + menuItemMap.add(context.getString(R.string.new_playlist)); + + Cursor cursor = null; + try { + cursor = PlaylistLoader.makePlaylistCursor(context); + if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) { + while (!cursor.isAfterLast()) { + final String name = cursor.getString(1); + if (name != null) { + menuItemMap.add(name); + } + cursor.moveToNext(); + } + } + } finally { + if (cursor != null) { + cursor.close(); + cursor = null; + } + } + + // sort the list but ignore case + Collections.sort(menuItemMap, new IgnoreCaseComparator()); + return menuItemMap; + } + + /** + * Creates a sub menu used to add items to a new playlist or an existing * one. * * @param context The {@link Context} to use. @@ -1438,25 +1579,15 @@ public static void playSmartPlaylist(final Context context, final int position, * @param menu The {@link Menu} to add to. */ public static void makePlaylistMenu(final Context context, final int groupId, - final Menu menu) { + final Menu menu) { menu.clear(); - menu.add(groupId, FragmentMenuItems.NEW_PLAYLIST, Menu.NONE, R.string.new_playlist); - Cursor cursor = PlaylistLoader.makePlaylistCursor(context); - if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) { - while (!cursor.isAfterLast()) { - final Intent intent = new Intent(); - String name = cursor.getString(1); - if (name != null) { - intent.putExtra("playlist", getIdForPlaylist(context, name)); - menu.add(groupId, FragmentMenuItems.PLAYLIST_SELECTED, Menu.NONE, - name).setIntent(intent); - } - cursor.moveToNext(); - } - } - if (cursor != null) { - cursor.close(); - cursor = null; + + final List menuItemList = makePlaylist(context); + for (final String name : menuItemList) { + final Intent intent = new Intent(); + intent.putExtra("playlist", getIdForPlaylist(context, name)); + menu.add(groupId, FragmentMenuItems.PLAYLIST_SELECTED, Menu.NONE, name) + .setIntent(intent); } } @@ -1468,7 +1599,8 @@ public static void refresh() { if (mService != null) { mService.refresh(); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "refresh()", exc); } } @@ -1480,7 +1612,8 @@ public static void playlistChanged() { if (mService != null) { mService.playlistChanged(); } - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "playlistChanged()", exc); } } @@ -1493,7 +1626,8 @@ public static void seek(final long position) { if (mService != null) { try { mService.seek(position); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "seek(" + position + ")", exc); } } } @@ -1508,11 +1642,10 @@ public static void seekRelative(final long deltaInMs) { if (mService != null) { try { mService.seekRelative(deltaInMs); - } catch (final RemoteException ignored) { - } catch (final IllegalStateException ignored) { - // Illegal State Exception message is empty so logging will actually throw an - // exception. We should come back and figure out why we get an exception in the - // first place and make sure we understand it completely. + } catch (final RemoteException exc) { + Log.e(TAG, "seekRelative(" + deltaInMs + ")", exc); + } catch (final IllegalStateException exc) { + Log.e(TAG, "seekRelative(" + deltaInMs + ")", exc); } } } @@ -1520,15 +1653,14 @@ public static void seekRelative(final long deltaInMs) { /** * @return The current position time of the track */ - public static final long position() { + public static long position() { if (mService != null) { try { return mService.position(); - } catch (final RemoteException ignored) { - } catch (final IllegalStateException ex) { - // Illegal State Exception message is empty so logging will actually throw an - // exception. We should come back and figure out why we get an exception in the - // first place and make sure we understand it completely. + } catch (final RemoteException exc) { + Log.e(TAG, "position()", exc); + } catch (final IllegalStateException exc) { + Log.e(TAG, "position()", exc); } } return 0; @@ -1537,15 +1669,14 @@ public static final long position() { /** * @return The total length of the current track */ - public static final long duration() { + public static long duration() { if (mService != null) { try { return mService.duration(); - } catch (final RemoteException ignored) { - } catch (final IllegalStateException ignored) { - // Illegal State Exception message is empty so logging will actually throw an - // exception. We should come back and figure out why we get an exception in the - // first place and make sure we understand it completely. + } catch (final RemoteException exc) { + Log.e(TAG, "duration()", exc); + } catch (final IllegalStateException exc) { + Log.e(TAG, "duration()", exc); } } return 0; @@ -1558,18 +1689,20 @@ public static void setQueuePosition(final int position) { if (mService != null) { try { mService.setQueuePosition(position); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "setQueuePosition(" + position + ")", exc); } } } /** - * Clears the qeueue + * Clears the queue */ public static void clearQueue() { try { mService.removeTracks(0, Integer.MAX_VALUE); - } catch (final RemoteException ignored) { + } catch (final RemoteException exc) { + Log.e(TAG, "clearQueue()", exc); } } @@ -1592,50 +1725,57 @@ public static void deleteTracks(final Context context, final long[] list) { } } selection.append(")"); - final Cursor c = context.getContentResolver().query( + Cursor c = null; + try { + c = context.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection.toString(), null, null); - if (c != null) { - // Step 1: Remove selected tracks from the current playlist, as well - // as from the album art cache - c.moveToFirst(); - while (!c.isAfterLast()) { - // Remove from current playlist - final long id = c.getLong(0); - removeTrack(id); - // Remove the track from the play count - SongPlayCount.getInstance(context).removeItem(id); - // Remove any items in the recents database - RecentStore.getInstance(context).removeItem(id); - c.moveToNext(); - } - - // Step 2: Remove selected tracks from the database - context.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, - selection.toString(), null); - - // Step 3: Remove files from card - c.moveToFirst(); - while (!c.isAfterLast()) { - final String name = c.getString(1); - final File f = new File(name); - try { // File.delete can throw a security exception - if (!f.delete()) { - // I'm not sure if we'd ever get here (deletion would - // have to fail, but no exception thrown) - Log.e("MusicUtils", "Failed to delete file " + name); - } - c.moveToNext(); - } catch (final SecurityException ex) { + if (c != null) { + // Step 1: Remove selected tracks from the current playlist, as well + // as from the album art cache + c.moveToFirst(); + while (!c.isAfterLast()) { + // Remove from current playlist + final long id = c.getLong(0); + removeTrack(id); + // Remove the track from the play count + SongPlayCount.getInstance(context).removeItem(id); + // Remove any items in the recents database + RecentStore.getInstance(context).removeItem(id); c.moveToNext(); } + + // Step 2: Remove selected tracks from the database + context.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, + selection.toString(), null); + + // Step 3: Remove files from card + c.moveToFirst(); + while (!c.isAfterLast()) { + final String name = c.getString(1); + final File f = new File(name); + try { // File.delete can throw a security exception + if (!f.delete()) { + // I'm not sure if we'd ever get here (deletion would + // have to fail, but no exception thrown) + Log.e("MusicUtils", "Failed to delete file " + name); + } + c.moveToNext(); + } catch (final SecurityException ex) { + c.moveToNext(); + } + } + } + } finally { + if (c != null) { + c.close(); + c = null; } - c.close(); } final String message = makeLabel(context, R.plurals.NNNtracksdeleted, list.length); - Toast.makeText((Activity)context, message, Toast.LENGTH_SHORT).show(); + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // We deleted a number of tracks, which could affect any number of // things // in the media content domain, so update everything. @@ -1720,10 +1860,13 @@ public static boolean isBlank(String s) { /** * Removes the header image from the cache. */ + @WorkerThread public static void removeFromCache(Activity activity, String key) { ImageFetcher imageFetcher = ElevenUtils.getImageFetcher(activity); imageFetcher.removeFromCache(key); + // Give the disk cache a little time before requesting a new image. + // TODO: this is bad SystemClock.sleep(80); } @@ -1751,7 +1894,7 @@ public static boolean isSortOrderDesending(String sortOrder) { * @param items collection of items * @return comma-separted list of items */ - public static final String buildCollectionAsString(Collection items) { + public static String buildCollectionAsString(Collection items) { Iterator iterator = items.iterator(); StringBuilder str = new StringBuilder(); if (iterator.hasNext()) { @@ -1764,4 +1907,11 @@ public static final String buildCollectionAsString(Collection items) { return str.toString(); } + + public static class IgnoreCaseComparator implements Comparator { + @Override + public int compare(String s1, String s2) { + return s1.compareToIgnoreCase(s2); + } + } } diff --git a/app/src/main/java/org/lineageos/eleven/utils/NavUtils.java b/app/src/main/java/org/lineageos/eleven/utils/NavUtils.java index 45db610..baba414 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/NavUtils.java +++ b/app/src/main/java/org/lineageos/eleven/utils/NavUtils.java @@ -18,11 +18,9 @@ import android.content.ActivityNotFoundException; import android.content.Intent; import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.media.audiofx.AudioEffect; import android.os.Bundle; import android.provider.MediaStore; -import android.util.Log; import android.widget.Toast; import org.lineageos.eleven.Config; @@ -31,8 +29,6 @@ import org.lineageos.eleven.ui.activities.SearchActivity; import org.lineageos.eleven.ui.activities.SettingsActivity; -import java.util.List; - /** * Various navigation helpers. * diff --git a/app/src/main/java/org/lineageos/eleven/utils/PopupMenuHelper.java b/app/src/main/java/org/lineageos/eleven/utils/PopupMenuHelper.java index d4fd10d..f8308e3 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/PopupMenuHelper.java +++ b/app/src/main/java/org/lineageos/eleven/utils/PopupMenuHelper.java @@ -16,6 +16,7 @@ package org.lineageos.eleven.utils; import android.app.Activity; +import android.content.DialogInterface; import android.graphics.Typeface; import android.os.Build; import android.view.Menu; @@ -23,7 +24,7 @@ import android.view.View; import android.text.Spannable; import android.text.SpannableString; -import androidx.appcompat.view.menu.MenuBuilder; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.PopupMenu; import androidx.fragment.app.FragmentManager; @@ -35,9 +36,7 @@ import org.lineageos.eleven.provider.RecentStore; import org.lineageos.eleven.widgets.Roboto; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; +import java.util.List; import java.util.TreeSet; /** @@ -182,7 +181,7 @@ protected void playAlbum() { * @param menu Menu to use for adding to */ public void createPopupMenu(final Menu menu) { - TreeSet menuItems = new TreeSet(); + TreeSet menuItems = new TreeSet<>(); // get the default items and add them int[] defaultItems = getIdsForType(mType); @@ -334,7 +333,7 @@ public static int getStringResourceForId(final int id) { /** * Simple helper function for adding an item to the menu */ - public void addToMenu(final Menu menu, final int id, final int resourceId) { + public void addToMenu(final Menu menu, final int id, final int resourceId) { menu.add(getGroupId(), id, id /*as order*/, mActivity.getString(resourceId)); } @@ -354,28 +353,23 @@ public boolean onMenuItemClick(MenuItem item) { MusicUtils.addToQueue(mActivity, getIdList(), getSourceId(), getSourceType()); return true; case FragmentMenuItems.ADD_TO_PLAYLIST: - ContextMenuBuilder builder = new ContextMenuBuilder(mActivity); - MusicUtils.makePlaylistMenu(mActivity, getGroupId(), builder); - builder.setHeaderTitle(R.string.add_to_playlist); - - builder.setCallback((MenuBuilder.Callback) Proxy.newProxyInstance( - MenuBuilder.Callback.class.getClassLoader(), - new Class[] { MenuBuilder.Callback.class }, - new InvocationHandler() { - @Override - public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - if(method.getName().equals("onMenuItemSelected")){ - Object obj = args[1]; - if (obj instanceof MenuItem) { - MenuItem item = (MenuItem) obj; - return onMenuItemClick(item); - } - return false; + final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(R.string.add_to_playlist); + final List menuItemList = MusicUtils.makePlaylist(mActivity); + builder.setItems(menuItemList.toArray(new String[0]), new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialog, int which) { + if (which == 0) { + CreateNewPlaylist.getInstance(getIdList()).show( + mFragmentManager, "CreatePlaylist"); + return; } - return false; + + final String name = menuItemList.get(which); + final long playListId = MusicUtils.getIdForPlaylist(mActivity, name); + MusicUtils.addToPlaylist(mActivity, getIdList(), playListId); } - })); - builder.show(null, null); + }); + builder.show(); return true; case FragmentMenuItems.NEW_PLAYLIST: CreateNewPlaylist.getInstance(getIdList()).show( diff --git a/app/src/main/java/org/lineageos/eleven/utils/SectionCreatorUtils.java b/app/src/main/java/org/lineageos/eleven/utils/SectionCreatorUtils.java index 7c43d01..45dd349 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/SectionCreatorUtils.java +++ b/app/src/main/java/org/lineageos/eleven/utils/SectionCreatorUtils.java @@ -344,7 +344,7 @@ protected String createLabel(int stringId, T item) { public static TreeMap createSections(final List list, final IItemCompare comparator) { if (list != null && list.size() > 0) { - TreeMap sections = new TreeMap(); + TreeMap sections = new TreeMap<>(); for (int i = 0; i < list.size() + 1; i++) { T first = (i == 0 ? null : list.get(i - 1)); T second = (i == list.size() ? null : list.get(i)); @@ -386,38 +386,42 @@ public static TreeMap createSections(final List list, public static IItemCompare createArtistComparison(final Context context) { IItemCompare sectionCreator = null; - String sortOrder = PreferenceUtils.getInstance(context).getArtistSortOrder(); - if (sortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z) - || sortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A)) { - sectionCreator = new SectionCreatorUtils.LocalizedCompare(context) { - @Override - public String getString(Artist item) { - return item.mArtistName; - } - - @Override - public String createHeaderLabel(Artist item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + final String sortOrder = PreferenceUtils.getInstance(context).getArtistSortOrder(); + switch (sortOrder) { + case SortOrder.ArtistSortOrder.ARTIST_A_Z: + case SortOrder.ArtistSortOrder.ARTIST_Z_A: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Artist item) { + return item.mArtistName; } - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_ALBUMS)) { - sectionCreator = new SectionCreatorUtils.NumberOfAlbumsCompare(context) { - @Override - public int getInt(Artist item) { - return item.mAlbumNumber; - } - }; - } else if (sortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_SONGS)) { - sectionCreator = new NumberOfSongsCompare(context) { - @Override - public int getInt(Artist item) { - return item.mSongNumber; - } - }; + @Override + public String createHeaderLabel(Artist item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } + + return super.createHeaderLabel(item); + } + }; + break; + case SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_ALBUMS: + sectionCreator = new NumberOfAlbumsCompare(context) { + @Override + public int getInt(Artist item) { + return item.mAlbumNumber; + } + }; + break; + case SortOrder.ArtistSortOrder.ARTIST_NUMBER_OF_SONGS: + sectionCreator = new NumberOfSongsCompare(context) { + @Override + public int getInt(Artist item) { + return item.mSongNumber; + } + }; + break; } return sectionCreator; @@ -431,77 +435,82 @@ public int getInt(Artist item) { public static IItemCompare createAlbumComparison(final Context context) { IItemCompare sectionCreator = null; - String sortOrder = PreferenceUtils.getInstance(context).getAlbumSortOrder(); - if (sortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_A_Z) - || sortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A)) { - sectionCreator = new LocalizedCompare(context) { - @Override - public String getString(Album item) { - return item.mAlbumName; - } - - @Override - public String createHeaderLabel(Album item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + final String sortOrder = PreferenceUtils.getInstance(context).getAlbumSortOrder(); + switch (sortOrder) { + case SortOrder.AlbumSortOrder.ALBUM_A_Z: + case SortOrder.AlbumSortOrder.ALBUM_Z_A: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Album item) { + return item.mAlbumName; } - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST)) { - sectionCreator = new LocalizedCompare(context) { - @Override - public String getString(Album item) { - return item.mArtistName; - } + @Override + public String createHeaderLabel(Album item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } - @Override - public String createHeaderLabel(Album item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + return super.createHeaderLabel(item); } - - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_NUMBER_OF_SONGS)) { - sectionCreator = new NumberOfSongsCompare(context) { - @Override - public int getInt(Album item) { - return item.mSongNumber; - } - }; - } else if (sortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_YEAR)) { - sectionCreator = new IntCompare() { - private static final int INVALID_YEAR = -1; - - @Override - public int getInt(Album item) { - // if we don't have a year, treat it as invalid - if (item.mYear == null) { - return INVALID_YEAR; + }; + break; + case SortOrder.AlbumSortOrder.ALBUM_ARTIST: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Album item) { + return item.mArtistName; } - int year = Integer.valueOf(item.mYear); + @Override + public String createHeaderLabel(Album item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } - // if the year is extremely low, treat it as invalid too - if (MusicUtils.isInvalidYear(year)) { - return INVALID_YEAR; + return super.createHeaderLabel(item); + } + }; + break; + case SortOrder.AlbumSortOrder.ALBUM_NUMBER_OF_SONGS: + sectionCreator = new NumberOfSongsCompare(context) { + @Override + public int getInt(Album item) { + return item.mSongNumber; } + }; + break; + case SortOrder.AlbumSortOrder.ALBUM_YEAR: + sectionCreator = new IntCompare() { + private static final int INVALID_YEAR = -1; + + @Override + public int getInt(Album item) { + // if we don't have a year, treat it as invalid + if (item.mYear == null) { + return INVALID_YEAR; + } - return year; - } + int year = Integer.valueOf(item.mYear); + + // if the year is extremely low, treat it as invalid too + if (MusicUtils.isInvalidYear(year)) { + return INVALID_YEAR; + } - @Override - public String createHeaderLabel(Album item) { - if (MusicUtils.isInvalidYear(getInt(item))) { - return context.getString(R.string.header_unknown_year); + return year; } - return item.mYear; - } - }; + @Override + public String createHeaderLabel(Album item) { + if (MusicUtils.isInvalidYear(getInt(item))) { + return context.getString(R.string.header_unknown_year); + } + + return item.mYear; + } + }; + break; } return sectionCreator; @@ -515,84 +524,90 @@ public String createHeaderLabel(Album item) { public static IItemCompare createSongComparison(final Context context) { IItemCompare sectionCreator = null; - String sortOrder = PreferenceUtils.getInstance(context).getSongSortOrder(); + final String sortOrder = PreferenceUtils.getInstance(context).getSongSortOrder(); // doesn't make sense to have headers for SONG_FILENAME // so we will not return a sectionCreator for that one - if (sortOrder.equals(SortOrder.SongSortOrder.SONG_A_Z) - || sortOrder.equals(SortOrder.SongSortOrder.SONG_Z_A)) { - sectionCreator = new LocalizedCompare(context) { - @Override - public String getString(Song item) { - return item.mSongName; - } - - @Override - public String createHeaderLabel(Song item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + switch (sortOrder) { + case SortOrder.SongSortOrder.SONG_A_Z: + case SortOrder.SongSortOrder.SONG_Z_A: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Song item) { + return item.mSongName; } - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_ALBUM)) { - sectionCreator = new LocalizedCompare(context) { - @Override - public String getString(Song item) { - return item.mAlbumName; - } + @Override + public String createHeaderLabel(Song item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } - @Override - public String createHeaderLabel(Song item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + return super.createHeaderLabel(item); + } + }; + break; + case SortOrder.SongSortOrder.SONG_ALBUM: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Song item) { + return item.mAlbumName; } - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_ARTIST)) { - sectionCreator = new LocalizedCompare(context) { - @Override - public String getString(Song item) { - return item.mArtistName; - } + @Override + public String createHeaderLabel(Song item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } - @Override - public String createHeaderLabel(Song item) { - if (item.mBucketLabel != null) { - return super.createHeaderLabel(item.mBucketLabel); + return super.createHeaderLabel(item); + } + }; + break; + case SortOrder.SongSortOrder.SONG_ARTIST: + sectionCreator = new LocalizedCompare(context) { + @Override + public String getString(Song item) { + return item.mArtistName; } - return super.createHeaderLabel(item); - } - }; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_DURATION)) { - sectionCreator = new DurationCompare(context) { - @Override - public int getInt(Song item) { - return item.mDuration; - } - }; - } else if (sortOrder.equals(SortOrder.SongSortOrder.SONG_YEAR)) { - sectionCreator = new SectionCreatorUtils.IntCompare() { - @Override - public int getInt(Song item) { - return item.mYear; - } + @Override + public String createHeaderLabel(Song item) { + if (item.mBucketLabel != null) { + return super.createHeaderLabel(item.mBucketLabel); + } - @Override - public String createHeaderLabel(Song item) { - // I have seen tracks in my library where it would return 0 or 2 - // so have this check to return a more friendly label in that case - if (MusicUtils.isInvalidYear(item.mYear)) { - return context.getString(R.string.header_unknown_year); + return super.createHeaderLabel(item); + } + }; + break; + case SortOrder.SongSortOrder.SONG_DURATION: + sectionCreator = new DurationCompare(context) { + @Override + public int getInt(Song item) { + return item.mDuration; + } + }; + break; + case SortOrder.SongSortOrder.SONG_YEAR: + sectionCreator = new IntCompare() { + @Override + public int getInt(Song item) { + return item.mYear; } - return super.createHeaderLabel(item); - } - }; + @Override + public String createHeaderLabel(Song item) { + // I have seen tracks in my library where it would return 0 or 2 + // so have this check to return a more friendly label in that case + if (MusicUtils.isInvalidYear(item.mYear)) { + return context.getString(R.string.header_unknown_year); + } + + return super.createHeaderLabel(item); + } + }; + break; } return sectionCreator; diff --git a/app/src/main/java/org/lineageos/eleven/utils/ShakeDetector.java b/app/src/main/java/org/lineageos/eleven/utils/ShakeDetector.java index 3a971f4..fb481f0 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/ShakeDetector.java +++ b/app/src/main/java/org/lineageos/eleven/utils/ShakeDetector.java @@ -213,7 +213,7 @@ void purge(long cutoff) { /** Copies the samples into a list, with the oldest entry at index 0. */ List asList() { - List list = new ArrayList(); + List list = new ArrayList<>(); Sample s = oldest; while (s != null) { list.add(s); diff --git a/app/src/main/java/org/lineageos/eleven/utils/SrtParser.java b/app/src/main/java/org/lineageos/eleven/utils/SrtParser.java index 351c7d0..2e2e688 100644 --- a/app/src/main/java/org/lineageos/eleven/utils/SrtParser.java +++ b/app/src/main/java/org/lineageos/eleven/utils/SrtParser.java @@ -70,7 +70,7 @@ public static ArrayList getSrtEntries(File f) { entry.mStartTimeMs = parseMs(startEnd[0]); entry.mEndTimeMs = parseMs(startEnd[1]); - StringBuilder subtitleBuilder = new StringBuilder(""); + StringBuilder subtitleBuilder = new StringBuilder(); String s = br.readLine(); if (!TextUtils.isEmpty(s)) { @@ -84,7 +84,7 @@ public static ArrayList getSrtEntries(File f) { entry.mLine = subtitleBuilder.toString(); if (ret == null) { - ret = new ArrayList(); + ret = new ArrayList<>(); } ret.add(entry); diff --git a/app/src/main/java/org/lineageos/eleven/widgets/AlphaPatternDrawable.java b/app/src/main/java/org/lineageos/eleven/widgets/AlphaPatternDrawable.java index 24e50f6..582bb9d 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/AlphaPatternDrawable.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/AlphaPatternDrawable.java @@ -64,7 +64,7 @@ public void draw(final Canvas canvas) { */ @Override public int getOpacity() { - return PixelFormat.UNKNOWN; + return PixelFormat.OPAQUE; } /** @@ -93,8 +93,8 @@ protected void onBoundsChange(final Rect bounds) { final int mHeight = bounds.height(); final int mWidth = bounds.width(); - numRectanglesHorizontal = (int)Math.ceil((mWidth / mRectangleSize)); - numRectanglesVertical = (int)Math.ceil(mHeight / mRectangleSize); + numRectanglesHorizontal = (int) Math.ceil(((double) mWidth / mRectangleSize)); + numRectanglesVertical = (int) Math.ceil((double) mHeight / mRectangleSize); generatePatternBitmap(); } diff --git a/app/src/main/java/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java b/app/src/main/java/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java index 905be1a..1cc8ead 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java @@ -11,6 +11,7 @@ package org.lineageos.eleven.widgets; +import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import androidx.appcompat.widget.AppCompatImageView; @@ -34,6 +35,7 @@ public LayoutSuppressingImageView(final Context context, final AttributeSet attr /** * {@inheritDoc} */ + @SuppressLint("MissingSuperCall") @Override public void requestLayout() { super.requestLayout(); diff --git a/app/src/main/java/org/lineageos/eleven/widgets/LetterTileDrawable.java b/app/src/main/java/org/lineageos/eleven/widgets/LetterTileDrawable.java index 8f9243c..54211e3 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/LetterTileDrawable.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/LetterTileDrawable.java @@ -31,8 +31,6 @@ import android.text.TextUtils; import androidx.core.content.ContextCompat; -import junit.framework.Assert; - import org.lineageos.eleven.R; import org.lineageos.eleven.cache.ImageWorker.ImageType; import org.lineageos.eleven.utils.BitmapWithColors; @@ -76,8 +74,8 @@ public class LetterTileDrawable extends Drawable { private ImageType mImageType; private static synchronized void initializeStaticVariables(final Context context) { - Resources res = context.getResources(); if (sColors == null) { + final Resources res = context.getResources(); sColors = res.obtainTypedArray(R.array.letter_tile_colors); sVibrantDarkColors = res.obtainTypedArray(R.array.letter_tile_vibrant_dark_colors); sDefaultColor = ContextCompat.getColor(context, R.color.letter_tile_default_color); @@ -131,7 +129,7 @@ private void drawLetterTile(final Canvas canvas) { final int minDimension = Math.min(bounds.width(), bounds.height()); if (mIsCircle) { - canvas.drawCircle(bounds.centerX(), bounds.centerY(), minDimension / 2, sPaint); + canvas.drawCircle(bounds.centerX(), bounds.centerY(), (float) minDimension / 2, sPaint); } else { canvas.drawRect(bounds, sPaint); } @@ -158,7 +156,7 @@ && isEnglishLetter(mDisplayName.charAt(0))) { // Draw the letter in the canvas, vertically shifted up or down by the user-defined // offset canvas.drawText(sChars, 0, numChars, bounds.centerX(), - bounds.centerY() + mOffset * bounds.height() + sRect.height() / 2, + bounds.centerY() + mOffset * bounds.height() + (float) sRect.height() / 2, sPaint); } else { // Draw the default image if there is no letter/digit to be drawn @@ -280,7 +278,6 @@ public void setScale(float scale) { * The default is 0.0f. */ public void setOffset(float offset) { - Assert.assertTrue(offset >= -0.5f && offset <= 0.5f); mOffset = offset; } @@ -359,7 +356,7 @@ public static BitmapWithColors createDefaultBitmap(Context context, String ident final int minDimension = Math.min(bounds.width(), bounds.height()); if (isCircle) { - canvas.drawCircle(bounds.centerX(), bounds.centerY(), minDimension / 2, paint); + canvas.drawCircle(bounds.centerX(), bounds.centerY(), (float) minDimension / 2, paint); } else { canvas.drawRect(bounds, paint); } diff --git a/app/src/main/java/org/lineageos/eleven/widgets/LoadingEmptyContainer.java b/app/src/main/java/org/lineageos/eleven/widgets/LoadingEmptyContainer.java index 68970f4..24e8c0b 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/LoadingEmptyContainer.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/LoadingEmptyContainer.java @@ -16,14 +16,11 @@ package org.lineageos.eleven.widgets; import android.content.Context; -import android.os.Build; import android.os.Handler; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; -import java.lang.reflect.Method; - import org.lineageos.eleven.R; /** @@ -37,7 +34,6 @@ public class LoadingEmptyContainer extends FrameLayout { private Handler mHandler; private Runnable mShowLoadingRunnable; - private boolean hasCallbacks; public LoadingEmptyContainer(Context context, AttributeSet attrs) { super(context, attrs); @@ -50,7 +46,6 @@ public void run() { getNoResultsContainer().setVisibility(View.INVISIBLE); } }; - hasCallbacks = false; } @Override @@ -68,25 +63,13 @@ public void hideAll() { public void showLoading() { hideAll(); - //mHandler.hasCallbacks(mShowLoadingRunnable) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - try { - Class clazz = mHandler.getClass(); - Method m = clazz.getMethod("hasCallbacks", Runnable.class); - hasCallbacks = ((Boolean)(m.invoke(mHandler, new Object[] {mShowLoadingRunnable}))).booleanValue(); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - if (!hasCallbacks) { - mHandler.postDelayed(mShowLoadingRunnable, LOADING_DELAY); - hasCallbacks = true; - } + mHandler.removeCallbacks(mShowLoadingRunnable); + + mHandler.postDelayed(mShowLoadingRunnable, LOADING_DELAY); } public void showNoResults() { mHandler.removeCallbacks(mShowLoadingRunnable); - hasCallbacks = false; findViewById(R.id.progressbar).setVisibility(View.INVISIBLE); getNoResultsContainer().setVisibility(View.VISIBLE); } diff --git a/app/src/main/java/org/lineageos/eleven/widgets/NoResultsContainer.java b/app/src/main/java/org/lineageos/eleven/widgets/NoResultsContainer.java index 26b569b..770afc3 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/NoResultsContainer.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/NoResultsContainer.java @@ -16,8 +16,10 @@ package org.lineageos.eleven.widgets; import android.content.Context; +import android.graphics.PorterDuff; import android.util.AttributeSet; import android.view.View; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -43,7 +45,7 @@ public void setMainText(final int resId) { } public void setMainHighlightText(final String text) { - final TextView hightlightText = (TextView)findViewById(R.id.no_results_main_highlight_text); + final TextView hightlightText = findViewById(R.id.no_results_main_highlight_text); if (text == null || text.isEmpty()) { hightlightText.setVisibility(View.GONE); @@ -58,8 +60,9 @@ public void setSecondaryText(final int resId) { } public void setTextColor(int color) { + ((ImageView)findViewById(R.id.no_results_image)).setColorFilter(color, PorterDuff.Mode.SRC_IN); ((TextView)findViewById(R.id.no_results_main_text)).setTextColor(color); ((TextView)findViewById(R.id.no_results_main_highlight_text)).setTextColor(color); ((TextView)findViewById(R.id.no_results_secondary_text)).setTextColor(color); } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/lineageos/eleven/widgets/SeparatedListAdapter.java b/app/src/main/java/org/lineageos/eleven/widgets/SeparatedListAdapter.java index 7af881a..5931d2e 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/SeparatedListAdapter.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/SeparatedListAdapter.java @@ -15,7 +15,7 @@ public class SeparatedListAdapter extends BaseAdapter { - public final Map mSections = new LinkedHashMap(); + public final Map mSections = new LinkedHashMap<>(); public final ArrayAdapter mHeaders; @@ -27,7 +27,7 @@ public class SeparatedListAdapter extends BaseAdapter { * @param context The {@link Context} to use. */ public SeparatedListAdapter(final Context context) { - mHeaders = new ArrayAdapter(context, R.layout.list_header); + mHeaders = new ArrayAdapter<>(context, R.layout.list_header); } /** diff --git a/app/src/main/java/org/lineageos/eleven/widgets/SquareView.java b/app/src/main/java/org/lineageos/eleven/widgets/SquareView.java index ed4a06e..1d83236 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/SquareView.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/SquareView.java @@ -13,6 +13,7 @@ package org.lineageos.eleven.widgets; +import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.View; @@ -37,6 +38,7 @@ public SquareView(final Context context, final AttributeSet attrs) { /** * {@inheritDoc} */ + @SuppressWarnings("SuspiciousNameCombination") @Override protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) { final View mChildren = getChildAt(0); @@ -58,9 +60,9 @@ protected void onLayout(final boolean changed, final int l, final int u, final i /** * {@inheritDoc} */ + @SuppressLint("MissingSuperCall") @Override public void requestLayout() { - super.requestLayout(); forceLayout(); } } diff --git a/app/src/main/java/org/lineageos/eleven/widgets/VisualizerView.java b/app/src/main/java/org/lineageos/eleven/widgets/VisualizerView.java index 6b5d495..2446246 100644 --- a/app/src/main/java/org/lineageos/eleven/widgets/VisualizerView.java +++ b/app/src/main/java/org/lineageos/eleven/widgets/VisualizerView.java @@ -26,12 +26,20 @@ import android.os.AsyncTask; import android.os.Build; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import androidx.core.content.ContextCompat; import org.lineageos.eleven.R; public class VisualizerView extends View { + private static final String TAG = VisualizerView.class.getSimpleName(); + + private static final int DEFAULT_ALPHA = 140; + + private static final long DURATION_LINK = 800; + private static final long DURATION_UNLINK = 600; + private Paint mPaint; private Visualizer mVisualizer; private ObjectAnimator mVisualizerColorAnimator; @@ -42,6 +50,8 @@ public class VisualizerView extends View { private boolean mVisible = false; private boolean mPlaying = false; private boolean mPowerSaveMode = false; + private boolean mDisplaying = false; // the state we're animating to + private int mColor; private Visualizer.OnDataCaptureListener mVisualizerListener = @@ -52,6 +62,7 @@ public class VisualizerView extends View { @Override public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { + // empty } @Override @@ -64,7 +75,8 @@ public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate magnitude = rfk * rfk + ifk * ifk; dbValue = magnitude > 0 ? (int) (10 * Math.log10(magnitude)) : 0; - mValueAnimators[i].setFloatValues(mFFTPoints[i * 4 + 1], + mValueAnimators[i].setFloatValues( + mFFTPoints[i * 4 + 1], mFFTPoints[3] - (dbValue * 16f)); mValueAnimators[i].start(); } @@ -77,6 +89,7 @@ public void run() { try { mVisualizer = new Visualizer(0); } catch (Exception e) { + Log.e(TAG, "error initializing visualizer", e); return; } @@ -88,12 +101,21 @@ public void run() { } }; + private final Runnable mAsyncUnlinkVisualizer = new Runnable() { + @Override + public void run() { + AsyncTask.execute(mUnlinkVisualizer); + } + }; + private final Runnable mUnlinkVisualizer = new Runnable() { @Override public void run() { - mVisualizer.setEnabled(false); - mVisualizer.release(); - mVisualizer = null; + if (mVisualizer != null) { + mVisualizer.setEnabled(false); + mVisualizer.release(); + mVisualizer = null; + } } }; @@ -128,6 +150,7 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) { for (int i = 0; i < 32; i++) { mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2); + mFFTPoints[i * 4 + 1] = h; mFFTPoints[i * 4 + 3] = h; } } @@ -141,8 +164,8 @@ protected void onDraw(Canvas canvas) { } } - public void initialize(Context context) { - mColor = ContextCompat.getColor(context, R.color.visualizer_fill_color); + public void initialize(Context context) { + mColor = ContextCompat.getColor(context, R.color.visualizer_fill_color); mPaint = new Paint(); mPaint.setAntiAlias(true); @@ -152,20 +175,11 @@ public void initialize(Context context) { final int j = i * 4 + 1; mValueAnimators[i] = new ValueAnimator(); mValueAnimators[i].setDuration(128); - mValueAnimators[i].addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - mFFTPoints[j] = (float) animation.getAnimatedValue(); - } - }); + mValueAnimators[i].addUpdateListener(animation -> + mFFTPoints[j] = (float) animation.getAnimatedValue()); } - mValueAnimators[31].addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - postInvalidate(); - } - }); + mValueAnimators[31].addUpdateListener(animation -> postInvalidate()); } public void setVisible(boolean visible) { @@ -190,7 +204,11 @@ public void setPowerSaveMode(boolean powerSaveMode) { } public void setColor(int color) { - color = Color.argb(191, Color.red(color), Color.green(color), Color.blue(color)); + if (color == Color.TRANSPARENT) { + color = Color.WHITE; + } + + color = Color.argb(DEFAULT_ALPHA, Color.red(color), Color.green(color), Color.blue(color)); if (mColor != color) { mColor = color; @@ -205,8 +223,8 @@ public void setColor(int color) { mVisualizerColorAnimator.setStartDelay(600); mVisualizerColorAnimator.setDuration(1200); mVisualizerColorAnimator.start(); - }else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ - mVisualizerColorAnimator=ObjectAnimator.ofObject(mPaint,"color",new ArgbEvaluator(), + } else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + mVisualizerColorAnimator=ObjectAnimator.ofObject(mPaint,"color",new ArgbEvaluator(), mPaint.getColor(),mColor); mVisualizerColorAnimator.setStartDelay(600); mVisualizerColorAnimator.setDuration(1200); @@ -220,14 +238,27 @@ public void setColor(int color) { private void checkStateChanged() { if (mVisible && mPlaying && !mPowerSaveMode) { - if (mVisualizer == null) { + if (!mDisplaying) { + mDisplaying = true; + AsyncTask.execute(mLinkVisualizer); - animate().alpha(1f).setDuration(300); + animate() + .alpha(1f) + .setDuration(DURATION_LINK); } } else { - if (mVisualizer != null) { - animate().alpha(0f).setDuration(0); - AsyncTask.execute(mUnlinkVisualizer); + if (mDisplaying) { + mDisplaying = false; + final long unlinkDuration = (mVisible ? DURATION_UNLINK : 0); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + animate() + .alpha(0f) + .withEndAction(mAsyncUnlinkVisualizer) + .setDuration(unlinkDuration); + } else { + animate().alpha(0f).setDuration(0); + AsyncTask.execute(mUnlinkVisualizer); + } } } } diff --git a/app/src/main/res/layout/no_results_message.xml b/app/src/main/res/layout/no_results_message.xml index e3ed613..950099c 100644 --- a/app/src/main/res/layout/no_results_message.xml +++ b/app/src/main/res/layout/no_results_message.xml @@ -28,6 +28,7 @@ android:visibility="gone"> - - - %d kunstenaar - %d kunstenaars - - - - %d album - %d albums - - - - %d lied - %d liedere - - - - %d genre - %d genres - - - - %dh - %dh - - - - %dm - %dm - - - - %d lied by speellys gevoeg. - %d liedjies by speellys gevoeg. - - - - %d lied van speellys verwyder. - %d liedjies van speellys verwyder. - - - - %d lied bygevoeg tot die waglys. - %d liedjies bygevoeg tot die waglys. - - - - %d lied by gunstelinge gevoeg. - %d liedjies by gunstelinge gevoeg. - - - - %d lied was verwyder. - %d liedjies was verwyder. - + + %d kunstenaar + %d kunstenaars + + + %d album + %d albums + + + %d lied + %d liedere + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d lied by speellys gevoeg. + %d liedjies by speellys gevoeg. + + + %d lied van speellys verwyder. + %d liedjies van speellys verwyder. + + + %d lied bygevoeg tot die waglys. + %d liedjies bygevoeg tot die waglys. + + + %d lied by gunstelinge gevoeg. + %d liedjies by gunstelinge gevoeg. + + + %d lied was verwyder. + %d liedjies was verwyder. + diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index 91a4f08..df51d65 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Musiek - - Onlangs - Kunstenaars - Albums - Liedjies - Speellys - Genres - Speel tans - Speel waglys - - Albums - Beste Liedjies - Alle Liedjies - - Instellings - Soektog - Skommel - Skommel alles - Skommel speellys - Skommel album - Skommel kunstenaar - Skommel beste liedjies - Skommel onlangs gespeel - Skommel laaste bygevoeg - Speel almal - Sorteer volgens - Verwyder alle items - Verwyder onlangse items - Vee waglys uit - Stoor wag items na snitlys - Klankmenger - - Voeg by speellys - Voeg by waglys - Verwyder vanuit onlangse lys - Verwyder vanuit waglys - - A-Z - Z-A - Kunstenaar - Album - Jaar - Tydsduur - Datum bygevoeg - Speellys - Aantal liedjies - Aantal albums - Leêrnaam - - Laaste bygevoeg - Onlangs gespeel - My top liedjies - - Skep speellys - Stoor - Kanselleer - Oorskryf - Maak skoon - Speellys %d - Speellys naam - Verwyder %s? - Verwyder top liedjies? - Verwyder onlangs gespeel? - Verwyder laaste bygevoeg? - Hierdie kan nie ongedaan gemaak word nie - Dit sal permanent kasgeheue foto inskrywings verwyder - Kies foto vanuit Galery - Google soektog - Gebruik verstekfoto - Gebruik ou foto - - Speel - Speel volgende - Speel album - Meer van kunstenaar - Hernoem - Verwyder - Vind album inligting - Vind kunstenaar foto - Verwyder vanuit onlangse lys - Gebruik as luitoon - Verwyder van speellys - Verander foto - - Speel - Pouseer - Volgende - Vorige - Skommel - Skommel almal - Herhaal - Herhaal almal - Herhaal eenkeer - Maak waglys oop - Kyk na musiek - - \"%s\" gestel as luitoon - Speellys is hernoem - - Koppelvlak - Berging - Data - Verwyder kasgeheue - Verwyder alle kasgeheue foto\'s - Alleenlik via Wi-Fi - Om netwerk kostes te verminder, vermy aflaaie oor jou sellulêre netwerk - Laai vermiste albumkuns af - Laai vermiste kunstenaar foto\'s af - Algemeen - Wys musiek visualisering - Wys lirieke van liedjies - Vir liedjies wat \'n srt lêer het - Skud - Skud jou toestel om volgende liedjie te speel - Slotskerm foto album kuns - Vervang slotskerm agtergrond foto album kuns - - Musiek: 4 \u00d7 1 - Musiek: 4 \u00d7 2 - Musiek: 4 \u00d7 2 (alternatief) - Musiek: onlangs geluister - - Die equalizer kon nie oopgemaak word nie. - Om musiek van jou rekenaar na jou toestel te kopieer, gebruik \'n USB-kabel. - Geen resultate is gevind nie - Maak seker jy het die korrekte spelling of probeer \'n ander vraag. - Liedjies wat jy gemerk het as gunstelinge word hier vertoon. - Geen onlangse liedjies - Liedjies wat jy onlangs geluister het, sal hier vertoon. - Geen liedjies in speellys - Om Liedjies by te voeg tot hierdie speel lys, raak die opsies kieslys op \'n liedjie, album of kunstenaar en kies \"Voeg by speellys\". - Geen top liedjies - Die liedjies wat jy die meeste na luister sal bygevoeg word tot die lys. - Geen onlangse liedjies bygevoeg - Liedjies wat jy die afgelope maand bygevoeg het word hier vertoon. - Geen musiek gevind - Om musiek van jou rekenaar na jou toestel te kopieer, gebruik \'n USB-kabel. - Geen liedjies in speel waglys - Om Liedjies by te voeg tot jou speel waglys, raak die opsies kieslys op \'n liedjie, album of kunstenaar en kies \"Voeg by waglys\". - Kon nie snit (%1$s) speel nie - - Onbekende jaar - Minder as 30 sekondes - 30 - 60 sekondes - 1 - 2 minute - 2 - 3 minute - 3 - 4 minute - 4 - 5 minute - 5 - 10 minute - 10 - 30 minute - 30 - 60 minute - Meer as 60 minute - 1 lied - 2 - 4 liedjies - 5 - 9 liedjies - 10+ liedjies - 5+ albums - "Ander" - Wys alle kunstenaars - Wys alle albums - Wys alle liedjies - Wys alle speel waglyste - Deursoek musiek - Alle \"%s\" kunstenaars - Alle \"%s\" albums - Alle \"%s\" liedjies - Alle \"%s\" speellyste - %1$s %2$s + Musiek + Onlangs + Kunstenaars + Albums + Liedjies + Speellys + Genres + Speel tans + Speel waglys + Albums + Beste Liedjies + Alle Liedjies + Instellings + Soektog + Skommel + Skommel alles + Skommel speellys + Skommel album + Skommel kunstenaar + Skommel beste liedjies + Skommel onlangs gespeel + Skommel laaste bygevoeg + Speel almal + Sorteer volgens + Verwyder alle items + Verwyder onlangse items + Vee waglys uit + Stoor wag items na snitlys + Klankmenger + Voeg by speellys + Voeg by waglys + Verwyder vanuit onlangse lys + Verwyder vanuit waglys + A-Z + Z-A + Kunstenaar + Album + Jaar + Tydsduur + Datum bygevoeg + Speellys + Aantal liedjies + Aantal albums + Leêrnaam + Laaste bygevoeg + Onlangs gespeel + My top liedjies + Skep speellys + Stoor + Kanselleer + Oorskryf + Maak skoon + Speellys %d + Speellys naam + Verwyder %s? + Verwyder top liedjies? + Verwyder onlangs gespeel? + Verwyder laaste bygevoeg? + Hierdie kan nie ongedaan gemaak word nie + Dit sal permanent kasgeheue foto inskrywings verwyder + Kies foto vanuit Galery + Google soektog + Gebruik verstekfoto + Gebruik ou foto + Speel + Speel volgende + Speel album + Meer van kunstenaar + Hernoem + Verwyder + Vind album inligting + Vind kunstenaar foto + Verwyder vanuit onlangse lys + Gebruik as luitoon + Verwyder van speellys + Verander foto + Speel + Pouseer + Volgende + Vorige + Skommel + Skommel almal + Herhaal + Herhaal almal + Herhaal eenkeer + Maak waglys oop + Kyk na musiek + \"%s\" gestel as luitoon + Speellys is hernoem + Koppelvlak + Berging + Data + Verwyder kasgeheue + Verwyder alle kasgeheue foto\'s + Alleenlik via Wi-Fi + Om netwerk kostes te verminder, vermy aflaaie oor jou sellulêre netwerk + Laai vermiste albumkuns af + Laai vermiste kunstenaar foto\'s af + Algemeen + Wys musiek visualisering + Wys lirieke van liedjies + Vir liedjies wat \'n srt lêer het + Skud + Skud jou toestel om volgende liedjie te speel + Slotskerm foto album kuns + Vervang slotskerm agtergrond foto album kuns + Musiek: 4 \u00d7 1 + Musiek: 4 \u00d7 2 + Musiek: 4 \u00d7 2 (alternatief) + Musiek: onlangs geluister + Die equalizer kon nie oopgemaak word nie. + Om musiek van jou rekenaar na jou toestel te kopieer, gebruik \'n USB-kabel. + Geen resultate is gevind nie + Maak seker jy het die korrekte spelling of probeer \'n ander vraag. + Liedjies wat jy gemerk het as gunstelinge word hier vertoon. + Geen onlangse liedjies + Liedjies wat jy onlangs geluister het, sal hier vertoon. + Geen liedjies in speellys + Om Liedjies by te voeg tot hierdie speel lys, raak die opsies kieslys op \'n liedjie, album of kunstenaar en kies \"Voeg by speellys\". + Geen top liedjies + Die liedjies wat jy die meeste na luister sal bygevoeg word tot die lys. + Geen onlangse liedjies bygevoeg + Liedjies wat jy die afgelope maand bygevoeg het word hier vertoon. + Geen musiek gevind + Om musiek van jou rekenaar na jou toestel te kopieer, gebruik \'n USB-kabel. + Geen liedjies in speel waglys + Om Liedjies by te voeg tot jou speel waglys, raak die opsies kieslys op \'n liedjie, album of kunstenaar en kies \"Voeg by waglys\". + Kon nie snit (%1$s) speel nie + Onbekende jaar + Minder as 30 sekondes + 30 - 60 sekondes + 1 - 2 minute + 2 - 3 minute + 3 - 4 minute + 4 - 5 minute + 5 - 10 minute + 10 - 30 minute + 30 - 60 minute + Meer as 60 minute + 1 lied + 2 - 4 liedjies + 5 - 9 liedjies + 10+ liedjies + 5+ albums + "Ander" + Wys alle kunstenaars + Wys alle albums + Wys alle liedjies + Wys alle speel waglyste + Deursoek musiek + Alle \"%s\" kunstenaars + Alle \"%s\" albums + Alle \"%s\" liedjies + Alle \"%s\" speellyste + %1$s %2$s diff --git a/app/src/main/res/values-ar/plurals.xml b/app/src/main/res/values-ar/plurals.xml index a831161..b540462 100644 --- a/app/src/main/res/values-ar/plurals.xml +++ b/app/src/main/res/values-ar/plurals.xml @@ -17,103 +17,92 @@ limitations under the License. --> - - - %d فنان - %d فنانين - %d فنانين - %d فنانين - %d فنانين - %d فنانين - - - - %d ألبوم - %d ألبومات - %d ألبومات - %d ألبومات - %d ألبومات - %d ألبومات - - - - %d أغنية - %d أغاني - %d أغاني - %d أغاني - %d أغاني - %d أغاني - - - - %d نوع - %d أنواع - %d أنواع - %d أنواع - %d أنواع - %d أنواع - - - - %dس - %dس - %dس - %dس - %dس - %dس - - - - %dق - %dق - %dق - %dق - %dق - %dق - - - - %d أغنية أضيفت إلى قائمة التشغيل. - %d أغنيات أضيفت إلى قائمة التشغيل. - %d أغنيات أضيفت إلى قائمة التشغيل. - %d أغنيات أضيفت إلى قائمة التشغيل. - %d أغنيات أضيفت إلى قائمة التشغيل. - %d أغنيات أضيفت إلى قائمة التشغيل. - - - - %d أغنية حذفت من قائمة التشغيل. - %d أغنيات حذفت من قائمة التشغيل. - %d أغنيات حذفت من قائمة التشغيل. - %d أغنيات حذفت من قائمة التشغيل. - %d أغنيات حذفت من قائمة التشغيل. - %d أغنيات حذفت من قائمة التشغيل. - - - - %d أغنية أُضيفت إلى قائمة الانتظار. - %d أغاني أُضيفت إلى قائمة الانتظار. - %d أغاني أُضيفت إلى قائمة الانتظار. - %d أغاني أُضيفت إلى قائمة الانتظار. - %d أغاني أُضيفت إلى قائمة الانتظار. - %d أغاني أُضيفت إلى قائمة الانتظار. - - - - %d أغنية أضيفت إلى القائمة المفضلة. - %d أغنيات أضيفت إلى القائمة المفضلة. - %d أغنيات أضيفت إلى القائمة المفضلة. - %d أغنيات أضيفت إلى القائمة المفضلة. - %d أغنيات أضيفت إلى القائمة المفضلة. - %d أغنيات أضيفت إلى القائمة المفضلة. - - - - تم حذف %d أغنية. - تم حذف %d أغنيات. - تم حذف %d أغنيات. - تم حذف %d أغنيات. - تم حذف %d أغنيات. - تم حذف %d أغنيات. - + + %d فنان + %d فنانين + %d فنانين + %d فنانين + %d فنانين + %d فنانين + + + %d ألبوم + %d ألبومات + %d ألبومات + %d ألبومات + %d ألبومات + %d ألبومات + + + %d أغنية + %d أغاني + %d أغاني + %d أغاني + %d أغاني + %d أغاني + + + %d نوع + %d أنواع + %d أنواع + %d أنواع + %d أنواع + %d أنواع + + + %dس + %dس + %dس + %dس + %dس + %dس + + + %dق + %dق + %dق + %dق + %dق + %dق + + + %d أغنية أضيفت إلى قائمة التشغيل. + %d أغنيات أضيفت إلى قائمة التشغيل. + %d أغنيات أضيفت إلى قائمة التشغيل. + %d أغنيات أضيفت إلى قائمة التشغيل. + %d أغنيات أضيفت إلى قائمة التشغيل. + %d أغنيات أضيفت إلى قائمة التشغيل. + + + %d أغنية حذفت من قائمة التشغيل. + %d أغنيات حذفت من قائمة التشغيل. + %d أغنيات حذفت من قائمة التشغيل. + %d أغنيات حذفت من قائمة التشغيل. + %d أغنيات حذفت من قائمة التشغيل. + %d أغنيات حذفت من قائمة التشغيل. + + + %d أغنية أُضيفت إلى قائمة الانتظار. + %d أغاني أُضيفت إلى قائمة الانتظار. + %d أغاني أُضيفت إلى قائمة الانتظار. + %d أغاني أُضيفت إلى قائمة الانتظار. + %d أغاني أُضيفت إلى قائمة الانتظار. + %d أغاني أُضيفت إلى قائمة الانتظار. + + + %d أغنية أضيفت إلى القائمة المفضلة. + %d أغنيات أضيفت إلى القائمة المفضلة. + %d أغنيات أضيفت إلى القائمة المفضلة. + %d أغنيات أضيفت إلى القائمة المفضلة. + %d أغنيات أضيفت إلى القائمة المفضلة. + %d أغنيات أضيفت إلى القائمة المفضلة. + + + تم حذف %d أغنية. + تم حذف %d أغنيات. + تم حذف %d أغنيات. + تم حذف %d أغنيات. + تم حذف %d أغنيات. + تم حذف %d أغنيات. + diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index c044047..d70935e 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - موسيقى - - حديث - فنانون - ألبومات - أغاني - قوائم تشغيل - أنواع - قيد التشغيل - قائمة انتظار التشغيل - - ألبومات - الأغاني الأعلى - كل الأغاني - - إعدادات - بحث - خلْط - خلْط الكل - خلط قائمة التشغيل - خلْط الألبوم - خلط الفنانين - خلط الأغاني الأعلى - خلط الأغاني التي أذيعت مؤخراً - خلط آخر أغاني أضيفت - تشغيل الكل - الترتيب حسب - مسح القائمة - مسح الأغاني الأخيرة - مسح قائمة الانتظار - حفظ قائمة الانتظار إلى قائمة التشغيل - المعادل - - إضافة إلى قائمة التشغيل - إضافة إلى قائمة الانتظار - إزالة من الأغاني الأخيرة - إزالة من قائمة الانتظار - - من الألف إلى الياء - من الياء إلى الألف - فنان - ألبوم - السنة - المدة - تاريخ الإضافة - قائمة الأغاني - عدد الأغاني - عدد الألبومات - اختر الملف - - أخر ما أضيف - أغاني أذيعت مؤخراً - الأغاني الأعلى لي - - قائمة تشغيل جديدة - حفظ - الغاء - استبدال - مسح - قائمة التشغيل %d - اسم قائمة التشغيل - حذف %s؟ - مسح الأغاني الأعلى - مسح الأغاني التي أذيعت مؤخراً؟ - مسح آخر أغاني أضيفت؟ - لا يمكن التراجع عن هذا - سيؤدي هذا إلى حذف إدخالات الصورة المخزنة مؤقتاً بشكل دائم - اختيار صورة من معرض الصور - بحث جوجل - استخدام الصورة الافتراضية - استخدام الصور القديمة - - تشغيل - تشغيل التالي - تشغيل الألبوم - مزيد من الفنان - إعادة تسمية - حذف - إحضار صورة الألبوم - إحضار صورة الفنان - إزالة من الأغاني الأخيرة - استخدام كنغمة رنين - إزالة من قائمة التشغيل - تغيير الصورة - - تشغيل - إيقاف مؤقت - التالي - السابق - خلْط - خلْط الكل - تكرار - تكرار كل - تكرار واحدة - فتح قائمة الانتظار - استعراض الموسيقى - - تعيين \'%s\' كنغمة رنين - تمت إعادة تسميته قائمة التشغيل - - واجهة المستخدم - التخزين - البيانات - حذف ذاكرة التخزين المؤقت - إزالة كافة الصور المخزنة مؤقتاً - التحميل عن طريق الواي فاي فقط - للحد من تكاليف شركات الجوال، لا تحمل البيانات بواسطة شكبة الهاتف المحمول - تنزيل صورة الألبوم المفقودة - تحميل صور الفنان المفقودة - عام - إظهار المرئيات مع الموسيقى - عرض كلمات الأغاني - للأغاني التي تحتوي على ملف srt - هز للتشغيل - هز جهازك لتشغيل الأغنية التالية - صورة الألبوم شاشة القفل - استبدال خلفية شاشة القفل بصورة الألبوم - - موسيقى: 4 \u00d7 1 - موسيقى: 4 \u00d7 2 - موسيقى: 4 \u00d7 2 (بالتبادل) - الموسيقى: ما استمعت إليه مؤخراً - - تعذر فتح المعادل. - لنسخ ملفات الموسيقى من الكمبيوتر إلى الجهاز الخاص بك، استخدم كبل USB. - لم يتم العثور على نتائج البحث - الرجاء التحقق من أن هجاء الكلمات صحيح أو حاول البحث باستخدام كمات دالة مختلفة. - الأغاني التي وضعت عليها علامة المفضلة ستظهر هنا. - لا توجد أغاني حديثة. - الأغاني التي استمعت إليها مؤخراً ستظهر هنا. - لا توجد أغاني في قائمة التشغيل - لإضافة الأغاني إلى قائمة التشغيل هذه، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \"إضافة إلى قائمة التشغيل\". - لا توجد أغاني أعلى - ستُضاف الأغاني التي تسمعها كثيراً إلى هذه القائمة. - لم تُضف أغاني مؤخراً - - هنا ستظهر الأغاني التي قمت بإضافتها خلال الشهر الماضي. - لم يتم العثور على موسيقى - لنسخ ملفات الموسيقى من الكمبيوتر إلى الجهاز الخاص بك، استخدم كبل USB. - لا توجد أغاني في قائمة الانتظار - لإضافة الأغاني إلى قائمة الانتظار، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \"إضافة إلى قائمة الانتظار\". - تعذر تشغيل الأغنية%1$s - - السنة غير معروفة - أقل من 30 ثانية - 30 - 60 ثانية - 1 - 2 دقيقة - 2 - 3 دقائق - 3 - 4 دقائق - 4 - 5 دقائق - 5 - 10 دقائق - 10 - 30 دقيقة - 30 - 60 دقيقة - أكثر من 60 دقيقة - ١ أغنية - 2-4 أغاني - 5-9 أغاني - 10 + أغاني - 5 + ألبومات - "أخرى" - إظهار جميع الفنانين - إظهار جميع الألبومات - إظهار جميع الأغاني - إظهار جميع قوائم التشغيل - البحث عن موسيقى - جميع الفنانين \"%s\" - جميع ألبومات \"%s\" - جميع أغاني \"%s\" - جميع قوائم التشغيل \"%s\" - %1$s %2$s + موسيقى + حديث + فنانون + ألبومات + أغاني + قوائم تشغيل + أنواع + قيد التشغيل + قائمة انتظار التشغيل + ألبومات + الأغاني الأعلى + كل الأغاني + إعدادات + بحث + خلْط + خلْط الكل + خلط قائمة التشغيل + خلْط الألبوم + خلط الفنانين + خلط الأغاني الأعلى + خلط الأغاني التي أذيعت مؤخراً + خلط آخر أغاني أضيفت + تشغيل الكل + الترتيب حسب + مسح القائمة + مسح الأغاني الأخيرة + مسح قائمة الانتظار + حفظ قائمة الانتظار إلى قائمة التشغيل + المعادل + إضافة إلى قائمة التشغيل + إضافة إلى قائمة الانتظار + إزالة من الأغاني الأخيرة + إزالة من قائمة الانتظار + من الألف إلى الياء + من الياء إلى الألف + فنان + ألبوم + السنة + المدة + تاريخ الإضافة + قائمة الأغاني + عدد الأغاني + عدد الألبومات + اختر الملف + أخر ما أضيف + أغاني أذيعت مؤخراً + الأغاني الأعلى لي + قائمة تشغيل جديدة + حفظ + الغاء + استبدال + مسح + قائمة التشغيل %d + اسم قائمة التشغيل + حذف %s؟ + مسح الأغاني الأعلى + مسح الأغاني التي أذيعت مؤخراً؟ + مسح آخر أغاني أضيفت؟ + لا يمكن التراجع عن هذا + سيؤدي هذا إلى حذف إدخالات الصورة المخزنة مؤقتاً بشكل دائم + اختيار صورة من معرض الصور + بحث جوجل + استخدام الصورة الافتراضية + استخدام الصور القديمة + تشغيل + تشغيل التالي + تشغيل الألبوم + مزيد من الفنان + إعادة تسمية + حذف + إحضار صورة الألبوم + إحضار صورة الفنان + إزالة من الأغاني الأخيرة + استخدام كنغمة رنين + إزالة من قائمة التشغيل + تغيير الصورة + تشغيل + إيقاف مؤقت + التالي + السابق + خلْط + خلْط الكل + تكرار + تكرار كل + تكرار واحدة + فتح قائمة الانتظار + استعراض الموسيقى + تعيين \'%s\' كنغمة رنين + تمت إعادة تسميته قائمة التشغيل + واجهة المستخدم + التخزين + البيانات + حذف ذاكرة التخزين المؤقت + إزالة كافة الصور المخزنة مؤقتاً + التحميل عن طريق الواي فاي فقط + للحد من تكاليف شركات الجوال، لا تحمل البيانات بواسطة شكبة الهاتف المحمول + تنزيل صورة الألبوم المفقودة + تحميل صور الفنان المفقودة + عام + إظهار المرئيات مع الموسيقى + عرض كلمات الأغاني + للأغاني التي تحتوي على ملف srt + هز للتشغيل + هز جهازك لتشغيل الأغنية التالية + صورة الألبوم شاشة القفل + استبدال خلفية شاشة القفل بصورة الألبوم + موسيقى: 4 \u00d7 1 + موسيقى: 4 \u00d7 2 + موسيقى: 4 \u00d7 2 (بالتبادل) + الموسيقى: ما استمعت إليه مؤخراً + تعذر فتح المعادل. + لنسخ ملفات الموسيقى من الكمبيوتر إلى الجهاز الخاص بك، استخدم كبل USB. + لم يتم العثور على نتائج البحث + الرجاء التحقق من أن هجاء الكلمات صحيح أو حاول البحث باستخدام كمات دالة مختلفة. + الأغاني التي وضعت عليها علامة المفضلة ستظهر هنا. + لا توجد أغاني حديثة. + الأغاني التي استمعت إليها مؤخراً ستظهر هنا. + لا توجد أغاني في قائمة التشغيل + لإضافة الأغاني إلى قائمة التشغيل هذه، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \"إضافة إلى قائمة التشغيل\". + لا توجد أغاني أعلى + ستُضاف الأغاني التي تسمعها كثيراً إلى هذه القائمة. + لم تُضف أغاني مؤخراً + هنا ستظهر الأغاني التي قمت بإضافتها خلال الشهر الماضي. + لم يتم العثور على موسيقى + لنسخ ملفات الموسيقى من الكمبيوتر إلى الجهاز الخاص بك، استخدم كبل USB. + لا توجد أغاني في قائمة الانتظار + لإضافة الأغاني إلى قائمة الانتظار، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \"إضافة إلى قائمة الانتظار\". + تعذر تشغيل الأغنية%1$s + السنة غير معروفة + أقل من 30 ثانية + 30 - 60 ثانية + 1 - 2 دقيقة + 2 - 3 دقائق + 3 - 4 دقائق + 4 - 5 دقائق + 5 - 10 دقائق + 10 - 30 دقيقة + 30 - 60 دقيقة + أكثر من 60 دقيقة + ١ أغنية + 2-4 أغاني + 5-9 أغاني + 10 + أغاني + 5 + ألبومات + "أخرى" + إظهار جميع الفنانين + إظهار جميع الألبومات + إظهار جميع الأغاني + إظهار جميع قوائم التشغيل + البحث عن موسيقى + جميع الفنانين \"%s\" + جميع ألبومات \"%s\" + جميع أغاني \"%s\" + جميع قوائم التشغيل \"%s\" + %1$s %2$s + تشغيل الموسيقى diff --git a/app/src/main/res/values-as-rIN/plurals.xml b/app/src/main/res/values-as-rIN/plurals.xml index ceabe5d..da72029 100644 --- a/app/src/main/res/values-as-rIN/plurals.xml +++ b/app/src/main/res/values-as-rIN/plurals.xml @@ -17,51 +17,40 @@ limitations under the License. --> - - - %d শিল্পী - %d শিল্পী - - - - %d এলবাম - %d এলবামসমূহ - - - - %d গীত - %d গীতসমূহ - - - - %d ৰকম - %d ৰকম - - - - - - %d গীত প্লে’লিষ্টত যোগ কৰা হৈছে। - %d প্লে’লিষ্টত গীতসমূহ যোগ কৰা হৈছে - - - - %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। - %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। - - - - %d গীত লানি যোগ কৰা হৈছে। - %d গীত কিউত যোগ কৰা হৈছে। - - - - %d গীত প্ৰিয়ত যোগ কৰা হৈছে। - %d গীত প্ৰিয়ত যোগ কৰা হৈছে। - - - - %d গীত বিলোপ কৰা হৈছে। - %d গীতসমূহ মচি দিয়া হৈছে - + + %d শিল্পী + %d শিল্পী + + + %d এলবাম + %d এলবামসমূহ + + + %d গীত + %d গীতসমূহ + + + %d ৰকম + %d ৰকম + + + %d গীত প্লে’লিষ্টত যোগ কৰা হৈছে। + %d প্লে’লিষ্টত গীতসমূহ যোগ কৰা হৈছে + + + %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। + %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। + + + %d গীত লানি যোগ কৰা হৈছে। + %d গীত কিউত যোগ কৰা হৈছে। + + + %d গীত প্ৰিয়ত যোগ কৰা হৈছে। + %d গীত প্ৰিয়ত যোগ কৰা হৈছে। + + + %d গীত বিলোপ কৰা হৈছে। + %d গীতসমূহ মচি দিয়া হৈছে + diff --git a/app/src/main/res/values-as-rIN/strings.xml b/app/src/main/res/values-as-rIN/strings.xml index 03c292a..a5fe8c5 100644 --- a/app/src/main/res/values-as-rIN/strings.xml +++ b/app/src/main/res/values-as-rIN/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - মিউজিক - - শেহতীয়া - চিত্ৰকৰসকল - এলবামসমূহ - গীতসমূহ - প্লেলিষ্টs - শ্ৰেণী - এতিয়া চলি আছে - প্লে কিউ - - এলবামসমূহ - শীৰ্ষ গীত - সকলো গীত - - ছেটিংছ - বিচাৰক - সানমিহলি কৰক - আটাইবোৰ সানমিহলি কৰক - প্লে-সূচী সানমিহলি কৰক - এলবাম সানমিহলি কৰক - শিল্পী সানমিহলি কৰক - শীৰ্ষ ট্ৰেকবোৰ সানমিহলি কৰক - শেহতীয়াকৈ প্লে কৰাবোৰ সানমিহলি কৰক - অন্তিম যোগ কৰাবোৰ সানমিহলি কৰক - আটাইবোৰ প্লে’ কৰক - সজাই লওঁক - তালিকাখন আঁতৰাওঁক - শেহতীয়াবোৰ পৰিষ্কাৰ কৰক - কিউ পৰিষ্কাৰ কৰক - প্লে-সূচীলৈ কিউ সংৰক্ষণ কৰক - ইকুইলাইজাৰ - - প্লেলিষ্টলৈ যোগ দিয়ক - কিউলৈ যোগ কৰক - শেহতীয়াৰ পৰা আঁতৰাওক - কিউৰ পৰা আঁতৰাওক - - A-Z - Z-A - চিত্ৰকৰ - এলবাম - বছৰ - সময়সীমা - তাৰিখ যোগ কৰা হৈছে - ট্ৰেক সূচী - গীতৰ সংখ্যা - এলবামৰ সংখ্যা - ফাইলনাম - - অন্তিম যোগ কৰা - শেহতীয়াকৈ প্লে কৰা - মোৰ শীৰ্ষ ট্ৰেকবোৰ - - নতুন প্লে-সূচী - ছেভ কৰা - নাকচ - অভাৰৰাইট - মুকলি কৰা - প্লে-সূচী %d - প্লেলিষ্টৰ নাম - মচি দিব নে %s? - শীৰ্ষ ট্ৰেকবোৰ পৰিষ্কাৰ কৰিব? - শেহতীয়াকৈ প্লে কৰাবোৰ পৰিষ্কাৰ কৰিব? - অন্তিম যোগ কৰাবোৰ পৰিষ্কাৰ কৰিব? - এইটো ওভতাব নোৱাৰি - ই কেশ্বড প্ৰতিচ্ছবি এণ্ট্ৰিবোৰ স্থায়ীভাবে আঁতৰাব - গেলাৰীৰ পৰা ফটো বাচনি কৰক - Google অনুসন্ধান - ডিফ\'ল্ট ফটো ব্যৱহাৰ কৰক - পুৰণি ফটো ব্যৱহাৰ কৰক - - চলাওঁক - পৰৱৰ্তীটো প্লে কৰক - এলবাম প্লে কৰক - শিল্পীৰ দ্বাৰা আৰু অধিক - পুনঃনামাকৰণ - মচি দিয়া - এলবাম আৰ্ট উলিয়াই আনক - শিল্পীৰ প্ৰতিচ্ছবি উলিয়াই আনক - শেহতীয়াৰ পৰা আঁতৰাওক - ৰিংটোন হিচাপে ব্যৱহাৰ কৰক - প্লেলিষ্টৰ পৰা মচি পেলাওঁক - প্ৰতিচ্ছবি পৰিৱৰ্তন কৰক - - চলাওঁক - পজ - পৰৱৰ্তী - পূৰ্বৱৰ্তী - সানমিহলি কৰক - আটাইবোৰ সানমিহলি কৰক - পুনৰাবৃত্তি - সকলো পুনৰাবৃত্তি কৰক - এটা পুনৰাবৃত্তি কৰক - কিউ খোলক - সংগীত ব্ৰাউজ কৰক - - \'%s\' ৰিংটোন হিচাপে ছেট কৰা হৈছে - প্লে-সূচী পুনৰ নামাকৰণ কৰা হৈছে - - ইণ্টাৰফেচ - ষ্টোৰেজ - ডাটা - কেশ্ব বিলোপ কৰক - কেশ্বড কৰা সকলো প্ৰতিচ্ছবি আঁতৰাওক - কেৱল Wi-Fiৰ মাধ্যমেৰে ডাউনলোড কৰক - কেৰিয়াৰৰ মাচুল হ্ৰাস কৰিবলৈ, ম\'বাইল নেটৱৰ্কৰে ডাউনলোড নকৰিব - হেৰুওৱা এলবাম আৰ্ট ডাউনলোড কৰক - হেৰুওৱা শিল্পীৰ প্ৰতিচ্ছবি ডাউনলোড কৰক - সাধাৰণ - সংগীত ভিজুৱেলাইজেশ্বন প্ৰদৰ্শন কৰক - গীতৰ কথা প্ৰদৰ্শন কৰক - srt ফাইল থকা গীতৰ বাবে - প্লে কৰিবলৈ জোকাৰক - পৰৱৰ্তী গীতটো বজাবলৈ আপোনাৰ ডিভাইচটো জোকাৰক - লকস্ক্ৰীণ এলবাম আৰ্ট - এলবাম আৰ্টেৰে লকস্ক্ৰীণ পৃষ্ঠভূমি পৰিৱৰ্তন কৰক - - সংগীত: 4 \u00d7 1 - সংগীত: 4 \u00d7 2 - সংগীত: 4 \u00d7 2 (বিকল্প) - সংগীত: শেহতীয়াকৈ শুনা - - ইকুইলাইজাৰ খুলিব পৰা নগ\'ল - কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক - কোনো অনুসন্ধান ফলাফল পোৱা নগ\'ল - অনুগ্ৰহ কৰি পৰীক্ষা কৰক যে আপুনি সঠিক বানান দিছে বা আন এটা কীৱৰ্ড চেষ্টা কৰক - আপুনি প্ৰিয় হিচাপে চিহ্নিত কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। - কোনো শেহতীয়া গীত নাই - আপুনি শেহতীয়াকৈ শুনা গীতবোৰ ইয়াত প্ৰদৰ্শিত হ\'ব। - কোনো গীত প্লে-সূচী নাই - এই প্লে-সূচীলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to playlist\" চয়ন কৰক। - কোনো শীৰ্ষ ট্ৰেক নাই - আপুনি প্ৰায়েই শুনা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। - শেহতীয়াকৈ কোনো গীত যোগ কৰা নাই - আপুনি যোৱা মাহত যোগ কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। - কোনো মিউজিক পোৱা নাই - কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক - প্লে কিউত কোনো গীত নাই - আপোনাৰ এই প্লে কিউলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to queue\" চয়ন কৰক। - ট্ৰেক %1$s টো প্লে কৰিবলৈ অক্ষম - - অজানা বছৰ - 30 ছেকেণ্ডতকৈ কম - 30 - 60 ছেকেণ্ড - 1 - 2 মিনিট - 2 - 3 মিনিট - 3 - 4 মিনিট - 4 - 5 মিনিট - 5 - 10 মিনিট - 10 - 30 মিনিট - 30 - 60 মিনিট - 60 মিনিটতকৈ অধিক - 1 টা গান - 2 - 4 টা গীত - 5 - 9 টা গীত - 10+ টা গান - 5+ এলবাম - ""অন্যান্য"" - সকলো শিল্পী প্ৰদৰ্শন কৰক - সকলো এলবাম প্ৰদৰ্শন কৰক - সকলো গীত প্ৰদৰ্শন কৰক - সকলো প্লে-সূচী প্ৰদৰ্শন কৰক - সংগীত বিচাৰক - সকলো \"%s\" শিল্পী - সকলো \"%s\" এলবাম - সকলো \"%s\" গীত - সকলো \"%s\" প্লে-সূচী - %1$s %2$s + মিউজিক + শেহতীয়া + চিত্ৰকৰসকল + এলবামসমূহ + গীতসমূহ + প্লেলিষ্টs + শ্ৰেণী + এতিয়া চলি আছে + প্লে কিউ + এলবামসমূহ + শীৰ্ষ গীত + সকলো গীত + ছেটিংছ + বিচাৰক + সানমিহলি কৰক + আটাইবোৰ সানমিহলি কৰক + প্লে-সূচী সানমিহলি কৰক + এলবাম সানমিহলি কৰক + শিল্পী সানমিহলি কৰক + শীৰ্ষ ট্ৰেকবোৰ সানমিহলি কৰক + শেহতীয়াকৈ প্লে কৰাবোৰ সানমিহলি কৰক + অন্তিম যোগ কৰাবোৰ সানমিহলি কৰক + আটাইবোৰ প্লে’ কৰক + সজাই লওঁক + তালিকাখন আঁতৰাওঁক + শেহতীয়াবোৰ পৰিষ্কাৰ কৰক + কিউ পৰিষ্কাৰ কৰক + প্লে-সূচীলৈ কিউ সংৰক্ষণ কৰক + ইকুইলাইজাৰ + প্লেলিষ্টলৈ যোগ দিয়ক + কিউলৈ যোগ কৰক + শেহতীয়াৰ পৰা আঁতৰাওক + কিউৰ পৰা আঁতৰাওক + A-Z + Z-A + চিত্ৰকৰ + এলবাম + বছৰ + সময়সীমা + তাৰিখ যোগ কৰা হৈছে + ট্ৰেক সূচী + গীতৰ সংখ্যা + এলবামৰ সংখ্যা + ফাইলনাম + অন্তিম যোগ কৰা + শেহতীয়াকৈ প্লে কৰা + মোৰ শীৰ্ষ ট্ৰেকবোৰ + নতুন প্লে-সূচী + ছেভ কৰা + নাকচ + অভাৰৰাইট + মুকলি কৰা + প্লে-সূচী %d + প্লেলিষ্টৰ নাম + মচি দিব নে %s? + শীৰ্ষ ট্ৰেকবোৰ পৰিষ্কাৰ কৰিব? + শেহতীয়াকৈ প্লে কৰাবোৰ পৰিষ্কাৰ কৰিব? + অন্তিম যোগ কৰাবোৰ পৰিষ্কাৰ কৰিব? + এইটো ওভতাব নোৱাৰি + ই কেশ্বড প্ৰতিচ্ছবি এণ্ট্ৰিবোৰ স্থায়ীভাবে আঁতৰাব + গেলাৰীৰ পৰা ফটো বাচনি কৰক + Google অনুসন্ধান + ডিফ\'ল্ট ফটো ব্যৱহাৰ কৰক + পুৰণি ফটো ব্যৱহাৰ কৰক + চলাওঁক + পৰৱৰ্তীটো প্লে কৰক + এলবাম প্লে কৰক + শিল্পীৰ দ্বাৰা আৰু অধিক + পুনঃনামাকৰণ + মচি দিয়া + এলবাম আৰ্ট উলিয়াই আনক + শিল্পীৰ প্ৰতিচ্ছবি উলিয়াই আনক + শেহতীয়াৰ পৰা আঁতৰাওক + ৰিংটোন হিচাপে ব্যৱহাৰ কৰক + প্লেলিষ্টৰ পৰা মচি পেলাওঁক + প্ৰতিচ্ছবি পৰিৱৰ্তন কৰক + চলাওঁক + পজ + পৰৱৰ্তী + পূৰ্বৱৰ্তী + সানমিহলি কৰক + আটাইবোৰ সানমিহলি কৰক + পুনৰাবৃত্তি + সকলো পুনৰাবৃত্তি কৰক + এটা পুনৰাবৃত্তি কৰক + কিউ খোলক + সংগীত ব্ৰাউজ কৰক + \'%s\' ৰিংটোন হিচাপে ছেট কৰা হৈছে + প্লে-সূচী পুনৰ নামাকৰণ কৰা হৈছে + ইণ্টাৰফেচ + ষ্টোৰেজ + ডাটা + কেশ্ব বিলোপ কৰক + কেশ্বড কৰা সকলো প্ৰতিচ্ছবি আঁতৰাওক + কেৱল Wi-Fiৰ মাধ্যমেৰে ডাউনলোড কৰক + কেৰিয়াৰৰ মাচুল হ্ৰাস কৰিবলৈ, ম\'বাইল নেটৱৰ্কৰে ডাউনলোড নকৰিব + হেৰুওৱা এলবাম আৰ্ট ডাউনলোড কৰক + হেৰুওৱা শিল্পীৰ প্ৰতিচ্ছবি ডাউনলোড কৰক + সাধাৰণ + সংগীত ভিজুৱেলাইজেশ্বন প্ৰদৰ্শন কৰক + গীতৰ কথা প্ৰদৰ্শন কৰক + srt ফাইল থকা গীতৰ বাবে + প্লে কৰিবলৈ জোকাৰক + পৰৱৰ্তী গীতটো বজাবলৈ আপোনাৰ ডিভাইচটো জোকাৰক + লকস্ক্ৰীণ এলবাম আৰ্ট + এলবাম আৰ্টেৰে লকস্ক্ৰীণ পৃষ্ঠভূমি পৰিৱৰ্তন কৰক + সংগীত: 4 \u00d7 1 + সংগীত: 4 \u00d7 2 + সংগীত: 4 \u00d7 2 (বিকল্প) + সংগীত: শেহতীয়াকৈ শুনা + ইকুইলাইজাৰ খুলিব পৰা নগ\'ল + কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক + কোনো অনুসন্ধান ফলাফল পোৱা নগ\'ল + অনুগ্ৰহ কৰি পৰীক্ষা কৰক যে আপুনি সঠিক বানান দিছে বা আন এটা কীৱৰ্ড চেষ্টা কৰক + আপুনি প্ৰিয় হিচাপে চিহ্নিত কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + কোনো শেহতীয়া গীত নাই + আপুনি শেহতীয়াকৈ শুনা গীতবোৰ ইয়াত প্ৰদৰ্শিত হ\'ব। + কোনো গীত প্লে-সূচী নাই + এই প্লে-সূচীলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to playlist\" চয়ন কৰক। + কোনো শীৰ্ষ ট্ৰেক নাই + আপুনি প্ৰায়েই শুনা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + শেহতীয়াকৈ কোনো গীত যোগ কৰা নাই + আপুনি যোৱা মাহত যোগ কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + কোনো মিউজিক পোৱা নাই + কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক + প্লে কিউত কোনো গীত নাই + আপোনাৰ এই প্লে কিউলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to queue\" চয়ন কৰক। + ট্ৰেক %1$s টো প্লে কৰিবলৈ অক্ষম + অজানা বছৰ + 30 ছেকেণ্ডতকৈ কম + 30 - 60 ছেকেণ্ড + 1 - 2 মিনিট + 2 - 3 মিনিট + 3 - 4 মিনিট + 4 - 5 মিনিট + 5 - 10 মিনিট + 10 - 30 মিনিট + 30 - 60 মিনিট + 60 মিনিটতকৈ অধিক + 1 টা গান + 2 - 4 টা গীত + 5 - 9 টা গীত + 10+ টা গান + 5+ এলবাম + ""অন্যান্য"" + সকলো শিল্পী প্ৰদৰ্শন কৰক + সকলো এলবাম প্ৰদৰ্শন কৰক + সকলো গীত প্ৰদৰ্শন কৰক + সকলো প্লে-সূচী প্ৰদৰ্শন কৰক + সংগীত বিচাৰক + সকলো \"%s\" শিল্পী + সকলো \"%s\" এলবাম + সকলো \"%s\" গীত + সকলো \"%s\" প্লে-সূচী + %1$s %2$s diff --git a/app/src/main/res/values-as/plurals.xml b/app/src/main/res/values-as/plurals.xml new file mode 100644 index 0000000..da72029 --- /dev/null +++ b/app/src/main/res/values-as/plurals.xml @@ -0,0 +1,56 @@ + + + + + + %d শিল্পী + %d শিল্পী + + + %d এলবাম + %d এলবামসমূহ + + + %d গীত + %d গীতসমূহ + + + %d ৰকম + %d ৰকম + + + %d গীত প্লে’লিষ্টত যোগ কৰা হৈছে। + %d প্লে’লিষ্টত গীতসমূহ যোগ কৰা হৈছে + + + %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। + %d গীত প্লে’লিষ্টৰ পৰা আঁতৰোৱা হৈছে। + + + %d গীত লানি যোগ কৰা হৈছে। + %d গীত কিউত যোগ কৰা হৈছে। + + + %d গীত প্ৰিয়ত যোগ কৰা হৈছে। + %d গীত প্ৰিয়ত যোগ কৰা হৈছে। + + + %d গীত বিলোপ কৰা হৈছে। + %d গীতসমূহ মচি দিয়া হৈছে + + diff --git a/app/src/main/res/values-as/strings.xml b/app/src/main/res/values-as/strings.xml new file mode 100644 index 0000000..a5fe8c5 --- /dev/null +++ b/app/src/main/res/values-as/strings.xml @@ -0,0 +1,175 @@ + + + + + মিউজিক + শেহতীয়া + চিত্ৰকৰসকল + এলবামসমূহ + গীতসমূহ + প্লেলিষ্টs + শ্ৰেণী + এতিয়া চলি আছে + প্লে কিউ + এলবামসমূহ + শীৰ্ষ গীত + সকলো গীত + ছেটিংছ + বিচাৰক + সানমিহলি কৰক + আটাইবোৰ সানমিহলি কৰক + প্লে-সূচী সানমিহলি কৰক + এলবাম সানমিহলি কৰক + শিল্পী সানমিহলি কৰক + শীৰ্ষ ট্ৰেকবোৰ সানমিহলি কৰক + শেহতীয়াকৈ প্লে কৰাবোৰ সানমিহলি কৰক + অন্তিম যোগ কৰাবোৰ সানমিহলি কৰক + আটাইবোৰ প্লে’ কৰক + সজাই লওঁক + তালিকাখন আঁতৰাওঁক + শেহতীয়াবোৰ পৰিষ্কাৰ কৰক + কিউ পৰিষ্কাৰ কৰক + প্লে-সূচীলৈ কিউ সংৰক্ষণ কৰক + ইকুইলাইজাৰ + প্লেলিষ্টলৈ যোগ দিয়ক + কিউলৈ যোগ কৰক + শেহতীয়াৰ পৰা আঁতৰাওক + কিউৰ পৰা আঁতৰাওক + A-Z + Z-A + চিত্ৰকৰ + এলবাম + বছৰ + সময়সীমা + তাৰিখ যোগ কৰা হৈছে + ট্ৰেক সূচী + গীতৰ সংখ্যা + এলবামৰ সংখ্যা + ফাইলনাম + অন্তিম যোগ কৰা + শেহতীয়াকৈ প্লে কৰা + মোৰ শীৰ্ষ ট্ৰেকবোৰ + নতুন প্লে-সূচী + ছেভ কৰা + নাকচ + অভাৰৰাইট + মুকলি কৰা + প্লে-সূচী %d + প্লেলিষ্টৰ নাম + মচি দিব নে %s? + শীৰ্ষ ট্ৰেকবোৰ পৰিষ্কাৰ কৰিব? + শেহতীয়াকৈ প্লে কৰাবোৰ পৰিষ্কাৰ কৰিব? + অন্তিম যোগ কৰাবোৰ পৰিষ্কাৰ কৰিব? + এইটো ওভতাব নোৱাৰি + ই কেশ্বড প্ৰতিচ্ছবি এণ্ট্ৰিবোৰ স্থায়ীভাবে আঁতৰাব + গেলাৰীৰ পৰা ফটো বাচনি কৰক + Google অনুসন্ধান + ডিফ\'ল্ট ফটো ব্যৱহাৰ কৰক + পুৰণি ফটো ব্যৱহাৰ কৰক + চলাওঁক + পৰৱৰ্তীটো প্লে কৰক + এলবাম প্লে কৰক + শিল্পীৰ দ্বাৰা আৰু অধিক + পুনঃনামাকৰণ + মচি দিয়া + এলবাম আৰ্ট উলিয়াই আনক + শিল্পীৰ প্ৰতিচ্ছবি উলিয়াই আনক + শেহতীয়াৰ পৰা আঁতৰাওক + ৰিংটোন হিচাপে ব্যৱহাৰ কৰক + প্লেলিষ্টৰ পৰা মচি পেলাওঁক + প্ৰতিচ্ছবি পৰিৱৰ্তন কৰক + চলাওঁক + পজ + পৰৱৰ্তী + পূৰ্বৱৰ্তী + সানমিহলি কৰক + আটাইবোৰ সানমিহলি কৰক + পুনৰাবৃত্তি + সকলো পুনৰাবৃত্তি কৰক + এটা পুনৰাবৃত্তি কৰক + কিউ খোলক + সংগীত ব্ৰাউজ কৰক + \'%s\' ৰিংটোন হিচাপে ছেট কৰা হৈছে + প্লে-সূচী পুনৰ নামাকৰণ কৰা হৈছে + ইণ্টাৰফেচ + ষ্টোৰেজ + ডাটা + কেশ্ব বিলোপ কৰক + কেশ্বড কৰা সকলো প্ৰতিচ্ছবি আঁতৰাওক + কেৱল Wi-Fiৰ মাধ্যমেৰে ডাউনলোড কৰক + কেৰিয়াৰৰ মাচুল হ্ৰাস কৰিবলৈ, ম\'বাইল নেটৱৰ্কৰে ডাউনলোড নকৰিব + হেৰুওৱা এলবাম আৰ্ট ডাউনলোড কৰক + হেৰুওৱা শিল্পীৰ প্ৰতিচ্ছবি ডাউনলোড কৰক + সাধাৰণ + সংগীত ভিজুৱেলাইজেশ্বন প্ৰদৰ্শন কৰক + গীতৰ কথা প্ৰদৰ্শন কৰক + srt ফাইল থকা গীতৰ বাবে + প্লে কৰিবলৈ জোকাৰক + পৰৱৰ্তী গীতটো বজাবলৈ আপোনাৰ ডিভাইচটো জোকাৰক + লকস্ক্ৰীণ এলবাম আৰ্ট + এলবাম আৰ্টেৰে লকস্ক্ৰীণ পৃষ্ঠভূমি পৰিৱৰ্তন কৰক + সংগীত: 4 \u00d7 1 + সংগীত: 4 \u00d7 2 + সংগীত: 4 \u00d7 2 (বিকল্প) + সংগীত: শেহতীয়াকৈ শুনা + ইকুইলাইজাৰ খুলিব পৰা নগ\'ল + কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক + কোনো অনুসন্ধান ফলাফল পোৱা নগ\'ল + অনুগ্ৰহ কৰি পৰীক্ষা কৰক যে আপুনি সঠিক বানান দিছে বা আন এটা কীৱৰ্ড চেষ্টা কৰক + আপুনি প্ৰিয় হিচাপে চিহ্নিত কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + কোনো শেহতীয়া গীত নাই + আপুনি শেহতীয়াকৈ শুনা গীতবোৰ ইয়াত প্ৰদৰ্শিত হ\'ব। + কোনো গীত প্লে-সূচী নাই + এই প্লে-সূচীলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to playlist\" চয়ন কৰক। + কোনো শীৰ্ষ ট্ৰেক নাই + আপুনি প্ৰায়েই শুনা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + শেহতীয়াকৈ কোনো গীত যোগ কৰা নাই + আপুনি যোৱা মাহত যোগ কৰা গীতবোৰ ইয়াত দেখুওৱা হ\'ব। + কোনো মিউজিক পোৱা নাই + কম্পিউটাৰৰ পৰা আপোনাৰ ডিভাইচলৈ সংগীত কপি কৰিবলৈ, এডাল USB কেবল ব্যৱহাৰ কৰক + প্লে কিউত কোনো গীত নাই + আপোনাৰ এই প্লে কিউলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \"Add to queue\" চয়ন কৰক। + ট্ৰেক %1$s টো প্লে কৰিবলৈ অক্ষম + অজানা বছৰ + 30 ছেকেণ্ডতকৈ কম + 30 - 60 ছেকেণ্ড + 1 - 2 মিনিট + 2 - 3 মিনিট + 3 - 4 মিনিট + 4 - 5 মিনিট + 5 - 10 মিনিট + 10 - 30 মিনিট + 30 - 60 মিনিট + 60 মিনিটতকৈ অধিক + 1 টা গান + 2 - 4 টা গীত + 5 - 9 টা গীত + 10+ টা গান + 5+ এলবাম + ""অন্যান্য"" + সকলো শিল্পী প্ৰদৰ্শন কৰক + সকলো এলবাম প্ৰদৰ্শন কৰক + সকলো গীত প্ৰদৰ্শন কৰক + সকলো প্লে-সূচী প্ৰদৰ্শন কৰক + সংগীত বিচাৰক + সকলো \"%s\" শিল্পী + সকলো \"%s\" এলবাম + সকলো \"%s\" গীত + সকলো \"%s\" প্লে-সূচী + %1$s %2$s + diff --git a/app/src/main/res/values-ast-rES/plurals.xml b/app/src/main/res/values-ast-rES/plurals.xml index f2a99ba..efd7cdb 100644 --- a/app/src/main/res/values-ast-rES/plurals.xml +++ b/app/src/main/res/values-ast-rES/plurals.xml @@ -17,55 +17,48 @@ limitations under the License. --> - - - - %d álbum - %d álbumes - - - - %d canción - %d canciones - - - - %d xéneru - %d xéneros - - - - %dh - %dh - - - - %dm - %dm - - - - %d canción amestada a la llista. - %d canciones amestaes a la llista. - - - - %d canción desaniciada de la llista. - %d canciones desaniciaes de la llista. - - - - %d canción amestada a la cola. - %d canciones amestaes a la cola. - - - - %d canción amestada a favoritos. - %d canciones amestaes a favoritos. - - - - Desanicióse %d canción. - Desaniciáronse %d canciones. - + + %d artista + %d artistes + + + %d álbum + %d álbumes + + + %d canción + %d canciones + + + %d xéneru + %d xéneros + + + %dh + %dh + + + %dm + %dm + + + %d canción amestada a la llista. + %d canciones amestaes a la llista. + + + %d canción desaniciada de la llista. + %d canciones desaniciaes de la llista. + + + %d canción amestada a la cola. + %d canciones amestaes a la cola. + + + %d canción amestada a favoritos. + %d canciones amestaes a favoritos. + + + Desanicióse %d canción. + Desaniciáronse %d canciones. + diff --git a/app/src/main/res/values-ast-rES/strings.xml b/app/src/main/res/values-ast-rES/strings.xml index 2048cfa..813f296 100644 --- a/app/src/main/res/values-ast-rES/strings.xml +++ b/app/src/main/res/values-ast-rES/strings.xml @@ -17,119 +17,160 @@ limitations under the License. --> - Música - - Reciente - Artistes - Álbumes - Canciones - Llistes de reproducción - Xéneros - Reproduciendo agora - Cola de reproducción - - Álbumes - Canciones más escuchaes - Toles canciones - - Axustes - Guetar - Al debalu - Too al debalu - Llista de reproducción aleatoria - Álbum al debalu - Artistes al debalu - Canciones más sentíes al debalu - Reproducir too - Llimpiar cola - Ecualizador - - - A-Z - Z-A - Artista - Álbum - Añu - Duración - Númberu de canciones - Númberu d\'álbumes - Nome de ficheru - - Reproducío apocayá - - Guardar - Encaboxar - Sobrescribir - ¿Desaniciar %s? - Esto nun pue desafacese - Esto desaniciará dafechu toles imáxenes na caché - Gueta de Google - - Reproducir - Siguiente - Reproducir álbum - Más del artista - Renomar - Desaniciar - Usar como timbre - Camudar imaxe - - Reproducir - Posar - Siguiente - Anterior - Al debalu - Too al debalu - Repitir - Repitilo too - Repitir una - Abrir cola - - «%s» afitóse como timbre - - Interfaz - Almacenamientu - Datos - Desanciar caché - Desanicia toles imáxenes na caché - Baxar namái per Wi-fi - P\'amenorgar los cargos de la operadora, nun baxar conteníu en rede móviles - Xeneral - Pa canciones que tengan un ficheru srt - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - - Nun s\'alcontraron resultaos de gueta - Nun hai canciones recientes - Nun s\'alcontró música - Nun hai canciones na cola - Nun pue reproducise la pista %1$s - - Añu desconocíu - Menos de 30 segundos - 30 - 60 segundos - 1 - 2 minutos - 2 - 3 minutos - 3 - 4 minutos - 4 - 5 minutos - 5 - 10 minutos - 10 - 30 minutos - 30 - 60 minutos - Más de 60 minutos - 1 canción - 2 - 4 canciones - 5 - 9 canciones - 10+ canciones - 5+ álbumes - Amosar tolos artistes - Amosar tolos álbumes - Amosar toles canciones - Amosar toles llistes - Guetar música - Tolos artistes de «%s» - Tolos álbumes de «%s» - Toles canciones de «%s» - Toles llistes de «%s» - %1$s %2$s + Música + Reciente + Artistes + Álbumes + Canciones + Llistes de reproducción + Xéneros + Reproduciendo agora + Cola de reproducción + Álbumes + Canciones más escuchaes + Toles canciones + Axustes + Guetar + Al debalu + Too al debalu + Llista de reproducción aleatoria + Álbum al debalu + Artistes al debalu + Canciones más sentíes al debalu + Caberes reproducíes aleatories + Caberes amestaes aleatories + Reproducir too + Ordenar per + Llimpiar llista + Llimpiar reciente + Llimpiar cola + Guardar cola a la llista de reproducción + Ecualizador + Amestar a la llista reproducción + Amestar a la cola + Desaniciar de reciente + Desaniciar de la cola + A-Z + Z-A + Artista + Álbum + Añu + Duración + Data amestáu + Llista de pistes + Númberu de canciones + Númberu d\'álbumes + Nome de ficheru + Recientes + Reproducío apocayá + Les canciones más escuchaes + Llista de reproducción nueva + Guardar + Encaboxar + Sobrescribir + Llimpiar + Llista %d + Nome de llista + ¿Desaniciar %s? + ¿Llimpiar les más reproducíes? + ¿Llimpiar reproducíos de recién? + ¿Llimpiar caberos amestaos? + Esto nun pue desafacese + Esto desaniciará dafechu toles imáxenes na caché + Esbillar imaxe de la Galería + Gueta de Google + Usar imaxe por defeutu + Usar imaxe previa + Reproducir + Siguiente + Reproducir álbum + Más del artista + Renomar + Desaniciar + Obtener carátula del álbum + Obtener semeya del artista + Quitar de recientes + Usar como timbre + Quitar de la llista + Camudar imaxe + Reproducir + Posar + Siguiente + Anterior + Al debalu + Too al debalu + Repitir + Repitilo too + Repitir una + Abrir cola + Restolar pente la música + «%s» afitóse como timbre + Llista renomada + Interfaz + Almacenamientu + Datos + Desanciar caché + Desanicia toles imáxenes na caché + Baxar namái per Wi-fi + P\'amenorgar los cargos de la operadora, nun baxar conteníu en rede móviles + Obtener carátules + Obtener semeyes d\'artistes + Xeneral + Amosar visualización musical + Amosar les lletres de les canciones + Pa canciones que tengan un ficheru srt + Xiringar pa reproducir + Xiringa\'l preséu pa reproducir la siguiente canción + Portada en pantalla de bloquéu + Trocar la pantalla de bloquéu cola imaxe del álbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternativu) + Música: Escuchaes recientemente + L\'ecualizador nun pudo abrise. + Pa copiar música del to ordenador al to preséu, usa un cable USB. + Nun s\'alcontraron resultaos de gueta + Comprueba que lo escribisti correutamente o intenta una pallabra clave diferente. + Les canciones que marques como favorites van apaecer equí. + Nun hai canciones recientes + Les canciones que sentisti hai poco van apaecer equí. + Nun hai canciones na llista + P\'amestar canciones a esta llista, toca nel menú d\'opciones d\'una canción, álbum o artista y seleiciona \u00ABAmestar a la llista\u00BB. + Nun hai canciones más escuchaes + Les canciones que más escuches van amestase a esta llista. + Nun s\'amestaron canciones recientemente + Les canciones qu\'amestasti\'l postrer mes, van apaecer equí. + Nun s\'alcontró música + Pa copiar música del ordenador al preséu, usa un cable USB. + Nun hai canciones na cola + P\'amestar canciones a la cola, toca nel menú d\'opciones d\'una canción, álbum o artista y seleiciona \u00ABAmestar a la cola\u00BB. + Nun pue reproducise la pista %1$s + Añu desconocíu + Menos de 30 segundos + 30 - 60 segundos + 1 - 2 minutos + 2 - 3 minutos + 3 - 4 minutos + 4 - 5 minutos + 5 - 10 minutos + 10 - 30 minutos + 30 - 60 minutos + Más de 60 minutos + 1 canción + 2 - 4 canciones + 5 - 9 canciones + 10+ canciones + 5+ álbumes + "Otru" + Amosar tolos artistes + Amosar tolos álbumes + Amosar toles canciones + Amosar toles llistes + Guetar música + Tolos artistes de «%s» + Tolos álbumes de «%s» + Toles canciones de «%s» + Toles llistes de «%s» + %1$s %2$s + Reproducción de música diff --git a/app/src/main/res/values-az/plurals.xml b/app/src/main/res/values-az/plurals.xml index 99af888..16930a7 100644 --- a/app/src/main/res/values-az/plurals.xml +++ b/app/src/main/res/values-az/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d müğənni - %d müğənni - - - - %d albom - %d albom - - - - %d mahnı - %d mahnı - - - - %d janr - %d janr - - - - %dsa - %dsa - - - - %ddəq - %ddəq - - - - %d mahnı çalma siyahısına əlavə edildi. - %d mahnı siyahısına əlavə edildi. - - - - %d mahnı çalma siyahısından çıxarıldı. - %d mahnı çalma siyahısından çıxarıldı. - - - - %d mahnı növbəyə əlavə edildi. - %d mahnı növbəyə əlavə edildi. - - - - %d mahnı seçilmişlərə əlavə edildi. - %d mahnı seçilmişlərə əlavə edildi. - - - - %d mahnı silindi. - %d mahnı silindi. - + + %d müğənni + %d müğənni + + + %d albom + %d albom + + + %d mahnı + %d mahnı + + + %d janr + %d janr + + + %dsa + %dsa + + + %ddəq + %ddəq + + + %d mahnı çalma siyahısına əlavə edildi. + %d mahnı siyahısına əlavə edildi. + + + %d mahnı çalma siyahısından çıxarıldı. + %d mahnı çalma siyahısından çıxarıldı. + + + %d mahnı növbəyə əlavə edildi. + %d mahnı növbəyə əlavə edildi. + + + %d mahnı seçilmişlərə əlavə edildi. + %d mahnı seçilmişlərə əlavə edildi. + + + %d mahnı silindi. + %d mahnı silindi. + diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 0d3709f..c1b4770 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -17,171 +17,157 @@ limitations under the License. --> - Musiqi - - Ən son - Sənətkarlar - Albomlar - Mahnılar - Çalma siyahıları - Janrlar - İndi Çalınan - Növbədəkini Çal - - Albomlar - Top Mahnılar - Bütün Mahnılar - - Tənzimləmələr - Axtar - Qarışdır - Hamısını qarışdır - Çalma siyahısını qarışdır - Albomu qarışdır - Sənətkarı qarışdır - Ən çox dinlənənləri qarışdır - Son çalınanları qarışdır - Son əlavə edilənləri qarışdır - Hamısını çal - Sıralama: - Siyahını təmizlə - Son çalınanları təmizlə - Növbədəkini sil - Növbəni çalma siyahısında saxla - Ekvalayzer - - Çalma siyahısına əlavə et - Növbəyə əlavə et - Son çalınanlardan çıxart - Növbədən çıxart - - A-Z - Z-A - Sənətkar - Albom - İl - Müddət - Əlavə edilmə tarixi - Musiqi siyahısı - Mahnı sayı - Albom sayı - Fayl adı - - Son əlavə edilənlər - Son çalınan - Top musiqilərim - - Yeni çalma siyahısı - Saxla - İmtina - Üzərinə yaz - Təmizlə - Çalma siyahısı %d - Çalma siyahısı adı - %s silinsin? - Son çalınanlar təmizlənsin? - Son əlavə edilənlər təmizlənsin? - Bu əməliyyat geri alına bilməz - Bu, gizli yaddaşda olan təsvirləri birdəfəlik siləcək - Qalereyadan foto seçin - Google axtarışı - İlkin fotodan istifadə et - Köhnə fotodan istifadə et - - Çal - Sonrakını çal - Albomu oynat - Sənətçidən daha çox - Yenidən adlandır - Sil - Albomun üz qabığını endir - Sənətçinin şəklini endir - Son çalınanlardan çıxart - Zəng səsi kimi istifadə et - Çalma siyahısından çıxart - Şəkli dəyişdir - - Çal - Fasilə - Sonrakı - Əvvəlki - Qarışdır - Hamısını qarışdır - Təkrarla - Hamısını təkrarla - Birini təkrarla - Növbəni aç - Musiqini gözdən keçir - - \'%s\' zəng səsi kimi tənzimləndi - Çalma siyahısını yenidən adlandır - - İnterfeys - Saxlama - Verilənlər - Gizli yaddaşı sil - Gizli yaddaşdakı bütün təsvirləri sil - Yalnız Wi-Fi ilə endir - Operator xərclərini azaltmaq üçün mobil şəbəkələr üzərindən endirmə etməyin - Əskik albom üz qabıqlarını endir - Əskik sənətkar şəkillərini endir - Ümumi - Musiqi əyaniləşdiricini göstər - Mahnı sözlərini göstər - srt faylı olan mahnılar üçün - Oynatmaq üçün silkələyin - Növbəti mahnını səsləndirmək üçün cihazınızı silkələyin - Kilit ekranı albom üzü - Kilit ekranı arxaplanını albom üzü ilə əvəz edər - - Musiqi: 4 \u00d7 1 - Musiqi: 4 \u00d7 2 - Musiqi: 4 \u00d7 2 (alternativ) - Musiqi: son vaxtlar dinlənən - - Ekvalayzer açılmadı. - Komputerinizdən cihazınıza musiqi kopyalamaq üçün USB kabeldən istifadə edin. - Axtarış nəticə vermədi - Zəhmət olmasa düzgün söz daxil etdiyinizi yoxlayın və ya fərqli bir söz yoxlayın. - Seçilmiş kimi işarələdiyiniz mahnılar burada görünəcək. - Son çalınan mahnı yoxdur - Son vaxtlar dinlədiyiniz mahnılar burada görünəcək. - Çalma siyahısında mahnı yoxdur - Bu çalma siyahısına mahnı əlavə etmək üçün seçimlərdən \"Çalma siyahısına əlavə et\"ə toxunun. - Top musiqilər yoxdur - Çox vaxt dinlədiyiniz mahnılar bu siyahıya əlavə olunacaq. - Son vaxtlar mahnı əlavə edilməyib - Keçən ay əlavə edilmiş mahnılar burada göstəriləcək. - Musiqi tapılmadı - Komputerinizdən cihazınıza musiqi kopyalamaq üçün USB kabeldən istifadə edin. - Çalma növbəsində mahnı yoxdur - Çalma Növbəsinə mahnı əlavə etmək üçün, seçimlərdən \"Növbəyə əlavə et\"i seçin. - - Bilinməyən il - 30 saniyədən az - 30 - 60 saniyə - 1 - 2 dəqiqə - 2 - 3 dəqiqə - 3 - 4 dəqiqə - 4 - 5 dəqiqə - 5 - 10 dəqiqə - 10 - 30 dəqiqə - 30 - 60 dəqiqə - 60 dəqiqədən az - 1 mahnı - 2 - 4 mahnı - 5 - 9 mahnı - 10+ mahnı - 5+ albom - "Digər" - Bütün sənətkarları göstər - Bütün albomları göstər - Bütün mahnıları göstər - Bütün siyahıları göstər - Musiqi axtar - Bütün \"%s\" sənətkarları - Bütün \"%s\" albomları - Bütün \"%s\" mahnıları - Bütün \"%s\" çalma siyahıları - %1$s %2$s + Musiqi + Ən son + Sənətkarlar + Albomlar + Mahnılar + Çalma siyahıları + Janrlar + İndi Çalınan + Növbədəkini Çal + Albomlar + Top Mahnılar + Bütün Mahnılar + Tənzimləmələr + Axtar + Qarışdır + Hamısını qarışdır + Çalma siyahısını qarışdır + Albomu qarışdır + Sənətkarı qarışdır + Ən çox dinlənənləri qarışdır + Son çalınanları qarışdır + Son əlavə edilənləri qarışdır + Hamısını çal + Sıralama: + Siyahını təmizlə + Son çalınanları təmizlə + Növbədəkini sil + Növbəni çalma siyahısında saxla + Ekvalayzer + Çalma siyahısına əlavə et + Növbəyə əlavə et + Son çalınanlardan çıxart + Növbədən çıxart + A-Z + Z-A + Sənətkar + Albom + İl + Müddət + Əlavə edilmə tarixi + Musiqi siyahısı + Mahnı sayı + Albom sayı + Fayl adı + Son əlavə edilənlər + Son çalınan + Top musiqilərim + Yeni çalma siyahısı + Saxla + İmtina + Üzərinə yaz + Təmizlə + Çalma siyahısı %d + Çalma siyahısı adı + %s silinsin? + Son çalınanlar təmizlənsin? + Son əlavə edilənlər təmizlənsin? + Bu əməliyyat geri alına bilməz + Bu, gizli yaddaşda olan təsvirləri birdəfəlik siləcək + Qalereyadan foto seçin + Google axtarışı + İlkin fotodan istifadə et + Köhnə fotodan istifadə et + Çal + Sonrakını çal + Albomu oynat + Sənətçidən daha çox + Yenidən adlandır + Sil + Albomun üz qabığını endir + Sənətçinin şəklini endir + Son çalınanlardan çıxart + Zəng səsi kimi istifadə et + Çalma siyahısından çıxart + Şəkli dəyişdir + Çal + Fasilə + Sonrakı + Əvvəlki + Qarışdır + Hamısını qarışdır + Təkrarla + Hamısını təkrarla + Birini təkrarla + Növbəni aç + Musiqini gözdən keçir + \'%s\' zəng səsi kimi tənzimləndi + Çalma siyahısını yenidən adlandır + İnterfeys + Saxlama + Verilənlər + Gizli yaddaşı sil + Gizli yaddaşdakı bütün təsvirləri sil + Yalnız Wi-Fi ilə endir + Operator xərclərini azaltmaq üçün mobil şəbəkələr üzərindən endirmə etməyin + Əskik albom üz qabıqlarını endir + Əskik sənətkar şəkillərini endir + Ümumi + Musiqi əyaniləşdiricini göstər + Mahnı sözlərini göstər + srt faylı olan mahnılar üçün + Oynatmaq üçün silkələyin + Növbəti mahnını səsləndirmək üçün cihazınızı silkələyin + Kilit ekranı albom üzü + Kilit ekranı arxaplanını albom üzü ilə əvəz edər + Musiqi: 4 \u00d7 1 + Musiqi: 4 \u00d7 2 + Musiqi: 4 \u00d7 2 (alternativ) + Musiqi: son vaxtlar dinlənən + Ekvalayzer açılmadı. + Komputerinizdən cihazınıza musiqi kopyalamaq üçün USB kabeldən istifadə edin. + Axtarış nəticə vermədi + Zəhmət olmasa düzgün söz daxil etdiyinizi yoxlayın və ya fərqli bir söz yoxlayın. + Seçilmiş kimi işarələdiyiniz mahnılar burada görünəcək. + Son çalınan mahnı yoxdur + Son vaxtlar dinlədiyiniz mahnılar burada görünəcək. + Çalma siyahısında mahnı yoxdur + Bu çalma siyahısına mahnı əlavə etmək üçün seçimlərdən \"Çalma siyahısına əlavə et\"ə toxunun. + Top musiqilər yoxdur + Çox vaxt dinlədiyiniz mahnılar bu siyahıya əlavə olunacaq. + Son vaxtlar mahnı əlavə edilməyib + Keçən ay əlavə edilmiş mahnılar burada göstəriləcək. + Musiqi tapılmadı + Komputerinizdən cihazınıza musiqi kopyalamaq üçün USB kabeldən istifadə edin. + Çalma növbəsində mahnı yoxdur + Çalma Növbəsinə mahnı əlavə etmək üçün, seçimlərdən \"Növbəyə əlavə et\"i seçin. + Bilinməyən il + 30 saniyədən az + 30 - 60 saniyə + 1 - 2 dəqiqə + 2 - 3 dəqiqə + 3 - 4 dəqiqə + 4 - 5 dəqiqə + 5 - 10 dəqiqə + 10 - 30 dəqiqə + 30 - 60 dəqiqə + 60 dəqiqədən az + 1 mahnı + 2 - 4 mahnı + 5 - 9 mahnı + 10+ mahnı + 5+ albom + "Digər" + Bütün sənətkarları göstər + Bütün albomları göstər + Bütün mahnıları göstər + Bütün siyahıları göstər + Musiqi axtar + Bütün \"%s\" sənətkarları + Bütün \"%s\" albomları + Bütün \"%s\" mahnıları + Bütün \"%s\" çalma siyahıları + %1$s %2$s diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 6ea1e41..d8acbc4 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Музыка - - Апошнія - Выканаўцы - Альбомы - Трэкi - Плэйлісты - Жанры - Зараз грае - Чарга прайгравання - - Альбомы - Топ-трэкі - Усе трэкі - - Налады - Пошук - Перамяшаць - Перамяшаць усё - Перамяшаць плэйліст - Перамяшаць альбом - Перамяшаць выканаўца - Перамяшаць топ-трэкі - Перамяшаць нядаўна прайграныя - Перамяшаць апошнія дададзеныя - Граць усё - Сартаваць паводле - Ачысціць спіс - Ачысціць апошнія - Ачысціць чаргу - Захаваць у плэйліст - Эквалайзер - - Дадаць у плэйліст - Дадаць у чаргу - Выдаліць з апошніх - Выдаліць з чаргі - - Алфавіту - Алфавіту ў зваротным парадку - Выканаўцу - Альбому - Году - Працягласці - Даце дадання - Трэк-лісту - Колькасці трэкаў - Колькасці альбомаў - Імя файла - - Апошнія дададзеныя - Апошнія граныя - Мае топ-трэкі - - Новы плэйліст - Захаваць - Скасаванне - Замяніць - Ачысціць - Плэйліст %d - Назва плэйліста - Выдаліць %s? - Ачысціць спіс топ-трэкаў? - Ачысціць нядаўна прайграныя? - Ачысціць нядаўна дададзеныя? - Гэта дзеянне немагчыма скасаваць - Кэшаваныя выявы будуць выдалены - Выбраць з Галерэі - Знайсці ў Google - Відарыс па змаўчанні - Зыходная выява\" - - Прайграць - Уключыць наступным - Прайграць - Усе трэкі выканаўца - Пераназваць - Выдаліць - Загрузіць вокладку альбома - Загрузіць фота выканаўца - Выдаліць з апошніх - Выкарыстаць як рынгтон - Выдаліць з плэйліста - Змяніць выяву - - Прайграць - Паўза - Наступны - Папярэдні - Перамяшаць - Перамяшаць усё - Паўтор - Паўтор усіх - Паўтор трэка - Адчыніць чаргу - Агляд музыкі - - Трэк %s усталяваны як рынгтон - Плэйліст пераназваны - - Інтэрфейс - Сховішча - Дадзеныя - Ачысціць кэш - Выдаліць усе кэшаваныя выявы - Загрузка толькі праз Wi-Fi - Не загружаць дадзеныя праз мабільны інтэрнэт, каб пазбегнуць магчымых выдаткаў - Загружаць вокладкі альбомаў - Загружаць фота выканаўцаў - Агульнае - Паказваць візуалізацыю музыкі - Паказваць тэкст песні - Для песень, да якіх ёсць файл srt - Пераключэнне трэкаў падтрасаннем - Страсяніце прыладу для пераходу да наступнага трэка - Вокладка альбома - Замяняць шпалеры экрана блакавання вокладкай прайграванага альбома - - Музыка: 4 \u00d7 1 - Музыка: 4 \u00d7 2 - Музыка: 4 \u00d7 2 (альтэрнатыўны) - Музыка: нядаўна праслуханыя - - Эквалайзер не можа быць адчынены. - Каб скапіяваць музыку з ПК, выкарыстайце USB-кабель. - Пошук не даў вынікаў - Праверце правільнасць уводу ці паспрабуйце пошук па іншым ключавым слове. - Тут будуць трэкі, якія вы дадалі ў абранае. - Няма нядаўніх трэкаў - Трэкі, якія вы слухалі нядаўна, будуць знаходзіцца тут. - Няма трэкаў у плэйлісце - Каб дадаць трэкі ў плэйліст, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \"Дадаць у плэйліст\". - Няма топ-трэкаў - Трэкі, якія вы слухаеце найчасцей, будуць дададзены ў гэты спіс. - Няма апошніх дададзеных трэкаў\" - Трэкі, дададзеныя за апошні месяц, будуць паказаны тут. - Музыка не знойдзена - Каб скапіяваць музыку з ПК, выкарыстайце USB-кабель. - Няма трэкаў у чарзе - Каб дадаць трэкі ў чаргу прайгравання, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \"Дадаць у чаргу\". - Немагчыма прайграць трэк %1$s - - Невядомы год - Менш 30 секундаў - 30 - 60 секундаў - 1 - 2 хвіліны - 2 - 3 хвіліны - 3 - 4 хвіліны - 4 - 5 хвілін - 5 - 10 хвілін - 10 - 30 хвілін - 30 - 60 хвілін - Больш за 60 хвілін - 1 трэк - 2 - 4 трэка - 5 - 9 трэкаў - Больш за 10 трэкаў - Больш за 5 альбомаў - "Іншыя" - Паказаць усіх выканаўцаў - Паказаць усе альбомы - Паказаць усе трэкі - Паказаць усе плэйлісты - Пошук музыкі - Усе выканаўцы \"%s\" - Усе альбомы \"%s\" - Усе трэкі \"%s\" - Усе плэйлісты \"%s\" - %1$s %2$s + Музыка + Апошнія + Выканаўцы + Альбомы + Трэкi + Плэйлісты + Жанры + Зараз грае + Чарга прайгравання + Альбомы + Топ-трэкі + Усе трэкі + Налады + Пошук + Перамяшаць + Перамяшаць усё + Перамяшаць плэйліст + Перамяшаць альбом + Перамяшаць выканаўца + Перамяшаць топ-трэкі + Перамяшаць нядаўна прайграныя + Перамяшаць апошнія дададзеныя + Граць усё + Сартаваць паводле + Ачысціць спіс + Ачысціць апошнія + Ачысціць чаргу + Захаваць у плэйліст + Эквалайзер + Дадаць у плэйліст + Дадаць у чаргу + Выдаліць з апошніх + Выдаліць з чаргі + Алфавіту + Алфавіту ў зваротным парадку + Выканаўцу + Альбому + Году + Працягласці + Даце дадання + Трэк-лісту + Колькасці трэкаў + Колькасці альбомаў + Імя файла + Апошнія дададзеныя + Апошнія граныя + Мае топ-трэкі + Новы плэйліст + Захаваць + Скасаванне + Замяніць + Ачысціць + Плэйліст %d + Назва плэйліста + Выдаліць %s? + Ачысціць спіс топ-трэкаў? + Ачысціць нядаўна прайграныя? + Ачысціць нядаўна дададзеныя? + Гэта дзеянне немагчыма скасаваць + Кэшаваныя выявы будуць выдалены + Выбраць з Галерэі + Знайсці ў Google + Відарыс па змаўчанні + Зыходная выява\" + Прайграць + Уключыць наступным + Прайграць + Усе трэкі выканаўца + Пераназваць + Выдаліць + Загрузіць вокладку альбома + Загрузіць фота выканаўца + Выдаліць з апошніх + Выкарыстаць як рынгтон + Выдаліць з плэйліста + Змяніць выяву + Прайграць + Паўза + Наступны + Папярэдні + Перамяшаць + Перамяшаць усё + Паўтор + Паўтор усіх + Паўтор трэка + Адчыніць чаргу + Агляд музыкі + Трэк %s усталяваны як рынгтон + Плэйліст пераназваны + Інтэрфейс + Сховішча + Дадзеныя + Ачысціць кэш + Выдаліць усе кэшаваныя выявы + Загрузка толькі праз Wi-Fi + Не загружаць дадзеныя праз мабільны інтэрнэт, каб пазбегнуць магчымых выдаткаў + Загружаць вокладкі альбомаў + Загружаць фота выканаўцаў + Агульнае + Паказваць візуалізацыю музыкі + Паказваць тэкст песні + Для песень, да якіх ёсць файл srt + Пераключэнне трэкаў падтрасаннем + Страсяніце прыладу для пераходу да наступнага трэка + Вокладка альбома + Замяняць шпалеры экрана блакавання вокладкай прайграванага альбома + Музыка: 4 \u00d7 1 + Музыка: 4 \u00d7 2 + Музыка: 4 \u00d7 2 (альтэрнатыўны) + Музыка: нядаўна праслуханыя + Эквалайзер не можа быць адчынены. + Каб скапіяваць музыку з ПК, выкарыстайце USB-кабель. + Пошук не даў вынікаў + Праверце правільнасць уводу ці паспрабуйце пошук па іншым ключавым слове. + Тут будуць трэкі, якія вы дадалі ў абранае. + Няма нядаўніх трэкаў + Трэкі, якія вы слухалі нядаўна, будуць знаходзіцца тут. + Няма трэкаў у плэйлісце + Каб дадаць трэкі ў плэйліст, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \"Дадаць у плэйліст\". + Няма топ-трэкаў + Трэкі, якія вы слухаеце найчасцей, будуць дададзены ў гэты спіс. + Няма апошніх дададзеных трэкаў\" + Трэкі, дададзеныя за апошні месяц, будуць паказаны тут. + Музыка не знойдзена + Каб скапіяваць музыку з ПК, выкарыстайце USB-кабель. + Няма трэкаў у чарзе + Каб дадаць трэкі ў чаргу прайгравання, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \"Дадаць у чаргу\". + Немагчыма прайграць трэк %1$s + Невядомы год + Менш 30 секундаў + 30 - 60 секундаў + 1 - 2 хвіліны + 2 - 3 хвіліны + 3 - 4 хвіліны + 4 - 5 хвілін + 5 - 10 хвілін + 10 - 30 хвілін + 30 - 60 хвілін + Больш за 60 хвілін + 1 трэк + 2 - 4 трэка + 5 - 9 трэкаў + Больш за 10 трэкаў + Больш за 5 альбомаў + "Іншыя" + Паказаць усіх выканаўцаў + Паказаць усе альбомы + Паказаць усе трэкі + Паказаць усе плэйлісты + Пошук музыкі + Усе выканаўцы \"%s\" + Усе альбомы \"%s\" + Усе трэкі \"%s\" + Усе плэйлісты \"%s\" + %1$s %2$s diff --git a/app/src/main/res/values-bg/plurals.xml b/app/src/main/res/values-bg/plurals.xml index a41ddd0..9a29c5c 100644 --- a/app/src/main/res/values-bg/plurals.xml +++ b/app/src/main/res/values-bg/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d изпълнител - %d изпълнители - - - - %d албум - %d албума - - - - %d песен - %d песни - - - - %d жанр - %d жанра - - - - %d ч - %d ч - - - - %d мин. - %d мин. - - - - %d песен е добавена към списъка за изпълнение. - %d песни са добавени към списъка за изпълнение. - - - - %d песен е премахната от списъка за изпълнение. - %d песни са премахнати от списъка за изпълнение. - - - - %d песен е добавена към опашката. - %d песни са добавени към опашката. - - - - %d песен е добавена към \"Предпочитани\". - %d песни са добавени към \"Предпочитани\". - - - - %d песен е изтрита. - %d песни са изтрити. - + + %d изпълнител + %d изпълнители + + + %d албум + %d албума + + + %d песен + %d песни + + + %d жанр + %d жанра + + + %d ч + %d ч + + + %d мин. + %d мин. + + + %d песен е добавена към списъка за изпълнение. + %d песни са добавени към списъка за изпълнение. + + + %d песен е премахната от списъка за изпълнение. + %d песни са премахнати от списъка за изпълнение. + + + %d песен е добавена към опашката. + %d песни са добавени към опашката. + + + %d песен е добавена към \"Предпочитани\". + %d песни са добавени към \"Предпочитани\". + + + %d песен е изтрита. + %d песни са изтрити. + diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index bcda9fa..673dde9 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Музика - - Пресни - Изпълнители - Албуми - Песни - Списъци за изпълнение - Жанрове - Сега се изпълнява - На опашката за възпроизвеждане - - Албуми - Топ песни - Всички песни - - Настройки - Търсене - Разбъркване - Разбъркване на всички - Разбъркване на списъка за изпълнение - Разбъркване на албума - Разбъркване на изпълнители - Развъркване на топ песните - Разбъркване на скоро слушаните - Разбъркване на последно добавените - Възпроизвеждане на всички - Сортирай по - Изчисти списъка - Изчистване на скорошните - Изчистване на опашката за изпълнение - Запазване на опашката за изпълнение в списъка за изпълнение - Еквалайзер - - Добави към списък за изпълниние - Добавяне към опашката за изпълнение - Премахване от последно изпълнявани - Премахване от опашката за изпълнение - - А-Я - Я-А - Изпълнител - Албум - Година - Времетраене - Дата на добавяне - Списък с песни - Брой на песните - Брой на албумите - Име на файла - - Последно добавени - Последно изпълнени - Моите топ песни - - Нов списък за изпълнение - Запиши - Отказ - Презаписване - Ясна - Списък за изпълнение %d - Име на списъка за изпълнение - Изтриване на %s ? - Да изчистя ли топ песните? - Да изчистя ли последно изпълнените? - Да изчистя ли последно добавените? - Това не може да бъде отменено - Това завинаги ще изтрие записите в кеша - Изберете снимка от Галерия - Търсене в Google - Използване снимка по подразбиране - Използвай стара снимка - - Изпълни - Следваща песен - Изпълни албум - Още от изпълнителя - Преименуване - Изтриване - Сложи обложка на албума - Сложи снимка на изпълнителя - Премахване от последно изпълнявани - Използвай като тон на звънене - Премахни от списъка за изпълнение - Промяна на изображението - - Изпълни - Пауза - Следваща - Предишна - Разбъркване - Разбъркване на всички - Повтори - Повтори всички - Повтори една - Отвори опашка за изпълнение - Прегледайте музиката - - \"%s\" е зададена, като тон на звънене. - Преименувай списъка за изпълнение - - Интерфейс - Хранилище - Данни - Изтриване на кеша - Премахва всички кеширани изображения - Изтегляне само през Wi-Fi - За да не се начислят такси от оператора, не изтегляйте през мобилните мрежи - Изтегли липсващата обложка - Изтегли липсващите изображения на изпълнителите - Общи - Покажи музикална визуализация - Покажи текстовете на песните - За песни, които имат srt файл - Разтърсете, за да изпълни - Разтърсете устройството, за да изпълни следващата песен - Обложки на заключен екран - Заменя фона на заключения екран с обложка от албума - - Музика: 4 \u00d7 1 - Музика: 4 \u00d7 2 - Музика: 4 \u00d7 2 (алтернативен) - Музика: наскоро слушана - - Еквалайзера не може да бъде отворен. - За да копирате музика от вашия компютър към вашето устройство, използвайте USB кабел. - Няма резултати от търсенето - Проверете дали е изписана правилно или опитайте с друга ключова дума. - Песните маркирани като любими ще бъдат показани тук. - Няма скорошни песни - Песните който сте слушали последно ще се покажат тук. - Няма песни в списъка за изпълнение - За да добавите песни към този списък за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \"Добави към списъка за изпълнение\". - Няма топ песни - Песните, които слушате най-много ще бъдат добавени към този списък. - Няма наскоро добавени песни - Тук ще бъдат показани песни, които сте добавили през последния месец. - Няма намерена музика - За да копирате музика от вашия компютър към вашето устройство, използвайте USB кабел. - Няма песни в опашката за възпроизвеждане - За да добавите песни към опашката за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \"Добави към опашката за изпълнение\". - Не може да изпълни песента %1$s - - Неизвестна година - По-малко от 30 секунди - 30 - 60 секунди - 1 - 2 минути - 2 - 3 минути - 3 - 4 минути - 4 - 5 минути - 5 - 10 минути - 10 - 30 минути - 30 - 60 минути - Повече от 60 минути - 1 песен - 2 - 4 песни - 5 - 9 песни - 10+ песни - 5+ албума - "Други" - Покажи всички изпълнители - Покажи всички албуми - Покажи всички песни - Покажи всички списъци за изпълнение - Търсете музика - Всички изпълнители на \"%s\" - Всички албуми на \"%s\" - Всички песни на \"%s\" - Всички списъци за изпълнение \"%s\" - %1$s %2$s - Възпроизвеждане на музика + Музика + Пресни + Изпълнители + Албуми + Песни + Списъци за изпълнение + Жанрове + Сега се изпълнява + На опашката за възпроизвеждане + Албуми + Топ песни + Всички песни + Настройки + Търсене + Разбъркване + Разбъркване на всички + Разбъркване на списъка за изпълнение + Разбъркване на албума + Разбъркване на изпълнители + Развъркване на топ песните + Разбъркване на скоро слушаните + Разбъркване на последно добавените + Възпроизвеждане на всички + Сортирай по + Изчисти списъка + Изчистване на скорошните + Изчистване на опашката за изпълнение + Запазване на опашката за изпълнение в списъка за изпълнение + Еквалайзер + Добави към списък за изпълниние + Добавяне към опашката за изпълнение + Премахване от последно изпълнявани + Премахване от опашката за изпълнение + А-Я + Я-А + Изпълнител + Албум + Година + Времетраене + Дата на добавяне + Списък с песни + Брой на песните + Брой на албумите + Име на файла + Последно добавени + Последно изпълнени + Моите топ песни + Нов списък за изпълнение + Запиши + Отказ + Презаписване + Ясна + Списък за изпълнение %d + Име на списъка за изпълнение + Изтриване на %s ? + Да изчистя ли топ песните? + Да изчистя ли последно изпълнените? + Да изчистя ли последно добавените? + Това не може да бъде отменено + Това завинаги ще изтрие записите в кеша + Изберете снимка от Галерия + Търсене в Google + Използване снимка по подразбиране + Използвай стара снимка + Изпълни + Следваща песен + Изпълни албум + Още от изпълнителя + Преименуване + Изтриване + Сложи обложка на албума + Сложи снимка на изпълнителя + Премахване от последно изпълнявани + Използвай като тон на звънене + Премахни от списъка за изпълнение + Промяна на изображението + Изпълни + Пауза + Следваща + Предишна + Разбъркване + Разбъркване на всички + Повтори + Повтори всички + Повтори една + Отвори опашка за изпълнение + Прегледайте музиката + \"%s\" е зададена, като тон на звънене. + Преименувай списъка за изпълнение + Интерфейс + Хранилище + Данни + Изтриване на кеша + Премахва всички кеширани изображения + Изтегляне само през Wi-Fi + За да не се начислят такси от оператора, не изтегляйте през мобилните мрежи + Изтегли липсващата обложка + Изтегли липсващите изображения на изпълнителите + Общи + Покажи музикална визуализация + Покажи текстовете на песните + За песни, които имат srt файл + Разтърсете, за да изпълни + Разтърсете устройството, за да изпълни следващата песен + Обложки на заключен екран + Заменя фона на заключения екран с обложка от албума + Музика: 4 \u00d7 1 + Музика: 4 \u00d7 2 + Музика: 4 \u00d7 2 (алтернативен) + Музика: наскоро слушана + Еквалайзера не може да бъде отворен. + За да копирате музика от вашия компютър към вашето устройство, използвайте USB кабел. + Няма резултати от търсенето + Проверете дали е изписана правилно или опитайте с друга ключова дума. + Песните маркирани като любими ще бъдат показани тук. + Няма скорошни песни + Песните който сте слушали последно ще се покажат тук. + Няма песни в списъка за изпълнение + За да добавите песни към този списък за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \"Добави към списъка за изпълнение\". + Няма топ песни + Песните, които слушате най-много ще бъдат добавени към този списък. + Няма наскоро добавени песни + Тук ще бъдат показани песни, които сте добавили през последния месец. + Няма намерена музика + За да копирате музика от вашия компютър към вашето устройство, използвайте USB кабел. + Няма песни в опашката за възпроизвеждане + За да добавите песни към опашката за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \"Добави към опашката за изпълнение\". + Не може да изпълни песента %1$s + Неизвестна година + По-малко от 30 секунди + 30 - 60 секунди + 1 - 2 минути + 2 - 3 минути + 3 - 4 минути + 4 - 5 минути + 5 - 10 минути + 10 - 30 минути + 30 - 60 минути + Повече от 60 минути + 1 песен + 2 - 4 песни + 5 - 9 песни + 10+ песни + 5+ албума + "Други" + Покажи всички изпълнители + Покажи всички албуми + Покажи всички песни + Покажи всички списъци за изпълнение + Търсете музика + Всички изпълнители на \"%s\" + Всички албуми на \"%s\" + Всички песни на \"%s\" + Всички списъци за изпълнение \"%s\" + %1$s %2$s + Възпроизвеждане на музика diff --git a/app/src/main/res/values-ca/plurals.xml b/app/src/main/res/values-ca/plurals.xml index 7e5820a..30b6be8 100644 --- a/app/src/main/res/values-ca/plurals.xml +++ b/app/src/main/res/values-ca/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistes - - - - %d àlbum - %d àlbums - - - - %d cançó - %d cançons - - - - %d gènere - %d gèneres - - - - %dh - %dh - - - - %dm - %dm - - - - %d cançó s\'ha afegit a la llista de reproducció. - %d cançons s\'han afegit a la llista de reproducció. - - - - %d cançó s\'ha tret de la llista de reproducció. - %d cançons s\'han tret de la llista de reproducció. - - - - %d cançó s\'ha afegit a la cua. - %d cançons s\'han afegit a la cua. - - - - %d cançó afegida als preferits. - %d cançons afegides als preferits. - - - - %d cançó s\'ha esborrat. - %d cançons s\'han esborrat. - + + %d artista + %d artistes + + + %d àlbum + %d àlbums + + + %d cançó + %d cançons + + + %d gènere + %d gèneres + + + %dh + %dh + + + %dm + %dm + + + %d cançó s\'ha afegit a la llista de reproducció. + %d cançons s\'han afegit a la llista de reproducció. + + + %d cançó s\'ha tret de la llista de reproducció. + %d cançons s\'han tret de la llista de reproducció. + + + %d cançó s\'ha afegit a la cua. + %d cançons s\'han afegit a la cua. + + + %d cançó afegida als preferits. + %d cançons afegides als preferits. + + + %d cançó s\'ha esborrat. + %d cançons s\'han esborrat. + diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 3b8c356..349fd77 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Música - - Recent - Artistes - Àlbums - Cançons - Llistes de reproducció - Gèneres - Ara sona - Reprodueix cua - - Àlbums - Cançons més escoltades - Totes les cançons - - Configuració - Cerca - Barreja - Barreja-ho tot - Barreja la llista de reproducció - Barreja l\'àlbum - Barreja l\'artista - Barreja els temes més escoltats - Barreja els reproduïts recentment - Barreja els darrers afegits - Reprodueix tot - Ordena per - Neteja la llista - Neteja els recents - Neteja la cua - Desa-ho en cua a la llista de reproducció - Equalitzador - - Afegeix a la llista de reproducció - Afegeix a la cua - Treu dels recents - Treu de la cua - - A-Z - Z-A - Artista - Àlbum - Any - Duració - Data d\'addició - Llista de pistes - Nombre de cançons - Nombre d\'àlbums - Nom del fitxer - - Darrer afegit - Reproduïdes recentment - Els meus temes més escoltats - - Nova llista de reproducció - Desa - Cancel·la - Sobreescriu - Neteja - Llista de reproducció %d - Nom de la llista de reproducció - Vols esborrar %s? - Vols netejar les pistes més reproduïdes? - Vols netejar les recentment reproduïdes? - Vols netejar les darreres afegides? - Això no es podrà desfer - Això esborrarà permanentment les imatges de la memòria cau - Tria una foto de la galeria - Cerca a Google - Utilitza la foto predefinida - Utilitza la foto antiga - - Reprodueix - Reprodueix el següent - Reprodueix àlbum - Més de l\'artista - Reanomena - Esborra - Recull la coberta de l\'àlbum - Recull una imatge de l\'artista - Treu dels recents - Utilitza com a to de trucada - Treu de la llista de reproducció - Canvia imatge - - Reprodueix - Pausa - Següent - Anterior - Barreja - Barreja-ho tot - Repeteix - Repeteix tot - Repeteix un - Obre la cua - Navega per la música - - \'%s\' establert com a to de trucada - Llista de reproducció reanomenada - - Interfície - Emmagatzematge - Dades - Esborra memòria cau - Treu totes les imatges de la memòria cau - Bixa només via Wi-Fi - No baixis contingut en xarxes mòbils per reduir els càrrecs de l\'operador - Baixa les cobertes que faltin - Baixa les imatges dels artistes que faltin - General - Mostra la visualització de la música - Mostra la lletra de les cançons - Per cançons que tenen un fitxer srt - Agita per Reproduir - Agita el teu dispositiu per reproduir la cançó següent - Portada de l\'àlbum a la pantalla de bloqueig - Substitueix el fons de la pantalla de bloqueig amb la portada de l\'àlbum - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - Música: 4 \u00d7 2 (alternatiu) - Música: recentment escoltada - - L\'equalitzador no s\'ha pogut obrir. - Per copiar música del teu ordenador al teu dispositiu, utilitza un cable USB. - No s\'han trobat resultats - Si us plau comprova que tingui l\'ortografia correcta o prova una altra paraula. - Les cançons que marquis com a preferides es mostraran aquí. - Cap cançó recent - Les cançons que has escoltat recentment apareixeran aquí. - Sense cançons a la llista de reproducció - Per afegir cançons a aquesta llista de reproducció, prem al menú opcions en una cançó, àlbum o artista i selecciona \"Afegeix a la llista de reproducció\". - No hi ha temes més escoltats - Les cançons que més escoltes s\'afegiran a aquesta llista. - No hi ha cançons afegides recentment - Les cançons que has afegit durant el darrer mes es mostraran aquí. - No s\'ha trobat música - Per copiar música del teu ordenador al teu dispositiu, utilitza un cable USB. - No hi ha cançons a la cua de reproducció - Per afegir cançons a la cua de reproducció, pica al menú opcions en una cançó, àlbum o artista i selecciona \"Afegeix a la cua\". - No s\'ha pogut reproduir la pista %1$s - - Any desconegut - Menys de 30 segons - 30 - 60 segons - 1 - 2 minuts - 2 - 3 minuts - 3 - 4 minuts - 4 - 5 minuts - 5 - 10 minuts - 10 - 30 minuts - 30 - 60 minuts - Més de 60 minuts - 1 cançó - 2 - 4 cançons - 5 - 9 cançons - 10+ cançons - 5+ àlbums - "Altres" - Mostra tots els artistes - Mostra tots els àlbums - Mostra totes les cançons - Mostra totes les llistes de reproducció - Cerca Música - Tots els artistes de \"%s\" - Tots els àlbums de \"%s\" - Totes les cançons de \"%s\" - Totes les llistes de reproducció de \"%s\" - %1$s %2$s - Reproducció de música + Música + Recent + Artistes + Àlbums + Cançons + Llistes de reproducció + Gèneres + Ara sona + Reprodueix cua + Àlbums + Cançons més escoltades + Totes les cançons + Configuració + Cerca + Barreja + Barreja-ho tot + Barreja la llista de reproducció + Barreja l\'àlbum + Barreja l\'artista + Barreja els temes més escoltats + Barreja els reproduïts recentment + Barreja els darrers afegits + Reprodueix tot + Ordena per + Neteja la llista + Neteja els recents + Neteja la cua + Desa-ho en cua a la llista de reproducció + Equalitzador + Afegeix a la llista de reproducció + Afegeix a la cua + Treu dels recents + Treu de la cua + A-Z + Z-A + Artista + Àlbum + Any + Duració + Data d\'addició + Llista de pistes + Nombre de cançons + Nombre d\'àlbums + Nom del fitxer + Darrer afegit + Reproduïdes recentment + Els meus temes més escoltats + Nova llista de reproducció + Desa + Cancel·la + Sobreescriu + Neteja + Llista de reproducció %d + Nom de la llista de reproducció + Vols esborrar %s? + Vols netejar les pistes més reproduïdes? + Vols netejar les recentment reproduïdes? + Vols netejar les darreres afegides? + Això no es podrà desfer + Això esborrarà permanentment les imatges de la memòria cau + Tria una foto de la galeria + Cerca a Google + Utilitza la foto predefinida + Utilitza la foto antiga + Reprodueix + Reprodueix el següent + Reprodueix àlbum + Més de l\'artista + Reanomena + Esborra + Recull la coberta de l\'àlbum + Recull una imatge de l\'artista + Treu dels recents + Utilitza com a to de trucada + Treu de la llista de reproducció + Canvia imatge + Reprodueix + Pausa + Següent + Anterior + Barreja + Barreja-ho tot + Repeteix + Repeteix tot + Repeteix un + Obre la cua + Navega per la música + \'%s\' establert com a to de trucada + Llista de reproducció reanomenada + Interfície + Emmagatzematge + Dades + Esborra memòria cau + Treu totes les imatges de la memòria cau + Bixa només via Wi-Fi + No baixis contingut en xarxes mòbils per reduir els càrrecs de l\'operador + Baixa les cobertes que faltin + Baixa les imatges dels artistes que faltin + General + Mostra la visualització de la música + Mostra la lletra de les cançons + Per cançons que tenen un fitxer srt + Agita per Reproduir + Agita el teu dispositiu per reproduir la cançó següent + Portada de l\'àlbum a la pantalla de bloqueig + Substitueix el fons de la pantalla de bloqueig amb la portada de l\'àlbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternatiu) + Música: recentment escoltada + L\'equalitzador no s\'ha pogut obrir. + Per copiar música del teu ordenador al teu dispositiu, utilitza un cable USB. + No s\'han trobat resultats + Si us plau comprova que tingui l\'ortografia correcta o prova una altra paraula. + Les cançons que marquis com a preferides es mostraran aquí. + Cap cançó recent + Les cançons que has escoltat recentment apareixeran aquí. + Sense cançons a la llista de reproducció + Per afegir cançons a aquesta llista de reproducció, prem al menú opcions en una cançó, àlbum o artista i selecciona \"Afegeix a la llista de reproducció\". + No hi ha temes més escoltats + Les cançons que més escoltes s\'afegiran a aquesta llista. + No hi ha cançons afegides recentment + Les cançons que has afegit durant el darrer mes es mostraran aquí. + No s\'ha trobat música + Per copiar música del teu ordenador al teu dispositiu, utilitza un cable USB. + No hi ha cançons a la cua de reproducció + Per afegir cançons a la cua de reproducció, pica al menú opcions en una cançó, àlbum o artista i selecciona \"Afegeix a la cua\". + No s\'ha pogut reproduir la pista %1$s + Any desconegut + Menys de 30 segons + 30 - 60 segons + 1 - 2 minuts + 2 - 3 minuts + 3 - 4 minuts + 4 - 5 minuts + 5 - 10 minuts + 10 - 30 minuts + 30 - 60 minuts + Més de 60 minuts + 1 cançó + 2 - 4 cançons + 5 - 9 cançons + 10+ cançons + 5+ àlbums + "Altres" + Mostra tots els artistes + Mostra tots els àlbums + Mostra totes les cançons + Mostra totes les llistes de reproducció + Cerca Música + Tots els artistes de \"%s\" + Tots els àlbums de \"%s\" + Totes les cançons de \"%s\" + Totes les llistes de reproducció de \"%s\" + %1$s %2$s + Reproducció de música diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 5fc9910..ea4b907 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -17,173 +17,160 @@ limitations under the License. --> - Hudba - - Nedávné - Umělci - Alba - Skladby - Seznamy skladeb - Žánry - Přehrává se - Fronta přehrávání - - Alba - Nejlepší skladby - Všechny skladby - - Nastavení - Vyhledat - Náhodně - Vše náhodně - Náhodně v seznamu skladeb - Náhodně v rámci alba - Náhodně v rámci umělce - Náhodně nejlepší skladby - Náhodně nedávno přehrávané - Náhodně naposledy přidané - Přehrát vše - Řadit podle - Vyčistit seznam - Vyčistit nedávné - Vyčistit frontu - Uložit frontu do seznamu skladeb - Ekvalizér - - Přidat do seznamu skladeb - Přidat do fronty - Odebrat z nedávných - Odebrat z fronty - - A-Z - Z-A - Umělce - Alba - Roku - Délky - Data přidání - Seznamu stop - Počtu skladeb - Počtu alb - Jména souboru - - Naposledy přidaných - Nedávno hraných - Mé nejlepší skladby - - Nový seznam skladeb - Uložit - Zrušit - Přepsat - Vyčistit - Seznam %d - Název seznamu skladeb - Odstranit %s? - Vyčistit seznam nejlepších skladeb? - Vyčistit seznam nedávno hraných? - Vyčistit seznam naposledy přidaných? - Tuto operaci nelze vrátit - Tímto trvale odstraníte stáhnuté obrázky - Zvolte obrázek z Galerie - Vyhledávání Google - Použít výchozí obrázek - Použít starý obrázek - - Přehrát - Přehrát další - Přehrát album - Více od umělce - Přejmenovat - Odstranit - Stáhnout obal alba - Stáhnout obrázek umělce - Odebrat z nedávných - Použít jako zvuk vyzvánění - Odstranit ze seznamu skladeb - Změnit obrázek - - Přehrát - Pozastavit - Další - Předchozí - Náhodně - Vše náhodně - Opakovat - Opakovat vše - Opakovat jednu - Otevřít frontu - Procházet hudbu - - %s“ nastaveno jako vyzvánění - Seznam skladeb přejmenován - - Rozhraní - Úložiště - Data - Smazat cache - Odstranit všechny uložené obrázky - Stahovat pouze přes síť Wi\u2011Fi - Pro snížení poplatků za data nestahovat obrázky přes mobilní sítě - Stáhnout chybějící obaly alb - Stáhnout chybějící obrázky umělců - Obecné - Zobrazit vizualizaci hudby - Zobrazit text skladby - U skladeb, které mají soubor srt - Zatřesením přehrát - Zatřeste se zařízením pro přehrání další skladby - Obal alba na zámku obrazovky - Nahradit pozadí zámku obrazovky obalem alba - - Hudba: 4 \u00d7 1 - Hudba: 4 \u00d7 2 - Hudba: 4 \u00d7 2 (alternativní) - Hudba: nedávno poslouchané - - Nelze otevřít ekvalizér. - Pro kopírování hudebních souborů z počítače do zařízení použijte USB kabel. - Nenalezeny žádné výsledky - Zkontrolujte, zda jste výraz napsali správně nebo zkuste jiné klíčové slovo. - Zde budou zobrazeny všechny skladby označené jako oblíbené. - Žádné naposledy přehrávané - Zde budou zobrazeny všechny nedávno přehrávané skladby. - Žádné skladby v seznamu skladeb - Chcete-li přidat skladby do tohoto seznamu skladeb, otevřete nabídku dotykem na skladbě, albu či umělci a zvolte „Přidat do seznamu skladeb“. - Žádné nejlepší skladby - Zde budou zobrazeny všechny nejčastěji přehrávané skladby. - Žádné nedávno přidané skladby - Zde budou zobrazeny skladby přidané za poslední měsíc. - Nenalezena žádná hudba - Pro kopírování hudebních souborů z počítače do zařízení použijte USB kabel. - Žádné skladby ve frontě - Chcete-li přidat skladby do fronty, otevřete nabídku dotykem na skladbě, albu či umělci a zvolte „Přidat do fronty“. - Nelze přehrát skladbu %1$s - - Neznámý rok - Méně než 30 sekund - 30 - 60 sekund - 1 - 2 minuty - 2 - 3 minuty - 3 - 4 minuty - 4 - 5 minut - 5 - 10 minut - 10 - 30 minut - 30 - 60 minut - Více než 60 minut - 1 skladba - 2 - 4 skladby - 5 - 9 skladeb - Více jak 10 skladeb - Více jak 5 alb - "Jiné" - Zobrazit všechny umělce - Zobrazit všechna alba - Zobrazit všechny skladby - Zobrazit všechny seznamy skladeb - Vyhledávání hudby - Vše od umělce „%s“ - Vše v albu „%s“ - Všechny skladby \"%s\" - Všechny v seznamu skladeb „%s“ - %1$s %2$s + Hudba + Nedávné + Umělci + Alba + Skladby + Seznamy skladeb + Žánry + Přehrává se + Fronta přehrávání + Alba + Nejlepší skladby + Všechny skladby + Nastavení + Vyhledat + Náhodně + Vše náhodně + Náhodně v seznamu skladeb + Náhodně v rámci alba + Náhodně v rámci umělce + Náhodně nejlepší skladby + Náhodně nedávno přehrávané + Náhodně naposledy přidané + Přehrát vše + Řadit podle + Vyčistit seznam + Vyčistit nedávné + Vyčistit frontu + Uložit frontu do seznamu skladeb + Ekvalizér + Přidat do seznamu skladeb + Přidat do fronty + Odebrat z nedávných + Odebrat z fronty + A-Z + Z-A + Umělce + Alba + Roku + Délky + Data přidání + Seznamu stop + Počtu skladeb + Počtu alb + Jména souboru + Naposledy přidaných + Nedávno hraných + Mé nejlepší skladby + Nový seznam skladeb + Uložit + Zrušit + Přepsat + Vyčistit + Seznam %d + Název seznamu skladeb + Odstranit %s? + Vyčistit seznam nejlepších skladeb? + Vyčistit seznam nedávno hraných? + Vyčistit seznam naposledy přidaných? + Tuto operaci nelze vrátit + Tímto trvale odstraníte stáhnuté obrázky + Zvolte obrázek z Galerie + Vyhledávání Google + Použít výchozí obrázek + Použít starý obrázek + Přehrát + Přehrát další + Přehrát album + Více od umělce + Přejmenovat + Odstranit + Stáhnout obal alba + Stáhnout obrázek umělce + Odebrat z nedávných + Použít jako zvuk vyzvánění + Odstranit ze seznamu skladeb + Změnit obrázek + Přehrát + Pozastavit + Další + Předchozí + Náhodně + Vše náhodně + Opakovat + Opakovat vše + Opakovat jednu + Otevřít frontu + Procházet hudbu + %s“ nastaveno jako vyzvánění + Seznam skladeb přejmenován + Rozhraní + Úložiště + Data + Smazat cache + Odstranit všechny uložené obrázky + Stahovat pouze přes síť Wi\u2011Fi + Pro snížení poplatků za data nestahovat obrázky přes mobilní sítě + Stáhnout chybějící obaly alb + Stáhnout chybějící obrázky umělců + Obecné + Zobrazit vizualizaci hudby + Zobrazit text skladby + U skladeb, které mají soubor srt + Zatřesením přehrát + Zatřeste se zařízením pro přehrání další skladby + Obal alba na zámku obrazovky + Nahradit pozadí zámku obrazovky obalem alba + Hudba: 4 \u00d7 1 + Hudba: 4 \u00d7 2 + Hudba: 4 \u00d7 2 (alternativní) + Hudba: nedávno poslouchané + Nelze otevřít ekvalizér. + Pro kopírování hudebních souborů z počítače do zařízení použijte USB kabel. + Nenalezeny žádné výsledky + Zkontrolujte, zda jste výraz napsali správně nebo zkuste jiné klíčové slovo. + Zde budou zobrazeny všechny skladby označené jako oblíbené. + Žádné naposledy přehrávané + Zde budou zobrazeny všechny nedávno přehrávané skladby. + Žádné skladby v seznamu skladeb + Chcete-li přidat skladby do tohoto seznamu skladeb, otevřete nabídku dotykem na skladbě, albu či umělci a zvolte „Přidat do seznamu skladeb“. + Žádné nejlepší skladby + Zde budou zobrazeny všechny nejčastěji přehrávané skladby. + Žádné nedávno přidané skladby + Zde budou zobrazeny skladby přidané za poslední měsíc. + Nenalezena žádná hudba + Pro kopírování hudebních souborů z počítače do zařízení použijte USB kabel. + Žádné skladby ve frontě + Chcete-li přidat skladby do fronty, otevřete nabídku dotykem na skladbě, albu či umělci a zvolte „Přidat do fronty“. + Nelze přehrát skladbu %1$s + Neznámý rok + Méně než 30 sekund + 30 - 60 sekund + 1 - 2 minuty + 2 - 3 minuty + 3 - 4 minuty + 4 - 5 minut + 5 - 10 minut + 10 - 30 minut + 30 - 60 minut + Více než 60 minut + 1 skladba + 2 - 4 skladby + 5 - 9 skladeb + Více jak 10 skladeb + Více jak 5 alb + "Jiné" + Zobrazit všechny umělce + Zobrazit všechna alba + Zobrazit všechny skladby + Zobrazit všechny seznamy skladeb + Vyhledávání hudby + Vše od umělce „%s“ + Vše v albu „%s“ + Všechny skladby \"%s\" + Všechny v seznamu skladeb „%s“ + %1$s %2$s + Přehrávání hudby diff --git a/app/src/main/res/values-cy/plurals.xml b/app/src/main/res/values-cy/plurals.xml index 9827780..809d588 100644 --- a/app/src/main/res/values-cy/plurals.xml +++ b/app/src/main/res/values-cy/plurals.xml @@ -17,15 +17,92 @@ limitations under the License. --> - - - - - - - - - - - + + %d artistiaid + %d artist + %d artist + %d artist + %d artist + %d artist + + + %d casgliadau + %d casgliad + %d gasgliad + %d casgliad + %d chasgliad + %d casgliad + + + %d traciau + %d trac + %d drac + %d thrac + %d thrac + %d trac + + + %d genres + %d genre + %d genres + %d genres + %d genres + %d genres + + + %da + %da + %da + %da + %da + %da + + + %dm + %dm + %dm + %dm + %dm + %dm + + + %d traciau wedi\'u hychwanegu i\'r rhestr chwarae. + %d trac wedi\'i ychwanegu i\'r rhestr chwarae. + %d drac wedi\'u hychwanegu i\'r rhestr chwarae. + %d thrac wedi\'u hychwanegu i\'r rhestr chwarae. + %d thrac wedi\'u hychwanegu i\'r rhestr chwarae. + %d trac wedi\'u hychwanegu i\'r rhestr chwarae. + + + %d traciau wedi\'u tynnu o\'r rhestr chwarae. + %d trac wedi\'i dynnu o\'r rhestr chwarae. + %d drac wedi\'u tynnu o\'r rhestr chwarae. + %d thrac wedi\'u tynnu o\'r rhestr chwarae. + %d thrac wedi\'u tynnu o\'r rhestr chwarae. + %d trac wedi\'u tynnu o\'r rhestr chwarae. + + + %d traciau wedi\'u hychwanegu i\'r ciw. + %d trac wedi\'i ychwanegu i\'r ciw. + %d drac wedi\'u hychwanegu i\'r ciw. + %d thrac wedi\'u hychwanegu i\'r ciw. + %d thrac wedi\'u hychwanegu i\'r ciw. + %d trac wedi\'u hychwanegu i\'r ciw. + + + %d traciau wedi\'u hychwanegu at ffefrynnau. + %d trac wedi\'i ychwanegu at ffefrynnau. + %d drac wedi\'u hychwanegu at ffefrynnau. + %d thrac wedi\'u hychwanegu at ffefrynnau. + %d thrac wedi\'u hychwanegu at ffefrynnau. + %d trac wedi\'u hychwanegu at ffefrynnau. + + + %d traciau wedi\'u dileu. + %d trac wedi\'i ddileu. + %d drac wedi\'u dileu. + %d thrac wedi\'u dileu. + %d thrac wedi\'u dileu. + %d trac wedi\'u dileu. + diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index e02852d..47beb8d 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -17,39 +17,160 @@ limitations under the License. --> - + Cerddoriaeth + Diweddar + Artistiaid Casgliadau - + Traciau + Rhestri caneuon + Genres + Yn Chwarae Nawr + Ciw Chwarae Casgliadau - - - + Traciau Poblogaidd + Pob Trac + Gosodiadau + Chwilio + Cymysgu + Cymysgu\'r cwbl + Cymysgu\'r rhestr chwarae + Cymysgu\'r casgliad + Cymysgu\'r artist + Cymysgu\'r traciau poblogaidd + Cymysgu\'r traciau chwaraewyd diweddar + Cymysgu\'r traciau ychwanegwyd diwethaf + Chwarae\'r cwbl + Trefnu yn ôl + Clirio\'r rhestr + Clirio\'r traciau diweddar + Clirio\'r ciw + Cadw\'r ciw i\'r rhestr chwarae + Cydraddolydd + Ychwanegu i\'r rhestr chwarae + Ychwanegu i\'r ciw + Tynnu o\'r traciau diweddar + Tynnu o\'r ciw + A i Y Y i A + Artist + Casgliad Blwyddyn + Hyd + Dyddiad ychwanegwyd + Rhestr traciau + Nifer o draciau Nifer o gasgliadau - - + Enw ffeil + Ychwanegwyd diwethaf + Chwaraewyd yn ddiweddar + Fy hoff draciau + Rhestr chwarae newydd + Cadw Diddymu + Trosysgrifo + Clirio + Rhestr chwarae %d + Enw rhestr chwarae + Dileu %s? + Clirio\'r traciau poblogaidd? + Clirio\'r traciau chwaraewyd yn ddiweddar? + Clirio\'r rhestr traciau ychwanegwyd diwethaf? Nid yw\'n bosib dadwneud hyn. + Bydd hyn yn dileu delweddau wedi\'u cadw dros dro + Dewis lun o\'r oriel + Chwilio Google + Defnyddio llun rhagosodedig Defnyddio hen lun - + Chwarae + Chwarae\'r nesaf + Chwarae casgliad + Rhagor gan yr artist + Ailenwi + Dileu + Nôl clawr y casgliad + Nôl llun yr artist + Tynnu o\'r traciau diweddar Defnyddio fel tôn canu - - - - - + Tynnu o\'r rhestr chwarae + Newid llun + Chwarae + Seibio + Nesaf + Blaenorol + Cymysgu + Cymysgu\'r cwbl + Ailchwarae + Ailchwarae\'r cwbl + Ailchwarae un + Agor y ciw + Pori traciau + Gosodwyd \'%s\' fel y tôn caniad + Ailenwyd y rhestr chwarae + Rhyngwyneb + Storfa + Data + Dileu\'r cof dros dro + Dileu pob delwedd wedi\'i chadw dros dro + Lawrlwytho dros Wi-Fi yn unig + I leihau costau data, paid â lawrlwytho ar rwydweithiau symudol + Lawrlwytho delweddau ar goll y casgliad + Lawrlwytho delweddau ar goll yr artist + Cyffredinol + Dangos patrymau cerddoriaeth + Dangos geiriau caneuon + Ar gyfer caneuon sydd gyda ffeil srt + Ysgwyd i Chwarae + Ysgwyd dy ddyfais i chwarae\'r trac nesaf + Delwedd Casgliad ar Sgrin Cloi + Rhoi delwedd y casgliad fel cefndir y sgrin cloi + Cerddoriaeth: 4 \u00d7 1 + Cerddoriaeth 4 \u00d7 2 + Cerddoriaeth 4 \u00d7 2 (amgen) + Cerddoriaeth: chwaraewyd yn ddiweddar + Methwyd ag agor y cydraddolydd. I gopïo cerddoriaeth o dy gyfrifiadur i dy ddyfais, defnyddia gebl USB. - I ychwanegu traciau at y rhestr chwarae hon, tara dewislen opsiynau trac, casgliad neu artist a dewis \"Ychwanegu i\'r rhestr chwarae\". + Ni chanfuwyd unrhyw ganlyniadau + Gwiria dy fod wedi sillafu\'n gywir neu rho gynnig ar allweddair arall. + Bydd traciau rwyt yn eu nodi fel ffefrynnau yn ymddangos yma. + Dim traciau diweddar + Bydd traciau rwyt wedi gwrando arnynt yn ddiweddar yn ymddangos yma. + Does dim traciau yn y rhestr chwarae + I ychwanegu traciau at y rhestr chwarae hon, tapia dewislen opsiynau trac, casgliad neu artist a dewis \"Ychwanegu i\'r rhestr chwarae\". + Does dim traciau poblogaidd Caiff y traciau wyt yn eu chwarae amlaf eu hychwanegu i\'r rhestr hon. + Does dim traciau wedi\'u hychwanegu\'n ddiweddar + Bydd traciau rwyt wedi gwrando arnynt yn ystod y mis diwethaf yn ymddangos yma. + Ni chanfuwyd unrhyw draciau sain I gopïo cerddoriaeth o dy gyfrifiadur i dy ddyfais, defnyddia gebl USB. + Does dim traciau yn y ciw chwarae + I ychwanegu traciau i dy Giw Chwarae, tapia\'r ddewislen dewisiadau ar drac, casgliad neu artist a dewis \"Ychwanegu i\'r ciw\". Methu â chwarae trac %1$s - Blwyddyn anhysbys + Byrrach na 30 eiliad + 30 i 60 eiliad 1 - 2 munud + 2 - 3 munud + 3 i 4 munud + 4 i 5 munud + 5 i 10 munud 10 - 30 munud + 30 i 60 munud + Hirach na 60 munud 1 cân + 2 - 4 cân + 5 i 9 o draciau + 10+ o draciau 5+ casgliad + "Arall" + Dangos pob artist Dangos pob casgliad + Dangos pob trac + Dangos pob rhestr chwarae + Chwilio traciau + Pob artist \"%s\" Pob \"%s\" casgliad + Pob trac \"%s\" + Pob rhestr chwarae \"%s\" + %1$s %2$s + Chwarae cerddoriaeth diff --git a/app/src/main/res/values-da/plurals.xml b/app/src/main/res/values-da/plurals.xml index 5c0eb33..f0afeac 100644 --- a/app/src/main/res/values-da/plurals.xml +++ b/app/src/main/res/values-da/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d kunstner - %d kunstnere - - - - %d album - %d albums - - - - %d sang - %d sange - - - - %d genre - %d genrer - - - - %dt - %dt - - - - %dm - %dm - - - - %d sang føjet til spillelisten. - %d sange føjet til spillelisten. - - - - %d sang fjernet fra spillelisten. - %d sange fjernet fra spillelisten. - - - - %d sang føjet til køen. - %d sange føjet til køen. - - - - %d sang føjet til favoritter. - %d sange føjet til favoritter. - - - - %d sang blev slettet. - %d sange blev slettet. - + + %d kunstner + %d kunstnere + + + %d album + %d albums + + + %d sang + %d sange + + + %d genre + %d genrer + + + %dt + %dt + + + %dm + %dm + + + %d sang føjet til spillelisten. + %d sange føjet til spillelisten. + + + %d sang fjernet fra spillelisten. + %d sange fjernet fra spillelisten. + + + %d sang føjet til køen. + %d sange føjet til køen. + + + %d sang føjet til favoritter. + %d sange føjet til favoritter. + + + %d sang blev slettet. + %d sange blev slettet. + diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 63261c4..0514737 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Musik - - Seneste - Kunstnere - Albums - Sange - Playlister - Genrer - Afspiller nu - Afspilningskø - - Albums - Top Sange - Alle Sange - - Indstillinger - Søg - Bland - Bland alle - Bland playliste - Bland album - Bland kunstner - Bland top numre - Bland senest afspillet - Bland senest tilføjet - Afspil alle - Sortér efter - Ryd listen - Ryd seneste - Ryd kø - Gem køen til afspilningsliste - Equalizer - - Føj til playliste - Føj til kø - Fjern fra seneste - Fjern fra kø - - A-Z - Z-A - Kunstner - Album - År - Varighed - Dato tilføjet - Nummerliste - Antal sange - Antal albums - Filnavn - - Sidst tilføjet - Nyligt afspillede - Mine top numre - - Ny playliste - Gem - Annuller - Overskriv - Ryd - Playliste %d - Playlistenavn - Slet %s? - Ryd top numre? - Ryd senest afspillet? - Ryd senest tilføjet? - Dette kan ikke fortrydes - Dette vil permanent slette de cachede billedindekser - Vælg foto fra Galleri - Google-søgning - Brug standardfoto - Brug gammelt foto - - Afspil - Afspil næste - Afspil album - Mere fra kunstner - Omdøb - Slet - Hent albumcover - Hent kunstnerbillede - Fjern fra seneste - Brug som ringetone - Fjern fra playliste - Skift billede - - Afspil - Pause - Næste - Forrige - Bland - Bland alle - Gentag - Gentag alle - Gentag én - Åben kø - Gennemse musik - - \'%s\' valgt som ringetone - Playliste omdøbt - - Brugerflade - Lager - Data - Ryd cache - Fjern alle cachelagrede billeder - Download kun via Wi-Fi - For at begrænse dataforbrug, hent ikke billeder via mobildata - Download manglende albumcover - Download manglende kunstnerbilleder - Generelt - Vis visualisering af musik - Vis sangtekster - For sange der har en srt-fil - Ryst for at afspille - Ryst din enhed for at afspille næste sang - Albumcover på låseskærm - Erstatte låseskærmens baggrund med albumcover - - Musik: 4 \u00d7 1 - Musik: 4 \u00d7 2 - Musik: 4 \u00d7 2 (alternativ) - Musik: lyttet til for nyligt - - Equalizeren kunne ikke åbnes. - Brug et USB-kabel for at kopiere musik fra din computer til enheden. - Ingen søgeresultater fundet - Kontroller at du har stavet rigtigt, eller prøv et andet søgeord. - Sange, du har markeret som favoritter, vil blive vist her. - Ingen nyere sange - Sange, du senest har lyttet til, vil blive vist her. - Ingen sange i playlisten - For at tilføje sange til denne playliste, skal du trykke på indstillingsmenuen på en sang, et album eller kunstner og vælge \"Føj til playliste\". - Ingen top numre - De sange, du lytter mest til, tilføjes denne liste. - Ingen sange tilføjet for nylig - Sange, som du har tilføjet i løbet af den sidste måned, vil blive vist her. - Ingen musik fundet - Brug et USB-kabel for at kopiere musik fra din computer til enheden. - Ingen sange i afspilningskøen - For at føje sange til afspilningskøen, tryk på indstillingsmenuen på en sang eller kunstner og vælg \"Føj til kø\". - Kan ikke afspille spor %1$s - - Ukendt år - Mindre end 30 sekunder - 30 - 60 sekunder - 1 - 2 minutter - 2 - 3 minutter - 3 - 4 minutter - 4 - 5 minutter - 5 - 10 minutter - 10 - 30 minutter - 30 - 60 minutter - Mere end 60 minutter - 1 sang - 2 - 4 sange - 5 - 9 sange - 10 sange eller flere - 5+ albums - "Andre" - Vis alle kunstnere - Vis alle albums - Vis alle sange - Vis alle playlister - Søg efter musik - Alle \"%s\" kunstnere - Alle \"%s\" albums - Alle \"%s\" sange - Alle \"%s\" playlister - %1$s %2$s + Musik + Seneste + Kunstnere + Albums + Sange + Playlister + Genrer + Afspiller nu + Afspilningskø + Albums + Top Sange + Alle Sange + Indstillinger + Søg + Bland + Bland alle + Bland playliste + Bland album + Bland kunstner + Bland top numre + Bland senest afspillet + Bland senest tilføjet + Afspil alle + Sortér efter + Ryd listen + Ryd seneste + Ryd kø + Gem køen til afspilningsliste + Equalizer + Føj til playliste + Føj til kø + Fjern fra seneste + Fjern fra kø + A-Z + Z-A + Kunstner + Album + År + Varighed + Dato tilføjet + Nummerliste + Antal sange + Antal albums + Filnavn + Sidst tilføjet + Nyligt afspillede + Mine top numre + Ny playliste + Gem + Annuller + Overskriv + Ryd + Playliste %d + Playlistenavn + Slet %s? + Ryd top numre? + Ryd senest afspillet? + Ryd senest tilføjet? + Dette kan ikke fortrydes + Dette vil permanent slette de cachede billedindekser + Vælg foto fra Galleri + Google-søgning + Brug standardfoto + Brug gammelt foto + Afspil + Afspil næste + Afspil album + Mere fra kunstner + Omdøb + Slet + Hent albumcover + Hent kunstnerbillede + Fjern fra seneste + Brug som ringetone + Fjern fra playliste + Skift billede + Afspil + Pause + Næste + Forrige + Bland + Bland alle + Gentag + Gentag alle + Gentag én + Åben kø + Gennemse musik + \'%s\' valgt som ringetone + Playliste omdøbt + Brugerflade + Lager + Data + Ryd cache + Fjern alle cachelagrede billeder + Download kun via Wi-Fi + For at begrænse dataforbrug, hent ikke billeder via mobildata + Download manglende albumcover + Download manglende kunstnerbilleder + Generelt + Vis visualisering af musik + Vis sangtekster + For sange der har en srt-fil + Ryst for at afspille + Ryst din enhed for at afspille næste sang + Albumcover på låseskærm + Erstatte låseskærmens baggrund med albumcover + Musik: 4 \u00d7 1 + Musik: 4 \u00d7 2 + Musik: 4 \u00d7 2 (alternativ) + Musik: lyttet til for nyligt + Equalizeren kunne ikke åbnes. + Brug et USB-kabel for at kopiere musik fra din computer til enheden. + Ingen søgeresultater fundet + Kontroller at du har stavet rigtigt, eller prøv et andet søgeord. + Sange, du har markeret som favoritter, vil blive vist her. + Ingen nyere sange + Sange, du senest har lyttet til, vil blive vist her. + Ingen sange i playlisten + For at tilføje sange til denne playliste, skal du trykke på indstillingsmenuen på en sang, et album eller kunstner og vælge \"Føj til playliste\". + Ingen top numre + De sange, du lytter mest til, tilføjes denne liste. + Ingen sange tilføjet for nylig + Sange, som du har tilføjet i løbet af den sidste måned, vil blive vist her. + Ingen musik fundet + Brug et USB-kabel for at kopiere musik fra din computer til enheden. + Ingen sange i afspilningskøen + For at føje sange til afspilningskøen, tryk på indstillingsmenuen på en sang eller kunstner og vælg \"Føj til kø\". + Kan ikke afspille spor %1$s + Ukendt år + Mindre end 30 sekunder + 30 - 60 sekunder + 1 - 2 minutter + 2 - 3 minutter + 3 - 4 minutter + 4 - 5 minutter + 5 - 10 minutter + 10 - 30 minutter + 30 - 60 minutter + Mere end 60 minutter + 1 sang + 2 - 4 sange + 5 - 9 sange + 10 sange eller flere + 5+ albums + "Andre" + Vis alle kunstnere + Vis alle albums + Vis alle sange + Vis alle playlister + Søg efter musik + Alle \"%s\" kunstnere + Alle \"%s\" albums + Alle \"%s\" sange + Alle \"%s\" playlister + %1$s %2$s diff --git a/app/src/main/res/values-de/plurals.xml b/app/src/main/res/values-de/plurals.xml index abe4ec8..f1560f5 100644 --- a/app/src/main/res/values-de/plurals.xml +++ b/app/src/main/res/values-de/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d Interpret - %d Interpreten - - - - %d Album - %d Alben - - - - %d Titel - %d Titel - - - - %d Genre - %d Genres - - - - %d h - %d h - - - - %d m - %d m - - - - %d Titel wurde zur Wiedergabeliste hinzugefügt. - %d Titel wurden zur Wiedergabeliste hinzugefügt. - - - - %d Titel wurde aus der Wiedergabeliste entfernt. - %d Titel wurden aus der Wiedergabeliste entfernt. - - - - %d Titel wurde zur Warteschlange hinzugefügt. - %d Titel wurden zur Warteschlange hinzugefügt. - - - - %d Titel wurde zu den Favoriten hinzugefügt. - %d Titel wurden zu den Favoriten hinzugefügt. - - - - %d Titel wurde gelöscht. - %d Titel wurden gelöscht. - + + %d Interpret + %d Interpreten + + + %d Album + %d Alben + + + %d Titel + %d Titel + + + %d Genre + %d Genres + + + %d h + %d h + + + %d m + %d m + + + %d Titel wurde zur Wiedergabeliste hinzugefügt. + %d Titel wurden zur Wiedergabeliste hinzugefügt. + + + %d Titel wurde aus der Wiedergabeliste entfernt. + %d Titel wurden aus der Wiedergabeliste entfernt. + + + %d Titel wurde zur Warteschlange hinzugefügt. + %d Titel wurden zur Warteschlange hinzugefügt. + + + %d Titel wurde zu den Favoriten hinzugefügt. + %d Titel wurden zu den Favoriten hinzugefügt. + + + %d Titel wurde gelöscht. + %d Titel wurden gelöscht. + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2346575..a315d04 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musik - - Kürzlich gehört - Interpreten - Alben - Titel - Wiedergabelisten - Genres - Aktuelle Wiedergabe - Wiedergabe-Warteschlange - - Alben - Toptitel - Alle Titel - - Einstellungen - Suche - Zufällige Wiedergabe - Alles zufällig wiedergeben - Wiedergabeliste zufällig abspielen - Album zufällig wiedergeben - Titel dieses Interpreten zufällig wiedergeben - Toptitel zufällig wiedergeben - Kürzlich gehörte Titel zufällig wiedergeben - Zuletzt hinzugefügte Titel zufällig wiedergeben - Alle wiedergeben - Sortieren nach - Liste löschen - \"Kürzlich gehört\" löschen - Warteschlange löschen - Warteschlange als Wiedergabeliste speichern - Equalizer - - Zur Wiedergabeliste hinzufügen - Zur Warteschlange hinzufügen - Aus \"Kürzlich gehört\" entfernen - Aus Warteschlange entfernen - - A-Z - Z-A - Interpret - Album - Jahr - Titellänge - Hinzugefügt am - Titelliste - Titelanzahl - Albenanzahl - Dateiname - - Zuletzt hinzugefügt - Kürzlich gespielt - Meine Toptitel - - Neue Wiedergabeliste - Speichern - Abbrechen - Überschreiben - Löschen - Wiedergabeliste %d - Name der Wiedergabeliste - %s löschen? - Toptitel löschen? - Liste der kürzlich gespielten Titel löschen? - Liste der zuletzt hinzugefügten Titel löschen? - Dies kann nicht rückgängig gemacht werden. - Alle zwischengespeicherten Bilder werden hiermit endgültig gelöscht. - Foto aus Galerie auswählen - Google-Suche - Standardfoto verwenden - Altes Foto verwenden - - Wiedergeben - Als nächstes wiedergeben - Album wiedergeben - Mehr von diesem Künstler - Umbenennen - Löschen - Albumcover herunterladen - Interpretenbild herunterladen - Aus \"Kürzlich gehört\" entfernen - Als Klingelton verwenden - Aus Wiedergabeliste entfernen - Bild ändern - - Wiedergeben - Pause - Weiter - Vorheriger Titel - Zufällige Wiedergabe - Alles zufällig wiedergeben - Wiederholen - Alle Titel wiederholen - Aktuellen Titel wiederholen - Warteschlange öffnen - Musik durchsuchen - - \"%s\" wurde als Klingelton festgelegt. - Wiedergabeliste umbenannt - - Oberfläche - Speicher - Daten - Cache löschen - Alle zwischengespeicherten Bilder löschen - Nur über WLAN herunterladen - Downloads über Mobilfunknetze vermeiden, um Kosten für die Datenübertragung zu senken - Fehlende Albencover herunterladen - Fehlende Interpretenbilder herunterladen - Allgemein - Musik-Visualisierung anzeigen - Songtexte zeigen - Für Titel mit einer SRT-Datei - Zum Abspielen schütteln - Schütteln Sie Ihr Gerät, um den nächsten Titel abzuspielen. - Albumcover auf Sperrbildschirm - Hintergrund des Sperrbildschirms durch Albumcover ersetzen - - Musik: 4 \u00d7 1 - Musik: 4 \u00d7 2 - Musik: 4 \u00d7 2 (alternativ) - Musik: Kürzlich abgespielt - - Der Equalizer konnte nicht geöffnet werden. - Verwenden Sie ein USB-Kabel, um Musik von Ihrem Computer auf Ihr Gerät zu kopieren. - Keine Suchergebnisse gefunden - Bitte vergewissern Sie sich, dass die Schreibweise korrekt ist, oder versuchen Sie es mit einem anderen Stichwort. - Als Favorit markierte Titel werden hier angezeigt. - Keine kürzlich gespielten Titel - Zuletzt gehörte Titel werden hier angezeigt. - Keine Titel in der Wiedergabeliste - Tippen Sie im Optionsmenü auf einen Titel, Künstler oder ein Album und wählen Sie \"Zur Wiedergabeliste hinzufügen\", um den jeweiligen Eintrag zu dieser Liste hinzuzufügen. - Keine Toptitel - Meistgespielte Titel werden dieser Liste hinzugefügt. - Keine kürzlich hinzugefügten Titel - Hier werden Titel angezeigt, die innerhalb des letzten Monats hinzugefügt wurden. - Keine Musik gefunden - Verwenden Sie ein USB-Kabel, um Musik von Ihrem Computer auf das Gerät zu kopieren. - Keine Titel in der Warteschlange - Um Titel zur Warteschlange hinzuzufügen, wählen Sie im Optionsmenü eines Titels, Albums oder Interpreten \"Zur Warteschlange hinzufügen\". - Der Titel \"%1$s\" konnte nicht abgespielt werden. - - Unbekanntes Jahr - Weniger als 30 Sekunden - 30–60 Sekunden - 1–2 Minuten - 2–3 Minuten - 3–4 Minuten - 4–5 Minuten - 5–10 Minuten - 10–30 Minuten - 30–60 Minuten - Länger als 60 Minuten - 1 Titel - 2–4 Titel - 5–9 Titel - Mehr als 10 Titel - Mehr als 5 Alben - "Anderes" - Alle Interpreten anzeigen - Alle Alben anzeigen - Alle Titel anzeigen - Alle Wiedergabelisten anzeigen - Musik suchen - Alle \"%s\" Interpreten - Alle \"%s\" Alben - Alle \"%s\" Titel - Alle \"%s\" Wiedergabelisten - %1$s %2$s - Musikwiedergabe + Musik + Kürzlich gehört + Interpreten + Alben + Titel + Wiedergabelisten + Genres + Aktuelle Wiedergabe + Wiedergabe-Warteschlange + Alben + Toptitel + Alle Titel + Einstellungen + Suche + Zufällige Wiedergabe + Alles zufällig wiedergeben + Wiedergabeliste zufällig abspielen + Album zufällig wiedergeben + Titel dieses Interpreten zufällig wiedergeben + Toptitel zufällig wiedergeben + Kürzlich gehörte Titel zufällig wiedergeben + Zuletzt hinzugefügte Titel zufällig wiedergeben + Alle wiedergeben + Sortieren nach + Liste löschen + \"Kürzlich gehört\" löschen + Warteschlange löschen + Warteschlange als Wiedergabeliste speichern + Equalizer + Zur Wiedergabeliste hinzufügen + Zur Warteschlange hinzufügen + Aus \"Kürzlich gehört\" entfernen + Aus Warteschlange entfernen + A-Z + Z-A + Interpret + Album + Jahr + Titellänge + Hinzugefügt am + Titelliste + Titelanzahl + Albenanzahl + Dateiname + Zuletzt hinzugefügt + Kürzlich gespielt + Meine Toptitel + Neue Wiedergabeliste + Speichern + Abbrechen + Überschreiben + Löschen + Wiedergabeliste %d + Name der Wiedergabeliste + %s löschen? + Toptitel löschen? + Liste der kürzlich gespielten Titel löschen? + Liste der zuletzt hinzugefügten Titel löschen? + Dies kann nicht rückgängig gemacht werden. + Alle zwischengespeicherten Bilder werden hiermit endgültig gelöscht. + Foto aus Galerie auswählen + Google-Suche + Standardfoto verwenden + Altes Foto verwenden + Wiedergeben + Als nächstes wiedergeben + Album wiedergeben + Mehr von diesem Künstler + Umbenennen + Löschen + Albumcover herunterladen + Interpretenbild herunterladen + Aus \"Kürzlich gehört\" entfernen + Als Klingelton verwenden + Aus Wiedergabeliste entfernen + Bild ändern + Wiedergeben + Pause + Weiter + Vorheriger Titel + Zufällige Wiedergabe + Alles zufällig wiedergeben + Wiederholen + Alle Titel wiederholen + Aktuellen Titel wiederholen + Warteschlange öffnen + Musik durchsuchen + \"%s\" wurde als Klingelton festgelegt. + Wiedergabeliste umbenannt + Oberfläche + Speicher + Daten + Cache löschen + Alle zwischengespeicherten Bilder löschen + Nur über WLAN herunterladen + Downloads über Mobilfunknetze vermeiden, um Kosten für die Datenübertragung zu senken + Fehlende Albencover herunterladen + Fehlende Interpretenbilder herunterladen + Allgemein + Musik-Visualisierung anzeigen + Songtexte zeigen + Für Titel mit einer SRT-Datei + Zum Abspielen schütteln + Schütteln Sie Ihr Gerät, um den nächsten Titel abzuspielen. + Albumcover auf Sperrbildschirm + Hintergrund des Sperrbildschirms durch Albumcover ersetzen + Musik: 4 \u00d7 1 + Musik: 4 \u00d7 2 + Musik: 4 \u00d7 2 (alternativ) + Musik: Kürzlich abgespielt + Der Equalizer konnte nicht geöffnet werden. + Verwenden Sie ein USB-Kabel, um Musik von Ihrem Computer auf Ihr Gerät zu kopieren. + Keine Suchergebnisse gefunden + Bitte vergewissern Sie sich, dass die Schreibweise korrekt ist, oder versuchen Sie es mit einem anderen Stichwort. + Als Favorit markierte Titel werden hier angezeigt. + Keine kürzlich gespielten Titel + Zuletzt gehörte Titel werden hier angezeigt. + Keine Titel in der Wiedergabeliste + Tippen Sie im Optionsmenü auf einen Titel, Künstler oder ein Album und wählen Sie \"Zur Wiedergabeliste hinzufügen\", um den jeweiligen Eintrag zu dieser Liste hinzuzufügen. + Keine Toptitel + Meistgespielte Titel werden dieser Liste hinzugefügt. + Keine kürzlich hinzugefügten Titel + Hier werden Titel angezeigt, die innerhalb des letzten Monats hinzugefügt wurden. + Keine Musik gefunden + Verwenden Sie ein USB-Kabel, um Musik von Ihrem Computer auf das Gerät zu kopieren. + Keine Titel in der Warteschlange + Um Titel zur Warteschlange hinzuzufügen, wählen Sie im Optionsmenü eines Titels, Albums oder Interpreten \"Zur Warteschlange hinzufügen\". + Der Titel \"%1$s\" konnte nicht abgespielt werden. + Unbekanntes Jahr + Weniger als 30 Sekunden + 30–60 Sekunden + 1–2 Minuten + 2–3 Minuten + 3–4 Minuten + 4–5 Minuten + 5–10 Minuten + 10–30 Minuten + 30–60 Minuten + Länger als 60 Minuten + 1 Titel + 2–4 Titel + 5–9 Titel + Mehr als 10 Titel + Mehr als 5 Alben + "Anderes" + Alle Interpreten anzeigen + Alle Alben anzeigen + Alle Titel anzeigen + Alle Wiedergabelisten anzeigen + Musik suchen + Alle \"%s\" Interpreten + Alle \"%s\" Alben + Alle \"%s\" Titel + Alle \"%s\" Wiedergabelisten + %1$s %2$s + Musikwiedergabe diff --git a/app/src/main/res/values-el/plurals.xml b/app/src/main/res/values-el/plurals.xml index 88a668b..78f1d9f 100644 --- a/app/src/main/res/values-el/plurals.xml +++ b/app/src/main/res/values-el/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d καλλιτέχνης - %d καλλιτέχνες - - - - %d άλμπουμ - %d άλμπουμ - - - - %d τραγούδι - %d τραγούδια - - - - %d είδος - %d είδη - - - - %dω - %dω - - - - %dλ - %dλ - - - - %d τραγούδι προστέθηκε στη λίστα αναπαραγωγής. - %d τραγούδια προστέθηκαν στη λίστα αναπαραγωγής. - - - - %d τραγούδι αφαιρέθηκε από τη λίστα αναπαραγωγής. - %d τραγούδια αφαιρέθηκαν από τη λίστα αναπαραγωγής. - - - - %d τραγούδι προστέθηκε στην ουρά. - %d τραγούδια προστέθηκαν στην ουρά. - - - - %d τραγούδι προστέθηκε στα αγαπημένα. - %d τραγούδια προστέθηκαν στα αγαπημένα. - - - - %d τραγούδι διεγράφη. - %d τραγούδια διαγράφηκαν. - + + %d καλλιτέχνης + %d καλλιτέχνες + + + %d άλμπουμ + %d άλμπουμ + + + %d τραγούδι + %d τραγούδια + + + %d είδος + %d είδη + + + %dω + %dω + + + %dλ + %dλ + + + %d τραγούδι προστέθηκε στη λίστα αναπαραγωγής. + %d τραγούδια προστέθηκαν στη λίστα αναπαραγωγής. + + + %d τραγούδι αφαιρέθηκε από τη λίστα αναπαραγωγής. + %d τραγούδια αφαιρέθηκαν από τη λίστα αναπαραγωγής. + + + %d τραγούδι προστέθηκε στην ουρά. + %d τραγούδια προστέθηκαν στην ουρά. + + + %d τραγούδι προστέθηκε στα αγαπημένα. + %d τραγούδια προστέθηκαν στα αγαπημένα. + + + %d τραγούδι διεγράφη. + %d τραγούδια διαγράφηκαν. + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index f884d3a..49b2639 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Μουσική - - Πρόσφατα - Καλλιτέχνες - Άλμπουμ - Τραγούδια - Λίστες αναπαραγωγής - Είδη - Παίζει Τώρα - Ουρά αναπαραγωγής - - Άλμπουμ - Κορυφαία τραγούδια - Όλα τα τραγούδια - - Ρυθμίσεις - Αναζήτηση - Τυχαία αναπαραγωγή - Τυχαία αναπαραγωγή όλων - Τυχαία αναπαραγωγή λίστας - Τυχαία αναπαραγωγή άλμπουμ - Τυχαία αναπαραγωγή καλλιτέχνη - Τυχαία αναπαραγωγή κορυφαίων κομματιών - Τυχαία αναπαραγωγή προσφάτων - Τυχαία αναπαραγωγή τελευταίων αφίξεων - Αναπαραγωγή όλων - Ταξινόμηση κατά - Εκκαθάριση λίστας - Εκκαθάριση προσφάτων - Εκκαθάριση ουράς - Αποθήκευση ουράς σε λίστα αναπαραγωγής - Ισοσταθμιστής - - Προσθήκη στη λίστα αναπαραγωγής - Προσθήκη στην ουρά - Κατάργηση από τα πρόσφατα - Κατάργηση από την ουρά - - Α-Ω - Ω-Α - Καλλιτέχνης - Άλμπουμ - Έτος - Διάρκεια - Ημερομηνία προσθήκης - Λίστα κομματιών - Αριθμός τραγουδιών - Αριθμός άλμπουμ - Όνομα αρχείου - - Τελευταίες αφίξεις - Έπαιξαν πρόσφατα - Τα κορυφαία κομμάτια μου - - Νέα λίστα αναπαραγωγής - Αποθήκευση - Ακύρωση - Αντικατάσταση - Εκκαθάριση - Λίστα αναπαραγωγής %d - Όνομα λίστας αναπαραγωγής - Διαγραφή %s; - Εκκαθάριση κορυφαίων κομματιών; - Εκκαθάριση προσφάτων; - Εκκαθάριση τελευταίων αφίξεων; - Αυτό δεν μπορεί να αναιρεθεί - Αυτό θα διαγράψει μόνιμα τις προσωρινά αποθηκευμένες εικόνες - Επιλέξτε φωτογραφία από τη Συλλογή - Αναζήτηση Google - Χρήση προεπιλεγμένης φωτογραφίας - Χρήση παλιάς φωτογραφίας - - Αναπαραγωγή - Αναπαραγωγή επόμενου - Αναπαραγωγή άλμπουμ - Περισσότερα από τον καλλιτέχνη - Μετονομασία - Διαγραφή - Λήψη εξώφυλλου άλμπουμ - Λήψη εικόνας καλλιτέχνη - Κατάργηση από τα πρόσφατα - Χρήση ως ήχος κλήσης - Αφαίρεση από τη λίστα - Αλλαγή εικόνας - - Αναπαραγωγή - Παύση - Επόμενο - Προηγούμενο - Τυχαία αναπαραγωγή - Τυχαία αναπαραγωγή όλων - Επανάληψη - Επανάληψη όλων - Επανάληψη ενός - Άνοιγμα ουράς - Περιήγηση μουσικής - - \'%s\' ορίστηκε ως ήχος κλήσης - Η λίστα αναπαραγωγής μετονομάστηκε - - Διεπαφή - Αποθ. χώρος - Δεδομένα - Διαγράφη προσωρινής μνήμης - Κατάργηση όλων των προσωρινά αποθηκευμένων εικόνων - Λήψη μόνο μέσω Wi-Fi - Για μείωση των χρεώσεων, να μην γίνεται λήψη μέσω του δίκτυου κινητής τηλεφωνίας - Λήψη εξωφύλλων άλμπουμ που λείπουν - Λήψη εικόνων καλλιτέχνη που λείπουν - Γενικά - Εμφάνιση οπτικοποίησης μουσικής - Εμφάνιση στίχων τραγουδιών - Για τραγούδια που έχουν αρχείο srt - Ανακίνηση για αναπαραγωγή - Κουνήστε τη συσκευή σας για αναπαραγωγή του επόμενου τραγουδιού - Εξώφυλλο άλμπουμ στην οθόνη κλειδώματος - Αντικατάσταση της ταπετσαρίας οθόνης κλειδώματος με το εξώφυλλο άλμπουμ - - Μουσική: 4 \u00d7 1 - Μουσική: 4 \u00d7 2 - Μουσική: 4 \u00d7 2 (εναλλακτικό) - Μουσική: ακούστηκαν πρόσφατα - - Δεν ήταν δυνατό το άνοιγμα του ισοσταθμιστή. - Για να αντιγράψετε μουσική από τον υπολογιστή στη συσκευή σας, χρησιμοποιήστε ένα καλώδιο USB. - Δεν βρέθηκαν αποτελέσματα αναζήτησης - Παρακαλώ ελέγξτε ότι έχετε τη σωστή ορθογραφία ή δοκιμάστε μια διαφορετική λέξη-κλειδί. - Τραγούδια που έχετε επιλέξει ως αγαπημένα θα εμφανίζονται εδώ. - Δεν υπάρχουν πρόσφατα τραγούδια - Τραγούδια που ακούσατε πρόσφατα θα εμφανίζονται εδώ. - Δεν υπάρχουν τραγούδια στη λίστα αναπαραγωγής - Για να προσθέσετε τραγούδια σε αυτήν τη λίστα αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \"Προσθήκη στη λίστα αναπαραγωγής\". - Δεν υπάρχουν κορυφαία κομμάτια - Τα τραγούδια που ακούτε περισσότερο θα προστίθενται σε αυτήν τη λίστα. - Δεν προστέθηκαν τραγούδια πρόσφατα - Τραγούδια που έχετε προσθέσει τον τελευταίο μήνα θα εμφανίζονται εδώ. - Δεν βρέθηκε μουσική - Για να αντιγράψετε μουσική από τον υπολογιστή στη συσκευή σας, χρησιμοποιήστε ένα καλώδιο USB. - Δεν υπάρχουν τραγούδια στην ουρά αναπαραγωγής - Για να προσθέσετε τραγούδια στην ουρά αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \"Προσθήκη στην ουρά\". - Δεν είναι δυνατή η αναπαραγωγή του κομματιού %1$s - - Άγνωστο έτος - Λιγότερο από 30 δευτερόλεπτα - 30 - 60 δευτερόλεπτα - 1 - 2 λεπτά - 2 - 3 λεπτά - 3 - 4 λεπτά - 4 - 5 λεπτά - 5 - 10 λεπτά - 10 - 30 λεπτά - 30 - 60 λεπτά - Περισσότερο από 60 λεπτά - 1 τραγούδι - 2 - 4 τραγούδια - 5 - 9 τραγούδια - 10+ τραγούδια - 5+ άλμπουμ - "Άλλα" - Εμφάνιση όλων των καλλιτεχνών - Εμφάνιση όλων των άλμπουμ - Εμφάνιση όλων των τραγουδιών - Εμφάνιση όλων των λιστών αναπαραγωγής - Αναζήτηση μουσικής - Όλοι οι καλλιτέχνες \"%s\" - Όλα τα άλμπουμ \"%s\" - Όλα τα τραγούδια \"%s\" - Όλες οι λίστες αναπαραγωγής \"%s\" - %1$s %2$s - Αναπαραγωγή μουσικής + Μουσική + Πρόσφατα + Καλλιτέχνες + Άλμπουμ + Τραγούδια + Λίστες αναπαραγωγής + Είδη + Παίζει Τώρα + Ουρά αναπαραγωγής + Άλμπουμ + Κορυφαία τραγούδια + Όλα τα τραγούδια + Ρυθμίσεις + Αναζήτηση + Τυχαία αναπαραγωγή + Τυχαία αναπαραγωγή όλων + Τυχαία αναπαραγωγή λίστας + Τυχαία αναπαραγωγή άλμπουμ + Τυχαία αναπαραγωγή καλλιτέχνη + Τυχαία αναπαραγωγή κορυφαίων κομματιών + Τυχαία αναπαραγωγή προσφάτων + Τυχαία αναπαραγωγή τελευταίων αφίξεων + Αναπαραγωγή όλων + Ταξινόμηση κατά + Εκκαθάριση λίστας + Εκκαθάριση προσφάτων + Εκκαθάριση ουράς + Αποθήκευση ουράς σε λίστα αναπαραγωγής + Ισοσταθμιστής + Προσθήκη στη λίστα αναπαραγωγής + Προσθήκη στην ουρά + Κατάργηση από τα πρόσφατα + Κατάργηση από την ουρά + Α-Ω + Ω-Α + Καλλιτέχνης + Άλμπουμ + Έτος + Διάρκεια + Ημερομηνία προσθήκης + Λίστα κομματιών + Αριθμός τραγουδιών + Αριθμός άλμπουμ + Όνομα αρχείου + Τελευταίες αφίξεις + Έπαιξαν πρόσφατα + Τα κορυφαία κομμάτια μου + Νέα λίστα αναπαραγωγής + Αποθήκευση + Ακύρωση + Αντικατάσταση + Εκκαθάριση + Λίστα αναπαραγωγής %d + Όνομα λίστας αναπαραγωγής + Διαγραφή %s; + Εκκαθάριση κορυφαίων κομματιών; + Εκκαθάριση προσφάτων; + Εκκαθάριση τελευταίων αφίξεων; + Αυτό δεν μπορεί να αναιρεθεί + Αυτό θα διαγράψει μόνιμα τις προσωρινά αποθηκευμένες εικόνες + Επιλέξτε φωτογραφία από τη Συλλογή + Αναζήτηση Google + Χρήση προεπιλεγμένης φωτογραφίας + Χρήση παλιάς φωτογραφίας + Αναπαραγωγή + Αναπαραγωγή επόμενου + Αναπαραγωγή άλμπουμ + Περισσότερα από τον καλλιτέχνη + Μετονομασία + Διαγραφή + Λήψη εξώφυλλου άλμπουμ + Λήψη εικόνας καλλιτέχνη + Κατάργηση από τα πρόσφατα + Χρήση ως ήχος κλήσης + Αφαίρεση από τη λίστα + Αλλαγή εικόνας + Αναπαραγωγή + Παύση + Επόμενο + Προηγούμενο + Τυχαία αναπαραγωγή + Τυχαία αναπαραγωγή όλων + Επανάληψη + Επανάληψη όλων + Επανάληψη ενός + Άνοιγμα ουράς + Περιήγηση μουσικής + \'%s\' ορίστηκε ως ήχος κλήσης + Η λίστα αναπαραγωγής μετονομάστηκε + Διεπαφή + Αποθ. χώρος + Δεδομένα + Διαγράφη προσωρινής μνήμης + Κατάργηση όλων των προσωρινά αποθηκευμένων εικόνων + Λήψη μόνο μέσω Wi-Fi + Για μείωση των χρεώσεων, να μην γίνεται λήψη μέσω του δίκτυου κινητής τηλεφωνίας + Λήψη εξωφύλλων άλμπουμ που λείπουν + Λήψη εικόνων καλλιτέχνη που λείπουν + Γενικά + Εμφάνιση οπτικοποίησης μουσικής + Εμφάνιση στίχων τραγουδιών + Για τραγούδια που έχουν αρχείο srt + Ανακίνηση για αναπαραγωγή + Κουνήστε τη συσκευή σας για αναπαραγωγή του επόμενου τραγουδιού + Εξώφυλλο άλμπουμ στην οθόνη κλειδώματος + Αντικατάσταση της ταπετσαρίας οθόνης κλειδώματος με το εξώφυλλο άλμπουμ + Μουσική: 4 \u00d7 1 + Μουσική: 4 \u00d7 2 + Μουσική: 4 \u00d7 2 (εναλλακτικό) + Μουσική: ακούστηκαν πρόσφατα + Δεν ήταν δυνατό το άνοιγμα του ισοσταθμιστή. + Για να αντιγράψετε μουσική από τον υπολογιστή στη συσκευή σας, χρησιμοποιήστε ένα καλώδιο USB. + Δεν βρέθηκαν αποτελέσματα αναζήτησης + Παρακαλώ ελέγξτε ότι έχετε τη σωστή ορθογραφία ή δοκιμάστε μια διαφορετική λέξη-κλειδί. + Τραγούδια που έχετε επιλέξει ως αγαπημένα θα εμφανίζονται εδώ. + Δεν υπάρχουν πρόσφατα τραγούδια + Τραγούδια που ακούσατε πρόσφατα θα εμφανίζονται εδώ. + Δεν υπάρχουν τραγούδια στη λίστα αναπαραγωγής + Για να προσθέσετε τραγούδια σε αυτήν τη λίστα αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \"Προσθήκη στη λίστα αναπαραγωγής\". + Δεν υπάρχουν κορυφαία κομμάτια + Τα τραγούδια που ακούτε περισσότερο θα προστίθενται σε αυτήν τη λίστα. + Δεν προστέθηκαν τραγούδια πρόσφατα + Τραγούδια που έχετε προσθέσει τον τελευταίο μήνα θα εμφανίζονται εδώ. + Δεν βρέθηκε μουσική + Για να αντιγράψετε μουσική από τον υπολογιστή στη συσκευή σας, χρησιμοποιήστε ένα καλώδιο USB. + Δεν υπάρχουν τραγούδια στην ουρά αναπαραγωγής + Για να προσθέσετε τραγούδια στην ουρά αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \"Προσθήκη στην ουρά\". + Δεν είναι δυνατή η αναπαραγωγή του κομματιού %1$s + Άγνωστο έτος + Λιγότερο από 30 δευτερόλεπτα + 30 - 60 δευτερόλεπτα + 1 - 2 λεπτά + 2 - 3 λεπτά + 3 - 4 λεπτά + 4 - 5 λεπτά + 5 - 10 λεπτά + 10 - 30 λεπτά + 30 - 60 λεπτά + Περισσότερο από 60 λεπτά + 1 τραγούδι + 2 - 4 τραγούδια + 5 - 9 τραγούδια + 10+ τραγούδια + 5+ άλμπουμ + "Άλλα" + Εμφάνιση όλων των καλλιτεχνών + Εμφάνιση όλων των άλμπουμ + Εμφάνιση όλων των τραγουδιών + Εμφάνιση όλων των λιστών αναπαραγωγής + Αναζήτηση μουσικής + Όλοι οι καλλιτέχνες \"%s\" + Όλα τα άλμπουμ \"%s\" + Όλα τα τραγούδια \"%s\" + Όλες οι λίστες αναπαραγωγής \"%s\" + %1$s %2$s + Αναπαραγωγή μουσικής diff --git a/app/src/main/res/values-en-rAU/plurals.xml b/app/src/main/res/values-en-rAU/plurals.xml index 4ec2f21..da80412 100644 --- a/app/src/main/res/values-en-rAU/plurals.xml +++ b/app/src/main/res/values-en-rAU/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artists - - - - %d album - %d albums - - - - %d song - %d songs - - - - %d genre - %d genres - - - - %dh - %dh - - - - %dm - %dm - - - - %d song added to playlist. - %d songs added to playlist. - - - - %d song removed from playlist. - %d songs removed from playlist. - - - - %d song added to the queue. - %d songs added to the queue. - - - - %d song added to favourites. - %d songs added to favourites. - - - - %d song was deleted. - %d songs were deleted. - + + %d artist + %d artists + + + %d album + %d albums + + + %d song + %d songs + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d song added to playlist. + %d songs added to playlist. + + + %d song removed from playlist. + %d songs removed from playlist. + + + %d song added to the queue. + %d songs added to the queue. + + + %d song added to favourites. + %d songs added to favourites. + + + %d song was deleted. + %d songs were deleted. + diff --git a/app/src/main/res/values-en-rAU/strings.xml b/app/src/main/res/values-en-rAU/strings.xml index c205ce6..fae4e38 100644 --- a/app/src/main/res/values-en-rAU/strings.xml +++ b/app/src/main/res/values-en-rAU/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Music - - Recent - Artists - Albums - Songs - Playlists - Genres - Now Playing - Play Queue - - Albums - Top Songs - All Songs - - Settings - Search - Shuffle - Shuffle all - Shuffle playlist - Shuffle album - Shuffle artist - Shuffle top tracks - Shuffle recently played - Shuffle last added - Play all - Sort by - Clear list - Clear recent - Clear queue - Save queue to playlist - Equaliser - - Add to playlist - Add to queue - Remove from recent - Remove from queue - - A-Z - Z-A - Artist - Album - Year - Duration - Date added - Track list - Number of songs - Number of albums - Filename - - Last added - Recently played - My top tracks - - New playlist - Save - Cancel - Overwrite - Clear - Playlist %d - Playlist name - Delete %s? - Clear top tracks? - Clear recently played? - Clear last added? - This cannot be undone - This will permanently delete the cached image entries - Choose photo from Gallery - Google search - Use default photo - Use old photo - - Play - Play next - Play album - More by artist - Rename - Delete - Fetch album art - Fetch artist image - Remove from recent - Use as ringtone - Remove from playlist - Change image - - Play - Pause - Next - Previous - Shuffle - Shuffle all - Repeat - Repeat all - Repeat one - Open queue - Browse music - - \'%s\' set as ringtone - Playlist renamed - - Interface - Storage - Data - Delete cache - Remove all cached images - Download via Wi-Fi only - To reduce carrier charges, don\'t download over mobile networks - Download missing album art - Download missing artist images - General - Show music visualization - Show song lyrics - For songs that have an srt file - Shake to Play - Shake your device to play next song - Lockscreen album art - Replace lockscreen background with album art - - Music: 4 \u00d7 1 - Music: 4 \u00d7 2 - Music: 4 \u00d7 2 (alternate) - Music: recently listened - - The equaliser could not be opened. - To copy music from your computer to your device, use a USB cable. - No search results found - Please check that you have the correct spelling or try a different keyword. - Songs you mark as favourites will be shown here. - No recent songs - Songs you have listened to recently will show up here. - No songs in playlist - To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". - No top tracks - The songs you listen to most will be added to this list. - No songs added recently - Songs you have added over the last month will be shown here. - No music found - To copy music from your computer to your device, use a USB cable. - No songs in play queue - To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". - Unable to play track %1$s - - Unknown year - Less than 30 seconds - 30 - 60 seconds - 1 - 2 minutes - 2 - 3 minutes - 3 - 4 minutes - 4 - 5 minutes - 5 - 10 minutes - 10 - 30 minutes - 30 - 60 minutes - More than 60 minutes - 1 song - 2 - 4 songs - 5 - 9 songs - 10+ songs - 5+ albums - "Other" - Show all artists - Show all albums - Show all songs - Show all playlists - Search music - All \"%s\" artists - All \"%s\" albums - All \"%s\" songs - All \"%s\" playlists - %1$s %2$s - Music playback + Music + Recent + Artists + Albums + Songs + Playlists + Genres + Now Playing + Play Queue + Albums + Top Songs + All Songs + Settings + Search + Shuffle + Shuffle all + Shuffle playlist + Shuffle album + Shuffle artist + Shuffle top tracks + Shuffle recently played + Shuffle last added + Play all + Sort by + Clear list + Clear recent + Clear queue + Save queue to playlist + Equaliser + Add to playlist + Add to queue + Remove from recent + Remove from queue + A-Z + Z-A + Artist + Album + Year + Duration + Date added + Track list + Number of songs + Number of albums + Filename + Last added + Recently played + My top tracks + New playlist + Save + Cancel + Overwrite + Clear + Playlist %d + Playlist name + Delete %s? + Clear top tracks? + Clear recently played? + Clear last added? + This cannot be undone + This will permanently delete the cached image entries + Choose photo from Gallery + Google search + Use default photo + Use old photo + Play + Play next + Play album + More by artist + Rename + Delete + Fetch album art + Fetch artist image + Remove from recent + Use as ringtone + Remove from playlist + Change image + Play + Pause + Next + Previous + Shuffle + Shuffle all + Repeat + Repeat all + Repeat one + Open queue + Browse music + \'%s\' set as ringtone + Playlist renamed + Interface + Storage + Data + Delete cache + Remove all cached images + Download via Wi-Fi only + To reduce carrier charges, don\'t download over mobile networks + Download missing album art + Download missing artist images + General + Show music visualization + Show song lyrics + For songs that have an srt file + Shake to Play + Shake your device to play next song + Lockscreen album art + Replace lockscreen background with album art + Music: 4 \u00d7 1 + Music: 4 \u00d7 2 + Music: 4 \u00d7 2 (alternate) + Music: recently listened + The equaliser could not be opened. + To copy music from your computer to your device, use a USB cable. + No search results found + Please check that you have the correct spelling or try a different keyword. + Songs you mark as favourites will be shown here. + No recent songs + Songs you have listened to recently will show up here. + No songs in playlist + To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". + No top tracks + The songs you listen to most will be added to this list. + No songs added recently + Songs you have added over the last month will be shown here. + No music found + To copy music from your computer to your device, use a USB cable. + No songs in play queue + To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". + Unable to play track %1$s + Unknown year + Less than 30 seconds + 30 - 60 seconds + 1 - 2 minutes + 2 - 3 minutes + 3 - 4 minutes + 4 - 5 minutes + 5 - 10 minutes + 10 - 30 minutes + 30 - 60 minutes + More than 60 minutes + 1 song + 2 - 4 songs + 5 - 9 songs + 10+ songs + 5+ albums + "Other" + Show all artists + Show all albums + Show all songs + Show all playlists + Search music + All \"%s\" artists + All \"%s\" albums + All \"%s\" songs + All \"%s\" playlists + %1$s %2$s + Music playback diff --git a/app/src/main/res/values-en-rCA/plurals.xml b/app/src/main/res/values-en-rCA/plurals.xml index 9827780..133853e 100644 --- a/app/src/main/res/values-en-rCA/plurals.xml +++ b/app/src/main/res/values-en-rCA/plurals.xml @@ -17,15 +17,48 @@ limitations under the License. --> - - - - - - - - - - - + + %d artist + %d artists + + + %d album + %d albums + + + %d song + %d songs + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d song added to playlist. + %d song added to playlist. + + + %d song removed from playlist. + %d song removed from playlist. + + + %d song added to the queue. + %d song added to the queue. + + + %d song added to favourites. + %d songs added to favourites. + + + %d song was deleted. + %d songs were deleted. + diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml index ac715c0..fe66991 100644 --- a/app/src/main/res/values-en-rCA/strings.xml +++ b/app/src/main/res/values-en-rCA/strings.xml @@ -17,18 +17,160 @@ limitations under the License. --> - - - - - - - - - - - - - - + Music + Recent + Artists + Albums + Songs + Playlists + Genres + Now Playing + Play Queue + Albums + Top Songs + All Songs + Settings + Search + Shuffle + Shuffle all + Shuffle playlist + Shuffle album + Shuffle artist + Shuffle top tracks + Shuffle recently played + Shuffle last added + Play all + Sort by + Clear list + Clear recent + Clear queue + Save queue to playlist + Equalizer + Add to playlist + Add to queue + Remove from recent + Remove from queue + A-Z + Z-A + Artist + Album + Year + Duration + Date added + Track list + Number of songs + Number of albums + Filename + Last added + Recently played + My top tracks + New playlist + Save + Cancel + Overwrite + Clear + Playlist %d + Playlist name + Delete %s? + Clear top tracks? + Clear recently played? + Clear last added? + This cannot be undone + This will permanently delete the cached image entries + Choose photo from Gallery + Google search + Use default photo + Use old photo + Play + Play next + Play album + More by artist + Rename + Delete + Fetch album art + Fetch artist image + Remove from recent + Use as ringtone + Remove from playlist + Change image + Play + Pause + Next + Previous + Shuffle + Shuffle all + Repeat + Repeat all + Repeat one + Open queue + Browse music + \'%s\' set as ringtone + Playlist renamed + Interface + Storage + Data + Delete cache + Remove all cached images + Download via Wi-Fi only + To reduce carrier charges, don\'t download over mobile networks + Download missing album art + Download missing artist images + General + Show music visualization + Show song lyrics + For songs that have an srt file + Shake to Play + Shake your device to play next song + Lockscreen album art + Replace lockscreen background with album art + Music: 4 \u00d7 1 + Music: 4 \u00d7 2 + Music: 4 \u00d7 2 (alternate) + Music: recently listened + The equalizer could not be opened. + To copy music from your computer to your device, use a USB cable. + No search results found + Please check that you have the correct spelling or try a different keyword. + Songs you mark as favourites will be shown here. + No recent songs + Songs you have listened to recently will show up here. + No songs in playlist + To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". + No top tracks + The songs you listen to most will be added to this list. + No songs added recently + Songs you have added over the last month will be shown here. + No music found + To copy music from your computer to your device, use a USB cable. + No songs in play queue + To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". + Unable to play track %1$s + Unknown year + Less than 30 seconds + 30 - 60 seconds + 1 - 2 minutes + 2 - 3 minutes + 3 - 4 minutes + 4 - 5 minutes + 5 - 10 minutes + 10 - 30 minutes + 30 - 60 minutes + More than 60 minutes + 1 song + 2 - 4 songs + 5 - 9 songs + 10+ songs + 5+ albums + "Other" + Show all artists + Show all albums + Show all songs + Show all playlists + Search music + All \"%s\" artists + All \"%s\" albums + All \"%s\" songs + All \"%s\" playlists + %1$s %2$s + Music playback diff --git a/app/src/main/res/values-en-rGB/plurals.xml b/app/src/main/res/values-en-rGB/plurals.xml index 4ec2f21..da80412 100644 --- a/app/src/main/res/values-en-rGB/plurals.xml +++ b/app/src/main/res/values-en-rGB/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artists - - - - %d album - %d albums - - - - %d song - %d songs - - - - %d genre - %d genres - - - - %dh - %dh - - - - %dm - %dm - - - - %d song added to playlist. - %d songs added to playlist. - - - - %d song removed from playlist. - %d songs removed from playlist. - - - - %d song added to the queue. - %d songs added to the queue. - - - - %d song added to favourites. - %d songs added to favourites. - - - - %d song was deleted. - %d songs were deleted. - + + %d artist + %d artists + + + %d album + %d albums + + + %d song + %d songs + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d song added to playlist. + %d songs added to playlist. + + + %d song removed from playlist. + %d songs removed from playlist. + + + %d song added to the queue. + %d songs added to the queue. + + + %d song added to favourites. + %d songs added to favourites. + + + %d song was deleted. + %d songs were deleted. + diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index dd6aff3..b7ad64d 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -17,173 +17,160 @@ limitations under the License. --> - Music - - Recent - Artists - Albums - Songs - Playlists - Genres - Now Playing - Play Queue - - Albums - Top Songs - All Songs - - Settings - Search - Shuffle - Shuffle all - Shuffle playlist - Shuffle album - Shuffle artist - Shuffle top tracks - Shuffle recently played - Shuffle last added - Play all - Sort by - Clear list - Clear recent - Clear queue - Save queue to playlist - Equaliser - - Add to playlist - Add to queue - Remove from recent - Remove from queue - - A-Z - Z-A - Artist - Album - Year - Duration - Date added - Track list - Number of songs - Number of albums - Filename - - Last added - Recently Played - My top tracks - - New playlist - Save - Cancel - Overwrite - Clear - Playlist %d - Playlist name - Delete %s? - Clear top tracks? - Clear recently played? - Clear last added? - This cannot be undone - This will permanently delete the cached image entries - Choose photo from Gallery - Google search - Use default photo - Use old photo - - Play - Play next - Play album - More by artist - Rename - Delete - Fetch album art - Fetch artist image - Remove from recent - Use as ringtone - Remove from playlist - Change Image - - Play - Pause - Next - Previous - Shuffle - Shuffle all - Repeat - Repeat all - Repeat one - Open queue - Browse music - - \'%s\' set as ringtone - Playlist renamed - - Interface - Storage - Data - Delete cache - Remove all cached images - Download via Wi-Fi only - To reduce carrier charges, don\'t download over mobile networks - Download missing album art - Download missing artist images - General - Show music visualisation - Show song lyrics - For songs that have an srt file - Shake to Play - Shake your device to play next song - Lockscreen album art - Replace lockscreen background with album art - - Music: 4 \u00d7 1 - Music: 4 \u00d7 2 - Music: 4 \u00d7 2 (alternate) - Music: recently listened - - The equaliser could not be opened. - To copy music from your computer to your device, use a USB cable. - No search results found - Please check that you have the correct spelling or try a different keyword. - Songs you mark as favourites will be shown here. - No recent songs - Songs you have listened to recently will show up here. - No songs in playlist - To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". - No top tracks - The songs you listen to most will be added to this list. - No songs added recently - Songs you have added over the last month will be shown here. - No music found - To copy music from your computer to your device, use a USB cable. - No songs in play queue - To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". - Unable to play track %1$s - - Unknown year - Less than 30 seconds - 30 - 60 seconds - 1 - 2 minutes - 2 - 3 minutes - 3 - 4 minutes - 4 - 5 minutes - 5 - 10 minutes - 10 - 30 minutes - 30 - 60 minutes - More than 60 minutes - 1 song - 2 - 4 songs - 5 - 9 songs - 10+ songs - 5+ albums - "Other" - Show all artists - Show all albums - Show all songs - Show all playlists - Search music - All \"%s\" artists - All \"%s\" albums - All \"%s\" songs - All \"%s\" playlists - %1$s %2$s + Music + Recent + Artists + Albums + Songs + Playlists + Genres + Now Playing + Play Queue + Albums + Top Songs + All Songs + Settings + Search + Shuffle + Shuffle all + Shuffle playlist + Shuffle album + Shuffle artist + Shuffle top tracks + Shuffle recently played + Shuffle last added + Play all + Sort by + Clear list + Clear recent + Clear queue + Save queue to playlist + Equaliser + Add to playlist + Add to queue + Remove from recent + Remove from queue + A-Z + Z-A + Artist + Album + Year + Duration + Date added + Track list + Number of songs + Number of albums + Filename + Last added + Recently Played + My top tracks + New playlist + Save + Cancel + Overwrite + Clear + Playlist %d + Playlist name + Delete %s? + Clear top tracks? + Clear recently played? + Clear last added? + This cannot be undone + This will permanently delete the cached image entries + Choose photo from Gallery + Google search + Use default photo + Use old photo + Play + Play next + Play album + More by artist + Rename + Delete + Fetch album art + Fetch artist image + Remove from recent + Use as ringtone + Remove from playlist + Change Image + Play + Pause + Next + Previous + Shuffle + Shuffle all + Repeat + Repeat all + Repeat one + Open queue + Browse music + \'%s\' set as ringtone + Playlist renamed + Interface + Storage + Data + Delete cache + Remove all cached images + Download via Wi-Fi only + To reduce carrier charges, don\'t download over mobile networks + Download missing album art + Download missing artist images + General + Show music visualisation + Show song lyrics + For songs that have an srt file + Shake to Play + Shake your device to play next song + Lockscreen album art + Replace lockscreen background with album art + Music: 4 \u00d7 1 + Music: 4 \u00d7 2 + Music: 4 \u00d7 2 (alternate) + Music: recently listened + The equaliser could not be opened. + To copy music from your computer to your device, use a USB cable. + No search results found + Please check that you have the correct spelling or try a different keyword. + Songs you mark as favourites will be shown here. + No recent songs + Songs you have listened to recently will show up here. + No songs in playlist + To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". + No top tracks + The songs you listen to most will be added to this list. + No songs added recently + Songs you have added over the last month will be shown here. + No music found + To copy music from your computer to your device, use a USB cable. + No songs in play queue + To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". + Unable to play track %1$s + Unknown year + Less than 30 seconds + 30 - 60 seconds + 1 - 2 minutes + 2 - 3 minutes + 3 - 4 minutes + 4 - 5 minutes + 5 - 10 minutes + 10 - 30 minutes + 30 - 60 minutes + More than 60 minutes + 1 song + 2 - 4 songs + 5 - 9 songs + 10+ songs + 5+ albums + "Other" + Show all artists + Show all albums + Show all songs + Show all playlists + Search music + All \"%s\" artists + All \"%s\" albums + All \"%s\" songs + All \"%s\" playlists + %1$s %2$s + Music playback diff --git a/app/src/main/res/values-en-rIN/plurals.xml b/app/src/main/res/values-en-rIN/plurals.xml index b791672..a0ad81c 100644 --- a/app/src/main/res/values-en-rIN/plurals.xml +++ b/app/src/main/res/values-en-rIN/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artists - - - - %d album - %d albums - - - - %d song - %d songs - - - - %d genre - %d genres - - - - %dh - %dh - - - - %dm - %dm - - - - %d song added to playlist. - %d songs added to playlist. - - - - %d song removed from playlist. - %d songs removed from playlist. - - - - %d song added to the queue. - %d songs added to the queue. - - - - %d song added to favorites. - %d songs added to favorites. - - - - %d song was deleted. - %d songs were deleted. - + + %d artist + %d artists + + + %d album + %d albums + + + %d song + %d songs + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d song added to playlist. + %d songs added to playlist. + + + %d song removed from playlist. + %d songs removed from playlist. + + + %d song added to the queue. + %d songs added to the queue. + + + %d song added to favorites. + %d songs added to favorites. + + + %d song was deleted. + %d songs were deleted. + diff --git a/app/src/main/res/values-en-rIN/strings.xml b/app/src/main/res/values-en-rIN/strings.xml index e44d9d1..cb003e9 100644 --- a/app/src/main/res/values-en-rIN/strings.xml +++ b/app/src/main/res/values-en-rIN/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Music - - Recent - Artists - Albums - Songs - Playlists - Genres - Now Playing - Play Queue - - Albums - Top Songs - All Songs - - Settings - Search - Shuffle - Shuffle all - Shuffle playlist - Shuffle album - Shuffle artist - Shuffle top tracks - Shuffle recently played - Shuffle last added - Play all - Sort by - Clear list - Clear recent - Clear queue - Save queue to playlist - Equalizer - - Add to playlist - Add to queue - Remove from recent - Remove from queue - - A-Z - Z-A - Artist - Album - Year - Duration - Date added - Track list - Number of songs - Number of albums - Filename - - Last added - Recently played - My top tracks - - New playlist - Save - Cancel - Overwrite - Clear - Playlist %d - Playlist name - Delete %s? - Clear top tracks? - Clear recently played? - Clear last added? - This cannot be undone - This will permanently delete the cached image entries - Choose photo from Gallery - Google search - Use default photo - Use old photo - - Play - Play next - Play album - More by artist - Rename - Delete - Fetch album art - Fetch artist image - Remove from recent - Use as ringtone - Remove from playlist - Change image - - Play - Pause - Next - Previous - Shuffle - Shuffle all - Repeat - Repeat all - Repeat one - Open queue - Browse music - - \'%s\' set as ringtone - Playlist renamed - - Interface - Storage - Data - Delete cache - Remove all cached images - Download via Wi-Fi only - To reduce carrier charges, don\'t download over mobile networks - Download missing album art - Download missing artist images - General - Show music visualization - Show song lyrics - For songs that have an srt file - Shake to Play - Shake your device to play next song - Lockscreen album art - Replace lockscreen background with album art - - Music: 4 \u00d7 1 - Music: 4 \u00d7 2 - Music: 4 \u00d7 2 (alternate) - Music: recently listened - - The equalizer could not be opened. - To copy music from your computer to your device, use a USB cable. - No search results found - Please check that you have the correct spelling or try a different keyword. - Songs you mark as favorites will be shown here. - No recent songs - Songs you have listened to recently will show up here. - No songs in playlist - To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". - No top tracks - The songs you listen to most will be added to this list. - No songs added recently - Songs you have added over the last month will be shown here. - No music found - To copy music from your computer to your device, use a USB cable. - No songs in play queue - To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". - Unable to play track %1$s - - Unknown year - Less than 30 seconds - 30 - 60 seconds - 1 - 2 minutes - 2 - 3 minutes - 3 - 4 minutes - 4 - 5 minutes - 5 - 10 minutes - 10 - 30 minutes - 30 - 60 minutes - More than 60 minutes - 1 song - 2 - 4 songs - 5 - 9 songs - 10+ songs - 5+ albums - "Other" - Show all artists - Show all albums - Show all songs - Show all playlists - Search music - All \"%s\" artists - All \"%s\" albums - All \"%s\" songs - All \"%s\" playlists - %1$s %2$s - Music playback + Music + Recent + Artists + Albums + Songs + Playlists + Genres + Now Playing + Play Queue + Albums + Top Songs + All Songs + Settings + Search + Shuffle + Shuffle all + Shuffle playlist + Shuffle album + Shuffle artist + Shuffle top tracks + Shuffle recently played + Shuffle last added + Play all + Sort by + Clear list + Clear recent + Clear queue + Save queue to playlist + Equalizer + Add to playlist + Add to queue + Remove from recent + Remove from queue + A-Z + Z-A + Artist + Album + Year + Duration + Date added + Track list + Number of songs + Number of albums + Filename + Last added + Recently played + My top tracks + New playlist + Save + Cancel + Overwrite + Clear + Playlist %d + Playlist name + Delete %s? + Clear top tracks? + Clear recently played? + Clear last added? + This cannot be undone + This will permanently delete the cached image entries + Choose photo from Gallery + Google search + Use default photo + Use old photo + Play + Play next + Play album + More by artist + Rename + Delete + Fetch album art + Fetch artist image + Remove from recent + Use as ringtone + Remove from playlist + Change image + Play + Pause + Next + Previous + Shuffle + Shuffle all + Repeat + Repeat all + Repeat one + Open queue + Browse music + \'%s\' set as ringtone + Playlist renamed + Interface + Storage + Data + Delete cache + Remove all cached images + Download via Wi-Fi only + To reduce carrier charges, don\'t download over mobile networks + Download missing album art + Download missing artist images + General + Show music visualization + Show song lyrics + For songs that have an srt file + Shake to Play + Shake your device to play next song + Lockscreen album art + Replace lockscreen background with album art + Music: 4 \u00d7 1 + Music: 4 \u00d7 2 + Music: 4 \u00d7 2 (alternate) + Music: recently listened + The equalizer could not be opened. + To copy music from your computer to your device, use a USB cable. + No search results found + Please check that you have the correct spelling or try a different keyword. + Songs you mark as favorites will be shown here. + No recent songs + Songs you have listened to recently will show up here. + No songs in playlist + To add songs to this playlist, tap the options menu on a song, album or artist and select \"Add to playlist\". + No top tracks + The songs you listen to most will be added to this list. + No songs added recently + Songs you have added over the last month will be shown here. + No music found + To copy music from your computer to your device, use a USB cable. + No songs in play queue + To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \"Add to queue\". + Unable to play track %1$s + Unknown year + Less than 30 seconds + 30 - 60 seconds + 1 - 2 minutes + 2 - 3 minutes + 3 - 4 minutes + 4 - 5 minutes + 5 - 10 minutes + 10 - 30 minutes + 30 - 60 minutes + More than 60 minutes + 1 song + 2 - 4 songs + 5 - 9 songs + 10+ songs + 5+ albums + "Other" + Show all artists + Show all albums + Show all songs + Show all playlists + Search music + All \"%s\" artists + All \"%s\" albums + All \"%s\" songs + All \"%s\" playlists + %1$s %2$s + Music playback diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 0f33c65..44712f8 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -17,42 +17,28 @@ limitations under the License. --> - - Artistoj - Albumoj - Kantoj - - Albumoj - - Agordoj - - - Artisto - Albumo - Jaro - - - Konservi - Nuligi - - - - - - - - Nekonata jaro - 30 - 60 sekundoj - 1 - 2 minutoj - 2 - 3 minutoj - 3 - 4 minutoj - 4 - 5 minutoj - 5 - 10 minutoj - 10 - 30 minutoj - 30 - 60 minutoj - 1 kanto - 2 - 4 kantoj - 5 - 9 kantoj - 10+ kantoj - pli of 5 albumoj + Artistoj + Albumoj + Kantoj + Albumoj + Agordoj + Artisto + Albumo + Jaro + Konservi + Nuligi + Nekonata jaro + 30 - 60 sekundoj + 1 - 2 minutoj + 2 - 3 minutoj + 3 - 4 minutoj + 4 - 5 minutoj + 5 - 10 minutoj + 10 - 30 minutoj + 30 - 60 minutoj + 1 kanto + 2 - 4 kantoj + 5 - 9 kantoj + 10+ kantoj + pli of 5 albumoj diff --git a/app/src/main/res/values-es-rUS/plurals.xml b/app/src/main/res/values-es-rUS/plurals.xml index b623606..c12b271 100644 --- a/app/src/main/res/values-es-rUS/plurals.xml +++ b/app/src/main/res/values-es-rUS/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistas - - - - %d álbum - %d álbumes - - - - %d canción - %d canciones - - - - %d género - %d géneros - - - - %dh - %dh - - - - %dmin - %dmin - - - - %d canción añadida a la lista de reproducción. - %d canciones añadidas a la lista de reproducción. - - - - %d canción eliminada de la lista de reproducción. - %d canciones eliminadas de la lista de reproducción. - - - - %d canción añadida a la cola. - %d canciones añadidas a la cola. - - - - %d canción añadida a favoritos. - %d canciones añadidas a favoritos. - - - - %d canción fue eliminada. - %d canciones fueron eliminadas. - + + %d artista + %d artistas + + + %d álbum + %d álbumes + + + %d canción + %d canciones + + + %d género + %d géneros + + + %dh + %dh + + + %dmin + %dmin + + + %d canción añadida a la lista de reproducción. + %d canciones añadidas a la lista de reproducción. + + + %d canción eliminada de la lista de reproducción. + %d canciones eliminadas de la lista de reproducción. + + + %d canción añadida a la cola. + %d canciones añadidas a la cola. + + + %d canción añadida a favoritos. + %d canciones añadidas a favoritos. + + + %d canción fue eliminada. + %d canciones fueron eliminadas. + diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 1dfd379..4b6e971 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -18,7 +18,6 @@ --> Música - Reciente Artistas Álbumes @@ -27,11 +26,9 @@ Géneros Reproduciendo ahora Cola de reproducción - Álbumes Canciones más escuchadas Todas las canciones - Ajustes Buscar Orden aleatorio @@ -49,12 +46,10 @@ Borrar cola Guardar cola en la lista de reproducción Ecualizador - Añadir a la lista Añadir a la cola Quitar de recientes Quitar de la cola - A-Z Z-A Artista @@ -66,11 +61,9 @@ Número de canciones Número de álbumes Nombre de archivo - Recientes Reproducido recientemente Mis canciones más escuchadas - Nueva lista Guardar Cancelar @@ -88,7 +81,6 @@ Buscar en Google Usar imagen predefinida Usar imagen previa - Reproducir Siguiente Reproducir álbum @@ -101,7 +93,6 @@ Usar como tono Quitar de la lista Cambiar imagen - Reproducir Pausar Siguiente @@ -113,10 +104,8 @@ Repetir una Abrir cola Buscar música - Se estableció «%s » como tono de llamada Lista renombrada - Interfaz Almacenamiento Datos @@ -134,12 +123,10 @@ Agita tu dispositivo para reproducir la siguiente canción Carátula del álbum en pantalla bloqueada Reemplazar la pantalla bloqueada con la carátula del álbum - Música: 4 \u00d7 1 Música: 4 \u00d7 2 Música: 4 \u00d7 2 (alternativo) Música: Escuchada recientemente - No se pudo abrir el ecualizador. Para copiar música del ordenador al dispositivo, utiliza un cable USB. Sin resultados que mostrar @@ -158,7 +145,6 @@ Sin canciones en la cola Para añadir canciones a la cola, pulsa en el menú de opciones de una canción, álbum o artista y selecciona «Añadir a la cola». No se pudo reproducir la pista %1$s - Año desconocido Menos de 30 segundos 30 - 60 segundos diff --git a/app/src/main/res/values-es/plurals.xml b/app/src/main/res/values-es/plurals.xml index b623606..c12b271 100644 --- a/app/src/main/res/values-es/plurals.xml +++ b/app/src/main/res/values-es/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistas - - - - %d álbum - %d álbumes - - - - %d canción - %d canciones - - - - %d género - %d géneros - - - - %dh - %dh - - - - %dmin - %dmin - - - - %d canción añadida a la lista de reproducción. - %d canciones añadidas a la lista de reproducción. - - - - %d canción eliminada de la lista de reproducción. - %d canciones eliminadas de la lista de reproducción. - - - - %d canción añadida a la cola. - %d canciones añadidas a la cola. - - - - %d canción añadida a favoritos. - %d canciones añadidas a favoritos. - - - - %d canción fue eliminada. - %d canciones fueron eliminadas. - + + %d artista + %d artistas + + + %d álbum + %d álbumes + + + %d canción + %d canciones + + + %d género + %d géneros + + + %dh + %dh + + + %dmin + %dmin + + + %d canción añadida a la lista de reproducción. + %d canciones añadidas a la lista de reproducción. + + + %d canción eliminada de la lista de reproducción. + %d canciones eliminadas de la lista de reproducción. + + + %d canción añadida a la cola. + %d canciones añadidas a la cola. + + + %d canción añadida a favoritos. + %d canciones añadidas a favoritos. + + + %d canción fue eliminada. + %d canciones fueron eliminadas. + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 3fd2145..224e9e0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Música - - Reciente - Artistas - Álbumes - Canciones - Listas de reproducción - Géneros - Reproduciendo ahora - Cola de reproducción - - Álbumes - Canciones más escuchadas - Todas las canciones - - Ajustes - Buscar - Mezclar - Mezclar todas - Mezclar lista de reproducción - Mezclar álbum - Mezclar artista - Mezclar las más escuchadas - Mezclar reproducidas recientemente - Mezclar las últimas añadidas - Reproducir todas - Ordenar por - Borrar lista - Borrar recientes - Borrar cola - Guardar cola en la lista de reproducción - Ecualizador - - Añadir a la lista de reproducción - Añadir a la cola - Quitar de recientes - Quitar de la cola - - A-Z - Z-A - Artista - Álbum - Año - Duración - Fecha añadido - Número de pista - Número de canciones - Número de álbumes - Nombre del archivo - - Recientes - Reproducido recientemente - Mis canciones más escuchadas - - Nueva lista de reproducción - Guardar - Cancelar - Sobreescribir - Borrar - Lista de reproducción %d - Nombre de lista de reproducción - ¿Eliminar %s? - ¿Borrar las canciones más reproducidas? - ¿Borrar reproducidas recientemente? - ¿Borrar últimos añadidos? - Esta operación no se puede deshacer - Esta operación eliminará permanentemente todas las imágenes almacenadas en caché - Elegir imagen de la Galería - Buscar en Google - Usar imagen por defecto - Usar imagen previa - - Reproducir - Siguiente - Reproducir álbum - Más del artista - Renombrar - Eliminar - Obtener carátula del álbum - Obtener foto del artista - Quitar de recientes - Usar como timbre de llamada - Quitar de la lista de reproducción - Cambiar imagen - - Reproducir - Pausa - Siguiente - Anterior - Mezclar - Mezclar todas - Repetir - Repetir todo - Repetir una - Abrir cola - Navegar por la música - - «%s» establecido como timbre de llamada - Lista con nombre nuevo - - Interfaz - Almacenamiento - Datos - Limpiar caché - Eliminar todas las imágenes almacenadas - Descargar solo vía Wi-Fi - No descargar contenido en redes móviles para reducir los cargos del operador - Obtener carátulas - Obtener fotos de artistas - General - Mostrar visualización musical - Mostrar las letras de las canciones - Para canciones que tienen un archivo srt - Agitar para reproducir - Agitar el dispositivo para reproducir la siguiente canción - Portada en pantalla de bloqueo - Reemplazar la pantalla de bloqueo con la imagen del álbum - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - Música: 4 \u00d7 2 (alternativo) - Música: Escuchado recientemente - - El ecualizador no se ha podido abrir. - Para copiar música del ordenador al dispositivo, utiliza un cable USB. - No se han encontrado resultados - Comprueba que lo has escrito correctamente o intenta una palabra clave diferente. - Las canciones que marques como favoritas aparecerán aquí. - No hay canciones recientes - Las canciones que hayas escuchado recientemente aparecerán aquí. - No hay canciones en la lista de reproducción - Para añadir canciones a esta lista de reproducción, toca en el menú de opciones de una canción, álbum o artista y selecciona «Añadir a la lista». - No hay canciones más escuchadas - Las canciones que más escuches serán añadidas a esta lista. - No se han añadido canciones recientemente - Las canciones que hayas añadido en el último mes aparecerán aquí. - No se ha encontrado música - Para copiar música del ordenador al dispositivo, utiliza un cable USB. - No hay canciones en la cola - Para añadir canciones a la cola, toca en el menú de opciones de una canción, álbum o artista y selecciona «Añadir a la cola». - No se pudo reproducir la pista %1$s - - Año desconocido - Menos de 30 segundos - 30 - 60 segundos - 1 - 2 minutos - 2 - 3 minutos - 3 - 4 minutos - 4 - 5 minutos - 5 - 10 minutos - 10 - 30 minutos - 30 - 60 minutos - Más de 60 minutos - 1 canción - 2 - 4 canciones - 5 - 9 canciones - 10+ canciones - 5+ álbumes - "Otro" - Mostrar todos los artistas - Mostrar todos los álbumes - Mostrar todas las canciones - Mostrar todas las listas de reproducción - Buscar música - Todos los artistas «%s» - Todos los álbumes «%s» - Todas las canciones «%s» - Todas las listas «%s» - %1$s %2$s + Música + Reciente + Artistas + Álbumes + Canciones + Listas de reproducción + Géneros + Reproduciendo ahora + Cola de reproducción + Álbumes + Canciones más escuchadas + Todas las canciones + Ajustes + Buscar + Mezclar + Mezclar todas + Mezclar lista de reproducción + Mezclar álbum + Mezclar artista + Mezclar las más escuchadas + Mezclar reproducidas recientemente + Mezclar las últimas añadidas + Reproducir todas + Ordenar por + Borrar lista + Borrar recientes + Borrar cola + Guardar cola en la lista de reproducción + Ecualizador + Añadir a la lista de reproducción + Añadir a la cola + Quitar de recientes + Quitar de la cola + A-Z + Z-A + Artista + Álbum + Año + Duración + Fecha añadido + Número de pista + Número de canciones + Número de álbumes + Nombre del archivo + Recientes + Reproducido recientemente + Mis canciones más escuchadas + Nueva lista de reproducción + Guardar + Cancelar + Sobreescribir + Borrar + Lista de reproducción %d + Nombre de lista de reproducción + ¿Eliminar %s? + ¿Borrar las canciones más reproducidas? + ¿Borrar reproducidas recientemente? + ¿Borrar últimos añadidos? + Esta operación no se puede deshacer + Esta operación eliminará permanentemente todas las imágenes almacenadas en caché + Elegir imagen de la Galería + Buscar en Google + Usar imagen por defecto + Usar imagen previa + Reproducir + Siguiente + Reproducir álbum + Más del artista + Renombrar + Eliminar + Obtener carátula del álbum + Obtener foto del artista + Quitar de recientes + Usar como timbre de llamada + Quitar de la lista de reproducción + Cambiar imagen + Reproducir + Pausa + Siguiente + Anterior + Mezclar + Mezclar todas + Repetir + Repetir todo + Repetir una + Abrir cola + Navegar por la música + «%s» establecido como timbre de llamada + Lista con nombre nuevo + Interfaz + Almacenamiento + Datos + Limpiar caché + Eliminar todas las imágenes almacenadas + Descargar solo vía Wi-Fi + No descargar contenido en redes móviles para reducir los cargos del operador + Obtener carátulas + Obtener fotos de artistas + General + Mostrar visualización musical + Mostrar las letras de las canciones + Para canciones que tienen un archivo srt + Agitar para reproducir + Agitar el dispositivo para reproducir la siguiente canción + Portada en pantalla de bloqueo + Reemplazar la pantalla de bloqueo con la imagen del álbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternativo) + Música: Escuchado recientemente + El ecualizador no se ha podido abrir. + Para copiar música del ordenador al dispositivo, utiliza un cable USB. + No se han encontrado resultados + Comprueba que lo has escrito correctamente o intenta una palabra clave diferente. + Las canciones que marques como favoritas aparecerán aquí. + No hay canciones recientes + Las canciones que hayas escuchado recientemente aparecerán aquí. + No hay canciones en la lista de reproducción + Para añadir canciones a esta lista de reproducción, toca en el menú de opciones de una canción, álbum o artista y selecciona «Añadir a la lista». + No hay canciones más escuchadas + Las canciones que más escuches serán añadidas a esta lista. + No se han añadido canciones recientemente + Las canciones que hayas añadido en el último mes aparecerán aquí. + No se ha encontrado música + Para copiar música del ordenador al dispositivo, utiliza un cable USB. + No hay canciones en la cola + Para añadir canciones a la cola, toca en el menú de opciones de una canción, álbum o artista y selecciona «Añadir a la cola». + No se pudo reproducir la pista %1$s + Año desconocido + Menos de 30 segundos + 30 - 60 segundos + 1 - 2 minutos + 2 - 3 minutos + 3 - 4 minutos + 4 - 5 minutos + 5 - 10 minutos + 10 - 30 minutos + 30 - 60 minutos + Más de 60 minutos + 1 canción + 2 - 4 canciones + 5 - 9 canciones + 10+ canciones + 5+ álbumes + "Otro" + Mostrar todos los artistas + Mostrar todos los álbumes + Mostrar todas las canciones + Mostrar todas las listas de reproducción + Buscar música + Todos los artistas «%s» + Todos los álbumes «%s» + Todas las canciones «%s» + Todas las listas «%s» + %1$s %2$s diff --git a/app/src/main/res/values-et/plurals.xml b/app/src/main/res/values-et/plurals.xml index 6782b5a..a8835f1 100644 --- a/app/src/main/res/values-et/plurals.xml +++ b/app/src/main/res/values-et/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d esitaja - %d esitajad - - - - %d album - %d albumit - - - - %d lugu - %d lugu - - - - %d žanr - %d žanri - - - - %dh - %dh - - - - %dm - %dm - - - - %d lugu lisatud esitlusloendisse. - %d lugu lisatud esitlusloendisse. - - - - %d lugu eemaldatud esitlusloendist. - %d lugu eemaldatud esitlusloendist. - - - - %d lugu lisatud esitlusjärjekorda. - %d lugu lisatud esitlusjärjekorda. - - - - %d lugu lisatud lemmikutesse. - %d lugu lisatud lemmikutesse. - - - - %d lugu kustutatud. - %d lugu kustutatud. - + + %d esitaja + %d esitajad + + + %d album + %d albumit + + + %d lugu + %d lugu + + + %d žanr + %d žanri + + + %dh + %dh + + + %dm + %dm + + + %d lugu lisatud esitlusloendisse. + %d lugu lisatud esitlusloendisse. + + + %d lugu eemaldatud esitlusloendist. + %d lugu eemaldatud esitlusloendist. + + + %d lugu lisatud esitlusjärjekorda. + %d lugu lisatud esitlusjärjekorda. + + + %d lugu lisatud lemmikutesse. + %d lugu lisatud lemmikutesse. + + + %d lugu kustutatud. + %d lugu kustutatud. + diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 082ca5d..08f740e 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -17,173 +17,160 @@ limitations under the License. --> - Muusika - - Hiljutised - Esitajad - Albumid - Laulud - Esitusloendid - Žanrid - Nüüd esitamisel - Esitlusjärjekord - - Albumid - Top laulud - Kõik laulud - - Seaded - Otsing - Juhuesitus - Juhuesita kõik - juhuesitluse esitlusloend - Juhuesita album - Juhuesita esitaja - Juhuesita top muusikapala - Juhuesita viimati esitatud - Juhuesita viimati lisatud - Esita kõik - Sorteeri - Tühjenda loend - Kustuta hiljutised - Kustuta järjekord - Salvesta esitlusjärjekord esitlusloendisse - Ekvalaiser - - Lisa esitusloendisse - Lisa järjekorda - Eemalda hiljutistest - Eemalda järjekorrast - - A-Z - Z-A - Esitaja - Album - Aasta - Kestus - Lisamise kuupäev - Lugude nimekiri - Laulude arv - Albumite arv - Faili nimi - - Viimati lisatud - Viimati esitatud - Minu top lood - - Uus esitusloend - Salvesta - Tühista - Kirjuta üle - Eemalda - Esitusloend %d - Esitusloendi nimi - Kustuta %s? - Eemaldada top laulud? - Eemaldada hiljuti mängitud? - Eemaldada viimati lisatud? - Seda ei saa tagasi võtta - See toiming kustutab puhverdatud pildid alatiseks - Vali foto galeriist - Google\'i otsing - Kasuta vaikimisi pilti - Kasuta vana pilti - - Esita - Esita järgmine - Esita album - Rohkem esitaja kohta - Nimeta ümber - Kustuta - Lae albumipildid - Lae artisti pilt - Eemalda hiljutistest - Kasuta telefoni helinana - Eemalda esitusloendist - Muuda pilti - - Esita - Paus - Järgmine - Eelmine - Juhuesitus - Juhuesita kõik - Korda - Korda kõiki - Korda ühte - Ava järjekord - Sirvi muusikat - - \'%s\' sea telefoni helinaks - Esitusloend ümbernimetatud - - Liides - Mälu - Andmed - Kustuta vahemälu - Eemalda kõik puhverdatud pildid - Lae ainult üle Wi-Fi - Et vältida tasusid andmeside eest, ära lae üle mobiilisidevõrgu - Lae puuduv albumipilt - Lae puuduvad esitaja pildid - Üldine - Näita muusika visualiseerimist - Kuva laulusõnad - Lauludele, millel on srt-fail - Raputa mängimiseks - Raputa seadet järgmiseks lauluks - Lukustuskuva albumi tasutapilt - Asenda lukustuskuva tasutapilt albumi tasutapildiga - - Muusika: 4 \u00d7 1 - Muusika: 4 \u00d7 2 - Muusika: 4 \u00d7 2 (alternatiiv) - Muusika: hiljuti kuulatud - - Ekvalaiserit ei saanud avada. - Et kopeerida muusikat arvutist seadmesse, kasuta USB-kaablit. - Otsing ei andnud tulemusi - Palun kontrollige, kas teil on õige kirjaviis või proovige mõnda teist märksõna. - Lemmikuteks märgitud laulud kuvatakse siin. - Puuduvad hiljutised laulud - Hiljuti kuulatud laulud kuvatakse siin. - Esitlusloendis puuduvad laulud - Lugude lisamiseks käesolevasse esitlusnimekirja, koputa laulu, albumi või artisti lisavalikute menüül ja vali \"Lisa esitlusloendisse\". - Ei ole top laule - Enim kuulatud laulid lisatakse siia loendisse. - Hiljuti ei ole lisatud ühtegi laulu - Viimase kuu jooksul lisatud laulud kuvatakse siin. - Muusikat ei leitud - Et kopeerida muusikat arvutist seadmesse, kasuta USB-kaablit. - Esitlusjärjekorras ei ole ühtegi laulu - Lugude lisamiseks esitlusjärjekorda, koputa laulu, albumi või artisti lisavalikute menüül ja vali \"Lisa järjekorda\". - Ei saa mängida laulu %1$s - - Teadmata aasta - Vähem kui 30 sekundit - 30 - 60 sekundit - 1 - 2 minutit - 2 - 3 minutit - 3 - 4 minutit - 4 - 5 minutit - 5 - 10 minutit - 10 - 30 minutit - 30 - 60 minutit - Rohkem kui 60 minutit - 1 laul - 2 - 4 laulu - 5 - 9 laulu - 10+ laulu - 5+ Albumit - "Muud" - Kuva kõik esitajad - Kuva kõik albumid - Kuva kõik laulud - Kuva kõik esitusloendid - Otsi muusikat - Kõik \"%s\" esitajad - Kõik \"%s\" albumid - Kõik \"%s\" laulud - Kõik \"%s\" esitusloendid - %1$s %2$s + Muusika + Hiljutised + Esitajad + Albumid + Laulud + Esitusloendid + Žanrid + Nüüd esitamisel + Esitlusjärjekord + Albumid + Top laulud + Kõik laulud + Seaded + Otsing + Juhuesitus + Juhuesita kõik + juhuesitluse esitlusloend + Juhuesita album + Juhuesita esitaja + Juhuesita top muusikapala + Juhuesita viimati esitatud + Juhuesita viimati lisatud + Esita kõik + Sorteeri + Tühjenda loend + Kustuta hiljutised + Kustuta järjekord + Salvesta esitlusjärjekord esitlusloendisse + Ekvalaiser + Lisa esitusloendisse + Lisa järjekorda + Eemalda hiljutistest + Eemalda järjekorrast + A-Z + Z-A + Esitaja + Album + Aasta + Kestus + Lisamise kuupäev + Lugude nimekiri + Laulude arv + Albumite arv + Faili nimi + Viimati lisatud + Viimati esitatud + Minu top lood + Uus esitusloend + Salvesta + Tühista + Kirjuta üle + Eemalda + Esitusloend %d + Esitusloendi nimi + Kustuta %s? + Eemaldada top laulud? + Eemaldada hiljuti mängitud? + Eemaldada viimati lisatud? + Seda ei saa tagasi võtta + See toiming kustutab puhverdatud pildid alatiseks + Vali foto galeriist + Google\'i otsing + Kasuta vaikimisi pilti + Kasuta vana pilti + Esita + Esita järgmine + Esita album + Rohkem esitaja kohta + Nimeta ümber + Kustuta + Lae albumipildid + Lae artisti pilt + Eemalda hiljutistest + Kasuta telefoni helinana + Eemalda esitusloendist + Muuda pilti + Esita + Paus + Järgmine + Eelmine + Juhuesitus + Juhuesita kõik + Korda + Korda kõiki + Korda ühte + Ava järjekord + Sirvi muusikat + \'%s\' sea telefoni helinaks + Esitusloend ümbernimetatud + Liides + Mälu + Andmed + Kustuta vahemälu + Eemalda kõik puhverdatud pildid + Lae ainult üle Wi-Fi + Et vältida tasusid andmeside eest, ära lae üle mobiilisidevõrgu + Lae puuduv albumipilt + Lae puuduvad esitaja pildid + Üldine + Näita muusika visualiseerimist + Kuva laulusõnad + Lauludele, millel on srt-fail + Raputa mängimiseks + Raputa seadet järgmiseks lauluks + Lukustuskuva albumi tasutapilt + Asenda lukustuskuva tasutapilt albumi tasutapildiga + Muusika: 4 \u00d7 1 + Muusika: 4 \u00d7 2 + Muusika: 4 \u00d7 2 (alternatiiv) + Muusika: hiljuti kuulatud + Ekvalaiserit ei saanud avada. + Et kopeerida muusikat arvutist seadmesse, kasuta USB-kaablit. + Otsing ei andnud tulemusi + Palun kontrollige, kas teil on õige kirjaviis või proovige mõnda teist märksõna. + Lemmikuteks märgitud laulud kuvatakse siin. + Puuduvad hiljutised laulud + Hiljuti kuulatud laulud kuvatakse siin. + Esitlusloendis puuduvad laulud + Lugude lisamiseks käesolevasse esitlusnimekirja, koputa laulu, albumi või artisti lisavalikute menüül ja vali \"Lisa esitlusloendisse\". + Ei ole top laule + Enim kuulatud laulid lisatakse siia loendisse. + Hiljuti ei ole lisatud ühtegi laulu + Viimase kuu jooksul lisatud laulud kuvatakse siin. + Muusikat ei leitud + Et kopeerida muusikat arvutist seadmesse, kasuta USB-kaablit. + Esitlusjärjekorras ei ole ühtegi laulu + Lugude lisamiseks esitlusjärjekorda, koputa laulu, albumi või artisti lisavalikute menüül ja vali \"Lisa järjekorda\". + Ei saa mängida laulu %1$s + Teadmata aasta + Vähem kui 30 sekundit + 30 - 60 sekundit + 1 - 2 minutit + 2 - 3 minutit + 3 - 4 minutit + 4 - 5 minutit + 5 - 10 minutit + 10 - 30 minutit + 30 - 60 minutit + Rohkem kui 60 minutit + 1 laul + 2 - 4 laulu + 5 - 9 laulu + 10+ laulu + 5+ Albumit + "Muud" + Kuva kõik esitajad + Kuva kõik albumid + Kuva kõik laulud + Kuva kõik esitusloendid + Otsi muusikat + Kõik \"%s\" esitajad + Kõik \"%s\" albumid + Kõik \"%s\" laulud + Kõik \"%s\" esitusloendid + %1$s %2$s + Muusika taasesitus diff --git a/app/src/main/res/values-eu/plurals.xml b/app/src/main/res/values-eu/plurals.xml index e152930..c7d8b39 100644 --- a/app/src/main/res/values-eu/plurals.xml +++ b/app/src/main/res/values-eu/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - Artista %d - %d artista - - - - Album %d - %d album - - - - Abesti %d - %d abesti - - - - Genero %d - %d genero - - - - %do - %do - - - - %dm - %dm - - - - Abesti %d gehitu da zerrendara. - %d abesti gehitu dira zerrendara. - - - - Abesti %d zerrendatik kendu da. - %d abesti kendu dira zerrendatik. - - - - Abesti %d gehitu da ilarara. - %d abesti gehitu dira ilarara. - - - - Abesti %d gehitu da gogokoetara. - %d abesti bat gehitu dira gogokoetara. - - - - Abesti %d ezabatu da. - %d abesti ezabatu dira. - + + Artista %d + %d artista + + + Album %d + %d album + + + Abesti %d + %d abesti + + + Genero %d + %d genero + + + %do + %do + + + %dm + %dm + + + Abesti %d gehitu da zerrendara. + %d abesti gehitu dira zerrendara. + + + Abesti %d zerrendatik kendu da. + %d abesti kendu dira zerrendatik. + + + Abesti %d gehitu da ilarara. + %d abesti gehitu dira ilarara. + + + Abesti %d gehitu da gogokoetara. + %d abesti bat gehitu dira gogokoetara. + + + Abesti %d ezabatu da. + %d abesti ezabatu dira. + diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index e1fe5d5..4d4642a 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musika - - Azkenak - Artistak - Albumak - Abestiak - Zerrendak - Generoak - Orain erreproduzitzen - Erreproduzitu ilara - - Albumak - Gehien entzundako abestiak - Abesti guztiak - - Ezarpenak - Bilatu - Nahastu - Nahastu guztiak - Nahastu erreprodukzio-zerrenda - Nahastu albuma - Nahastu artista - Nahastu gehien entzundakoak - Nahastu berriki entzundakoak - Nahastu berriki gehitutakoak - Erreproduzitu guztiak - Ordenatu honela - Garbitu zerrenda - Garbitu azkenak - Garbitu ilara - Gorde ilara erreprodukzio-zerrenda gisa - Ekualizadorea - - Gehitu erreprodukzio zerrendara - Gehitu ilarara - Kendu azkenetatik - Kendu Ilaratik - - A-Z - Z-A - Artista - Albuma - Urtea - Iraupena - Gehitze data - Pista zerrenda - Abesti kopurua - Album kopurua - Fitxategi izena - - Berriki gehituak - Berriki erreproduzitua - Sarri entzundakoak - - Zerrenda berria - Gorde - Utzi - Gainidatzi - Garbitu - %d zerrenda - Zerrendaren izena - Ezabatu %s? - Garbitu gehien entzundakoak? - Garbitu berriki entzundakoak? - Garbitu gehitutako azkenak? - Hau ezin da desegin - Honek katxean gordetako irudi guztiak behin betiko ezabatuko ditu - Hautatu galeriako argazkia - Google bilaketa - Erabili argazki lehenetsia - Erabili aurreko irudia - - Erreproduzitu - Erreproduzitu hurrengoa - Erreproduzitu albuma - Artistaren abestiak - Aldatu izena - Ezabatu - Eskuratu albumaren karatula - Eskuratu artistaren argazkia - Kendu azkenetatik - Erabili dei doinu gisa - Kendu erreprodukzio-zerrendatik - Aldatu irudia - - Erreproduzitu - Pausatu - Hurrengoa - Aurrekoa - Nahastu - Nahastu guztiak - Errepikatu - Errepikatu guztiak - Errepikatu bat - Ireki ilara - Arakatu musika - - \'%s\' dei doinu bezala ezarri da - Erreprodukzio zerrendaren izena aldatu da - - Interfazea - Biltegiratzea - Datuak - Ezabatu katxea - Ezabatu katxean gordetako irudi guztiak - Deskargatu Wi-Fi bidez soilik - Ez deskargatu datu mugikorren bidez operadorearen zordunketa murrizteko - Deskargatu falta diren karatulak - Deskargatu falta diren artisten argazkiak - Orokorra - Erakutsi musika irudikatzea - Erakutsi abestien letrak - str fitxategia duten abestientzat - Astindu erreproduzitzeko - Astindu zure gailua hurrengo abestia erreproduzitzeko - Blokeo-pantailako karatulak - Ordeztu blokeo-pantailako atzealdea karatulekin - - Musika: 4 \u00d7 1 - Musika: 4 \u00d7 2 - Musika: 4 \u00d7 2 (txandakatu) - Musika: berriki entzundakoak - - Ezin izan da ekualizadorea ireki. - Musika ordenagailutik gailura kopiatzeko erabili USB kablea. - Ez da bilaketaren emaitzarik aurkitu - Egiaztatu ondo idatzi duzula edo saiatu beste hitz gako batekin. - Gogoko gisa markatutako abestiak hemen agertuko dira. - Ez dago berriki entzundako abestirik - Berriki entzun dituzun abestiak hemen agertuko dira. - Ez dago abestirik erreprodukzio-zerrendan - Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista baten aukeren menuan eta hautatu \"Gehitu erreprodukzio-zerrendara\". - Ez dago gehien entzundako abestirik - Sarri entzuten dituzun abestiak zerrenda honetara gehituko dira. - Ez da abestirik gehitu berriki - Azken hilabetean gehituriko abestiak hemen agertuko dira. - Ez da musikarik aurkitu - Musika ordenagailutik gailura kopiatzeko erabili USB kablea. - Ez dago abestirik erreprodukzio-zerrendan - Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista bat eta hautatu \"Gehitu ilarara\". - Ezin izan da %1$s. pista erreproduzitu - - Urte ezezaguna - 30 segundo baino gutxiago - 30 - 60 segundo - 1 - 2 minutu - 2 - 3 minutu - 3 - 4 minutu - 4 - 5 minutu - 5 - 10 minutu - 10 - 30 minutu - 30 - 60 minutu - 60 minutu baino gehiago - Abesti 1 - 2 - 4 abesti - 5 - 9 abesti - 10+ abesti - 5+ album - "Beste batzuk" - Erakutsi artista guztiak - Erakutsi album guztiak - Erakutsi abesti guztiak - Erakutsi erreprodukzio-zerrenda guztiak - Bilatu musika - \"%s\" artista guztiak - \"%s\" album guztiak - \"%s\" abesti guztiak - \"%s\" erreprodukzio-zerrenda guztiak - %1$s %2$s - Musika erreprodukzioa + Musika + Azkenak + Artistak + Albumak + Abestiak + Zerrendak + Generoak + Orain erreproduzitzen + Erreproduzitu ilara + Albumak + Gehien entzundako abestiak + Abesti guztiak + Ezarpenak + Bilatu + Nahastu + Nahastu guztiak + Nahastu erreprodukzio-zerrenda + Nahastu albuma + Nahastu artista + Nahastu gehien entzundakoak + Nahastu berriki entzundakoak + Nahastu berriki gehitutakoak + Erreproduzitu guztiak + Ordenatu honela + Garbitu zerrenda + Garbitu azkenak + Garbitu ilara + Gorde ilara erreprodukzio-zerrenda gisa + Ekualizadorea + Gehitu erreprodukzio zerrendara + Gehitu ilarara + Kendu azkenetatik + Kendu Ilaratik + A-Z + Z-A + Artista + Albuma + Urtea + Iraupena + Gehitze data + Pista zerrenda + Abesti kopurua + Album kopurua + Fitxategi izena + Berriki gehituak + Berriki erreproduzitua + Sarri entzundakoak + Zerrenda berria + Gorde + Utzi + Gainidatzi + Garbitu + %d zerrenda + Zerrendaren izena + Ezabatu %s? + Garbitu gehien entzundakoak? + Garbitu berriki entzundakoak? + Garbitu gehitutako azkenak? + Hau ezin da desegin + Honek katxean gordetako irudi guztiak behin betiko ezabatuko ditu + Hautatu galeriako argazkia + Google bilaketa + Erabili argazki lehenetsia + Erabili aurreko irudia + Erreproduzitu + Erreproduzitu hurrengoa + Erreproduzitu albuma + Artistaren abestiak + Aldatu izena + Ezabatu + Eskuratu albumaren karatula + Eskuratu artistaren argazkia + Kendu azkenetatik + Erabili dei doinu gisa + Kendu erreprodukzio-zerrendatik + Aldatu irudia + Erreproduzitu + Pausatu + Hurrengoa + Aurrekoa + Nahastu + Nahastu guztiak + Errepikatu + Errepikatu guztiak + Errepikatu bat + Ireki ilara + Arakatu musika + \'%s\' dei doinu bezala ezarri da + Erreprodukzio zerrendaren izena aldatu da + Interfazea + Biltegiratzea + Datuak + Ezabatu katxea + Ezabatu katxean gordetako irudi guztiak + Deskargatu Wi-Fi bidez soilik + Ez deskargatu datu mugikorren bidez operadorearen zordunketa murrizteko + Deskargatu falta diren karatulak + Deskargatu falta diren artisten argazkiak + Orokorra + Erakutsi musika irudikatzea + Erakutsi abestien letrak + str fitxategia duten abestientzat + Astindu erreproduzitzeko + Astindu zure gailua hurrengo abestia erreproduzitzeko + Blokeo-pantailako karatulak + Ordeztu blokeo-pantailako atzealdea karatulekin + Musika: 4 \u00d7 1 + Musika: 4 \u00d7 2 + Musika: 4 \u00d7 2 (txandakatu) + Musika: berriki entzundakoak + Ezin izan da ekualizadorea ireki. + Musika ordenagailutik gailura kopiatzeko erabili USB kablea. + Ez da bilaketaren emaitzarik aurkitu + Egiaztatu ondo idatzi duzula edo saiatu beste hitz gako batekin. + Gogoko gisa markatutako abestiak hemen agertuko dira. + Ez dago berriki entzundako abestirik + Berriki entzun dituzun abestiak hemen agertuko dira. + Ez dago abestirik erreprodukzio-zerrendan + Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista baten aukeren menuan eta hautatu \"Gehitu erreprodukzio-zerrendara\". + Ez dago gehien entzundako abestirik + Sarri entzuten dituzun abestiak zerrenda honetara gehituko dira. + Ez da abestirik gehitu berriki + Azken hilabetean gehituriko abestiak hemen agertuko dira. + Ez da musikarik aurkitu + Musika ordenagailutik gailura kopiatzeko erabili USB kablea. + Ez dago abestirik erreprodukzio-zerrendan + Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista bat eta hautatu \"Gehitu ilarara\". + Ezin izan da %1$s. pista erreproduzitu + Urte ezezaguna + 30 segundo baino gutxiago + 30 - 60 segundo + 1 - 2 minutu + 2 - 3 minutu + 3 - 4 minutu + 4 - 5 minutu + 5 - 10 minutu + 10 - 30 minutu + 30 - 60 minutu + 60 minutu baino gehiago + Abesti 1 + 2 - 4 abesti + 5 - 9 abesti + 10+ abesti + 5+ album + "Beste batzuk" + Erakutsi artista guztiak + Erakutsi album guztiak + Erakutsi abesti guztiak + Erakutsi erreprodukzio-zerrenda guztiak + Bilatu musika + \"%s\" artista guztiak + \"%s\" album guztiak + \"%s\" abesti guztiak + \"%s\" erreprodukzio-zerrenda guztiak + %1$s %2$s + Musika erreprodukzioa diff --git a/app/src/main/res/values-fa/plurals.xml b/app/src/main/res/values-fa/plurals.xml index 243e77b..d44cf39 100644 --- a/app/src/main/res/values-fa/plurals.xml +++ b/app/src/main/res/values-fa/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d هنرمند - %d هنرمند - - - - %d آلبوم - %d آلبوم - - - - %d آهنگ - %d آهنگ - - - - %d سبک - %d سبک - - - - %dساعت - %dساعت - - - - %dدقیقه - %dدقیقه - - - - %d آهنگ به لیست پخش اضافه شد. - %d آهنگ به لیست پخش اضافه شد. - - - - %d آهنگ از لیست پخش حذف شد. - %d آهنگ از لیست پخش حذف شد. - - - - %d آهنگ به صف پخش اضافه شد. - %d آهنگ به صف پخش اضافه شد. - - - - %d آهنگ به علاقه‌مندی‌ها اضافه شد. - %d آهنگ به علاقه‌مندی‌ها اضافه شد. - - - - %d آهنگ حذف شد. - %d آهنگ حذف شد. - + + %d هنرمند + %d هنرمند + + + %d آلبوم + %d آلبوم + + + %d آهنگ + %d آهنگ + + + %d سبک + %d سبک + + + %dساعت + %dساعت + + + %dدقیقه + %dدقیقه + + + %d آهنگ به لیست پخش اضافه شد. + %d آهنگ به لیست پخش اضافه شد. + + + %d آهنگ از لیست پخش حذف شد. + %d آهنگ از لیست پخش حذف شد. + + + %d آهنگ به صف پخش اضافه شد. + %d آهنگ به صف پخش اضافه شد. + + + %d آهنگ به علاقه‌مندی‌ها اضافه شد. + %d آهنگ به علاقه‌مندی‌ها اضافه شد. + + + %d آهنگ حذف شد. + %d آهنگ حذف شد. + diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index db33008..12c208f 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - موسیقی - - اخیر - هنرمندان - آلبوم‌ها - آهنگ‌ها - لیست‌های پخش - ژانرها - درحال پخش - صف پخش - - آلبوم‌ها - آهنگ‌های عالی - تمام آهنگ‌ها - - تنظیمات - جستجو - تصادفی - تصادفی همه - لیست پخش تصادفی - آلبوم تصادفی - هنرمند تصادفی - آهنگ‌های عالی تصادفی - اخیرا پخش‌شده تصادفی - آخرین افزوده‌شده تصادفی - پخش همه - مرتب‌سازی براساس - پاک کردن لیست - پاک کردن لیست اخیر - پاک کردن صف - ذخیره صف در لیست پخش - اکولایزر - - افزودن به لیست پخش - افزودن به صف - حذف از لیست اخیر - حذف از صف - - A-Z - Z-A - هنرمند - آلبوم - سال - مدت زمان - تاریخ اضافه شدن - لیست آهنگ - تعداد آهنگ‌ها - تعداد آلبوم‌ها - نام فایل - - آخرین اضافه‌شده - اخیراً پخش‌شده - تراک‌های برتر من - - لیست پخش جدید - ذخیره - لغو - رونویسی - پاک‌سازی - لیست پخش %d - نام لیست پخش - %s حذف شود؟ - تراک‌های برتر پاک شود؟ - اخیراً پخش‌شده‌ها پاک شود؟ - آخرین اضافه شده‌ها پاک شود؟ - این کار برگشت‌پذیر نیست - این کار تصاویر ذخیره شده را برای همیشه حذف می‌کند - انتخاب عکس از گالری - جستجوی گوگل - استفاده از عکس پیش‌فرض - استفاده از عکس قبلی - - پخش - پخش بعدی - پخش آلبوم - بیشتر از این هنرمند - تغییرنام - حذف - دریافت تصویر آلبوم - دریافت تصویر هنرمند - حذف از لیست اخیر - استفاده به عنوان صدای زنگ - حذف از لیست پخش - تغییر تصویر - - پخش - مکث - بعدی - قبلی - تصادفی - تصادفی همه - تکرار - تکرار همه - تکرار یکی - باز کردن صف - مرور موسیقی - - \'%s\' به‌عنوان صدای زنگ تنظیم شد - نام لیست پخش تغییر کرد - - رابط کاربری - ذخیره‌سازی - داده - حذف حافظه نهان - حذف همه تصاویر ذخیره شده - دانلود فقط از طریق وای‌فای - برای کاهش هزینه‌های خط موبایل، از طریق شبکه‌های موبایل دانلود نکنید - دانلود تصویر آلبوم‌ها - دانلود تصویر هنرمندان - عمومي - نمایش رقص نور موسیقی - نمایش متن آهنگ - برای آهنگ‌های دارای فایل srt - برای پخش بلرزانید - برای پخش آهنگ بعدی، دستگاه خود را بلرزانید - تصویر آلبوم در قفل صفحه - نمایش تصویر آلبوم در پس‌زمینه قفل صفحه - - موسیقی: ۴ \u00d7 ۱ - موسیقی: ۴ \u00d7 ۲ - موسیقی: ۴ \u00d7 ۲ (جایگزین) - موسیقی: شنیده‎شده اخیر - - اکولایزر باز نمی‌شود. - برای کپی موسیقی از کامپیوتر به دستگاهتان، از یک کابل USB استفاده کنید. - جستجو نتیجه‌ای نداشت - لطفا املای کلمات را بررسی یا از کلید واژه دیگری استفاده کنید. - آهنگ‌هایی علامت‌گذاری‌شده به عنوان موردعلاقه در اینجا نشان داده می‌شوند. - آهنگ اخیری وجود ندارد - آهنگ‌های تازه شنیده شده در اینجا نمایش داده خواهند شد. - هیچ آهنگی در لیست پخش نیست - برای افزودن آهنگ به این لیست پخش، بر روی گزینه‌های منو در آهنگ، آلبوم یا هنرمند ضربه بزنید و «افزودن به لیست پخش» را انتخاب کنید. - بدون آهنگ عالی - آهنگ‌های زیاد شنیده شده به این لیست افزوده می‌شوند. - هیچ آهنگی اخیرا اضافه نشده است - آهنگهای افزوده‌شده در ماه اخیر در اینجا نشان داده می‌شوند. - هیچ موسیقی پیدا نشد - برای کپی موسیقی از کامپیوتر به دستگاهتان، از یک کابل USB استفاده کنید. - هیچ آهنگی در صف پخش نیست - برای افزودن آهنگ به صف پخش خود، بر روی گزینه‌های منو در آهنگ، آلبوم یا هنرمند ضربه بزنید و «افزودن به صف» را انتخاب کنید. - پخش تراک %1$s ناموفق بود - - سال ناشناخته - کمتر از ۳۰ ثانیه - ۳۰ - ۶۰ ثانیه - ۱ - ۲ دقیقه - ۲ - ۳ دقیقه - ۳ - ۴ دقیقه - ۴ - ۵ دقیقه - ۵ - ۱۰ دقیقه - ۱۰ - ۳۰ دقیقه - ۳۰ - ۶۰ دقیقه - بیشتر از ۶۰ دقیقه - ۱ آهنگ - ۲ - ۴ آهنگ ها - ۵ - ۹ آهنگ - +۱۰ آهنگ - +۵ آلبوم - "دیگر" - نمایش همه هنرمندان - نمایش همه آلبوم‌ها - نمایش همه آهنگ‌ها - نمایش همه لیست‌های پخش - جستجوی موسیقی - تمام «%s» هنرمند - تمام «%s» آلبوم - تمام «%s» آهنگ - تمام «%s» لیست پخش - %1$s %2$s + موسیقی + اخیر + هنرمندان + آلبوم‌ها + آهنگ‌ها + لیست‌های پخش + ژانرها + درحال پخش + صف پخش + آلبوم‌ها + آهنگ‌های عالی + تمام آهنگ‌ها + تنظیمات + جستجو + تصادفی + تصادفی همه + لیست پخش تصادفی + آلبوم تصادفی + هنرمند تصادفی + آهنگ‌های عالی تصادفی + اخیرا پخش‌شده تصادفی + آخرین افزوده‌شده تصادفی + پخش همه + مرتب‌سازی براساس + پاک کردن لیست + پاک کردن لیست اخیر + پاک کردن صف + ذخیره صف در لیست پخش + اکولایزر + افزودن به لیست پخش + افزودن به صف + حذف از لیست اخیر + حذف از صف + A-Z + Z-A + هنرمند + آلبوم + سال + مدت زمان + تاریخ اضافه شدن + لیست آهنگ + تعداد آهنگ‌ها + تعداد آلبوم‌ها + نام فایل + آخرین اضافه‌شده + اخیراً پخش‌شده + تراک‌های برتر من + لیست پخش جدید + ذخیره + لغو + رونویسی + پاک‌سازی + لیست پخش %d + نام لیست پخش + %s حذف شود؟ + تراک‌های برتر پاک شود؟ + اخیراً پخش‌شده‌ها پاک شود؟ + آخرین اضافه شده‌ها پاک شود؟ + این کار برگشت‌پذیر نیست + این کار تصاویر ذخیره شده را برای همیشه حذف می‌کند + انتخاب عکس از گالری + جستجوی گوگل + استفاده از عکس پیش‌فرض + استفاده از عکس قبلی + پخش + پخش بعدی + پخش آلبوم + بیشتر از این هنرمند + تغییرنام + حذف + دریافت تصویر آلبوم + دریافت تصویر هنرمند + حذف از لیست اخیر + استفاده به عنوان صدای زنگ + حذف از لیست پخش + تغییر تصویر + پخش + مکث + بعدی + قبلی + تصادفی + تصادفی همه + تکرار + تکرار همه + تکرار یکی + باز کردن صف + مرور موسیقی + \'%s\' به‌عنوان صدای زنگ تنظیم شد + نام لیست پخش تغییر کرد + رابط کاربری + ذخیره‌سازی + داده + حذف حافظه نهان + حذف همه تصاویر ذخیره شده + دانلود فقط از طریق وای‌فای + برای کاهش هزینه‌های خط موبایل، از طریق شبکه‌های موبایل دانلود نکنید + دانلود تصویر آلبوم‌ها + دانلود تصویر هنرمندان + عمومي + نمایش رقص نور موسیقی + نمایش متن آهنگ + برای آهنگ‌های دارای فایل srt + برای پخش بلرزانید + برای پخش آهنگ بعدی، دستگاه خود را بلرزانید + تصویر آلبوم در قفل صفحه + نمایش تصویر آلبوم در پس‌زمینه قفل صفحه + موسیقی: ۴ \u00d7 ۱ + موسیقی: ۴ \u00d7 ۲ + موسیقی: ۴ \u00d7 ۲ (جایگزین) + موسیقی: شنیده‎شده اخیر + اکولایزر باز نمی‌شود. + برای کپی موسیقی از کامپیوتر به دستگاهتان، از یک کابل USB استفاده کنید. + جستجو نتیجه‌ای نداشت + لطفا املای کلمات را بررسی یا از کلید واژه دیگری استفاده کنید. + آهنگ‌هایی علامت‌گذاری‌شده به عنوان موردعلاقه در اینجا نشان داده می‌شوند. + آهنگ اخیری وجود ندارد + آهنگ‌های تازه شنیده شده در اینجا نمایش داده خواهند شد. + هیچ آهنگی در لیست پخش نیست + برای افزودن آهنگ به این لیست پخش، بر روی گزینه‌های منو در آهنگ، آلبوم یا هنرمند ضربه بزنید و «افزودن به لیست پخش» را انتخاب کنید. + بدون آهنگ عالی + آهنگ‌های زیاد شنیده شده به این لیست افزوده می‌شوند. + هیچ آهنگی اخیرا اضافه نشده است + آهنگهای افزوده‌شده در ماه اخیر در اینجا نشان داده می‌شوند. + هیچ موسیقی پیدا نشد + برای کپی موسیقی از کامپیوتر به دستگاهتان، از یک کابل USB استفاده کنید. + هیچ آهنگی در صف پخش نیست + برای افزودن آهنگ به صف پخش خود، بر روی گزینه‌های منو در آهنگ، آلبوم یا هنرمند ضربه بزنید و «افزودن به صف» را انتخاب کنید. + پخش تراک %1$s ناموفق بود + سال ناشناخته + کمتر از ۳۰ ثانیه + ۳۰ - ۶۰ ثانیه + ۱ - ۲ دقیقه + ۲ - ۳ دقیقه + ۳ - ۴ دقیقه + ۴ - ۵ دقیقه + ۵ - ۱۰ دقیقه + ۱۰ - ۳۰ دقیقه + ۳۰ - ۶۰ دقیقه + بیشتر از ۶۰ دقیقه + ۱ آهنگ + ۲ - ۴ آهنگ ها + ۵ - ۹ آهنگ + +۱۰ آهنگ + +۵ آلبوم + "دیگر" + نمایش همه هنرمندان + نمایش همه آلبوم‌ها + نمایش همه آهنگ‌ها + نمایش همه لیست‌های پخش + جستجوی موسیقی + تمام «%s» هنرمند + تمام «%s» آلبوم + تمام «%s» آهنگ + تمام «%s» لیست پخش + %1$s %2$s diff --git a/app/src/main/res/values-fi/plurals.xml b/app/src/main/res/values-fi/plurals.xml index b956d64..6214c0d 100644 --- a/app/src/main/res/values-fi/plurals.xml +++ b/app/src/main/res/values-fi/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d esittäjä - %d esittäjää - - - - %d albumi - %d albumia - - - - %d kappale - %d kappaletta - - - - %d tyylilaji - %d tyylilajia - - - - %dt - %dt - - - - %dmin - %dmin - - - - %d kappale lisätty soittolistalle. - %d kappaletta lisätty soittolistalle. - - - - %d kappale poistettu soittolistalta. - %d kappaletta poistettu soittolistalta. - - - - %d kappale lisätty jonoon. - %d kappaletta lisätty jonoon. - - - - %d kappale lisätty suosikkeihin. - %d kappaletta lisätty suosikkeihin. - - - - %d kappale poistettiin. - %d kappaletta poistettiin. - + + %d esittäjä + %d esittäjää + + + %d albumi + %d albumia + + + %d kappale + %d kappaletta + + + %d tyylilaji + %d tyylilajia + + + %dt + %dt + + + %dmin + %dmin + + + %d kappale lisätty soittolistalle. + %d kappaletta lisätty soittolistalle. + + + %d kappale poistettu soittolistalta. + %d kappaletta poistettu soittolistalta. + + + %d kappale lisätty jonoon. + %d kappaletta lisätty jonoon. + + + %d kappale lisätty suosikkeihin. + %d kappaletta lisätty suosikkeihin. + + + %d kappale poistettiin. + %d kappaletta poistettiin. + diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index f633556..fbb3115 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musiikki - - Äskettäin kuunnellut - Esittäjät - Albumit - Kappaleet - Soittolistat - Tyylilajit - Nyt soi - Toistojono - - Albumi - Suosituimmat kappaleet - Kaikki kappaleet - - Asetukset - Haku - Sekoita - Sekoita kaikki - Sekoita soittolista - Sekoita albumi - Sekoita esittäjä - Sekoita suosituimmat kappaleet - Sekoita äskettäin kuunnellut - Sekoita viimeksi lisätyt - Toista kaikki - Lajittelujärjestys - Tyhjennä lista - Tyhjennä äskettäin kuunnellut - Tyhjennä jono - Tallenna jono soittolistalle - Taajuuskorjain - - Lisää soittolistalle - Lisää jonoon - Poista äskettäin kuunnelluista - Poista jonosta - - A-Ö - Ö-A - Esittäjä - Albumi - Vuosi - Pituus - Lisäyspäivämäärä - Kappalelista - Kappaleiden määrä - Albumeiden määrä - Tiedostonimi - - Viimeksi lisätyt - Äskettäin kuunnellut - Suosikkikappaleeni - - Uusi soittolista - Tallenna - Peruuta - Korvaa - Tyhjennä - Soittolista %d - Soittolistan nimi - Poistetaanko %s? - Tyhennä suosituimmat kappaleet? - Tyhjennä äskettäin soineet? - Tyhjennä viimeksi lisätyt? - Tätä ei voi perua - Kaikki välimuistissa olevat kuvat poistetaan pysyvästi - Valitse valokuva galleriasta - Google-haku - Käytä oletusvalokuvaa - Käytä vanhaa valokuvaa - - Toista - Toista seuraava - Toista albumi - Lisää esittäjältä - Nimeä uudelleen - Poista - Hae albumin kansikuva - Hae esittäjän kuva - Poista äskettäin kuunnelluista - Käytä soittoäänenä - Poista soittolistalta - Vaihda kuvaa - - Toista - Pysäytä - Seuraava - Edellinen - Sekoita - Sekoita kaikki - Uudelleentoisto - Uudelleentoista kaikki - Uudelleentoista yksi - Avaa jono - Selaa musiikkia - - \'%s\' asetettu soittoääneksi - Soittolista nimetty uudelleen - - Käyttöliittymä - Tallennustila - Tiedot - Poista välimuisti - Poista kaikki välimuistissa olevat kuvat - Lataa vain Wi-Fi-yhteydellä - Välttääksesi tiedonsiirtomaksut, älä lataa mobiiliverkon kautta - Lataa albumin puuttuva kansikuva - Lataa puuttuvat esittäjän kuvat - Yleiset - Näytä visualisointi - Näytä sanoitukset - Jos kappaleella on srt-tiedosto - Toista ravistamalla - Ravista laitettasi toistaaksesi seuraavan kappaleen - Lukitusnäytön albumikuvitus - Korvaa lukitusnäytön tausta albumin kuvituksella - - Musiikki: 4 \u00d7 1 - Musiikki: 4 \u00d7 2 - Musiikki: 4 \u00d7 2 (vaihtoehtoinen) - Musiikki: äskettäin kuunneltu - - Taajuuskorjainta ei voitu avata. - Kopioi musiikkia tietokoneelta laitteeseen käyttämällä USB-kaapelia. - Hakutuloksia ei löytynyt - Tarkista oikeinkirjoitus tai kokeile eri hakusanaa. - Suosikeiksi merkitsemäsi kappaleet näkyvät tässä. - Ei äskettäin kuunneltuja - Kuuntelemasi albumit näkyvät tässä. - Ei kappaleita soittolistalla - Lisätäksesi kappaleita soittolistaan, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \"Lisää soittolistaan\". - Ei suosituimpia kappaleita - Kappaleet joita kuuntelet eniten, lisätään tähän listaan. - Lauluja ei lisätty viime aikoina - Viime kuussa lisäämäsi kappaleet näkyvät tässä. - Musiikkia ei löytynyt - Kopioi musiikkia tietokoneelta laitteeseen käyttämällä USB-kaapelia. - Ei kappaleita jonossa - Lisätäksesi kappaleita jonoon, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \"Lisää jonoon\". - Ei voi toistaa kappaletta \"%1$s\" - - Tuntematon vuosi - Alle 30 sekuntia - 30 - 60 sekuntia - 1 - 2 minuuttia - 2 - 3 minuuttia - 3 - 4 minuuttia - 4 - 5 minuuttia - 5 - 10 minuuttia - 10 - 30 minuuttia - 30 - 60 minuuttia - Yli 60 minuuttia - 1 kappale - 2 - 4 kappaletta - 5 - 9 kappaletta - Yli 10 kappaletta - Yli 5 albumia - "Muut" - Näytä kaikki esittäjät - Näytä kaikki albumit - Näytä kaikki kappaleet - Näytä kaikki soittolistat - Etsi musiikkia - Kaikki \"%s\" esittäjää - Kaikki \"%s\" albumia - Kaikki \"%s\" kappaletta - Kaikki \"%s\" soittolistaa - %1$s %2$s - Musiikin toisto + Musiikki + Äskettäin kuunnellut + Esittäjät + Albumit + Kappaleet + Soittolistat + Tyylilajit + Nyt soi + Toistojono + Albumi + Suosituimmat kappaleet + Kaikki kappaleet + Asetukset + Haku + Sekoita + Sekoita kaikki + Sekoita soittolista + Sekoita albumi + Sekoita esittäjä + Sekoita suosituimmat kappaleet + Sekoita äskettäin kuunnellut + Sekoita viimeksi lisätyt + Toista kaikki + Lajittelujärjestys + Tyhjennä lista + Tyhjennä äskettäin kuunnellut + Tyhjennä jono + Tallenna jono soittolistalle + Taajuuskorjain + Lisää soittolistalle + Lisää jonoon + Poista äskettäin kuunnelluista + Poista jonosta + A-Ö + Ö-A + Esittäjä + Albumi + Vuosi + Pituus + Lisäyspäivämäärä + Kappalelista + Kappaleiden määrä + Albumeiden määrä + Tiedostonimi + Viimeksi lisätyt + Äskettäin kuunnellut + Suosikkikappaleeni + Uusi soittolista + Tallenna + Peruuta + Korvaa + Tyhjennä + Soittolista %d + Soittolistan nimi + Poistetaanko %s? + Tyhennä suosituimmat kappaleet? + Tyhjennä äskettäin soineet? + Tyhjennä viimeksi lisätyt? + Tätä ei voi perua + Kaikki välimuistissa olevat kuvat poistetaan pysyvästi + Valitse valokuva galleriasta + Google-haku + Käytä oletusvalokuvaa + Käytä vanhaa valokuvaa + Toista + Toista seuraava + Toista albumi + Lisää esittäjältä + Nimeä uudelleen + Poista + Hae albumin kansikuva + Hae esittäjän kuva + Poista äskettäin kuunnelluista + Käytä soittoäänenä + Poista soittolistalta + Vaihda kuvaa + Toista + Pysäytä + Seuraava + Edellinen + Sekoita + Sekoita kaikki + Uudelleentoisto + Uudelleentoista kaikki + Uudelleentoista yksi + Avaa jono + Selaa musiikkia + \'%s\' asetettu soittoääneksi + Soittolista nimetty uudelleen + Käyttöliittymä + Tallennustila + Tiedot + Poista välimuisti + Poista kaikki välimuistissa olevat kuvat + Lataa vain Wi-Fi-yhteydellä + Välttääksesi tiedonsiirtomaksut, älä lataa mobiiliverkon kautta + Lataa albumin puuttuva kansikuva + Lataa puuttuvat esittäjän kuvat + Yleiset + Näytä visualisointi + Näytä sanoitukset + Jos kappaleella on srt-tiedosto + Toista ravistamalla + Ravista laitettasi toistaaksesi seuraavan kappaleen + Lukitusnäytön albumikuvitus + Korvaa lukitusnäytön tausta albumin kuvituksella + Musiikki: 4 \u00d7 1 + Musiikki: 4 \u00d7 2 + Musiikki: 4 \u00d7 2 (vaihtoehtoinen) + Musiikki: äskettäin kuunneltu + Taajuuskorjainta ei voitu avata. + Kopioi musiikkia tietokoneelta laitteeseen käyttämällä USB-kaapelia. + Hakutuloksia ei löytynyt + Tarkista oikeinkirjoitus tai kokeile eri hakusanaa. + Suosikeiksi merkitsemäsi kappaleet näkyvät tässä. + Ei äskettäin kuunneltuja + Kuuntelemasi albumit näkyvät tässä. + Ei kappaleita soittolistalla + Lisätäksesi kappaleita soittolistaan, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \"Lisää soittolistaan\". + Ei suosituimpia kappaleita + Kappaleet joita kuuntelet eniten, lisätään tähän listaan. + Lauluja ei lisätty viime aikoina + Viime kuussa lisäämäsi kappaleet näkyvät tässä. + Musiikkia ei löytynyt + Kopioi musiikkia tietokoneelta laitteeseen käyttämällä USB-kaapelia. + Ei kappaleita jonossa + Lisätäksesi kappaleita jonoon, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \"Lisää jonoon\". + Ei voi toistaa kappaletta \"%1$s\" + Tuntematon vuosi + Alle 30 sekuntia + 30 - 60 sekuntia + 1 - 2 minuuttia + 2 - 3 minuuttia + 3 - 4 minuuttia + 4 - 5 minuuttia + 5 - 10 minuuttia + 10 - 30 minuuttia + 30 - 60 minuuttia + Yli 60 minuuttia + 1 kappale + 2 - 4 kappaletta + 5 - 9 kappaletta + Yli 10 kappaletta + Yli 5 albumia + "Muut" + Näytä kaikki esittäjät + Näytä kaikki albumit + Näytä kaikki kappaleet + Näytä kaikki soittolistat + Etsi musiikkia + Kaikki \"%s\" esittäjää + Kaikki \"%s\" albumia + Kaikki \"%s\" kappaletta + Kaikki \"%s\" soittolistaa + %1$s %2$s + Musiikin toisto diff --git a/app/src/main/res/values-fr/plurals.xml b/app/src/main/res/values-fr/plurals.xml index faf4b5b..38c5f47 100644 --- a/app/src/main/res/values-fr/plurals.xml +++ b/app/src/main/res/values-fr/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artiste - %d artistes - - - - %d album - %d albums - - - - %d titre - %d titres - - - - %d genre - %d genres - - - - %dh - %dh - - - - %dm - %dm - - - - %d titre ajouté à la liste de lecture. - %d titres ajoutés à la liste de lecture. - - - - %d titre retiré de la liste de lecture. - %d titres retirés de la liste de lecture. - - - - %d titre ajouté à la file d\'attente. - %d titres ajoutés à la file d\'attente. - - - - %d titre ajouté aux favoris. - %d titres ajoutés aux favoris. - - - - %d titre a été supprimé. - %d titres ont été supprimés. - + + %d artiste + %d artistes + + + %d album + %d albums + + + %d titre + %d titres + + + %d genre + %d genres + + + %dh + %dh + + + %dm + %dm + + + %d titre ajouté à la liste de lecture. + %d titres ajoutés à la liste de lecture. + + + %d titre retiré de la liste de lecture. + %d titres retirés de la liste de lecture. + + + %d titre ajouté à la file d\'attente. + %d titres ajoutés à la file d\'attente. + + + %d titre ajouté aux favoris. + %d titres ajoutés aux favoris. + + + %d titre a été supprimé. + %d titres ont été supprimés. + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 61ad348..c7c533e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musique - - Récents - Artistes - Albums - Titres - Listes de lecture - Genres - Lecture en cours - Lire la file d\'attente - - Albums - Titres populaires - Tous les titres - - Paramètres - Rechercher - Lecture aléatoire - Lecture aléatoire de tous les titres - Lecture aléatoire des titres de la liste de lecture - Lecture aléatoire des titres de l\'album - Lecture aléatoire des titres de l\'artiste - Lecture aléatoire des titres les plus populaires - Lecture aléatoire des titres récemment joués - Lecture aléatoire des derniers titres ajoutés - Tout lire - Trier par - Effacer la liste - Effacer les récents - Effacer la liste d\'attente - Enregistrer la file d\'attente dans la liste de lecture - Égaliseur - - Ajouter à liste de lecture - Ajouter à la file d\'attente - Supprimer des récents - Supprimer de la file d\'attente - - A-Z - Z-A - Artiste - Album - Année - Durée - Date d\'ajout - Liste des pistes - Nombre de titres - Nombre d\'albums - Nom de fichier - - Derniers ajouts - Lue récemment - Mes titres préférés - - Nouvelle liste de lecture - Enregistrer - Annuler - Écraser - Effacer - Liste de lecture %d - Nom de la liste de lecture - Supprimer %s ? - Effacer les titres les plus populaires ? - Effacer les titres récemment joués ? - Effacer les derniers titres ajoutés ? - Cette action ne peut pas être annulée - Cette action supprimera définitivement le cache des images - Choisir une photo de la Galerie - Recherche Google - Utiliser la photo par défaut - Utiliser l\'ancienne photo - - Lire - Lire le suivant - Lire l\'album - Par le même artiste - Renommer - Supprimer - Récupérer la pochette de l\'album - Récupérer une image de l\'artiste - Supprimer des récents - Utiliser comme sonnerie - Supprimer de la liste de lecture - Modifier l’image - - Lire - Pause - Suivant - Précédent - Lecture aléatoire - Lecture aléatoire de tous les titres - Répéter - Tout répéter - Répéter un - Ouvrir la file d\'attente - Parcourir la musique - - \'%s\' défini comme sonnerie - Liste de lecture renommée - - Interface - Stockage - Données - Supprimer le cache - Supprimer toutes les images du cache - Télécharger via Wi-Fi uniquement - Pour réduire les frais de consommation de données, ne pas télécharger via un réseau mobile - Télécharger les pochettes manquantes - Télécharger les images d\'artistes manquantes - Général - Voir les animations musicales - Afficher les paroles - Pour les titres ayant un fichier srt - Secouer pour lire - Secouer votre appareil pour écouter le titre suivant - Pochettes d\'album sur l\'écran de verrouillage - Remplacer le fond d\'écran de verrouillage par des pochettes d\'album - - Musique : 4 \u00d7 1 - Musique : 4 \u00d7 2 - Musique : 4 \u00d7 2 (alterné) - Musique : récemment écouté - - L\'égaliseur ne peut pas être ouvert. - Utilisez un câble USB pour copier de la musique depuis votre ordinateur vers votre appareil. - Aucun résultat trouvé - Veuillez vérifier que l\'orthographe est correcte ou essayez un autre mot clé. - Vos titres favoris seront affichés ici. - Aucun titre récent - Les titres écoutés récemment seront affichés ici. - Aucun titre dans la liste de lecture - Pour ajouter des titres à cette liste de lecture, appuyez sur le menu d\'options d\'un titre, album ou artiste et sélectionnez « Ajouter à la liste de lecture ». - Aucun titre populaire - Les titres écoutés fréquemment s\'ajouteront à cette liste. - Aucun titre ajouté récemment - Les titres ajoutés au cours du dernier mois seront affichés ici. - Aucune musique trouvée - Utilisez un câble USB pour copier de la musique depuis votre ordinateur vers votre appareil. - Aucun titre dans la file d\'attente - Pour ajouter des titres à votre file d\'attente, appuyez sur le menu d\'options d\'un titre, album ou artiste et sélectionnez « Ajouter à la file d\'attente ». - Impossible de lire %1$s - - Année inconnue - Moins de 30 secondes - 30 à 60 secondes - 1 à 2 minutes - 2 à 3 minutes - 3 à 4 minutes - 4 à 5 minutes - 5 à 10 minutes - 10 à 30 minutes - 30 à 60 minutes - Plus de 60 minutes - 1 titre - 2 à 4 titres - 5 à 9 titres - Plus de 10 titres - Plus de 5 albums - "Autres" - Afficher tous les artistes - Afficher tous les albums - Afficher tous les titres - Afficher toutes les listes de lecture - Rechercher de la musique - Tous les artistes \"%s\" - Tous les albums \"%s\" - Tous les titres \"%s\" - Toutes les listes de lecture \"%s\" - %1$s %2$s - Lecture de musique + Musique + Récents + Artistes + Albums + Titres + Listes de lecture + Genres + Lecture en cours + Lire la file d\'attente + Albums + Titres populaires + Tous les titres + Paramètres + Rechercher + Lecture aléatoire + Lecture aléatoire de tous les titres + Lecture aléatoire des titres de la liste de lecture + Lecture aléatoire des titres de l\'album + Lecture aléatoire des titres de l\'artiste + Lecture aléatoire des titres les plus populaires + Lecture aléatoire des titres récemment joués + Lecture aléatoire des derniers titres ajoutés + Tout lire + Trier par + Effacer la liste + Effacer les récents + Effacer la liste d\'attente + Enregistrer la file d\'attente dans la liste de lecture + Égaliseur + Ajouter à liste de lecture + Ajouter à la file d\'attente + Supprimer des récents + Supprimer de la file d\'attente + A-Z + Z-A + Artiste + Album + Année + Durée + Date d\'ajout + Liste des pistes + Nombre de titres + Nombre d\'albums + Nom de fichier + Derniers ajouts + Lue récemment + Mes titres préférés + Nouvelle liste de lecture + Enregistrer + Annuler + Écraser + Effacer + Liste de lecture %d + Nom de la liste de lecture + Supprimer %s ? + Effacer les titres les plus populaires ? + Effacer les titres récemment joués ? + Effacer les derniers titres ajoutés ? + Cette action ne peut pas être annulée + Cette action supprimera définitivement le cache des images + Choisir une photo de la Galerie + Recherche Google + Utiliser la photo par défaut + Utiliser l\'ancienne photo + Lire + Lire le suivant + Lire l\'album + Par le même artiste + Renommer + Supprimer + Récupérer la pochette de l\'album + Récupérer une image de l\'artiste + Supprimer des récents + Utiliser comme sonnerie + Supprimer de la liste de lecture + Modifier l’image + Lire + Pause + Suivant + Précédent + Lecture aléatoire + Lecture aléatoire de tous les titres + Répéter + Tout répéter + Répéter un + Ouvrir la file d\'attente + Parcourir la musique + \'%s\' défini comme sonnerie + Liste de lecture renommée + Interface + Stockage + Données + Supprimer le cache + Supprimer toutes les images du cache + Télécharger via Wi-Fi uniquement + Pour réduire les frais de consommation de données, ne pas télécharger via un réseau mobile + Télécharger les pochettes manquantes + Télécharger les images d\'artistes manquantes + Général + Voir les animations musicales + Afficher les paroles + Pour les titres ayant un fichier srt + Secouer pour lire + Secouer votre appareil pour écouter le titre suivant + Pochettes d\'album sur l\'écran de verrouillage + Remplacer le fond d\'écran de verrouillage par des pochettes d\'album + Musique : 4 \u00d7 1 + Musique : 4 \u00d7 2 + Musique : 4 \u00d7 2 (alterné) + Musique : récemment écouté + L\'égaliseur ne peut pas être ouvert. + Utilisez un câble USB pour copier de la musique depuis votre ordinateur vers votre appareil. + Aucun résultat trouvé + Veuillez vérifier que l\'orthographe est correcte ou essayez un autre mot clé. + Vos titres favoris seront affichés ici. + Aucun titre récent + Les titres écoutés récemment seront affichés ici. + Aucun titre dans la liste de lecture + Pour ajouter des titres à cette liste de lecture, appuyez sur le menu d\'options d\'un titre, album ou artiste et sélectionnez « Ajouter à la liste de lecture ». + Aucun titre populaire + Les titres écoutés fréquemment s\'ajouteront à cette liste. + Aucun titre ajouté récemment + Les titres ajoutés au cours du dernier mois seront affichés ici. + Aucune musique trouvée + Utilisez un câble USB pour copier de la musique depuis votre ordinateur vers votre appareil. + Aucun titre dans la file d\'attente + Pour ajouter des titres à votre file d\'attente, appuyez sur le menu d\'options d\'un titre, album ou artiste et sélectionnez « Ajouter à la file d\'attente ». + Impossible de lire %1$s + Année inconnue + Moins de 30 secondes + 30 à 60 secondes + 1 à 2 minutes + 2 à 3 minutes + 3 à 4 minutes + 4 à 5 minutes + 5 à 10 minutes + 10 à 30 minutes + 30 à 60 minutes + Plus de 60 minutes + 1 titre + 2 à 4 titres + 5 à 9 titres + Plus de 10 titres + Plus de 5 albums + "Autres" + Afficher tous les artistes + Afficher tous les albums + Afficher tous les titres + Afficher toutes les listes de lecture + Rechercher de la musique + Tous les artistes \"%s\" + Tous les albums \"%s\" + Tous les titres \"%s\" + Toutes les listes de lecture \"%s\" + %1$s %2$s + Lecture de musique diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index a1618e5..d2d4c59 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -17,28 +17,14 @@ limitations under the License. --> - - - - Ynstellingen - - - - - Bewarje - Annulearje - - - - - - - - 1 - 2 minuten - 2 - 3 minuten - 3 - 4 minuten - 4 - 5 minuten - 5 - 10 minuten - 10 - 30 minuten - 30 - 60 minuten + Ynstellingen + Bewarje + Annulearje + 1 - 2 minuten + 2 - 3 minuten + 3 - 4 minuten + 4 - 5 minuten + 5 - 10 minuten + 10 - 30 minuten + 30 - 60 minuten diff --git a/app/src/main/res/values-gd/plurals.xml b/app/src/main/res/values-gd/plurals.xml index 2ec326c..1145c89 100644 --- a/app/src/main/res/values-gd/plurals.xml +++ b/app/src/main/res/values-gd/plurals.xml @@ -17,77 +17,66 @@ limitations under the License. --> - %d neach-ciùil %d neach-ciùil %d luchd-ciùil %d neach-ciùil - %d albam %d albam %d albaman %d albam - %d òran %d òran %d òrain %d òran - %d ghnè %d ghnè %d gnèithean %d gnè - %du %du %du %du - %dm %dm %dm %dm - Chaidh %d òran a chur ris an liosta-chluich. Chaidh %d òran a chur ris an liosta-chluich. Chaidh %d òrain a chur ris an liosta-chluich. Chaidh %d òran a chur ris an liosta-chluich. - Chaidh %d òran a thoirt air falbh on liosta-chluich. Chaidh %d òran a thoirt air falbh on liosta-chluich. Chaidh %d òrain a thoirt air falbh on liosta-chluich. Chaidh %d òran a thoirt air falbh on liosta-chluich. - Chaidh %d òran a chur ris a’ chiutha. Chaidh %d òran a chur ris a’ chiutha. Chaidh %d òrain a chur ris a’ chiutha. Chaidh %d òran a chur ris a’ chiutha. - Chaidh %d òran a chur ris na h-annsachdan. Chaidh %d òran a chur ris na h-annsachdan. Chaidh %d òrain a chur ris na h-annsachdan. Chaidh %d òran a chur ris na h-annsachdan. - Chaidh %d òran a sguabadh às. Chaidh %d òran a sguabadh às. diff --git a/app/src/main/res/values-gd/strings.xml b/app/src/main/res/values-gd/strings.xml index a892b4b..7fb359b 100644 --- a/app/src/main/res/values-gd/strings.xml +++ b/app/src/main/res/values-gd/strings.xml @@ -18,7 +18,6 @@ --> Ceòl - O chionn goirid Luchd-ciùil Albaman @@ -27,11 +26,9 @@ Gnèithean ’Ga chluich an-dràsta Cluich an ciutha - Albaman Brod nan òran A h-uile òran - Roghainnean Lorg Air thuaiream @@ -49,12 +46,10 @@ Falamhaich an ciutha Sàbhail an ciutha san liosta-chluich Cothromaiche - Cuir ris an liosta-chluich Cuir ris a\' chiutha Thoir air falbh o na chluich thu o chionn goirid Thoir air falbh on chiutha - A-Z Z-A Neach-ciùil @@ -66,11 +61,9 @@ Co mheud òran Co mheud albam Ainm an fhaidhle - Fear mu dheireadh a chuir thu ris Air a chluich o chionn goirid Brod nan traca agam - Liosta-chluich ùr Sàbhail Sguir dheth @@ -88,7 +81,6 @@ Lorg Google Cleachd dealbh bunaiteach Cleachd seann-dealbh - Cluich Cluich an ath-fhear Cluich an t-albam @@ -101,7 +93,6 @@ Cleachd mar sheirm Thoir air falbh on liosta-chluich Atharraich an dealbh - Cluich Cuir ’na stad Air adhart @@ -113,10 +104,8 @@ Ath-chluich aonan Fosgail an ciutha Rùraich an ceòl - Suidhich “%s” mar sheirm Chaidh ainm ùr a thoirt air an liosta-chluich - Eadar-aghaidh Stòras Dàta @@ -134,12 +123,10 @@ Crath an t-uidheam agad airson an ath-òran a chluich Obair-ealain albaman air an sgrìn-ghlasaidh Cuir obair-ealain an albaim an àite cùlaibh na sgrìn-ghlasaidh - Ceòl: 4 \u00d7 1 Ceòl: 4 \u00d7 2 Ceòl: 4 \u00d7 2 (roghainn eile) Ceòl: Air èisteachd o chionn goirid - Cha b’ urrainn dhuinn an cothromaiche fhosgladh. Cleachd càball USB airson lethbhreac dhen cheòl air a’ choimpiutair agad a chur air an uidheam agad. Cha deach toradh luirg a lorg @@ -158,7 +145,6 @@ Chan eil òran sam bith sa chiutha Airson òrain a chur ris a’ chiutha chluich, thoir gnogag air clàr-taice nan roghainnean aig òran, albam no neach-ciùil agus tagh “Cuir ris a’ chiutha chluich”. Cha ghabh an traca %1$s a chluich - Bliadhna neo-aithnichte Nas lugha na 30 diog Eadar 30 is 60 diog diff --git a/app/src/main/res/values-gl/plurals.xml b/app/src/main/res/values-gl/plurals.xml index 6136aaf..0c8d953 100644 --- a/app/src/main/res/values-gl/plurals.xml +++ b/app/src/main/res/values-gl/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistas - - - - %d álbum - %d álbums - - - - %d canción - %d canciones - - - - %d genero - %d generos - - - - %dh - %dh - - - - %dm - %dm - - - - %d canción añadida á lista de reproducción. - %d cancións añadida á lista de reproducción. - - - - %d canción eliminada dá lista de reproducción. - %d cancións eliminadas dá lista de reproducción. - - - - %d canción añadida á cola de reproducción. - %d cancións añadidas á cola de reproducción. - - - - %d canción añadida a favoritos. - %d cancións añadidas a favoritos. - - - - %d canción foi eliminada. - %d cancións foron eliminadas. - + + %d artista + %d artistas + + + %d álbum + %d álbums + + + %d canción + %d canciones + + + %d genero + %d generos + + + %dh + %dh + + + %dm + %dm + + + %d canción añadida á lista de reproducción. + %d cancións añadida á lista de reproducción. + + + %d canción eliminada dá lista de reproducción. + %d cancións eliminadas dá lista de reproducción. + + + %d canción añadida á cola de reproducción. + %d cancións añadidas á cola de reproducción. + + + %d canción añadida a favoritos. + %d cancións añadidas a favoritos. + + + %d canción foi eliminada. + %d cancións foron eliminadas. + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index bd49d4b..d50be80 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Música - - Recente - Artistas - Álbums - Cancións - Listas de reprodución - Xéneros - Reproducindo - Reproducir cola - - Álbums - Cancións máis escoitadas - Todas as cancións - - Configuración - Buscar - Ao chou - Todo ao chou - Lista de reprodución ao chou - Álbum ao chou - Artista ao chou - Barallar cancións máis escoitadas - Barallar cancións escoitadas ultimamente - Barallar as últimas engadidas - Reproducir todo - Ordenar por - Limpar a lista - Limpar recentes - Limpar cola - Gardar a cola na lista de reprodución - Ecualizador - - Engadir á lista - Engadir á cola - Eliminar de recentes - Eliminar da cola - - A-Z - Z-A - Artista - Álbum - Ano - Duración - Data de adición - Lista de pistas - Número de cancións - Número de álbums - Nome do ficheiro - - Recentes - Reproducido recentemente - As miñas cancións máis escoitadas - - Nova lista de reprodución - Gardar - Cancelar - Sobrescribir - Limpar - Lista de reprodución%d - Nome da lista de reprodución - Eliminar %s? - Limpar o rexistro das cancións máis escoitadas? - Limpar o rexistro das máis recentes cancións escoitadas? - Limpar o rexistro das últimas cancións engadidas? - Isto non se pode desfacer - Isto eliminará permanentemente as imaxes gardadas na caché - Escoller imaxe da Galería - Buscar en Google - Utilizar foto predeterminada - Utilizar foto antiga - - Reproducir - Reproducir a seguinte - Reproducir o álbum - Máis deste artista - Renomear - Eliminar - Obter a cuberta do álbum - Obter a imaxe do artista - Eliminar de recentes - Utilizar como ton de chamada - Retirar da lista de reprodución - Cambiar a imaxe - - Reproducir - Deter - Seguinte - Anterior - Ao chou - Todo ao chou - Repetir - Repetir todo - Repetir unha - Abrir cola - Explorar música - - Estabelecer \'%s\' como ton de chamada - Renomeouse a lista de reprodución - - Interface - Almacenamento - Datos - Eliminar a caché - Retirar todas as imaxes da caché - Descargar só con wifi - Para reducir os cargos do fornecedor, non descargar con redes para móbil - Descargar a cuberta do álbum que falta - Descargar as imaxes do artista que faltan - Xeral - Amosar visualización da música - Amosar as letras das cancións - Para cancións que teñen un ficheiro srt - Abanear para reproducir - Abanea o teu dispositivo para reproducir a seguinte canción - Cuberta de álbum na pantalla de bloqueo - Remplazar o fondo da pantalla de bloueo coas imaxes do álbum - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - Música: 4 \u00d7 2 (alternativo) - Música: escoitadas recentemente - - Non foi posíbel abrir o ecualizador. - Para copiar a música do seu computador ao seu dispositivo, empregue un cable USB. - Non se atoparon resultados para esta busca - Comprobe que o escribiu correctamente ou tente con outra palabra clave. - Aquí aparecerán as cancións que marque como favoritas. - Sen cancións recentes - Aquí aparecerán as cancións que teña escoitado ultimamente. - Sen cancións na lista de reprodución - Para engadir cancións a esta lista de reprodución, toque no menú de opcións da canción, álbum ou artista e seleccione «Engadir á lista de reprodución». - Non hai cancións máis escoitadas - Nesta lista aparecerán as cancións que máis escoite. - Non se engadiu ningunha canción ultimamente - Aquí aparecerán as cancións que engadiu no último mes. - Non se atopou música - Para copiar a música do seu computador ao seu dispositivo, empregue un cable USB. - Sen cancións na cola de reprodución - Para engadir cancións á súa lista de espere, toque o menú de opcións dunha canción, álbum ou artista e seleccione \"Engadir á lista de espera\". - Non se puido reproducir a pista %1$s - - Ano descoñecido - Menos de 30 segundos - 30 - 60 segundos - 1 - 2 minutos - 2 - 3 minutos - 3 - 4 minutos - 4 - 5 minutos - 5 - 10 minutos - 10 - 30 minutos - 30 - 60 minutos - Máis de 60 minutos - 1 canción - 2 - 4 cancións - 5 - 9 cancións - 10+ cancións - 5+ álbums - "Outro" - Amosar todos os artistas - Amosar todos os álbums - Amosar todas as cancións - Amosar todas as listas de reprodución - Buscar música - Todos os artistas \"%s\" - Todos os álbums \"%s\" - Todas as cancións \"%s\" - Todas as listas de reprodución \"%s\" - %1$s %2$s - Reproducir música + Música + Recente + Artistas + Álbums + Cancións + Listas de reprodución + Xéneros + Reproducindo + Reproducir cola + Álbums + Cancións máis escoitadas + Todas as cancións + Configuración + Buscar + Ao chou + Todo ao chou + Lista de reprodución ao chou + Álbum ao chou + Artista ao chou + Barallar cancións máis escoitadas + Barallar cancións escoitadas ultimamente + Barallar as últimas engadidas + Reproducir todo + Ordenar por + Limpar a lista + Limpar recentes + Limpar cola + Gardar a cola na lista de reprodución + Ecualizador + Engadir á lista + Engadir á cola + Eliminar de recentes + Eliminar da cola + A-Z + Z-A + Artista + Álbum + Ano + Duración + Data de adición + Lista de pistas + Número de cancións + Número de álbums + Nome do ficheiro + Recentes + Reproducido recentemente + As miñas cancións máis escoitadas + Nova lista de reprodución + Gardar + Cancelar + Sobrescribir + Limpar + Lista de reprodución%d + Nome da lista de reprodución + Eliminar %s? + Limpar o rexistro das cancións máis escoitadas? + Limpar o rexistro das máis recentes cancións escoitadas? + Limpar o rexistro das últimas cancións engadidas? + Isto non se pode desfacer + Isto eliminará permanentemente as imaxes gardadas na caché + Escoller imaxe da Galería + Buscar en Google + Utilizar foto predeterminada + Utilizar foto antiga + Reproducir + Reproducir a seguinte + Reproducir o álbum + Máis deste artista + Renomear + Eliminar + Obter a cuberta do álbum + Obter a imaxe do artista + Eliminar de recentes + Utilizar como ton de chamada + Retirar da lista de reprodución + Cambiar a imaxe + Reproducir + Deter + Seguinte + Anterior + Ao chou + Todo ao chou + Repetir + Repetir todo + Repetir unha + Abrir cola + Explorar música + Estabelecer \'%s\' como ton de chamada + Renomeouse a lista de reprodución + Interface + Almacenamento + Datos + Eliminar a caché + Retirar todas as imaxes da caché + Descargar só con wifi + Para reducir os cargos do fornecedor, non descargar con redes para móbil + Descargar a cuberta do álbum que falta + Descargar as imaxes do artista que faltan + Xeral + Amosar visualización da música + Amosar as letras das cancións + Para cancións que teñen un ficheiro srt + Abanear para reproducir + Abanea o teu dispositivo para reproducir a seguinte canción + Cuberta de álbum na pantalla de bloqueo + Remplazar o fondo da pantalla de bloueo coas imaxes do álbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternativo) + Música: escoitadas recentemente + Non foi posíbel abrir o ecualizador. + Para copiar a música do seu computador ao seu dispositivo, empregue un cable USB. + Non se atoparon resultados para esta busca + Comprobe que o escribiu correctamente ou tente con outra palabra clave. + Aquí aparecerán as cancións que marque como favoritas. + Sen cancións recentes + Aquí aparecerán as cancións que teña escoitado ultimamente. + Sen cancións na lista de reprodución + Para engadir cancións a esta lista de reprodución, toque no menú de opcións da canción, álbum ou artista e seleccione «Engadir á lista de reprodución». + Non hai cancións máis escoitadas + Nesta lista aparecerán as cancións que máis escoite. + Non se engadiu ningunha canción ultimamente + Aquí aparecerán as cancións que engadiu no último mes. + Non se atopou música + Para copiar a música do seu computador ao seu dispositivo, empregue un cable USB. + Sen cancións na cola de reprodución + Para engadir cancións á súa lista de espere, toque o menú de opcións dunha canción, álbum ou artista e seleccione \"Engadir á lista de espera\". + Non se puido reproducir a pista %1$s + Ano descoñecido + Menos de 30 segundos + 30 - 60 segundos + 1 - 2 minutos + 2 - 3 minutos + 3 - 4 minutos + 4 - 5 minutos + 5 - 10 minutos + 10 - 30 minutos + 30 - 60 minutos + Máis de 60 minutos + 1 canción + 2 - 4 cancións + 5 - 9 cancións + 10+ cancións + 5+ álbums + "Outro" + Amosar todos os artistas + Amosar todos os álbums + Amosar todas as cancións + Amosar todas as listas de reprodución + Buscar música + Todos os artistas \"%s\" + Todos os álbums \"%s\" + Todas as cancións \"%s\" + Todas as listas de reprodución \"%s\" + %1$s %2$s + Reproducir música diff --git a/app/src/main/res/values-gu/plurals.xml b/app/src/main/res/values-gu/plurals.xml index ef257e4..4888361 100644 --- a/app/src/main/res/values-gu/plurals.xml +++ b/app/src/main/res/values-gu/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d આર્ટિસ્ટ - %d આર્ટિસ્ટો - - - - %d આલ્બમ - %d આલ્બમ્સ - - - - %d ગીત - %d ગીતો - - - - %d ઝાનર - %d ઝાનરો - - - - %d કલાક - %d કલાક - - - - %dમિનીટ - %dમિનીટ - - - - %d પ્લેલિસ્ટમાં ગીત ઉમેરાયું. - %d ગીતો પ્લેસૂચિમાં ઉમેરાયાં. - - - - %d પ્લેલિસ્ટમાંથી ગીત દૂર કરાયું - %d પ્લેલિસ્ટમાંથી ગીતો દૂર કરાયા. - - - - %d હરોળમાં ગીત ઉમેરાયું. - %d હરોળમાં ગીતો ઉમેર્યા. - - - - %d ફેવરિટમાં ગીત ઉમેરાણું. - %d ફેવરિટમાં ગીતો ઉમેરાણાં. - - - - %d ગીત રદ કરવામાં આવ્યું. - %d ગીતો હટાવવામાં આવ્યાં હતાં. - + + %d આર્ટિસ્ટ + %d આર્ટિસ્ટો + + + %d આલ્બમ + %d આલ્બમ્સ + + + %d ગીત + %d ગીતો + + + %d ઝાનર + %d ઝાનરો + + + %d કલાક + %d કલાક + + + %dમિનીટ + %dમિનીટ + + + %d પ્લેલિસ્ટમાં ગીત ઉમેરાયું. + %d ગીતો પ્લેસૂચિમાં ઉમેરાયાં. + + + %d પ્લેલિસ્ટમાંથી ગીત દૂર કરાયું + %d પ્લેલિસ્ટમાંથી ગીતો દૂર કરાયા. + + + %d હરોળમાં ગીત ઉમેરાયું. + %d હરોળમાં ગીતો ઉમેર્યા. + + + %d ફેવરિટમાં ગીત ઉમેરાણું. + %d ફેવરિટમાં ગીતો ઉમેરાણાં. + + + %d ગીત રદ કરવામાં આવ્યું. + %d ગીતો હટાવવામાં આવ્યાં હતાં. + diff --git a/app/src/main/res/values-gu/strings.xml b/app/src/main/res/values-gu/strings.xml index 7c3d7ab..0e4377d 100644 --- a/app/src/main/res/values-gu/strings.xml +++ b/app/src/main/res/values-gu/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - સંગીત - - તાજેતરનું - કલાકારો - આલબ્મ્સ - ગીતો - પ્લેસૂચિઓ - ઝૉનરાં - હાલ પ્લે થાય છે - હરોળ પ્લે કરો - - આલબ્મ્સ - ટોપ ગીતો - તમામ ગીતો - - સેટિંગ્સ - શોધ - પીસો - બધાને પીસો - પ્લેલિસ્ટ શફલ કરો - આલ્બમ શફલ કરો - આર્ટિસ્ટ શફલ કરો - ટોપ ટ્રૅક્સ શફલ કરો - તાજેતર પ્લે કરેલ શફલ કરો - છેલ્લું ઉમેરેલ શફલ કરો - તમામ પ્લે કરો - ના દ્વારા ગોઠવો - સૂચિ સાફ કરો - તાજેતરના સાફ કરો - હરોળ સાફ કરો - હરોળને પ્લેલિસ્ટમાં સેવ કરો - ઇક્વીલાઇઝર - - પ્લેસૂચિ ઉમેરો - હરોળમાં ઍડ કરો - રિસન્ટમાંથી કાઢી નાંખો - હરોળમાંથી કાઢી નાંખો - - A-Z - Z-A - કલાકાર - આલ્બમ - વર્ષ - અવધિ - તારીખ ઉમેરી - ટ્રૅક સૂચી - ગીતોની સંખ્યા - આલ્બમની સંખ્યા - ફાઇલનું નામ - - છેલ્લે ઉમેરેલ - તાજેતરમાં પ્લે કરેલ - મારા ટોપ ટ્રૅક્સ - - નવું પ્લેલિસ્ટ - સાચવો - રદ કરો - ઓવરરાઇટ - સાફ કરો - પ્લેલિસ્ટ %d - પ્લેસૂચિ નામ - %s હટાવીએ? - શું ટોપ ટ્રૅકસ સાફ કરવા છે? - શું તાજેતરમાં પ્લે કરેલ સાફ કરવું છે? - શું છેલ્લે ઉમેરેલ સાફ કરવું છે? - આ ક્રિયા પૂર્વવત થઈ શકે નહીં. - આનાથી કૅશ કરેલ ઇમેજ એન્ટ્રીઓ કાયમી ભૂંસાઇ જશે - ગૅલેરીમાંથી ફોટા પસંદ કરો - ગૂગલ સર્ચ - ડિફૉલ્ટ ફોટો વાપરો - જૂનો ફોટો વાપરો - - ચલાવો - આગામી પ્લે કરો - આલ્બમ પ્લે કરો - આર્ટિસ્ટ્ના વધું - નામ બદલો - હટાવો - આલ્બમ આર્ટ લાવો - આર્ટિસ્ટ ઇમેજ લાવો - રિસન્ટમાંથી કાઢી નાંખો - રીંગટોન તરીકે વાપરો - પ્લેસૂચિમાંથી દૂર કરો - ઇમેજ પરિવર્તન કરો - - ચલાવો - થોભો - આગલું - પાછળનું - પીસો - બધાને પીસો - પુનરાવર્તન - તમામ પુનરાવર્તિત કરો - એક પુનરાવર્તિત કરો - હરોળ ખોલો - મ્યુઝિક બ્રાઉઝ કરો - - \'%s\' રિંગટોન તરીકે સેટ કરો - પ્લેલિસ્ટનું પુન:નામકરણ કર્યું - - ઇન્ટરફેસ - સ્ટોરેજ - ડેટા - કૅશ રદ કરો - તમામ કૅશ ઇમેજ કાઢી નાંખો - ફકત Wi-Fi મારફત ડાઉનલોડ કરો - પ્રદાતા શુલ્કો ઘટાડવા, મોબાઇલ નેટવર્કો પર ડાઉનલોડ કરશો નહીં - ગૂમ આલ્બમ આર્ટ ડાઉનલોડ કરો - ગૂમ આર્ટિસ્ટ ઇમેજ ડાઉનલોડ કરો - સામાન્ય - મ્યુઝિક વિઝ્યુઅલાઇઝેશન દર્શાવો - ગીત લિરિક્સ દર્શાવો - srt ફાઇલ હોય તેવા ગીતો માટે - પ્લે કરવા હલાવો - આગામી ગીત પ્લે કરવા તમારી ડિવાઇસ હલાવો - લૉકસ્ક્રીન આલ્બમ આર્ટ - લૉકસ્ક્રીન પૃષ્ઠભૂમિની અવેજીમાં આલ્બમ આર્ટ મૂકો - - મ્યુઝિક: 4 \u00d7 1 - મ્યુઝિક: 4 \u00d7 2 - મ્યુઝિક: 4 \u00d7 2 (વૈકલ્પિક) - મ્યુઝિક: તાજેતરમાં સાંભળેલ - - ઇક્વલાઇઝર ખોલી શકાયું નહીં. - તમારા કમ્પ્યુટરમાંથી તમારા ડિવાઇસ પર મ્યુઝિક કૉપિ કરવા USB કેબલનો ઉપયોગ કરો. - કોઇ સર્ચ પરિણામો મળ્યાં નહીં - કૃપા કરી ચકાસો કે તમારી જોડણી સાચી છે અથવા અલગ કીવર્ડ અજમાવો. - ફેવરિટ તરીકે તમે અંકિત કરેલ ગીતો અહીં દર્શાવવામાં આવશે. - કોઇ તાજેતરનાં ગીતો નહીં - તમે તાજેતરમાં સાંભળેલ ગીતો અહીં દેખાશે. - પ્લેલિસ્ટમાં કોઇ ગીતો નહીં - આ પ્લેલિસ્ટમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \"પ્લેલિસ્ટમાં ઍડ કરો\" પસંદ કરો. - કોઇ ટોપ ટ્રૅક્સ નહીં - તમે સૌથી વધારે સાંભળો છો તે ગીતો આ સૂચીમાં ઉમેરાશે. - તાજેતરમાં કોઇ ગીતો ઉમેરાયાં નથી - તમે ગત મહિને ઉમેરેલ ગીતો અહીં દર્શાવવામાં આવશે. - કોઇ સંગીત મળ્યું નથી. - તમારા કમ્પ્યુટરમાંથી તમારા ડિવાઇસ પર મ્યુઝિક કૉપિ કરવા USB કેબલનો ઉપયોગ કરો. - પ્લે હરોળમાં કોઇ ગીતો નહીં - તમારી પ્લે હરોળમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \"હરોળમાં ઍડ કરો\" પસંદ કરો. - ટ્રૅક %1$s પ્લે થઈ શકતો નથી - - અજાણ્યું વર્ષ - 30 સેકન્ડ કરતા ઓછો - 30 - 60 સેકન્ડો - 1 - 2 મિનિટ - 2 - 3 મિનિટ - 3 - 4 મિનિટ - 4 - 5 મિનિટ - 5 - 10 મિનિટ - 10 - 30 મિનિટ - 30 - 60 મિનિટ - 60 મિનિટ કરતા વધું - 1 ગીત - 2 - 4 ગીતો - 5 - 9 ગીતો - 10+ ગીતો - 5+ આલ્બોમો - ""અન્ય"" - તમામ આર્ટિસ્ટો દર્શાવો - તમામ આલ્બમો દર્શાવો - તમામ ગીતો દર્શાવો - તમામ પ્લેલિસ્ટો દર્શાવો - મ્યુઝિક સર્ચ કરો - તમામ \"%s\" આર્ટિસ્ટો - તમામ \"%s\" આલ્બમો - તમામ \"%s\" ગીતો - તમામ \"%s\" પ્લેલિસ્ટો - %1$s %2$s + સંગીત + તાજેતરનું + કલાકારો + આલબ્મ્સ + ગીતો + પ્લેસૂચિઓ + ઝૉનરાં + હાલ પ્લે થાય છે + હરોળ પ્લે કરો + આલબ્મ્સ + ટોપ ગીતો + તમામ ગીતો + સેટિંગ્સ + શોધ + પીસો + બધાને પીસો + પ્લેલિસ્ટ શફલ કરો + આલ્બમ શફલ કરો + આર્ટિસ્ટ શફલ કરો + ટોપ ટ્રૅક્સ શફલ કરો + તાજેતર પ્લે કરેલ શફલ કરો + છેલ્લું ઉમેરેલ શફલ કરો + તમામ પ્લે કરો + ના દ્વારા ગોઠવો + સૂચિ સાફ કરો + તાજેતરના સાફ કરો + હરોળ સાફ કરો + હરોળને પ્લેલિસ્ટમાં સેવ કરો + ઇક્વીલાઇઝર + પ્લેસૂચિ ઉમેરો + હરોળમાં ઍડ કરો + રિસન્ટમાંથી કાઢી નાંખો + હરોળમાંથી કાઢી નાંખો + A-Z + Z-A + કલાકાર + આલ્બમ + વર્ષ + અવધિ + તારીખ ઉમેરી + ટ્રૅક સૂચી + ગીતોની સંખ્યા + આલ્બમની સંખ્યા + ફાઇલનું નામ + છેલ્લે ઉમેરેલ + તાજેતરમાં પ્લે કરેલ + મારા ટોપ ટ્રૅક્સ + નવું પ્લેલિસ્ટ + સાચવો + રદ કરો + ઓવરરાઇટ + સાફ કરો + પ્લેલિસ્ટ %d + પ્લેસૂચિ નામ + %s હટાવીએ? + શું ટોપ ટ્રૅકસ સાફ કરવા છે? + શું તાજેતરમાં પ્લે કરેલ સાફ કરવું છે? + શું છેલ્લે ઉમેરેલ સાફ કરવું છે? + આ ક્રિયા પૂર્વવત થઈ શકે નહીં. + આનાથી કૅશ કરેલ ઇમેજ એન્ટ્રીઓ કાયમી ભૂંસાઇ જશે + ગૅલેરીમાંથી ફોટા પસંદ કરો + ગૂગલ સર્ચ + ડિફૉલ્ટ ફોટો વાપરો + જૂનો ફોટો વાપરો + ચલાવો + આગામી પ્લે કરો + આલ્બમ પ્લે કરો + આર્ટિસ્ટ્ના વધું + નામ બદલો + હટાવો + આલ્બમ આર્ટ લાવો + આર્ટિસ્ટ ઇમેજ લાવો + રિસન્ટમાંથી કાઢી નાંખો + રીંગટોન તરીકે વાપરો + પ્લેસૂચિમાંથી દૂર કરો + ઇમેજ પરિવર્તન કરો + ચલાવો + થોભો + આગલું + પાછળનું + પીસો + બધાને પીસો + પુનરાવર્તન + તમામ પુનરાવર્તિત કરો + એક પુનરાવર્તિત કરો + હરોળ ખોલો + મ્યુઝિક બ્રાઉઝ કરો + \'%s\' રિંગટોન તરીકે સેટ કરો + પ્લેલિસ્ટનું પુન:નામકરણ કર્યું + ઇન્ટરફેસ + સ્ટોરેજ + ડેટા + કૅશ રદ કરો + તમામ કૅશ ઇમેજ કાઢી નાંખો + ફકત Wi-Fi મારફત ડાઉનલોડ કરો + પ્રદાતા શુલ્કો ઘટાડવા, મોબાઇલ નેટવર્કો પર ડાઉનલોડ કરશો નહીં + ગૂમ આલ્બમ આર્ટ ડાઉનલોડ કરો + ગૂમ આર્ટિસ્ટ ઇમેજ ડાઉનલોડ કરો + સામાન્ય + મ્યુઝિક વિઝ્યુઅલાઇઝેશન દર્શાવો + ગીત લિરિક્સ દર્શાવો + srt ફાઇલ હોય તેવા ગીતો માટે + પ્લે કરવા હલાવો + આગામી ગીત પ્લે કરવા તમારી ડિવાઇસ હલાવો + લૉકસ્ક્રીન આલ્બમ આર્ટ + લૉકસ્ક્રીન પૃષ્ઠભૂમિની અવેજીમાં આલ્બમ આર્ટ મૂકો + મ્યુઝિક: 4 \u00d7 1 + મ્યુઝિક: 4 \u00d7 2 + મ્યુઝિક: 4 \u00d7 2 (વૈકલ્પિક) + મ્યુઝિક: તાજેતરમાં સાંભળેલ + ઇક્વલાઇઝર ખોલી શકાયું નહીં. + તમારા કમ્પ્યુટરમાંથી તમારા ડિવાઇસ પર મ્યુઝિક કૉપિ કરવા USB કેબલનો ઉપયોગ કરો. + કોઇ સર્ચ પરિણામો મળ્યાં નહીં + કૃપા કરી ચકાસો કે તમારી જોડણી સાચી છે અથવા અલગ કીવર્ડ અજમાવો. + ફેવરિટ તરીકે તમે અંકિત કરેલ ગીતો અહીં દર્શાવવામાં આવશે. + કોઇ તાજેતરનાં ગીતો નહીં + તમે તાજેતરમાં સાંભળેલ ગીતો અહીં દેખાશે. + પ્લેલિસ્ટમાં કોઇ ગીતો નહીં + આ પ્લેલિસ્ટમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \"પ્લેલિસ્ટમાં ઍડ કરો\" પસંદ કરો. + કોઇ ટોપ ટ્રૅક્સ નહીં + તમે સૌથી વધારે સાંભળો છો તે ગીતો આ સૂચીમાં ઉમેરાશે. + તાજેતરમાં કોઇ ગીતો ઉમેરાયાં નથી + તમે ગત મહિને ઉમેરેલ ગીતો અહીં દર્શાવવામાં આવશે. + કોઇ સંગીત મળ્યું નથી. + તમારા કમ્પ્યુટરમાંથી તમારા ડિવાઇસ પર મ્યુઝિક કૉપિ કરવા USB કેબલનો ઉપયોગ કરો. + પ્લે હરોળમાં કોઇ ગીતો નહીં + તમારી પ્લે હરોળમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \"હરોળમાં ઍડ કરો\" પસંદ કરો. + ટ્રૅક %1$s પ્લે થઈ શકતો નથી + અજાણ્યું વર્ષ + 30 સેકન્ડ કરતા ઓછો + 30 - 60 સેકન્ડો + 1 - 2 મિનિટ + 2 - 3 મિનિટ + 3 - 4 મિનિટ + 4 - 5 મિનિટ + 5 - 10 મિનિટ + 10 - 30 મિનિટ + 30 - 60 મિનિટ + 60 મિનિટ કરતા વધું + 1 ગીત + 2 - 4 ગીતો + 5 - 9 ગીતો + 10+ ગીતો + 5+ આલ્બોમો + ""અન્ય"" + તમામ આર્ટિસ્ટો દર્શાવો + તમામ આલ્બમો દર્શાવો + તમામ ગીતો દર્શાવો + તમામ પ્લેલિસ્ટો દર્શાવો + મ્યુઝિક સર્ચ કરો + તમામ \"%s\" આર્ટિસ્ટો + તમામ \"%s\" આલ્બમો + તમામ \"%s\" ગીતો + તમામ \"%s\" પ્લેલિસ્ટો + %1$s %2$s diff --git a/app/src/main/res/values-hi/plurals.xml b/app/src/main/res/values-hi/plurals.xml index 588089a..1ebc2aa 100644 --- a/app/src/main/res/values-hi/plurals.xml +++ b/app/src/main/res/values-hi/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d कलाकार - %d कलाकार - - - - %d एल्बम - %d एल्बम - - - - %d गाना - %d गाने - - - - %d शैली - %d शैलियाँ - - - - %dघं - %dघं - - - - %dमि - %dमि - - - - %d गाना प्लेसूची में जोड़ लिया गया। - %d गाने प्लेसूची में जो़ड़ लिए गए। - - - - %d गाना प्लेसूची से हटाया गया। - %d गाने प्लेसूची से हटाए गए। - - - - %d गाना कतार में जोड़ा गया। - %d गाने कतार में जोड़े गए। - - - - %d गाना पसंदों में जोड़ा गया। - %d गाने पसंदों में जोड़े गए। - - - - %d गाना हटाया गया। - %dगाने हटाए गए। - + + %d कलाकार + %d कलाकार + + + %d एल्बम + %d एल्बम + + + %d गाना + %d गाने + + + %d शैली + %d शैलियाँ + + + %dघं + %dघं + + + %dमि + %dमि + + + %d गाना प्लेसूची में जोड़ लिया गया। + %d गाने प्लेसूची में जो़ड़ लिए गए। + + + %d गाना प्लेसूची से हटाया गया। + %d गाने प्लेसूची से हटाए गए। + + + %d गाना कतार में जोड़ा गया। + %d गाने कतार में जोड़े गए। + + + %d गाना पसंदों में जोड़ा गया। + %d गाने पसंदों में जोड़े गए। + + + %d गाना हटाया गया। + %dगाने हटाए गए। + diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 6f9d73e..16474d3 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - संगील - - हाल के - कलाकार - एल्बम - गाने - प्लेसूचियाँ - शैलियाँ - इस समय बज रहा है - प्ले कतार - - एल्बम - शीर्ष गाने - सब गाने - - सेटिंग - खोजें - शफ़ल करें - सबको शफ़ल करें - प्लेसूची को शफ़ल करें - एल्बम को शफ़ल करें - कलाकार को शफ़ल करें - शीर्ष ट्रैकों को शफ़ल करें - हाल के प्ले किए को शफ़ल करें - अंतिम बार जोड़े गए को शफ़ल करें - सबको बजाएँ - इसके अनुसार छाँटें - सूची को साफ़ करें - हाल को साफ़ करें - कतार को साफ़ करें - कतार को प्लेसूची में सहेजें - तुल्यकारक - - प्लेसूची में जोड़ें - कतार में जोड़ें - हाल से हटाएँ - कतार से हटाएँ - - अ-ह - ह-अ - कलाकार - एल्बम - वर्ष - अवधि - जोड़ने की तिथि - ट्रैक सूची - गानों की गिनती - एल्बमों की संख्या - फ़ाइल का नाम - - अंतिम बार जोड़ा गया - हाल में बजाया गया - मेरे शीर्ष ट्रैक - - नई प्लेसूची - सहेजें - रद्द करें - उपरिलेखित करें - साफ़ करें - प्लेसूची %d - प्लेसूची नाम - %s को हटा दें? - शीर्ष ट्रैकों को साफ़ कर दें? - हाल में बजाए गए को साफ़ करें? - हाल में जोड़े गए को साफ़ करें? - इसे पलटा नहीं जा सकेगा - यह कैश की गई छवि प्रविष्टियों को हमेशा के लिए मिटा देगा - गैलरी से फ़ोटो चुनें - गूगल खोज - डिफ़ॉल्ट फ़ोटो का उपयोग करें - पुरानी फ़ोटो का उपयोग करें - - बजाएँ - अगला बजाएँ - एल्बम को चलाएँ - इस कलाकार की और रचनाएँ - नाम बदलें - हटाएँ - ऐल्बम कला ले आएँ - कलाकार की छवि ले आएँ - हाल से हटाएँ - रिंगटोन के रूप में उपयोग करें - प्लेसूची से हटाएँ - छवि बदलें - - बजाएँ - पॉज़ करें - अगला - पिछला - शफ़ल करें - सबको शफ़ल करें - दुहराएँ - सबको दुहराएँ - एक को दुहराएँ - कतार खोलें - संगीत को ब्राउज़ करें - - \'%s\' को रिंगटोन के रूप में सेट करें - प्लेसूची को नया नाम दिया गया - - इंटरफ़ेस - भंडारण - डेटा - कैश को हटाएँ - कैश की गई सभी छवियों को निकालें - केवल वाइ-फ़ाई से डाउनलोड करें - वाहक शुल्कों को कम रखने के लिए, मोबाइल नेटवर्कों पर डाउनलोड नहीं करें - अनुपस्थित एल्बम कला को डाउनलोड करें - कलाकार की अनुपस्थित छवियों को डाउनलोड करें - सामान्य - संगीत दृश्यांकन दिखाएँ - गाने के लिरिक दिखाएँ - एसआरटी फ़ाइल वाले गानों के लिए - बजाने के लिए हिलाएँ - अगला गाना बजाने के लिए अपने उपकरण को हिलाएँ - लॉकस्क्रीन एल्बम कला - लॉकस्क्रीन पृष्ठभूमि को एल्बम कला से बदलें - - संगीत: 4 \u00d7 1 - संगीत: 4 \u00d7 2 - संगीत: 4 \u00d7 2 (एक को छोड़कर एक) - संगीत: हाल में सुना गया - - तुल्यकारक को खोला नहीं जा सका। - अपने कंप्यूटर से अपने उपकरण में संगीत को कॉपी करने के लिए यूएसबी केबल का उपयोग करें। - कोई खोज परिणाम नहीं मिला - कृपया जाँचें कि आपने सही वर्तनी उपयोग की है या कोई अन्य कुंजीशब्द आज़माएँ। - आप जिन गानों को पसंदीदा के रूप में चिह्नित करेंगे, वे यहाँ दिखाई देंगे। - हाल वाले के गाने नहीं हैं - आपने हाल में जो गाने सुने हैं, वे यहाँ दिखाई देंगे। - प्लेसूची में कोई गाने नहीं हैं - इस प्लेसूची में गाने जोड़ेने के लिए, गाने, एल्बम या कलाकार के विकल्प मेनू को टैप करें और \"प्लेसूची में जोड़ें\" को चुनें। - कोई शीर्ष ट्रैक नहीं हैं - आप जिन गानों को सबसे अधिक सुनते हैं, वे इस सूची में जोड़ लिए जाएँगे। - हाल में कोई गाने नहीं जोड़े गए हैं - पिछले महीने के दौरान आपने जो गाने जोड़े होंगे, वे यहाँ दर्शाए जाएँगे। - कोई संगीत नहीं मिला - अपने संगीत से अपने उपकरण में संगीत को कॉपी करने के लिए, यूएसबी केबल का उपयोग करें। - मेरी कतार में कोई गाने नहीं हैं - अपनी प्ले कतार में गाने जोड़ने के लिए, किसी गाने, एल्बम, या कलाकार के विकल्प मेनू को टैप करें और \"कतार में जोड़ें\" को चुनें। - ट्रैक %1$s को बजा नहीं सके - - अज्ञात वर्ष - 30 सेकंड से कम - 30 -60 सेकंड - 1 - 2 मिनट - 2 - 3 मिनट - 3 - 4 मिनट - 4 - 5 मिनट - 5 - 10 मिनट - 10 - 30 मिनट - 30 - 60 मिनट - 60 मिनट से अधिक - 1 गाना - 2 - 4 गाने - 5- 9 गाने - 10+ गाने - 5+ गाने - "अन्य" - सब कलाकारों को दिखाएँ - सब एल्बम दिखाएँ - सब गाने दिखाएँ - सब प्लेसूचियाँ दिखाएँ - संगीत खोजें - सभी \"%s\" कलाकार - सभी \"%s\" एल्बम - सभी \"%s\" गाने - सभी \"%s\" प्लेसूचियाँ - %1$s %2$s + संगील + हाल के + कलाकार + एल्बम + गाने + प्लेसूचियाँ + शैलियाँ + इस समय बज रहा है + प्ले कतार + एल्बम + शीर्ष गाने + सब गाने + सेटिंग + खोजें + शफ़ल करें + सबको शफ़ल करें + प्लेसूची को शफ़ल करें + एल्बम को शफ़ल करें + कलाकार को शफ़ल करें + शीर्ष ट्रैकों को शफ़ल करें + हाल के प्ले किए को शफ़ल करें + अंतिम बार जोड़े गए को शफ़ल करें + सबको बजाएँ + इसके अनुसार छाँटें + सूची को साफ़ करें + हाल को साफ़ करें + कतार को साफ़ करें + कतार को प्लेसूची में सहेजें + तुल्यकारक + प्लेसूची में जोड़ें + कतार में जोड़ें + हाल से हटाएँ + कतार से हटाएँ + अ-ह + ह-अ + कलाकार + एल्बम + वर्ष + अवधि + जोड़ने की तिथि + ट्रैक सूची + गानों की गिनती + एल्बमों की संख्या + फ़ाइल का नाम + अंतिम बार जोड़ा गया + हाल में बजाया गया + मेरे शीर्ष ट्रैक + नई प्लेसूची + सहेजें + रद्द करें + उपरिलेखित करें + साफ़ करें + प्लेसूची %d + प्लेसूची नाम + %s को हटा दें? + शीर्ष ट्रैकों को साफ़ कर दें? + हाल में बजाए गए को साफ़ करें? + हाल में जोड़े गए को साफ़ करें? + इसे पलटा नहीं जा सकेगा + यह कैश की गई छवि प्रविष्टियों को हमेशा के लिए मिटा देगा + गैलरी से फ़ोटो चुनें + गूगल खोज + डिफ़ॉल्ट फ़ोटो का उपयोग करें + पुरानी फ़ोटो का उपयोग करें + बजाएँ + अगला बजाएँ + एल्बम को चलाएँ + इस कलाकार की और रचनाएँ + नाम बदलें + हटाएँ + ऐल्बम कला ले आएँ + कलाकार की छवि ले आएँ + हाल से हटाएँ + रिंगटोन के रूप में उपयोग करें + प्लेसूची से हटाएँ + छवि बदलें + बजाएँ + पॉज़ करें + अगला + पिछला + शफ़ल करें + सबको शफ़ल करें + दुहराएँ + सबको दुहराएँ + एक को दुहराएँ + कतार खोलें + संगीत को ब्राउज़ करें + \'%s\' को रिंगटोन के रूप में सेट करें + प्लेसूची को नया नाम दिया गया + इंटरफ़ेस + भंडारण + डेटा + कैश को हटाएँ + कैश की गई सभी छवियों को निकालें + केवल वाइ-फ़ाई से डाउनलोड करें + वाहक शुल्कों को कम रखने के लिए, मोबाइल नेटवर्कों पर डाउनलोड नहीं करें + अनुपस्थित एल्बम कला को डाउनलोड करें + कलाकार की अनुपस्थित छवियों को डाउनलोड करें + सामान्य + संगीत दृश्यांकन दिखाएँ + गाने के लिरिक दिखाएँ + एसआरटी फ़ाइल वाले गानों के लिए + बजाने के लिए हिलाएँ + अगला गाना बजाने के लिए अपने उपकरण को हिलाएँ + लॉकस्क्रीन एल्बम कला + लॉकस्क्रीन पृष्ठभूमि को एल्बम कला से बदलें + संगीत: 4 \u00d7 1 + संगीत: 4 \u00d7 2 + संगीत: 4 \u00d7 2 (एक को छोड़कर एक) + संगीत: हाल में सुना गया + तुल्यकारक को खोला नहीं जा सका। + अपने कंप्यूटर से अपने उपकरण में संगीत को कॉपी करने के लिए यूएसबी केबल का उपयोग करें। + कोई खोज परिणाम नहीं मिला + कृपया जाँचें कि आपने सही वर्तनी उपयोग की है या कोई अन्य कुंजीशब्द आज़माएँ। + आप जिन गानों को पसंदीदा के रूप में चिह्नित करेंगे, वे यहाँ दिखाई देंगे। + हाल वाले के गाने नहीं हैं + आपने हाल में जो गाने सुने हैं, वे यहाँ दिखाई देंगे। + प्लेसूची में कोई गाने नहीं हैं + इस प्लेसूची में गाने जोड़ेने के लिए, गाने, एल्बम या कलाकार के विकल्प मेनू को टैप करें और \"प्लेसूची में जोड़ें\" को चुनें। + कोई शीर्ष ट्रैक नहीं हैं + आप जिन गानों को सबसे अधिक सुनते हैं, वे इस सूची में जोड़ लिए जाएँगे। + हाल में कोई गाने नहीं जोड़े गए हैं + पिछले महीने के दौरान आपने जो गाने जोड़े होंगे, वे यहाँ दर्शाए जाएँगे। + कोई संगीत नहीं मिला + अपने संगीत से अपने उपकरण में संगीत को कॉपी करने के लिए, यूएसबी केबल का उपयोग करें। + मेरी कतार में कोई गाने नहीं हैं + अपनी प्ले कतार में गाने जोड़ने के लिए, किसी गाने, एल्बम, या कलाकार के विकल्प मेनू को टैप करें और \"कतार में जोड़ें\" को चुनें। + ट्रैक %1$s को बजा नहीं सके + अज्ञात वर्ष + 30 सेकंड से कम + 30 -60 सेकंड + 1 - 2 मिनट + 2 - 3 मिनट + 3 - 4 मिनट + 4 - 5 मिनट + 5 - 10 मिनट + 10 - 30 मिनट + 30 - 60 मिनट + 60 मिनट से अधिक + 1 गाना + 2 - 4 गाने + 5- 9 गाने + 10+ गाने + 5+ गाने + "अन्य" + सब कलाकारों को दिखाएँ + सब एल्बम दिखाएँ + सब गाने दिखाएँ + सब प्लेसूचियाँ दिखाएँ + संगीत खोजें + सभी \"%s\" कलाकार + सभी \"%s\" एल्बम + सभी \"%s\" गाने + सभी \"%s\" प्लेसूचियाँ + %1$s %2$s diff --git a/app/src/main/res/values-hr/plurals.xml b/app/src/main/res/values-hr/plurals.xml index 70b74b0..1e2db16 100644 --- a/app/src/main/res/values-hr/plurals.xml +++ b/app/src/main/res/values-hr/plurals.xml @@ -17,70 +17,59 @@ limitations under the License. --> - - - %d autor - %d autora - %d autora - - - - %d album - %d albuma - %d albuma - - - - %d pjesma - %d pjesme - %d pjesama - - - - %d žanr - %d žanra - %d žanra - - - - %dh - %dh - %dh - - - - %dm - %dm - %dm - - - - %d pjesma dodana na popis za reproduciranje. - %d pjesme dodane na popis za reproduciranje. - %d pjesama dodano na popis za reproduciranje. - - - - %d pjesma uklonjena s popisa za reproduciranje. - %d pjesme uklonjene s popisa za reproduciranje. - %d pjesama uklonjeno s popisa za reproduciranje. - - - - %d pjesma dodana u red. - %d pjesme dodane u red. - %d pjesama dodano u red. - - - - %d pjesma dodana u favorite. - %d pjesme dodane u favorite. - %d pjesama dodano u favorite. - - - - %d pjesma je izbrisana. - %d pjesme su izbrisane. - %d pjesama je izbrisano. - + + %d autor + %d autora + %d autora + + + %d album + %d albuma + %d albuma + + + %d pjesma + %d pjesme + %d pjesama + + + %d žanr + %d žanra + %d žanra + + + %dh + %dh + %dh + + + %dm + %dm + %dm + + + %d pjesma dodana na popis za reproduciranje. + %d pjesme dodane na popis za reproduciranje. + %d pjesama dodano na popis za reproduciranje. + + + %d pjesma uklonjena s popisa za reproduciranje. + %d pjesme uklonjene s popisa za reproduciranje. + %d pjesama uklonjeno s popisa za reproduciranje. + + + %d pjesma dodana u red. + %d pjesme dodane u red. + %d pjesama dodano u red. + + + %d pjesma dodana u favorite. + %d pjesme dodane u favorite. + %d pjesama dodano u favorite. + + + %d pjesma je izbrisana. + %d pjesme su izbrisane. + %d pjesama je izbrisano. + diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 76036fe..36ea31e 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Glazba - - Nedavno - Umjetnici - Albumi - Pjesme - Playliste - Žanrovi - Sada svira - Za reprodukciju - - Albumi - Top pjesme - Sve pjesme - - Postavke - Pretraga - Miješaj - Miješaj sve - Izmiješaj popis - Miješanje albuma - Miješanje umjetnika - Miješanje najizvođenijih pjesama - Miješaj nedavno svirane - Miješaj zadnje dodane - Sviraj sve - Sortiraj po - Očisti popis - Očisti nedavno - Očisti red - Spremi red čekanja u playlistu - Ekvalizer - - Dodaj u playlistu - Dodaj u red - Ukloni iz nedavnih - Ukloni iz reda - - A-Z - Z-A - Umjetnik - Album - Godina - Dužina - Dodano datuma - Popis pjesama - Broj pjesama - Broj albuma - Naziv datoteke - - Zadnje dodano - Nedavno svirano - Moje top pjesme - - Nova playlista - Spremi - Odustani - Prepiši - Očisti - Playlista %d - Ime playliste - Izbriši %s? - Očisti top pjesme? - Očisti nedavno svirane? - Očisti zadnje dodane? - Ovo se ne može poništiti - Ovo će trajno izbrisati podatke spremljenih slika - Odaberi sliku iz galerije - Google pretraga - Koristi zadanu sliku - Koristi staru sliku - - Sviraj - Sviraj sljedeću - Reproduciraj album - Više od autora - Preimenuj - Obriši - Dobavi fotografiju albuma - Dobavi fotografiju izvođača - Ukloni iz nedavnih - Koristi kao melodiju zvona - Obriši iz playliste - Promijeni sliku - - Sviraj - Pauziraj - Sljedeći - Prethodni - Miješaj - Miješaj sve - Ponovi - Ponovi sve - Ponovi jedan - Otvori red - Pretraži glazbu - - \'%s\' postavljeno kao zvuk zvona - Playlista preimenovana - - Sučelje - Pohrana - Podaci - Obriši predmemoriju - Obriši sve cachirane slike - Preuzimaj samo preko Wi-Fi-ja - Kako bi smanjili troškove prijenosa, ne preuzimajte preko mobilnih mreža - Preuzmi sliku albuma koja nedostaje - Preuzmi slike umjetnika koje nedostaju - Općenito - Pokaži vizualizaciju glazbe - Pokaži tekstove pjesama - Za pjesme koje imaju srt datoteku - Protresi za reproduciranje - Protresi uređaj na sljedeću pjesmu - Slika albuma na zaključanom zaslonu - Pozadinu zaključanog zaslona zamijeniti omotom albuma - - Glazba: 4 \u00d7 1 - Glazba: 4 \u00d7 2 - Glazba: 4 \u00d7 2 (rezervna) - Glazba: nedavno slušano - - Ekvalizer se ne može otvoriti. - Za kopiranje glazbe s računala na uređaj, koristite USB kabel. - Nema rezultata pretraživanja - Provjerite imate li ispravan pravopis ili pokušajte drugu ključnu riječ. - Pjesme koje označite kao favorite biti će prikazane ovdje. - Nema nedavnih pjesama - Pjesme koje ste slušali će se pojaviti ovdje. - Nema pjesama u popisu za reproduciranje - Za dodavanje pjesme u playlistu dodirnite opcije pjesme,albuma ili autora i odaberite \"Dodaj u playlistu\" - Nema najsviranijih pjesama - Pjesme koje najviše slušate će biti dodane na popis - Nema nedavno dodanih pjesama - Pjesme koje ste dodali u posljednjih mjesec dana biti će prikazane ovdje. - Nema pronađene glazbe - Za kopiranje glazbe s računala na uređaj, koristite USB kabel. - Nema pjesama za reprodukciju - Za dodavanje pjesmi u red za reprodukciju, dodirnite opcije pjesme,albuma ili autora i odaberite \"Dodaj u red\" - Nije moguće reproducirati pjesmu %1$s - - Nepoznata godina - Manje od 30 sekundi - 30 - 60 sekundi - 1 - 2 minute - 2 - 3 minute - 3 - 4 minute - 4 - 5 minuta - 5 - 10 minuta - 10 - 30 minuta - 30 - 60 minuta - Više od 60 minuta - 1 pjesma - 2 - 4 pjesme - 5 - 9 pjesama - 10 + pjesama - 5 + albuma - "Ostalo" - Pokaži sve autore - Pokaži sve albume - Pokaži sve pjesme - Pokaži sve popise - Pretraživanje glazbe - Sve \"%s\" umjetnika - Svi \"%s\" albuma - Sve \"%s\" pjesme - Svi \"%s\" popisi za reproduciranje - %1$s %2$s + Glazba + Nedavno + Umjetnici + Albumi + Pjesme + Playliste + Žanrovi + Sada svira + Za reprodukciju + Albumi + Top pjesme + Sve pjesme + Postavke + Pretraga + Miješaj + Miješaj sve + Izmiješaj popis + Miješanje albuma + Miješanje umjetnika + Miješanje najizvođenijih pjesama + Miješaj nedavno svirane + Miješaj zadnje dodane + Sviraj sve + Sortiraj po + Očisti popis + Očisti nedavno + Očisti red + Spremi red čekanja u playlistu + Ekvalizer + Dodaj u playlistu + Dodaj u red + Ukloni iz nedavnih + Ukloni iz reda + A-Z + Z-A + Umjetnik + Album + Godina + Dužina + Dodano datuma + Popis pjesama + Broj pjesama + Broj albuma + Naziv datoteke + Zadnje dodano + Nedavno svirano + Moje top pjesme + Nova playlista + Spremi + Odustani + Prepiši + Očisti + Playlista %d + Ime playliste + Izbriši %s? + Očisti top pjesme? + Očisti nedavno svirane? + Očisti zadnje dodane? + Ovo se ne može poništiti + Ovo će trajno izbrisati podatke spremljenih slika + Odaberi sliku iz galerije + Google pretraga + Koristi zadanu sliku + Koristi staru sliku + Sviraj + Sviraj sljedeću + Reproduciraj album + Više od autora + Preimenuj + Obriši + Dobavi fotografiju albuma + Dobavi fotografiju izvođača + Ukloni iz nedavnih + Koristi kao melodiju zvona + Obriši iz playliste + Promijeni sliku + Sviraj + Pauziraj + Sljedeći + Prethodni + Miješaj + Miješaj sve + Ponovi + Ponovi sve + Ponovi jedan + Otvori red + Pretraži glazbu + \'%s\' postavljeno kao zvuk zvona + Playlista preimenovana + Sučelje + Pohrana + Podaci + Obriši predmemoriju + Obriši sve cachirane slike + Preuzimaj samo preko Wi-Fi-ja + Kako bi smanjili troškove prijenosa, ne preuzimajte preko mobilnih mreža + Preuzmi sliku albuma koja nedostaje + Preuzmi slike umjetnika koje nedostaju + Općenito + Pokaži vizualizaciju glazbe + Pokaži tekstove pjesama + Za pjesme koje imaju srt datoteku + Protresi za reproduciranje + Protresi uređaj na sljedeću pjesmu + Slika albuma na zaključanom zaslonu + Pozadinu zaključanog zaslona zamijeniti omotom albuma + Glazba: 4 \u00d7 1 + Glazba: 4 \u00d7 2 + Glazba: 4 \u00d7 2 (rezervna) + Glazba: nedavno slušano + Ekvalizer se ne može otvoriti. + Za kopiranje glazbe s računala na uređaj, koristite USB kabel. + Nema rezultata pretraživanja + Provjerite imate li ispravan pravopis ili pokušajte drugu ključnu riječ. + Pjesme koje označite kao favorite biti će prikazane ovdje. + Nema nedavnih pjesama + Pjesme koje ste slušali će se pojaviti ovdje. + Nema pjesama u popisu za reproduciranje + Za dodavanje pjesme u playlistu dodirnite opcije pjesme,albuma ili autora i odaberite \"Dodaj u playlistu\" + Nema najsviranijih pjesama + Pjesme koje najviše slušate će biti dodane na popis + Nema nedavno dodanih pjesama + Pjesme koje ste dodali u posljednjih mjesec dana biti će prikazane ovdje. + Nema pronađene glazbe + Za kopiranje glazbe s računala na uređaj, koristite USB kabel. + Nema pjesama za reprodukciju + Za dodavanje pjesmi u red za reprodukciju, dodirnite opcije pjesme,albuma ili autora i odaberite \"Dodaj u red\" + Nije moguće reproducirati pjesmu %1$s + Nepoznata godina + Manje od 30 sekundi + 30 - 60 sekundi + 1 - 2 minute + 2 - 3 minute + 3 - 4 minute + 4 - 5 minuta + 5 - 10 minuta + 10 - 30 minuta + 30 - 60 minuta + Više od 60 minuta + 1 pjesma + 2 - 4 pjesme + 5 - 9 pjesama + 10 + pjesama + 5 + albuma + "Ostalo" + Pokaži sve autore + Pokaži sve albume + Pokaži sve pjesme + Pokaži sve popise + Pretraživanje glazbe + Sve \"%s\" umjetnika + Svi \"%s\" albuma + Sve \"%s\" pjesme + Svi \"%s\" popisi za reproduciranje + %1$s %2$s diff --git a/app/src/main/res/values-hu/plurals.xml b/app/src/main/res/values-hu/plurals.xml index 83665cc..d4ad2cd 100644 --- a/app/src/main/res/values-hu/plurals.xml +++ b/app/src/main/res/values-hu/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d előadó - %d előadó - - - - %d album - %d album - - - - %d dal - %d dal - - - - %d műfaj - %d műfaj - - - - %dó - %dó - - - - %dp - %dp - - - - %d dal hozzáadva a lejátszási listához. - %d dal hozzáadva a lejátszási listához. - - - - %d dal eltávolítva a lejátszási listából. - %d dal eltávolítva a lejátszási listából. - - - - %d dal hozzáadva a lejátszási sorhoz. - %d dal hozzáadva a lejátszási sorhoz. - - - - %d dal hozzáadva a kedvencekhez. - %d dal hozzáadva a kedvencekhez. - - - - %d dal törölve. - %d dal törölve. - + + %d előadó + %d előadó + + + %d album + %d album + + + %d dal + %d dal + + + %d műfaj + %d műfaj + + + %dó + %dó + + + %dp + %dp + + + %d dal hozzáadva a lejátszási listához. + %d dal hozzáadva a lejátszási listához. + + + %d dal eltávolítva a lejátszási listából. + %d dal eltávolítva a lejátszási listából. + + + %d dal hozzáadva a lejátszási sorhoz. + %d dal hozzáadva a lejátszási sorhoz. + + + %d dal hozzáadva a kedvencekhez. + %d dal hozzáadva a kedvencekhez. + + + %d dal törölve. + %d dal törölve. + diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index b3f60ee..5bc2222 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Zene - - Előzmények - Előadók - Albumok - Dalok - Lejátszási listák - Műfajok - Most hallható - Lejátszási sor lejátszása - - Albumok - Legtöbbet hallgatottak - Összes zeneszám - - Beállítások - Keresés - Véletlenszerű - Véletlen sorrend - Véletlenszerű lejátszási lista - Véletlen album - Véletlen előadó - Véletlen kedvenc számok - Véletlen nemrég játszott - Véletlen utoljára hozzáadott - Összes lejátszása - Rendezés - Lista törlése - Előzmények törlése - Lejátszási sor törlése - Várólista lista mentése - Hangszínszabályzó - - Hozzáadás a lejátszási lista - Hozzáadás a lejátszási sorhoz - Törlés az előzményekből - Törlés a lejátszási sorból - - A-Z - Z-A - Előadó - Album - Év - Hossz - Hozzáadás dátuma - Dalok listája - Dalok száma - Albumok száma - Fájlnév - - Legutóbb hozzáadott - Nemrég Játszott - Kedvenceim - - Új lejátszási lista - Mentés - Elvet - Felülír - Kiürít - Lejátszási lista: %d - Lejátszási lista neve - Törli a következőt: %s? - Törli a kedvenc számokat? - Törli a nemrég játszottakat? - Törli az utoljára hozzáadottakat? - Ezt nem lehet visszavonni - Ezzel végleg törli a gyorsítótárazott képeket - Kép kiválasztása a Galériából - Google keresés - Alapértelmezett kép használata - Régi kép használata - - Lejátszás - Következő lejátszása - Album lejátszása - Több az előadótól - Átnevezés - Törlés - Albumborító betöltése - Előadó képének betöltése - Törlés az előzményekből - Beállítás csengőhangként - Eltávolítás a lejátszási listából - Kép módosítása - - Lejátszás - Szünet - Következő - Előző - Keverés - Összes keverése - Ismétlés - Összes ismétlése - Egy dal ismétlése - Lejátszási sor megnyitása - Zene böngészése - - \"%s\" beállítva csengőhangként - Lejátszási lista átnevezve - - Felhasználói felület - Tárhely - Adat - Gyorsítótár ürítése - Minden gyorsítótárazott kép eltávolítása - Letöltés csak WiFi-n - A szolgáltató által felszámolt díj csökkentése érdekében ne használja a mobilinternetet letöltésre - Hiányzó albumborítók letöltése - Hiányzó előadóképek letöltése - Általános - Zenei vizualizáció megjelenítése - Dalszöveg megjelenítése - Dalok, melyek rendelkeznek srt fájllal - Lejátszás indítása rázásra - Rázza meg a készülékét a következő szám lejátszásához - Zárképernyő lemezborítók - Zárképernyő hátterének cseréje lemezborítóval - - Zene: 4 \u00d7 1 - Zene: 4 \u00d7 2 - Zene: 4 \u00d7 2 (alternatív) - Zene: nemrégiben hallgatott - - A hangszínszabályzót nem lehet megnyitni. - Számítógépről történő zene másoláshoz használjon USB kábelt. - Nincs találat - Ellenőrizze, hogy helyesen írta-e be, vagy próbálkozzon más kulcsszóval. - Itt a kedvencként megjelölt dalok fognak megjelenni. - Nincsenek előzmények - Itt a nemrégiben hallgatott zenéi fognak megjelenni. - Nincs dal a lejátszási listán - Zeneszámok hozzáadása a lejátszási listához, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \"Hozzáadás a lejátszási listához\" lehetőséget. - Nincsenek kedvenc dalok - Ezen a listán a legtöbbet hallgatott dalok fognak szerepelni. - Nincsenek nemrégiben hozzáadott dalok - Itt az utolsó hónapban hozzáadott zenéi fognak megjelenni. - Nem található zene - Számítógépről történő zene másoláshoz használjon USB kábelt. - Nincsenek számok a lejátszási sorban - Zeneszámok hozzáadása a lejátszási sorhoz, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \"Hozzáadás a lejátszólistához\" opciót. - Nem lehet lejátszani a következőt: %1$s - - Ismeretlen év - Kevesebb, mint 30 másodperc - 30 - 60 másodperc - 1 - 2 perc - 2 - 3 perc - 3 - 4 perc - 4 - 5 perc - 5 - 10 perc - 10 - 30 perc - 30 - 60 perc - Több mint 60 perc - 1 dal - 2 - 4 dal - 5 - 9 dal - 10+ dal - 5+ album - "Egyéb" - Összes előadó megjelenítése - Összes album megjelenítése - Összes dal megjelenítése - Összes lejátszási lista megjelenítése - Zene keresése - Összes \"%s\" előadó - Összes \"%s\" album - Összes \"%s\" dal - Összes \"%s\" lejátszási lista - %1$s %2$s + Zene + Előzmények + Előadók + Albumok + Dalok + Lejátszási listák + Műfajok + Most hallható + Lejátszási sor lejátszása + Albumok + Legtöbbet hallgatottak + Összes zeneszám + Beállítások + Keresés + Véletlenszerű + Véletlen sorrend + Véletlenszerű lejátszási lista + Véletlen album + Véletlen előadó + Véletlen kedvenc számok + Véletlen nemrég játszott + Véletlen utoljára hozzáadott + Összes lejátszása + Rendezés + Lista törlése + Előzmények törlése + Lejátszási sor törlése + Várólista lista mentése + Hangszínszabályzó + Hozzáadás a lejátszási lista + Hozzáadás a lejátszási sorhoz + Törlés az előzményekből + Törlés a lejátszási sorból + A-Z + Z-A + Előadó + Album + Év + Hossz + Hozzáadás dátuma + Dalok listája + Dalok száma + Albumok száma + Fájlnév + Legutóbb hozzáadott + Nemrég Játszott + Kedvenceim + Új lejátszási lista + Mentés + Elvet + Felülír + Kiürít + Lejátszási lista: %d + Lejátszási lista neve + Törli a következőt: %s? + Törli a kedvenc számokat? + Törli a nemrég játszottakat? + Törli az utoljára hozzáadottakat? + Ezt nem lehet visszavonni + Ezzel végleg törli a gyorsítótárazott képeket + Kép kiválasztása a Galériából + Google keresés + Alapértelmezett kép használata + Régi kép használata + Lejátszás + Következő lejátszása + Album lejátszása + Több az előadótól + Átnevezés + Törlés + Albumborító betöltése + Előadó képének betöltése + Törlés az előzményekből + Beállítás csengőhangként + Eltávolítás a lejátszási listából + Kép módosítása + Lejátszás + Szünet + Következő + Előző + Keverés + Összes keverése + Ismétlés + Összes ismétlése + Egy dal ismétlése + Lejátszási sor megnyitása + Zene böngészése + \"%s\" beállítva csengőhangként + Lejátszási lista átnevezve + Felhasználói felület + Tárhely + Adat + Gyorsítótár ürítése + Minden gyorsítótárazott kép eltávolítása + Letöltés csak WiFi-n + A szolgáltató által felszámolt díj csökkentése érdekében ne használja a mobilinternetet letöltésre + Hiányzó albumborítók letöltése + Hiányzó előadóképek letöltése + Általános + Zenei vizualizáció megjelenítése + Dalszöveg megjelenítése + Dalok, melyek rendelkeznek srt fájllal + Lejátszás indítása rázásra + Rázza meg a készülékét a következő szám lejátszásához + Zárképernyő lemezborítók + Zárképernyő hátterének cseréje lemezborítóval + Zene: 4 \u00d7 1 + Zene: 4 \u00d7 2 + Zene: 4 \u00d7 2 (alternatív) + Zene: nemrégiben hallgatott + A hangszínszabályzót nem lehet megnyitni. + Számítógépről történő zene másoláshoz használjon USB kábelt. + Nincs találat + Ellenőrizze, hogy helyesen írta-e be, vagy próbálkozzon más kulcsszóval. + Itt a kedvencként megjelölt dalok fognak megjelenni. + Nincsenek előzmények + Itt a nemrégiben hallgatott zenéi fognak megjelenni. + Nincs dal a lejátszási listán + Zeneszámok hozzáadása a lejátszási listához, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \"Hozzáadás a lejátszási listához\" lehetőséget. + Nincsenek kedvenc dalok + Ezen a listán a legtöbbet hallgatott dalok fognak szerepelni. + Nincsenek nemrégiben hozzáadott dalok + Itt az utolsó hónapban hozzáadott zenéi fognak megjelenni. + Nem található zene + Számítógépről történő zene másoláshoz használjon USB kábelt. + Nincsenek számok a lejátszási sorban + Zeneszámok hozzáadása a lejátszási sorhoz, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \"Hozzáadás a lejátszólistához\" opciót. + Nem lehet lejátszani a következőt: %1$s + Ismeretlen év + Kevesebb, mint 30 másodperc + 30 - 60 másodperc + 1 - 2 perc + 2 - 3 perc + 3 - 4 perc + 4 - 5 perc + 5 - 10 perc + 10 - 30 perc + 30 - 60 perc + Több mint 60 perc + 1 dal + 2 - 4 dal + 5 - 9 dal + 10+ dal + 5+ album + "Egyéb" + Összes előadó megjelenítése + Összes album megjelenítése + Összes dal megjelenítése + Összes lejátszási lista megjelenítése + Zene keresése + Összes \"%s\" előadó + Összes \"%s\" album + Összes \"%s\" dal + Összes \"%s\" lejátszási lista + %1$s %2$s diff --git a/app/src/main/res/values-in/plurals.xml b/app/src/main/res/values-in/plurals.xml index 94e3c53..02aea10 100644 --- a/app/src/main/res/values-in/plurals.xml +++ b/app/src/main/res/values-in/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d artis - - - - %d album - - - - %d lagu - - - - %d genre - - - - %dj - - - - %dm - - - - %d lagu telah ditambahkan ke daftar putar. - - - - %d lagu dihapus dari daftar putar. - - - - %d lagu telah ditambahkan ke antrean. - - - - %d lagu telah ditambahkan ke favorit. - - - - %d lagu telah dihapus. - + + %d artis + + + %d album + + + %d lagu + + + %d genre + + + %dj + + + %dm + + + %d lagu telah ditambahkan ke daftar putar. + + + %d lagu dihapus dari daftar putar. + + + %d lagu telah ditambahkan ke antrean. + + + %d lagu telah ditambahkan ke favorit. + + + %d lagu telah dihapus. + diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 57444a9..f29a7cd 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musik - - Terbaru - Artis - Album - Lagu - Daftar Putar - Aliran - Sedang diputar - Putar daftar antrean - - Album - Lagu Top - Semua Lagu - - Pengaturan - Cari - Acak - Acak semua - Putar acak daftar putar - Putar acak album - Putar acak artis - Putar acak lagu teratas - Putar acak yang terakhir diputar - Putar acak terakhir ditambahkan - Putar semua - Urut berdasarkan - Hapus daftar - Hapus yang terbaru - Bersihkan antrean - Simpan antrean ke daftar putar - Equalizer - - Tambahkan ke daftar putar - Tambahkan ke antrean - Hapus dari yang terakhir - Hapus dari antrean - - A-Z - Z-A - Artis - Album - Tahun - Durasi - Tanggal ditambahkan - Daftar lagu - Jumlah lagu - Jumlah album - Nama berkas - - Terakhir ditambahkan - Terakhir diputar - Trek teratas saya - - Daftar putar baru - Simpan - Batal - Timpa - Hapus - Daftar putar %d - Nama daftar putar - Hapus %s? - Hapus lagu teratas? - Hapus yang terakhir diputar? - Hapus yang terakhir ditambahkan? - Ini tidak dapat diurungkan - Ini akan menghapus cache gambar secara permanen - Pilih foto dari Galeri - Pencarian Google - Gunakan foto bawaan - Gunakan foto lama - - Putar - Putar selanjutnya - Putar album - Lebih banyak oleh artis - Ubah nama - Hapus - Mengambil seni album - Mengambil gambar artis - Hapus dari terakhir - Gunakan sebagai nada dering - Hapus dari daftar putar - Ganti Gambar - - Putar - Jeda - Berikutnya - Sebelumnya - Acak - Acak semua - Ulang - Ulangi semua - Ulangi sekali - Buka antrean - Telusuri musik - - \'%s\' dijadikan sebagai nada dering - Nama daftar putar diganti - - Antarmuka - Penyimpanan - Data - Hapus cache - Hapus semua cache gambar - Unduh hanya melalui Wi-Fi - Untuk mengurangi biaya operator, jangan unduh melalui jaringan seluler - Unduh seni album yang hilang - Unduh gambar artis yang hilang - Umum - Tampilkan visualisasi musik - Tampilkan lirik lagu - Untuk lagu-lagu yang memiliki berkas srt - Goyang untuk memutar - Goyang perangkat Anda untuk memutar lagu berikutnya - Seni album pada layar kunci - Ganti latar belakang layar kunci dengan seni album - - Musik: 4 \u00d7 1 - Musik: 4 \u00d7 2 - Musik: 4 \u00d7 2 (alternatif) - Musik: baru saja didengarkan - - Equalizer tidak dapat dibuka. - Untuk menyalin musik dari komputer ke perangkat Anda, gunakan kabel USB. - Hasil penelusuran tidak ditemukan - Periksa bahwa Anda memiliki ejaan yang benar atau coba kata kunci yang berbeda. - Lagu-lagu yang anda tandai sebagai favorit akan ditampilkan di sini. - Tidak ada lagu terbaru - Lagu yang Anda dengarkan baru-baru ini akan muncul di sini. - Tidak ada lagu dalam daftar putar - Untuk menambahkan lagu ke daftar putar ini, tekan menu pilihan pada lagu, album atau artis dan pilih \"Tambahkan ke daftar putar\". - Tidak ada lagu teratas - Lagu yang paling sering Anda dengarkan akan ditambahkan ke daftar ini. - Tidak ada lagu yang baru saja ditambahkan - Lagu-lagu yang telah Anda tambahkan selama satu bulan terakhir akan ditampilkan di sini. - Tidak ada musik yang ditemukan - Untuk menyalin musik dari komputer ke perangkat Anda, gunakan kabel USB. - Tidak ada lagu dalam antrean putar - Untuk menambahkan lagu ke Antrean Putar Anda, tekan menu pilihan pada lagu, album, atau artis dan pilih \"Tambahkan ke antrean\". - Tidak dapat memutar trek %1$s - - Tahun tidak diketahui - Kurang dari 30 detik - 30 - 60 detik - 1 - 2 menit - 2 - 3 menit - 3 - 4 menit - 4 - 5 menit - 5 - 10 menit - 10 - 30 menit - 30 - 60 menit - Lebih dari 60 menit - 1 lagu - 2 - 4 lagu - 5 - 9 lagu - 10+ lagu - 5+ album - "Lain-lain" - Tampilkan semua artis - Tampilkan semua album - Tampilkan semua lagu - Tampilkan semua daftar putar - Cari musik - Semua \"%s\" artis - Semua \"%s\" album - Semua \"%s\" lagu - Semua \"%s\" daftar putar - %1$s %2$s - Pemutaran musik + Musik + Terbaru + Artis + Album + Lagu + Daftar Putar + Aliran + Sedang diputar + Putar daftar antrean + Album + Lagu Top + Semua Lagu + Pengaturan + Cari + Acak + Acak semua + Putar acak daftar putar + Putar acak album + Putar acak artis + Putar acak lagu teratas + Putar acak yang terakhir diputar + Putar acak terakhir ditambahkan + Putar semua + Urut berdasarkan + Hapus daftar + Hapus yang terbaru + Bersihkan antrean + Simpan antrean ke daftar putar + Equalizer + Tambahkan ke daftar putar + Tambahkan ke antrean + Hapus dari yang terakhir + Hapus dari antrean + A-Z + Z-A + Artis + Album + Tahun + Durasi + Tanggal ditambahkan + Daftar lagu + Jumlah lagu + Jumlah album + Nama berkas + Terakhir ditambahkan + Terakhir diputar + Trek teratas saya + Daftar putar baru + Simpan + Batal + Timpa + Hapus + Daftar putar %d + Nama daftar putar + Hapus %s? + Hapus lagu teratas? + Hapus yang terakhir diputar? + Hapus yang terakhir ditambahkan? + Ini tidak dapat diurungkan + Ini akan menghapus cache gambar secara permanen + Pilih foto dari Galeri + Pencarian Google + Gunakan foto bawaan + Gunakan foto lama + Putar + Putar selanjutnya + Putar album + Lebih banyak oleh artis + Ubah nama + Hapus + Mengambil seni album + Mengambil gambar artis + Hapus dari terakhir + Gunakan sebagai nada dering + Hapus dari daftar putar + Ganti Gambar + Putar + Jeda + Berikutnya + Sebelumnya + Acak + Acak semua + Ulang + Ulangi semua + Ulangi sekali + Buka antrean + Telusuri musik + \'%s\' dijadikan sebagai nada dering + Nama daftar putar diganti + Antarmuka + Penyimpanan + Data + Hapus cache + Hapus semua cache gambar + Unduh hanya melalui Wi-Fi + Untuk mengurangi biaya operator, jangan unduh melalui jaringan seluler + Unduh seni album yang hilang + Unduh gambar artis yang hilang + Umum + Tampilkan visualisasi musik + Tampilkan lirik lagu + Untuk lagu-lagu yang memiliki berkas srt + Goyang untuk memutar + Goyang perangkat Anda untuk memutar lagu berikutnya + Seni album pada layar kunci + Ganti latar belakang layar kunci dengan seni album + Musik: 4 \u00d7 1 + Musik: 4 \u00d7 2 + Musik: 4 \u00d7 2 (alternatif) + Musik: baru saja didengarkan + Equalizer tidak dapat dibuka. + Untuk menyalin musik dari komputer ke perangkat Anda, gunakan kabel USB. + Hasil penelusuran tidak ditemukan + Periksa bahwa Anda memiliki ejaan yang benar atau coba kata kunci yang berbeda. + Lagu-lagu yang anda tandai sebagai favorit akan ditampilkan di sini. + Tidak ada lagu terbaru + Lagu yang Anda dengarkan baru-baru ini akan muncul di sini. + Tidak ada lagu dalam daftar putar + Untuk menambahkan lagu ke daftar putar ini, tekan menu pilihan pada lagu, album atau artis dan pilih \"Tambahkan ke daftar putar\". + Tidak ada lagu teratas + Lagu yang paling sering Anda dengarkan akan ditambahkan ke daftar ini. + Tidak ada lagu yang baru saja ditambahkan + Lagu-lagu yang telah Anda tambahkan selama satu bulan terakhir akan ditampilkan di sini. + Tidak ada musik yang ditemukan + Untuk menyalin musik dari komputer ke perangkat Anda, gunakan kabel USB. + Tidak ada lagu dalam antrean putar + Untuk menambahkan lagu ke Antrean Putar Anda, tekan menu pilihan pada lagu, album, atau artis dan pilih \"Tambahkan ke antrean\". + Tidak dapat memutar trek %1$s + Tahun tidak diketahui + Kurang dari 30 detik + 30 - 60 detik + 1 - 2 menit + 2 - 3 menit + 3 - 4 menit + 4 - 5 menit + 5 - 10 menit + 10 - 30 menit + 30 - 60 menit + Lebih dari 60 menit + 1 lagu + 2 - 4 lagu + 5 - 9 lagu + 10+ lagu + 5+ album + "Lain-lain" + Tampilkan semua artis + Tampilkan semua album + Tampilkan semua lagu + Tampilkan semua daftar putar + Cari musik + Semua \"%s\" artis + Semua \"%s\" album + Semua \"%s\" lagu + Semua \"%s\" daftar putar + %1$s %2$s + Pemutaran musik diff --git a/app/src/main/res/values-it/plurals.xml b/app/src/main/res/values-it/plurals.xml index 7ce1449..5ba2d46 100644 --- a/app/src/main/res/values-it/plurals.xml +++ b/app/src/main/res/values-it/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artisti - - - - %d album - %d album - - - - %d canzone - %d canzoni - - - - %d genere - %d generi - - - - %dh - %dh - - - - %dm - %dm - - - - %d canzone aggiunta alla playlist. - %d canzoni aggiunte alla playlist. - - - - %d canzone rimossa dalla playlist. - %d canzoni rimosse dalla playlist. - - - - %d canzone aggiunta alla coda. - %d canzoni aggiunte alla coda. - - - - %d canzone aggiunta ai preferiti. - %d canzoni aggiunte ai preferiti. - - - - %d canzone eliminata. - %d canzoni eliminate. - + + %d artista + %d artisti + + + %d album + %d album + + + %d canzone + %d canzoni + + + %d genere + %d generi + + + %dh + %dh + + + %dm + %dm + + + %d canzone aggiunta alla playlist. + %d canzoni aggiunte alla playlist. + + + %d canzone rimossa dalla playlist. + %d canzoni rimosse dalla playlist. + + + %d canzone aggiunta alla coda. + %d canzoni aggiunte alla coda. + + + %d canzone aggiunta ai preferiti. + %d canzoni aggiunte ai preferiti. + + + %d canzone eliminata. + %d canzoni eliminate. + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 882cd4a..01644e1 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Musica - - Recente - Artisti - Album - Canzoni - Playlist - Generi - In riproduzione - Coda di riproduzione - - Album - Canzoni preferite - Tutte le canzoni - - Impostazioni - Cerca - Riproduzione casuale - Riproduzione casuale canzoni - Riproduzione casuale playlist - Riproduzione casuale album - Riproduzione casuale artista - Riproduzione casuale delle canzoni più ascoltate - Riproduzione casuale delle canzoni più recenti - Riproduzione casuale nuove canzoni - Riproduci tutto - Ordina per - Elimina lista - Elimina recenti - Elimina coda - Salva coda su playlist - Equalizzatore - - Aggiungi alla playlist - Aggiungi alla coda - Rimuovi da recenti - Rimuovi dalla coda - - A-Z - Z-A - Artista - Album - Anno - Durata - Data aggiunta - Elenco brani - Numero canzoni - Numero album - Nome file - - Aggiunti recentemente - Ascoltati di recente - Canzoni preferite - - Nuova playlist - Salva - Annulla - Sovrascrivi - Annulla - Playlist %d - Nome playlist - Eliminare %s? - Eliminare le canzoni preferite? - Eliminare riprodotti recentemente? - Eliminare aggiunti recentemente? - Quest\'azione non può essere annullata - Le immagini memorizzate nella cache verranno eliminate permanentemente - Scegli foto dalla galleria - Ricerca Google - Usa foto predefinita - Usa foto vecchia - - Riproduci - Riproduci dopo - Riproduci album - Altri dell\'artista - Rinomina - Elimina - Recupera copertina album - Recupera immagine artista - Rimuovi da recenti - Usa come suoneria - Rimuovi da playlist - Cambia Immagine - - Riproduci - Pausa - Successivo - Precedente - Riproduzione casuale - Riproduzione casuale - Ripeti - Ripeti tutto - Ripeti singolo - Apri coda - Sfoglia musica - - \'%s\' impostata come suoneria - Playlist rinominata - - Interfaccia - Archivio - Dati - Cancella cache - Rimuovi immagini memorizzate in cache - Scarica solo con Wi-Fi - Per ridurre i costi dell\'operatore, non scaricare usando la rete mobile - Scarica copertina album mancante - Scarica immagine artista mancante - Generale - Mostra visualizzatore musicale - Visualizza testo canzone - Per le canzoni che hanno un file srt - Scuoti per riprodurre - Scuoti il dispositivo per riprodurre la prossima canzone - Cover schermata sblocco - Sostituisci lo sfondo del blocco schermo con la copertina dell\'album - - Musica: 4 \u00d7 1 - Musica: 4 \u00d7 2 - Musica: 4 \u00d7 2 (alternativo) - Musica: ascoltati recentemente - - L\'equalizzazione non può essere aperto. - Per copiare musica dal tuo computer al tuo dispositivo, utilizza un cavo USB. - La ricerca non ha prodotto risultati - Controlla l\'ortografia oppure prova una parola diversa. - Le canzoni segnate come preferite saranno mostrate qui. - Nessuna canzone recente - Le canzoni che hai ascoltato recentemente saranno mostrate qui. - Nessuna canzone nella playlist - Per aggiungere canzoni a questa playlist tocca il menu opzioni su una canzone, album o artista e seleziona \"Aggiungi alla playlist\". - Nessuna canzone preferita - Le canzoni che ascolterai di più verranno mostrate qui. - Nessuna canzone aggiunta recentemente - Le canzoni che aggiunte lo scorso mese saranno mostrate qui. - Nessuna canzone trovata - Per copiare musica dal tuo computer al dispositivo, utilizza un cavo USB. - Nessuna canzone nella coda di riproduzione - Per aggiungere canzoni alla tua coda di riproduzione, tocca il menu di opzioni su una canzone, un album o un artista e seleziona \"Aggiungi alla coda\". - Impossibile riprodurre la traccia %1$s - - Anno sconosciuto - Meno di 30 secondi - 30 - 60 secondi - 1 - 2 minuti - 2 - 3 minuti - 3 - 4 minuti - 4 - 5 minuti - 5 - 10 minuti - 10 - 30 minuti - 30 - 60 minuti - Più di 60 minuti - 1 canzone - 2 - 4 canzoni - 5 - 9 canzoni - 10+ canzoni - 5+ album - "Altro" - Visualizza tutti gli artisti - Visualizza tutti gli album - Visualizza tutte le canzoni - Visualizza tutte le playlist - Cerca musica - Tutti gli artisti \"%s\" - Tutti gli album \"%s\" - Tutte le canzoni \"%s\" - Tutte le playlist \"%s\" - %1$s %2$s - Riproduzione musicale + Musica + Recente + Artisti + Album + Canzoni + Playlist + Generi + In riproduzione + Coda di riproduzione + Album + Canzoni preferite + Tutte le canzoni + Impostazioni + Cerca + Riproduzione casuale + Riproduzione casuale canzoni + Riproduzione casuale playlist + Riproduzione casuale album + Riproduzione casuale artista + Riproduzione casuale delle canzoni più ascoltate + Riproduzione casuale delle canzoni più recenti + Riproduzione casuale nuove canzoni + Riproduci tutto + Ordina per + Elimina lista + Elimina recenti + Elimina coda + Salva coda su playlist + Equalizzatore + Aggiungi alla playlist + Aggiungi alla coda + Rimuovi da recenti + Rimuovi dalla coda + A-Z + Z-A + Artista + Album + Anno + Durata + Data aggiunta + Elenco brani + Numero canzoni + Numero album + Nome file + Aggiunti recentemente + Ascoltati di recente + Canzoni preferite + Nuova playlist + Salva + Annulla + Sovrascrivi + Annulla + Playlist %d + Nome playlist + Eliminare %s? + Eliminare le canzoni preferite? + Eliminare riprodotti recentemente? + Eliminare aggiunti recentemente? + Quest\'azione non può essere annullata + Le immagini memorizzate nella cache verranno eliminate permanentemente + Scegli foto dalla galleria + Ricerca Google + Usa foto predefinita + Usa foto vecchia + Riproduci + Riproduci dopo + Riproduci album + Altri dell\'artista + Rinomina + Elimina + Recupera copertina album + Recupera immagine artista + Rimuovi da recenti + Usa come suoneria + Rimuovi da playlist + Cambia Immagine + Riproduci + Pausa + Successivo + Precedente + Riproduzione casuale + Riproduzione casuale + Ripeti + Ripeti tutto + Ripeti singolo + Apri coda + Sfoglia musica + \'%s\' impostata come suoneria + Playlist rinominata + Interfaccia + Archivio + Dati + Cancella cache + Rimuovi immagini memorizzate in cache + Scarica solo con Wi-Fi + Per ridurre i costi dell\'operatore, non scaricare usando la rete mobile + Scarica copertina album mancante + Scarica immagine artista mancante + Generale + Mostra visualizzatore musicale + Visualizza testo canzone + Per le canzoni che hanno un file srt + Scuoti per riprodurre + Scuoti il dispositivo per riprodurre la prossima canzone + Cover schermata sblocco + Sostituisci lo sfondo del blocco schermo con la copertina dell\'album + Musica: 4 \u00d7 1 + Musica: 4 \u00d7 2 + Musica: 4 \u00d7 2 (alternativo) + Musica: ascoltati recentemente + L\'equalizzazione non può essere aperto. + Per copiare musica dal tuo computer al tuo dispositivo, utilizza un cavo USB. + La ricerca non ha prodotto risultati + Controlla l\'ortografia oppure prova una parola diversa. + Le canzoni segnate come preferite saranno mostrate qui. + Nessuna canzone recente + Le canzoni che hai ascoltato recentemente saranno mostrate qui. + Nessuna canzone nella playlist + Per aggiungere canzoni a questa playlist tocca il menu opzioni su una canzone, album o artista e seleziona \"Aggiungi alla playlist\". + Nessuna canzone preferita + Le canzoni che ascolterai di più verranno mostrate qui. + Nessuna canzone aggiunta recentemente + Le canzoni che aggiunte lo scorso mese saranno mostrate qui. + Nessuna canzone trovata + Per copiare musica dal tuo computer al dispositivo, utilizza un cavo USB. + Nessuna canzone nella coda di riproduzione + Per aggiungere canzoni alla tua coda di riproduzione, tocca il menu di opzioni su una canzone, un album o un artista e seleziona \"Aggiungi alla coda\". + Impossibile riprodurre la traccia %1$s + Anno sconosciuto + Meno di 30 secondi + 30 - 60 secondi + 1 - 2 minuti + 2 - 3 minuti + 3 - 4 minuti + 4 - 5 minuti + 5 - 10 minuti + 10 - 30 minuti + 30 - 60 minuti + Più di 60 minuti + 1 canzone + 2 - 4 canzoni + 5 - 9 canzoni + 10+ canzoni + 5+ album + "Altro" + Visualizza tutti gli artisti + Visualizza tutti gli album + Visualizza tutte le canzoni + Visualizza tutte le playlist + Cerca musica + Tutti gli artisti \"%s\" + Tutti gli album \"%s\" + Tutte le canzoni \"%s\" + Tutte le playlist \"%s\" + %1$s %2$s + Riproduzione musicale diff --git a/app/src/main/res/values-iw/plurals.xml b/app/src/main/res/values-iw/plurals.xml index bad0c2e..56ddcbd 100644 --- a/app/src/main/res/values-iw/plurals.xml +++ b/app/src/main/res/values-iw/plurals.xml @@ -17,81 +17,70 @@ limitations under the License. --> - - - אמן %d - %d אמנים - %d אמנים - %d אמנים - - - - אלבום %d - %d אלבומים - %d אלבומים - %d אלבומים - - - - שיר %d - %d שירים - %d שירים - %d שירים - - - - ז\'אנר %d - %d ז\'אנרים - %d ז\'אנרים - %d ז\'אנרים - - - - ש\' %d - %d ש\' - %d ש\' - %d ש\' - - - - דק\' %d - %d דק\' - %d דק\' - %d דק\' - - - - שיר %d נוסף לרשימת ההשמעה. - %d שירים נוספו לרשימת ההשמעה. - %d שירים נוספו לרשימת ההשמעה. - %d שירים נוספו לרשימת ההשמעה. - - - - שיר %d הוסר מרשימת ההשמעה. - %d שירים הוסרו מרשימת ההשמעה. - %d שירים הוסרו מרשימת ההשמעה. - %d שירים הוסרו מרשימת ההשמעה. - - - - שיר %d נוסף לתור ההשמעה. - %d שירים נוספו לתור ההשמעה. - %d שירים נוספו לתור ההשמעה. - %d שירים נוספו לתור ההשמעה. - - - - שיר %d נוסף למועדפים. - %d שירים נוספו למועדפים. - %d שירים נוספו למועדפים. - %d שירים נוספו למועדפים. - - - - שיר %d נמחק. - %d שירים נמחקו. - %d שירים נמחקו. - %d שירים נמחקו. - + + אמן %d + %d אמנים + %d אמנים + %d אמנים + + + אלבום %d + %d אלבומים + %d אלבומים + %d אלבומים + + + שיר %d + %d שירים + %d שירים + %d שירים + + + ז\'אנר %d + %d ז\'אנרים + %d ז\'אנרים + %d ז\'אנרים + + + ש\' %d + %d ש\' + %d ש\' + %d ש\' + + + דק\' %d + %d דק\' + %d דק\' + %d דק\' + + + שיר %d נוסף לרשימת ההשמעה. + %d שירים נוספו לרשימת ההשמעה. + %d שירים נוספו לרשימת ההשמעה. + %d שירים נוספו לרשימת ההשמעה. + + + שיר %d הוסר מרשימת ההשמעה. + %d שירים הוסרו מרשימת ההשמעה. + %d שירים הוסרו מרשימת ההשמעה. + %d שירים הוסרו מרשימת ההשמעה. + + + שיר %d נוסף לתור ההשמעה. + %d שירים נוספו לתור ההשמעה. + %d שירים נוספו לתור ההשמעה. + %d שירים נוספו לתור ההשמעה. + + + שיר %d נוסף למועדפים. + %d שירים נוספו למועדפים. + %d שירים נוספו למועדפים. + %d שירים נוספו למועדפים. + + + שיר %d נמחק. + %d שירים נמחקו. + %d שירים נמחקו. + %d שירים נמחקו. + diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 3257666..32b5d88 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - מוזיקה - - אחרונים - אמנים - אלבומים - שירים - רשימות השמעה - ז\'אנרים - מנגן כעת - תור השמעה - - אלבומים - שירים מובילים - כל השירים - - הגדרות - חיפוש - ערבב - ערבב הכל - ערבב רשימת השמעה - ערבב אלבום - ערבב אמן - ערבב רצועות מובילות - ערבב שירים שהושמעו לאחרונה - ערבב שירים שנוספו לאחרונה - נגן הכל - מיין לפי - נקה רשימה - נקה רשימת אחרונים - נקה את התור - שמור את התור לרשימת השמעה - אקולייזר - - הוסף לרשימת השמעה - הוסף לתור - הסר מרשימת האחרונים - הסר מהתור - - א-ת / A-Z - ת-א / Z-A - אמן - אלבום - שנה - משך - תאריך הוספה - רשימת רצועות - מספר שירים - מספר אלבומים - שם קובץ - - נוספו לאחרונה - הושמעו לאחרונה - הרצועות המובילות שלי - - רשימת השמעה חדשה - שמור - בטל - החלף - נקה - רשימת השמעה %d - שם רשימת ההשמעה - למחוק את %s? - לנקות שירים מובילים? - לנקות רשימת \"הושמעו לאחרונה\"? - לנקות רשימת \"נוספו לאחרונה\"? - פעולה זו אינה ניתנת לביטול - פעולה זו תמחק לתמיד את התמונות שבמטמון - בחר תמונה מהגלריה - חיפוש Google - השתמש בתמונת ברירת מחדל - השתמש בתמונה ישנה - - נגן - נגן את הבא - נגן אלבום - עוד מהאמן - שנה שם - מחק - קבל תמונת אלבום - קבל תמונת אמן - הסר מרשימת האחרונים - השתמש כרינגטון - הסר מרשימת השמעה - שנה תמונה - - נגן - השהה - הבא - הקודם - ערבב - ערבב הכל - חזור - חזור על הכול - חזור על נוכחי - פתח את תור ההשמעה - הצג מוזיקה - - \"%s\" נקבע כרינגטון - שונה שם רשימת ההשמעה - - ממשק - אחסון - נתונים - מחק מטמון - מסיר את כל התמונות שבמטמון - הורד דרך Wi-Fi בלבד - כדי להפחית עלויות ספק תקשורת, אל תוריד מאינטרנט סלולרי - הורד תמונת אלבום חסרה - הורד תמונות אמן חסרות - כללי - הצג אפקטים ויזואליים למוזיקה - הצג את מילות השיר - עבור שירים עם קובץ srt - נער כדי לנגן - נער את המכשיר כדי לנגן את השיר הבא - תמונת אלבום במסך הנעילה - החלף את רקע מסך הנעילה בתמונת האלבום המתנגן - - מוזיקה: 4 \u00d7 1 - מוזיקה: 4 \u00d7 2 - מוזיקה: 4 \u00d7 2 (חלופי) - מוזיקה: הושמעו לאחרונה - - האקולייזר לא הצליח להיפתח. - כדי להעתיק מוזיקה מהמחשב למכשיר השתמש בכבל USB. - לא נמצאו תוצאות חיפוש - בדוק שהאיות נכון או נסה מילת מפתח שונה. - שירים שסומנו כמועדפים יוצגו כאן. - אין שירים אחרונים - שירים שהאזנת להם לאחרונה יופיעו כאן. - אין שירים ברשימת ההשמעה - כדי להוסיף שירים לרשימת ההשמעה הזו, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \"הוסף לרשימת השמעה\". - אין רצועות מובילות - השירים שלהם אתה מקשיב ביותר יתווספו לרשימה זו. - לא נוספו שירים לאחרונה - שירים שנוספו בחודש האחרון יוצגו כאן. - לא נמצאה מוזיקה - כדי להעתיק מוזיקה מהמחשב למכשיר השתמש בכבל USB. - אין שירים בתור להשמעה - כדי להוסיף שירים לתור ההשמעה שלך, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \"הוסף לתור\". - לא ניתן לנגן את הרצועה %1$s - - שנה לא ידועה - פחות מ-30 שניות - בין 30 ל-60 שניות - בין דקה ל-2 דקות - בין 2 ל-3 דקות - בין 3 ל-4 דקות - בין 4 ל-5 דקות - בין 5 ל-10 דקות - בין 10 ל-30 דקות - בין 30 ל-60 דקות - יותר מ-60 דקות - שיר אחד - בין 2 ל-4 שירים - בין 5 ל-9 שירים - 10+ שירים - 5+ אלבומים - "אחר" - הצג את כל האמנים - הצג את כל האלבומים - הצג את כל השירים - הצג את כל רשימות ההשמעה - חפש מוזיקה - כל \"%s\" האמנים - כל \"%s\" האלבומים - כל \"%s\" השירים - כל \"%s\" רשימות ההשמעה - %1$s %2$s + מוזיקה + אחרונים + אמנים + אלבומים + שירים + רשימות השמעה + ז\'אנרים + מנגן כעת + תור השמעה + אלבומים + שירים מובילים + כל השירים + הגדרות + חיפוש + ערבב + ערבב הכל + ערבב רשימת השמעה + ערבב אלבום + ערבב אמן + ערבב רצועות מובילות + ערבב שירים שהושמעו לאחרונה + ערבב שירים שנוספו לאחרונה + נגן הכל + מיין לפי + נקה רשימה + נקה רשימת אחרונים + נקה את התור + שמור את התור לרשימת השמעה + אקולייזר + הוסף לרשימת השמעה + הוסף לתור + הסר מרשימת האחרונים + הסר מהתור + א-ת / A-Z + ת-א / Z-A + אמן + אלבום + שנה + משך + תאריך הוספה + רשימת רצועות + מספר שירים + מספר אלבומים + שם קובץ + נוספו לאחרונה + הושמעו לאחרונה + הרצועות המובילות שלי + רשימת השמעה חדשה + שמור + בטל + החלף + נקה + רשימת השמעה %d + שם רשימת ההשמעה + למחוק את %s? + לנקות שירים מובילים? + לנקות רשימת \"הושמעו לאחרונה\"? + לנקות רשימת \"נוספו לאחרונה\"? + פעולה זו אינה ניתנת לביטול + פעולה זו תמחק לתמיד את התמונות שבמטמון + בחר תמונה מהגלריה + חיפוש Google + השתמש בתמונת ברירת מחדל + השתמש בתמונה ישנה + נגן + נגן את הבא + נגן אלבום + עוד מהאמן + שנה שם + מחק + קבל תמונת אלבום + קבל תמונת אמן + הסר מרשימת האחרונים + השתמש כרינגטון + הסר מרשימת השמעה + שנה תמונה + נגן + השהה + הבא + הקודם + ערבב + ערבב הכל + חזור + חזור על הכול + חזור על נוכחי + פתח את תור ההשמעה + הצג מוזיקה + \"%s\" נקבע כרינגטון + שונה שם רשימת ההשמעה + ממשק + אחסון + נתונים + מחק מטמון + מסיר את כל התמונות שבמטמון + הורד דרך Wi-Fi בלבד + כדי להפחית עלויות ספק תקשורת, אל תוריד מאינטרנט סלולרי + הורד תמונת אלבום חסרה + הורד תמונות אמן חסרות + כללי + הצג אפקטים ויזואליים למוזיקה + הצג את מילות השיר + עבור שירים עם קובץ srt + נער כדי לנגן + נער את המכשיר כדי לנגן את השיר הבא + תמונת אלבום במסך הנעילה + החלף את רקע מסך הנעילה בתמונת האלבום המתנגן + מוזיקה: 4 \u00d7 1 + מוזיקה: 4 \u00d7 2 + מוזיקה: 4 \u00d7 2 (חלופי) + מוזיקה: הושמעו לאחרונה + האקולייזר לא הצליח להיפתח. + כדי להעתיק מוזיקה מהמחשב למכשיר השתמש בכבל USB. + לא נמצאו תוצאות חיפוש + בדוק שהאיות נכון או נסה מילת מפתח שונה. + שירים שסומנו כמועדפים יוצגו כאן. + אין שירים אחרונים + שירים שהאזנת להם לאחרונה יופיעו כאן. + אין שירים ברשימת ההשמעה + כדי להוסיף שירים לרשימת ההשמעה הזו, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \"הוסף לרשימת השמעה\". + אין רצועות מובילות + השירים שלהם אתה מקשיב ביותר יתווספו לרשימה זו. + לא נוספו שירים לאחרונה + שירים שנוספו בחודש האחרון יוצגו כאן. + לא נמצאה מוזיקה + כדי להעתיק מוזיקה מהמחשב למכשיר השתמש בכבל USB. + אין שירים בתור להשמעה + כדי להוסיף שירים לתור ההשמעה שלך, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \"הוסף לתור\". + לא ניתן לנגן את הרצועה %1$s + שנה לא ידועה + פחות מ-30 שניות + בין 30 ל-60 שניות + בין דקה ל-2 דקות + בין 2 ל-3 דקות + בין 3 ל-4 דקות + בין 4 ל-5 דקות + בין 5 ל-10 דקות + בין 10 ל-30 דקות + בין 30 ל-60 דקות + יותר מ-60 דקות + שיר אחד + בין 2 ל-4 שירים + בין 5 ל-9 שירים + 10+ שירים + 5+ אלבומים + "אחר" + הצג את כל האמנים + הצג את כל האלבומים + הצג את כל השירים + הצג את כל רשימות ההשמעה + חפש מוזיקה + כל \"%s\" האמנים + כל \"%s\" האלבומים + כל \"%s\" השירים + כל \"%s\" רשימות ההשמעה + %1$s %2$s diff --git a/app/src/main/res/values-ja/plurals.xml b/app/src/main/res/values-ja/plurals.xml index af476ba..7f9bec1 100644 --- a/app/src/main/res/values-ja/plurals.xml +++ b/app/src/main/res/values-ja/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d人のアーティスト - - - - %d枚のアルバム - - - - %d - - - - %d個のジャンル - - - - %d時間 - - - - %d - - - - %d曲をプレイリストに追加しました。 - - - - %d曲をプレイリストから削除しました。 - - - - %d曲をキューに追加しました。 - - - - %d曲をお気に入りに追加しました。 - - - - %d曲を削除しました。 - + + %d人のアーティスト + + + %d枚のアルバム + + + %d + + + %d個のジャンル + + + %d時間 + + + %d + + + %d曲をプレイリストに追加しました。 + + + %d曲をプレイリストから削除しました。 + + + %d曲をキューに追加しました。 + + + %d曲をお気に入りに追加しました。 + + + %d曲を削除しました。 + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 15f1aaa..f920f7b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - 音楽 - - 最近の曲 - アーティスト - アルバム - - プレイリスト - ジャンル - 再生中  - 再生キュー - - アルバム - トップ曲 - すべての曲 - - 設定 - 検索 - シャッフル - すべてシャッフル - プレイリストでシャッフル - アルバムでシャッフル - アーティストでシャッフル - トップトラックでシャッフル - 最近再生した曲でシャッフル - 最近追加した曲でシャッフル - すべて再生 - 並べ替え - リストを消去 - 最近の曲を消去 - キューを消去 - プレイリストにキューを保存 - イコライザー - - プレイリストに追加 - キューに追加 - 最近の曲から削除 - キューから削除 - - 昇順 - 降順 - アーティスト - アルバム - - 再生時間 - 追加日 - トラックリスト - 曲数 - アルバム数 - ファイル名 - - 最近追加した曲 - 最近再生した曲 - マイトップトラック - - 新しいプレイリスト - 保存 - キャンセル - 上書き - 消去 - プレイリスト%d - プレイリスト名 - %sを削除しますか? - トップトラックを消去しますか? - 最近再生した曲を消去しますか? - 最近追加した曲を消去しますか? - この操作は元に戻せません - キャッシュされた画像エントリーを完全に削除します - ギャラリーから写真を選択 - Google検索 - デフォルトの写真を使用 - 以前の写真を使用 - - 再生 - 次に再生 - アルバムを再生 - アーティストの他の曲 - 名前の変更 - 削除 - アルバムアートを取得 - アーティストの画像を取得 - 最近の曲から削除 - 着信音として使用 - プレイリストから削除 - 画像を変更 - - 再生 - 一時停止 - 次へ - 前へ - シャッフル - すべてシャッフル - リピート - すべてリピート - 1曲リピート - キューを開く - 音楽を参照 - - [%s]を着信音として設定しました - プレイリスト名を変更しました - - インターフェース - ストレージ - データ - キャッシュを削除 - すべてのキャッシュされた画像を削除する - Wi-Fi経由でのみダウンロード - パケット通信料を減らすために、モバイルネットワーク経由でダウンロードしない - 持っていないアルバムアートをダウンロード - 持っていないアーティストの画像をダウンロード - 全般 - 音楽の視覚エフェクトを表示 - 歌詞を表示 - srtファイルがある曲向け - シェイクで再生 - 端末をシェイクして次の曲を再生する - ロック画面のアルバムアート - ロック画面の背景をアルバムアートで置き換える - - 音楽: 4 \u00d7 1 - 音楽: 4 \u00d7 2 - 音楽: 4 \u00d7 2(別バージョン) - 音楽: 最近聴いた曲 - - イコライザーを開けませんでした。 - パソコンから端末に音楽をコピーするには、USBケーブルを使用してください。 - 検索結果が見つかりませんでした - 検索語を正しく入力しているか確認してください。または別のキーワードを試してみてください。 - お気に入りに追加した曲がここに表示されます。 - 最近の曲はありません - 最近聴いた曲がここに表示されます。 - プレイリストに曲がありません - このプレイリストに曲を追加するには、曲、アルバムまたはアーティストのオプションメニューをタップして[プレイリストに追加]を選択してください。 - トップトラックはありません - よく聴く曲がこのリストに追加されます。 - 最近追加した曲はありません - 1ヶ月以内に追加した曲がここに表示されます。 - 音楽が見つかりませんでした - パソコンから端末に音楽をコピーするには、USBケーブルを使用してください。 - 再生キューに曲がありません - 再生キューに曲を追加するには、曲、アルバムまたはアーティストのオプションメニューをタップして[キューに追加]を選択してください。 - トラック%1$sを再生できません - - 不明な年 - 30秒未満 - 30~60秒 - 1~2分 - 2~3分 - 3~4分 - 4~5分 - 5~10分 - 10~30分 - 30~60分 - 60分以上 - 1曲 - 2~4曲 - 5~9曲 - 10曲以上 - 5枚以上 - "その他" - すべてのアーティストを表示 - すべてのアルバムを表示 - すべての曲を表示 - すべてのプレイリストを表示 - 音楽を検索 - 「%s」を含むすべてのアーティスト - [%s]を含むすべてのアルバム - [%s]を含むすべての曲 - [%s]を含むすべてのプレイリスト - %1$s%2$s - 音楽の再生 + 音楽 + 最近の曲 + アーティスト + アルバム + + プレイリスト + ジャンル + 再生中  + 再生キュー + アルバム + トップ曲 + すべての曲 + 設定 + 検索 + シャッフル + すべてシャッフル + プレイリストでシャッフル + アルバムでシャッフル + アーティストでシャッフル + トップトラックでシャッフル + 最近再生した曲でシャッフル + 最近追加した曲でシャッフル + すべて再生 + 並べ替え + リストを消去 + 最近の曲を消去 + キューを消去 + プレイリストにキューを保存 + イコライザー + プレイリストに追加 + キューに追加 + 最近の曲から削除 + キューから削除 + 昇順 + 降順 + アーティスト + アルバム + + 再生時間 + 追加日 + トラックリスト + 曲数 + アルバム数 + ファイル名 + 最近追加した曲 + 最近再生した曲 + マイトップトラック + 新しいプレイリスト + 保存 + キャンセル + 上書き + 消去 + プレイリスト%d + プレイリスト名 + %sを削除しますか? + トップトラックを消去しますか? + 最近再生した曲を消去しますか? + 最近追加した曲を消去しますか? + この操作は元に戻せません + キャッシュされた画像エントリーを完全に削除します + ギャラリーから写真を選択 + Google検索 + デフォルトの写真を使用 + 以前の写真を使用 + 再生 + 次に再生 + アルバムを再生 + アーティストの他の曲 + 名前の変更 + 削除 + アルバムアートを取得 + アーティストの画像を取得 + 最近の曲から削除 + 着信音として使用 + プレイリストから削除 + 画像を変更 + 再生 + 一時停止 + 次へ + 前へ + シャッフル + すべてシャッフル + リピート + すべてリピート + 1曲リピート + キューを開く + 音楽を参照 + [%s]を着信音として設定しました + プレイリスト名を変更しました + インターフェース + ストレージ + データ + キャッシュを削除 + すべてのキャッシュされた画像を削除する + Wi-Fi経由でのみダウンロード + パケット通信料を減らすために、モバイルネットワーク経由でダウンロードしない + 持っていないアルバムアートをダウンロード + 持っていないアーティストの画像をダウンロード + 全般 + 音楽の視覚エフェクトを表示 + 歌詞を表示 + srtファイルがある曲向け + シェイクで再生 + 端末をシェイクして次の曲を再生する + ロック画面のアルバムアート + ロック画面の背景をアルバムアートで置き換える + 音楽: 4 \u00d7 1 + 音楽: 4 \u00d7 2 + 音楽: 4 \u00d7 2(別バージョン) + 音楽: 最近聴いた曲 + イコライザーを開けませんでした。 + パソコンから端末に音楽をコピーするには、USBケーブルを使用してください。 + 検索結果が見つかりませんでした + 検索語を正しく入力しているか確認してください。または別のキーワードを試してみてください。 + お気に入りに追加した曲がここに表示されます。 + 最近の曲はありません + 最近聴いた曲がここに表示されます。 + プレイリストに曲がありません + このプレイリストに曲を追加するには、曲、アルバムまたはアーティストのオプションメニューをタップして[プレイリストに追加]を選択してください。 + トップトラックはありません + よく聴く曲がこのリストに追加されます。 + 最近追加した曲はありません + 1ヶ月以内に追加した曲がここに表示されます。 + 音楽が見つかりませんでした + パソコンから端末に音楽をコピーするには、USBケーブルを使用してください。 + 再生キューに曲がありません + 再生キューに曲を追加するには、曲、アルバムまたはアーティストのオプションメニューをタップして[キューに追加]を選択してください。 + トラック%1$sを再生できません + 不明な年 + 30秒未満 + 30~60秒 + 1~2分 + 2~3分 + 3~4分 + 4~5分 + 5~10分 + 10~30分 + 30~60分 + 60分以上 + 1曲 + 2~4曲 + 5~9曲 + 10曲以上 + 5枚以上 + "その他" + すべてのアーティストを表示 + すべてのアルバムを表示 + すべての曲を表示 + すべてのプレイリストを表示 + 音楽を検索 + 「%s」を含むすべてのアーティスト + [%s]を含むすべてのアルバム + [%s]を含むすべての曲 + [%s]を含むすべてのプレイリスト + %1$s%2$s + 音楽の再生 diff --git a/app/src/main/res/values-kn/plurals.xml b/app/src/main/res/values-kn/plurals.xml index 7966cdf..c4cc87d 100644 --- a/app/src/main/res/values-kn/plurals.xml +++ b/app/src/main/res/values-kn/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d ಕಲಾವಿದ - %d ಕಲಾವಿದರು - - - - %d ಆಲ್ಬಂ - %d ಆಲ್ಬಂಗಳು - - - - %d ಹಾಡು - %d ಹಾಡುಗಳು - - - - %d ಶೈಲಿ - %d ಶೈಲಿಗಳು - - - - %d - %d - - - - %dನಿ - %dನಿ - - - - %d ಹಾಡನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. - %d ಹಾಡುಗಳನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. - - - - %d ಹಾಡನ್ನು ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಲಾಗಿದೆ. - %d ಹಾಡುಗಳನ್ನು ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಲಾಗಿದೆ. - - - - %d ಹಾಡನ್ನು ಸರದಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. - %d ಹಾಡುಗಳನ್ನು ಸರದಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. - - - - %d ಹಾಡನ್ನು ಫೇವರಿಟ್ಸ್ ಗೆ ಸೇರಿಸಲಾಗಿದೆ. - %d ಹಾಡುಗಳನ್ನು ಫೇವರಿಟ್ಸ್ ಗೆ ಸೇರಿಸಲಾಗಿದೆ. - - - - %d ಹಾಡನ್ನು ಅಳಿಸಲಾಗಿದೆ. - %d ಹಾಡುಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ. - + + %d ಕಲಾವಿದ + %d ಕಲಾವಿದರು + + + %d ಆಲ್ಬಂ + %d ಆಲ್ಬಂಗಳು + + + %d ಹಾಡು + %d ಹಾಡುಗಳು + + + %d ಶೈಲಿ + %d ಶೈಲಿಗಳು + + + %d + %d + + + %dನಿ + %dನಿ + + + %d ಹಾಡನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. + %d ಹಾಡುಗಳನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. + + + %d ಹಾಡನ್ನು ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಲಾಗಿದೆ. + %d ಹಾಡುಗಳನ್ನು ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಲಾಗಿದೆ. + + + %d ಹಾಡನ್ನು ಸರದಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. + %d ಹಾಡುಗಳನ್ನು ಸರದಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. + + + %d ಹಾಡನ್ನು ಫೇವರಿಟ್ಸ್ ಗೆ ಸೇರಿಸಲಾಗಿದೆ. + %d ಹಾಡುಗಳನ್ನು ಫೇವರಿಟ್ಸ್ ಗೆ ಸೇರಿಸಲಾಗಿದೆ. + + + %d ಹಾಡನ್ನು ಅಳಿಸಲಾಗಿದೆ. + %d ಹಾಡುಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ. + diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index dd2261a..b259726 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -17,173 +17,160 @@ limitations under the License. --> - ಸಂಗೀತ - - ಇತ್ತೀಚಿನ - ಕಲಾವಿದರು - ಆಲ್ಬಂಗಳು - ಹಾಡುಗಳು - ಪ್ಲೇಪಟ್ಟಿಗಳು - ಪ್ರಕಾರಗಳು - ಈಗ ಪ್ಲೇ ಆಗುತ್ತಿರುವ - ಪ್ಲೇ ಸರದಿ - - ಆಲ್ಬಂಗಳು - ಟಾಪ್ ಹಾಡುಗಳು - ಎಲ್ಲಾ ಹಾಡುಗಳು - - ಸೆಟ್ಟಿಂಗ್ಸ್ - ಹುಡುಕಿ - ಷಫಲ್ - ಎಲ್ಲವನ್ನು ಷಫಲ್ ಮಾಡಿ - ಪ್ಲೇಪಟ್ಟಿ ಷಫಲ್ ಮಾಡಿ - ಆಲ್ಬಂ ಷಫಲ್ ಮಾಡಿ - ಕಲಾವಿದ ಷಫಲ್ ಮಾಡಿ - ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳನ್ನು ಷಫಲ್ ಮಾಡಿ - ಇತ್ತೀಚೆಗೆ ಪ್ಲೇ ಮಾಡಿದ್ದನ್ನು ಷಫಲ್ ಮಾಡಿ - ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದನ್ನು ಷಫಲ್ ಮಾಡಿ - ಎಲ್ಲವನ್ನು ಪ್ಲೇ ಮಾಡಿ - ಇದರಿಂದ ಶೋಧಿಸಿ - ಪಟ್ಟಿ ತೆರವುಗೊಳಿಸಿ - ಇತ್ತೀಚಿನವನ್ನು ತೆರವುಗೊಳಿಸಿ - ಸರದಿಯನ್ನು ತೆರವುಗೊಳಿಸಿ - ಸರದಿಯನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಉಳಿಸಿ - ಸಮಕಾರಕ - - ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಿ - ಸರದಿಗೆ ಸೇರಿಸಿ - ಇತ್ತೀಚಿನವುಗಳಿಂದ ತೆಗೆ - ಸರದಿಯಿಂದ ತೆಗೆ - - ಅ-ಅಃ - ಅಃ-ಅ - ಕಲಾವಿದ - ಆಲ್ಬಂ - ವರ್ಷ - ಕಾಲಾವಧಿ - ಸೇರಿಸಿದ ದಿನಾಂಕ - ಟ್ರ್ಯಾಕ್ ಪಟ್ಟಿ - ಹಾಡುಗಳ ಸಂಖ್ಯೆ - ಆಲ್ಬಂಗಳ ಸಂಖ್ಯೆ - ಕಡತದ ಹೆಸರು - - ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದ - ಇತ್ತೀಚೆಗೆ ಪ್ಲೇಮಾಡಿದ - ನನ್ನ ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳು - - ಹೊಸ ಪ್ಲೇಪಟ್ಟಿ - ಉಳಿಸು - ರದ್ದು - ಓವರ್‍ವ್ರೈಟ್ - ತೆರವುಗೊಳಿಸು - ಪ್ಲೇಪಟ್ಟಿ %d - ಪ್ಲೇಪಟ್ಟಿ ಹೆಸರು - %s ಅಳಿಸು? - ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ? - ಇತ್ತೀಚೆಗೆ ಪ್ಲೇಮಾಡಿದ್ದನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ? - ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದ್ದನ್ನು ತೆರವುಗೊಳಿಸು? - ಇದನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುವುದಿಲ್ಲ - ಇದು ನಗದುಮಾಡಿರುವ ಚಿತ್ರ ನಮೂದುಗಳನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಿಹಾಕುತ್ತದೆ - ಗ್ಯಾಲರಿಯಿಂದ ಫೋಟೋ ಆರಿಸಿ - ಗೂಗಲ್ ಸರ್ಚ್ - ಡೀಫಾಲ್ಟ್ ಫೋಟೋವನ್ನು ಉಪಯೋಗಿಸಿ - ಹಳೆಯ ಫೋಟೋ ಉಪಯೋಗಿಸಿ - - ಪ್ಲೇ - ನಂತರ ಪ್ಲೇಮಾಡು - ಆಲ್ಬಂ ಪ್ಲೇ ಮಾಡು - ಕಲಾವಿದನಿಂದ ಇನ್ನಷ್ಟು - ಮರುಹೆಸರಿಸಿ - ಅಳಿಸಿ - ಆಲ್ಬಂ ಆರ್ಟ್ ಪಡೆದುಕೊ - ಕಲಾವಿದ ಚಿತ್ರ ಪಡೆದುಕೊ - ಇತ್ತೀಚಿನವುಗಳಿಂದ ತೆಗೆ - ರಿಂಗ್‍ಟೋನ್‍ ಆಗಿ ಉಪಯೋಗಿಸಿ - ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆ - ಚಿತ್ರ ಬದಲಾಯಿಸಿ - - ಪ್ಲೇ - ವಿರಾಮ - ಮುಂದಿನ - ಹಿಂದಿನ - ಷಫಲ್ - ಎಲ್ಲವನ್ನು ಷಫಲ್ ಮಾಡು - ಪುನರಾವರ್ತಿಸು - ಎಲ್ಲವನ್ನು ಪುನರಾವರ್ತಿಸು - ಒಂದನ್ನು ಪುನರಾವರ್ತಿಸು - ಸರದಿಯನ್ನು ತೆರೆ - ಸಂಗೀತವನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ - - \'%s\' ರಿಂಗ್‍ಟೋನ್ ಆಗಿ ಹೊಂದಿಸಲಾಗಿದೆ - ಪ್ಲೇಪಟ್ಟಿ ಮರುಹೆಸರಿಸಲಾಗಿದೆ - - ಇಂಟರ್ಫೇಸ್ - ಸಂಗ್ರಹಣೆ - ಡೇಟಾ - ನಗದನ್ನು ಅಳಿಸು - ಎಲ್ಲಾ ನಗದು ಮಾಡಿದ ಚಿತ್ರಗಳನ್ನು ತೆಗೆ - ವೈ-ಫೈ ಮೂಲಕ ಮಾತ್ರ ಡೌನ್‍ಲೋಡ್ ಮಾಡು - ವಾಹಕ ಶುಲ್ಕಗಳನ್ನು ಕಡಿಮೆಮಾಡಲು, ಮೊಬೈಲ್ ನೆಟ್‍ವರ್ಕ್‍ಗಳಿಂದ ಡೌನ್‍ಲೋಡ್ ಮಾಡಬೇಡಿ - ಕಾಣೆಯಾದ ಆಲ್ಬಂ ಆರ್ಟ್ ಡೌನ್‍ಲೋಡ್ ಮಾಡು - ಕಾಣೆಯಾಗಿರುವ ಕಾಲಾವಿದನ ಚಿತ್ರಗಳನ್ನು ಡೌನ್‍ಲೋಡ್ ಮಾಡು - ಸಾಮಾನ್ಯ - ಸಂಗೀತ ದೃಶ್ಯೀಕರಣವನ್ನು ಪ್ರದರ್ಶಿಸು - ಹಾಡಿನ ಸಾಹಿತ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸು - srt ಕಡತ ಹೊಂದಿರುವ ಹಾಡುಗಳಿಗಾಗಿ - ಪ್ಲೇ ಮಾಡಲು ಕುಲುಕಿ - ಮುಂದಿನ ಹಾಡನ್ನು ಪ್ಲೇ ಮಾಡಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಕುಲುಕಿ - ಲಾಕ್‍ಪರದೆ ಆಲ್ಬಂ ಆರ್ಟ್ - ಲಾಕ್‍ಪರದೆ ಹಿನ್ನಲೆಯನ್ನು ಆಲ್ಬಂ ಆರ್ಟ್‍ನೊಂದಿಗೆ ಬದಲಿಸು - - ಸಂಗೀತ: 4 \u00d7 1 - ಸಂಗೀತ: 4 \u00d7 2 - ಸಂಗೀತ: 4 \u00d7 2 (ಪರ್ಯಾಯ) - ಸಂಗೀತ: ಇತ್ತೀಚೆಗೆ ಆಲಿಸಿದ - - ಸಮಾನಕಾರಕವನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ. - ನಿಮ್ಮ ಸಂಗೀತವನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‍‍ನಿಂದ ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಲು, ಯು‍ಎಸ್‍ಬಿ ಕೇಬಲ್ ಉಪಯೋಗಿಸಿ. - ಯಾವುದೇ ಶೋಧನೆ ಫಲಿತಾಂಶಗಳು ಪತ್ತೆಯಾಗಲಿಲ್ಲ - ದಯವಿಟ್ಟು ಪರಿಶೀಲಿಸಿ ನೀವು ಸರಿಯಾದ ಅಕ್ಷರವನ್ನು ಹೊಂದಿದ್ದೀರೇ ಎಂದು ಅಥವ ಭಿನ್ನವಾದ ಪದಕುಂಜವನ್ನು ಪ್ರಯತ್ನಿಸಿ. - ನೀವು ಫೇವರಿಟ್ಸ್ ಎಂದು ಗುರುತಿಸಿದ ಹಾಡುಗಳನ್ನು ಇಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. - ಯಾವುದೇ ಇತ್ತೀಚಿನ ಹಾಡುಗಳಿಲ್ಲ - ನೀವು ಇತ್ತೀಚೆಗೆ ಆಲಿಸಿದ ಹಾಡುಗಳು ಇಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ. - ಪ್ಲೇಪಟ್ಟಿಯಲ್ಲಿ ಯಾವುದೇ ಹಾಡುಗಳಿಲ್ಲ - ಪ್ಲೇಪಟ್ಟಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \"ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಿ\" ಆಯ್ಕೆಮಾಡಿ. - ಯಾವುದೇ ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳಿಲ್ಲ - ನೀವು ಹೆಚ್ಚಾಗಿ ಆಲಿಸುವ ಹಾಡುಗಳನ್ನು ಈ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. - ಯಾವುದೇ ಹಾಡುಗಳನ್ನು ಇತ್ತೀಚೆಗೆ ಸೇರಿಸಲಾಗಿಲ್ಲ - ನೀವು ಕಳೆದ ತಿಂಗಳ ಮೇಲೆ ಸೇರಿಸಿದ ಹಾಡುಗಳನ್ನು ಇಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುವುದು. - ಯಾವುದೇ ಸಂಗೀತ ಸಿಗಲಿಲ್ಲ - ನಿಮ್ಮ ಸಂಗೀತವನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‍‍ನಿಂದ ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಲು, ಯು‍ಎಸ್‍ಬಿ ಕೇಬಲ್ ಉಪಯೋಗಿಸಿ. - ಪ್ಲೇ ಸರದಿಯಲ್ಲಿ ಯಾವುದೇ ಹಾಡುಗಳಿಲ್ಲ - ಪ್ಲೇ ಸರದಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \"ಸರದಿಗೆ ಸೇರಿಸಿ\" ಆಯ್ಕೆಮಾಡಿ. - %1$s ಟ್ರ್ಯಾಕನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ - - ಅಜ್ಞಾತ ವರ್ಷ - 30 ಸೆಕೆಂಡ್‍ಗಳಿಗಿಂತ ಕಡಿಮೆ - 30 - 60 ಸೆಕೆಂಡ್‍ಗಳು - 1 - 2 ನಿಮಿಷಗಳು - 2 - 3 ನಿಮಿಷಗಳು - 3 - 4 ನಿಮಿಷಗಳು - 4 - 5 ನಿಮಿಷಗಳು - 5 - 10 ನಿಮಿಷಗಳು - 10 - 30 ನಿಮಿಷಗಳು - 30 - 60 ನಿಮಿಷಗಳು - 60 ನಿಮಿಷಗಳಿಗಿಂತ ಹೆಚ್ಚು - 1 ಹಾಡು - 2 - 4 ಹಾಡುಗಳು - 5 - 9 ಹಾಡುಗಳು - 10+ ಹಾಡುಗಳು - 5+ ಆಲ್ಬಂಗಳು - "ಇತರೆ" - ಎಲ್ಲಾ ಕಲಾವಿದರನ್ನು ಪ್ರದರ್ಶಿಸು - ಎಲ್ಲಾ ಆಲ್ಬಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸು - ಎಲ್ಲಾ ಹಾಡುಗಳನ್ನು ಪ್ರದರ್ಶಿಸು - ಎಲ್ಲಾ ಪ್ಲೇಪಟ್ಟಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸು - ಸಂಗೀತವನ್ನು ಹುಡುಕಿ - ಎಲ್ಲಾ \"%s\" ಕಲಾವಿದರು - ಎಲ್ಲಾ \"%s\" ಆಲ್ಬಂಗಳು - ಎಲ್ಲಾ \"%s\" ಹಾಡುಗಳು - ಎಲ್ಲಾ \"%s\" ಪ್ಲೇಪಟ್ಟಿಗಳು - %1$s %2$s + ಸಂಗೀತ + ಇತ್ತೀಚಿನ + ಕಲಾವಿದರು + ಆಲ್ಬಂಗಳು + ಹಾಡುಗಳು + ಪ್ಲೇಪಟ್ಟಿಗಳು + ಪ್ರಕಾರಗಳು + ಈಗ ಪ್ಲೇ ಆಗುತ್ತಿರುವ + ಪ್ಲೇ ಸರದಿ + ಆಲ್ಬಂಗಳು + ಟಾಪ್ ಹಾಡುಗಳು + ಎಲ್ಲಾ ಹಾಡುಗಳು + ಸೆಟ್ಟಿಂಗ್ಸ್ + ಹುಡುಕಿ + ಷಫಲ್ + ಎಲ್ಲವನ್ನು ಷಫಲ್ ಮಾಡಿ + ಪ್ಲೇಪಟ್ಟಿ ಷಫಲ್ ಮಾಡಿ + ಆಲ್ಬಂ ಷಫಲ್ ಮಾಡಿ + ಕಲಾವಿದ ಷಫಲ್ ಮಾಡಿ + ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳನ್ನು ಷಫಲ್ ಮಾಡಿ + ಇತ್ತೀಚೆಗೆ ಪ್ಲೇ ಮಾಡಿದ್ದನ್ನು ಷಫಲ್ ಮಾಡಿ + ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದನ್ನು ಷಫಲ್ ಮಾಡಿ + ಎಲ್ಲವನ್ನು ಪ್ಲೇ ಮಾಡಿ + ಇದರಿಂದ ಶೋಧಿಸಿ + ಪಟ್ಟಿ ತೆರವುಗೊಳಿಸಿ + ಇತ್ತೀಚಿನವನ್ನು ತೆರವುಗೊಳಿಸಿ + ಸರದಿಯನ್ನು ತೆರವುಗೊಳಿಸಿ + ಸರದಿಯನ್ನು ಪ್ಲೇಪಟ್ಟಿಗೆ ಉಳಿಸಿ + ಸಮಕಾರಕ + ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಿ + ಸರದಿಗೆ ಸೇರಿಸು + ಇತ್ತೀಚಿನವುಗಳಿಂದ ತೆಗೆ + ಸರದಿಯಿಂದ ತೆಗೆ + ಅ-ಅಃ + ಅಃ-ಅ + ಕಲಾವಿದ + ಆಲ್ಬಂ + ವರ್ಷ + ಕಾಲಾವಧಿ + ಸೇರಿಸಿದ ದಿನಾಂಕ + ಟ್ರ್ಯಾಕ್ ಪಟ್ಟಿ + ಹಾಡುಗಳ ಸಂಖ್ಯೆ + ಆಲ್ಬಂಗಳ ಸಂಖ್ಯೆ + ಕಡತದ ಹೆಸರು + ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದ + ಇತ್ತೀಚೆಗೆ ಪ್ಲೇಮಾಡಿದ + ನನ್ನ ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳು + ಹೊಸ ಪ್ಲೇಪಟ್ಟಿ + ಉಳಿಸು + ರದ್ದು + ಓವರ್‍ವ್ರೈಟ್ + ತೆರವುಗೊಳಿಸು + ಪ್ಲೇಪಟ್ಟಿ %d + ಪ್ಲೇಪಟ್ಟಿ ಹೆಸರು + %s ಅಳಿಸು? + ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ? + ಇತ್ತೀಚೆಗೆ ಪ್ಲೇಮಾಡಿದ್ದನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ? + ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದ್ದನ್ನು ತೆರವುಗೊಳಿಸು? + ಇದನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುವುದಿಲ್ಲ + ಇದು ನಗದುಮಾಡಿರುವ ಚಿತ್ರ ನಮೂದುಗಳನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಿಹಾಕುತ್ತದೆ + ಗ್ಯಾಲರಿಯಿಂದ ಫೋಟೋ ಆರಿಸಿ + ಗೂಗಲ್ ಸರ್ಚ್ + ಡೀಫಾಲ್ಟ್ ಫೋಟೋವನ್ನು ಉಪಯೋಗಿಸಿ + ಹಳೆಯ ಫೋಟೋ ಉಪಯೋಗಿಸಿ + ಪ್ಲೇ + ನಂತರ ಪ್ಲೇಮಾಡು + ಆಲ್ಬಂ ಪ್ಲೇ ಮಾಡು + ಕಲಾವಿದನಿಂದ ಇನ್ನಷ್ಟು + ಮರುಹೆಸರಿಸಿ + ಅಳಿಸಿ + ಇಡುವಹಿಯ ಚಿತ್ರಕಲೆ ಕರೆತರು + ಕಲಾವಿದನ ಚಿತ್ರ ಕರೆತರು + ಇತ್ತೀಚಿನವುಗಳಿಂದ ತೆಗೆ + ರಿಂಗ್‍ಟೋನ್‍ ಆಗಿ ಉಪಯೋಗಿಸಿ + ಪ್ಲೇಪಟ್ಟಿಯಿಂದ ತೆಗೆ + ಚಿತ್ರ ಬದಲಾಯಿಸಿ + ಪ್ಲೇ + ವಿರಾಮ + ಮುಂದಿನ + ಹಿಂದಿನ + ಷಫಲ್ + ಎಲ್ಲವನ್ನು ಷಫಲ್ ಮಾಡು + ಪುನರಾವರ್ತಿಸು + ಎಲ್ಲವನ್ನು ಪುನರಾವರ್ತಿಸು + ಒಂದನ್ನು ಪುನರಾವರ್ತಿಸು + ಸರದಿಯನ್ನು ತೆರೆ + ಸಂಗೀತವನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ + \'%s\' ರಿಂಗ್‍ಟೋನ್ ಆಗಿ ಹೊಂದಿಸಲಾಗಿದೆ + ಪ್ಲೇಪಟ್ಟಿ ಮರುಹೆಸರಿಸಲಾಗಿದೆ + ಇಂಟರ್ಫೇಸ್ + ಸಂಗ್ರಹಣೆ + ಡೇಟಾ + ನಗದನ್ನು ಅಳಿಸು + ಎಲ್ಲಾ ನಗದು ಮಾಡಿದ ಚಿತ್ರಗಳನ್ನು ತೆಗೆ + Wi-Fi ಮೂಲಕ ಮಾತ್ರ ಇಳಿಸು + ವಾಹಕ ಶುಲ್ಕಗಳನ್ನು ಕಡಿಮೆಮಾಡಲು, ಮೊಬೈಲ್ ನೆಟ್‍ವರ್ಕ್‍ಗಳಿಂದ ಡೌನ್‍ಲೋಡ್ ಮಾಡಬೇಡಿ + ಇಡುವಹಿಯ ಚಿತ್ರಕಲೆ ಇಳಿಸು + ಕಾಲಾವಿದನ ಚಿತ್ರಗಳನ್ನು ಇಳಿಸು + ಸಾಮಾನ್ಯ + ಸಂಗೀತ ದೃಶ್ಯೀಕರಣವನ್ನು ಪ್ರದರ್ಶಿಸು + ಹಾಡಿನ ಸಾಹಿತ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸು + srt ಕಡತ ಹೊಂದಿರುವ ಹಾಡುಗಳಿಗಾಗಿ + ಪ್ಲೇ ಮಾಡಲು ಕುಲುಕಿ + ಮುಂದಿನ ಹಾಡನ್ನು ಪ್ಲೇ ಮಾಡಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಕುಲುಕಿ + ಲಾಕ್‍ಪರದೆ ಆಲ್ಬಂ ಆರ್ಟ್ + ಲಾಕ್‍ಪರದೆ ಹಿನ್ನಲೆಯನ್ನು ಆಲ್ಬಂ ಆರ್ಟ್‍ನೊಂದಿಗೆ ಬದಲಿಸು + ಸಂಗೀತ: 4 \u00d7 1 + ಸಂಗೀತ: 4 \u00d7 2 + ಸಂಗೀತ: 4 \u00d7 2 (ಪರ್ಯಾಯ) + ಸಂಗೀತ: ಇತ್ತೀಚೆಗೆ ಆಲಿಸಿದ + ಸಮಾನಕಾರಕವನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ. + ನಿಮ್ಮ ಸಂಗೀತವನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‍‍ನಿಂದ ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಲು, ಯು‍ಎಸ್‍ಬಿ ಕೇಬಲ್ ಉಪಯೋಗಿಸಿ. + ಯಾವುದೇ ಶೋಧನೆ ಫಲಿತಾಂಶಗಳು ಪತ್ತೆಯಾಗಲಿಲ್ಲ + ದಯವಿಟ್ಟು ಪರಿಶೀಲಿಸಿ ನೀವು ಸರಿಯಾದ ಅಕ್ಷರವನ್ನು ಹೊಂದಿದ್ದೀರೇ ಎಂದು ಅಥವ ಭಿನ್ನವಾದ ಪದಕುಂಜವನ್ನು ಪ್ರಯತ್ನಿಸಿ. + ನೀವು ಫೇವರಿಟ್ಸ್ ಎಂದು ಗುರುತಿಸಿದ ಹಾಡುಗಳನ್ನು ಇಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. + ಯಾವುದೇ ಇತ್ತೀಚಿನ ಹಾಡುಗಳಿಲ್ಲ + ನೀವು ಇತ್ತೀಚೆಗೆ ಆಲಿಸಿದ ಹಾಡುಗಳು ಇಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ. + ಪ್ಲೇಪಟ್ಟಿಯಲ್ಲಿ ಯಾವುದೇ ಹಾಡುಗಳಿಲ್ಲ + ಪ್ಲೇಪಟ್ಟಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \"ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಿ\" ಆಯ್ಕೆಮಾಡಿ. + ಯಾವುದೇ ಟಾಪ್ ಟ್ರ್ಯಾಕ್‍ಗಳಿಲ್ಲ + ನೀವು ಹೆಚ್ಚಾಗಿ ಆಲಿಸುವ ಹಾಡುಗಳನ್ನು ಈ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. + ಯಾವುದೇ ಹಾಡುಗಳನ್ನು ಇತ್ತೀಚೆಗೆ ಸೇರಿಸಲಾಗಿಲ್ಲ + ನೀವು ಕಳೆದ ತಿಂಗಳ ಮೇಲೆ ಸೇರಿಸಿದ ಹಾಡುಗಳನ್ನು ಇಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುವುದು. + ಯಾವುದೇ ಸಂಗೀತ ಸಿಗಲಿಲ್ಲ + ನಿಮ್ಮ ಸಂಗೀತವನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‍‍ನಿಂದ ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಲು, ಯು‍ಎಸ್‍ಬಿ ಕೇಬಲ್ ಉಪಯೋಗಿಸಿ. + ಪ್ಲೇ ಸರದಿಯಲ್ಲಿ ಯಾವುದೇ ಹಾಡುಗಳಿಲ್ಲ + ಪ್ಲೇ ಸರದಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \"ಸರದಿಗೆ ಸೇರಿಸಿ\" ಆಯ್ಕೆಮಾಡಿ. + %1$s ಟ್ರ್ಯಾಕನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ + ಅಜ್ಞಾತ ವರ್ಷ + 30 ಸೆಕೆಂಡ್‍ಗಳಿಗಿಂತ ಕಡಿಮೆ + 30 - 60 ಸೆಕೆಂಡ್‍ಗಳು + 1 - 2 ನಿಮಿಷಗಳು + 2 - 3 ನಿಮಿಷಗಳು + 3 - 4 ನಿಮಿಷಗಳು + 4 - 5 ನಿಮಿಷಗಳು + 5 - 10 ನಿಮಿಷಗಳು + 10 - 30 ನಿಮಿಷಗಳು + 30 - 60 ನಿಮಿಷಗಳು + 60 ನಿಮಿಷಗಳಿಗಿಂತ ಹೆಚ್ಚು + 1 ಹಾಡು + 2 - 4 ಹಾಡುಗಳು + 5 - 9 ಹಾಡುಗಳು + 10+ ಹಾಡುಗಳು + 5+ ಆಲ್ಬಂಗಳು + "ಇತರೆ" + ಎಲ್ಲಾ ಕಲಾವಿದರನ್ನು ಪ್ರದರ್ಶಿಸು + ಎಲ್ಲಾ ಆಲ್ಬಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸು + ಎಲ್ಲಾ ಹಾಡುಗಳನ್ನು ಪ್ರದರ್ಶಿಸು + ಎಲ್ಲಾ ಪ್ಲೇಪಟ್ಟಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸು + ಸಂಗೀತವನ್ನು ಹುಡುಕಿ + ಎಲ್ಲಾ \"%s\" ಕಲಾವಿದರು + ಎಲ್ಲಾ \"%s\" ಆಲ್ಬಂಗಳು + ಎಲ್ಲಾ \"%s\" ಹಾಡುಗಳು + ಎಲ್ಲಾ \"%s\" ಪ್ಲೇಪಟ್ಟಿಗಳು + %1$s %2$s + ಸಂಗೀತ ಪುನರಾಡಿಸು diff --git a/app/src/main/res/values-ko/plurals.xml b/app/src/main/res/values-ko/plurals.xml index 5976f66..cd70d3c 100644 --- a/app/src/main/res/values-ko/plurals.xml +++ b/app/src/main/res/values-ko/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d명의 아티스트 - - - - %d개의 앨범 - - - - %d곡의 음악 - - - - %d개의 장르 - - - - %d시간 - - - - %d - - - - %d곡의 음악이 재생목록에 추가되었습니다. - - - - %d곡의 음악이 재생목록에서 제거되었습니다. - - - - %d곡의 음악이 대기열에 추가되었습니다. - - - - %d곡의 음악이 즐겨찾기에 추가되었습니다. - - - - %d곡의 음악이 삭제되었습니다. - + + %d명의 아티스트 + + + %d개의 앨범 + + + %d곡의 음악 + + + %d개의 장르 + + + %d시간 + + + %d + + + %d곡의 음악이 재생목록에 추가되었습니다. + + + %d곡의 음악이 재생목록에서 제거되었습니다. + + + %d곡의 음악이 대기열에 추가되었습니다. + + + %d곡의 음악이 즐겨찾기에 추가되었습니다. + + + %d곡의 음악이 삭제되었습니다. + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 775a37d..248dbe7 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - 음악 - - 최근 - 아티스트 - 앨범 - 음악 - 재생목록 - 장르 - 재생 중 - 재생 대기열 - - 앨범 - 자주 듣는 곡들 - 모든 노래 - - 설정 - 검색 - 셔플 - 모두 셔플 - 재생목록 셔플 - 앨범 셔플 - 아티스트 셔플 - 자주 듣는 곡들 셔플 - 최근 재생 셔플 - 최근 추가 셔플 - 모두 재생 - 정렬 - 목록 비우기 - 최근 목록 비우기 - 대기열 비우기 - 큐를 재생 목록으로 저장 - 이퀄라이저 - - 재생목록에 추가 - 대기열에 추가 - 최근 재생 목록에서 제거 - 대기열에서 제거 - - 오름차순 - 내림차순 - 아티스트 - 앨범 - 연도 - 길이 - 추가된 날짜 - 트랙 목록 - 음악 수 - 앨범 수 - 파일명 - - 최근에 추가된 곡 - 최근에 재생된 곡 - 자주 듣는 노래 - - 새 재생목록 - 저장 - 취소 - 덮어쓰기 - 지우기 - 재생목록 %d - 재생목록 이름 - %s을(를) 삭제할까요? - 자주 듣는 곡들 목록을 비우시겠습니까? - 최근 재생 목록을 비우시겠습니까? - 최근 추가 목록을 비우시겠습니까? - 이 작업은 되돌릴 수 없습니다 - 임시 저장된 이미지들이 영구적으로 제거됩니다 - 갤러리에서 사진 선택 - Google 검색 - 기본 사진 사용 - 이전 사진 사용 - - 재생 - 다음 곡 재생 - 앨범 재생 - 이 아티스트의 다른 곡들 - 이름 바꾸기 - 삭제 - 앨범 아트 받아오기 - 아티스트 이미지 받아오기 - 최근 목록에서 제거 - 벨소리로 지정 - 재생목록에서 제거 - 이미지 변경 - - 재생 - 일시정지 - 다음 - 이전 - 셔플 - 모두 셔플 - 반복 - 모두 반복 - 한 곡 반복 - 대기열 열기 - 음악 탐색 - - \'%s\'이(가) 벨소리로 지정되었습니다 - 재생목록의 이름이 변경되었습니다 - - 인터페이스 - 저장소 - 데이터 - 캐시 제거 - 임시 저장된 모든 이미지 제거 - Wi-Fi를 통해서만 다운로드 - 데이터 과금을 막기 위해 모바일 네트워크를 통해 다운로드하지 않음 - 앨범 아트가 없으면 다운로드 - 아티스트 이미지가 없으면 다운로드 - 일반 - 음악 시각화 표시 - 노래 가사 표시 - SRT 파일이 있는 곡만 - 흔들어 재생 - 기기를 흔들어 다음 곡을 재생 - 잠금화면 앨범 아트 - 잠금화면 배경을 앨범 아트로 바꿈 - - 음악: 4 \u00d7 1 - 음악: 4 \u00d7 2 - 음악: 4 \u00d7 2 (다른 배치) - 음악: 최근에 들은 곡 - - 이퀄라이저를 열 수 없습니다. - 컴퓨터에서 기기로 음악을 복사하려면 USB 케이블을 사용하십시오. - 검색 결과 없음 - 스펠링이 정확한 지 확인해보거나, 다른 키워드를 사용해보십시오. - 즐겨찾기에 추가한 음악들이 여기에 표시됩니다. - 최근에 재생된 곡 없음 - 최근에 들은 음악들이 여기에 표시됩니다. - 재생목록에 음악 없음 - 재생목록에 음악를 추가하려면 음악, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \"재생목록에 추가\"를 선택하십시오. - 자주 듣는 곡 없음 - 자주 듣는 음악들이 여기에 표시됩니다. - 최근에 추가된 곡 없음 - 지난 한 달 동안 추가된 음악들이 여기에 표시됩니다. - 음악 없음 - 컴퓨터에서 기기로 음악을 복사하려면 USB 케이블을 사용하십시오. - 대기열에 노래 없음 - 노래를 재생 대기열에 추가하려면 노래, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \"대기열에 추가\"를 선택하십시오. - %1$s 트랙을 재생할 수 없음 - - 알 수 없는 연도 - 30초 미만 - 30-60초 - 1-2분 - 2-3분 - 3-4분 - 4-5분 - 5-10분 - 10-30분 - 30-60분 - 60분 초과 - 1곡의 음악 - 2-4곡의 음악 - 5-9곡의 음악 - 10곡 이상의 음악 - 5개 이상의 앨범 - "기타" - 모든 아티스트 보기 - 모든 앨범 보기 - 모든 음악 보기 - 모든 재생목록 보기 - 음악 검색 - 모든 \"%s\" 아티스트 - 모든 \"%s\" 앨범 - 모든 \"%s\" 음악 - 모든 \"%s\" 재생목록 - %1$s %2$s - 음악 재생 + 음악 + 최근 + 아티스트 + 앨범 + 음악 + 재생목록 + 장르 + 재생 중 + 재생 대기열 + 앨범 + 자주 듣는 곡들 + 모든 노래 + 설정 + 검색 + 셔플 + 모두 셔플 + 재생목록 셔플 + 앨범 셔플 + 아티스트 셔플 + 자주 듣는 곡들 셔플 + 최근 재생 셔플 + 최근 추가 셔플 + 모두 재생 + 정렬 + 목록 비우기 + 최근 목록 비우기 + 대기열 비우기 + 큐를 재생 목록으로 저장 + 이퀄라이저 + 재생목록에 추가 + 대기열에 추가 + 최근 재생 목록에서 제거 + 대기열에서 제거 + 오름차순 + 내림차순 + 아티스트 + 앨범 + 연도 + 길이 + 추가된 날짜 + 트랙 목록 + 음악 수 + 앨범 수 + 파일명 + 최근에 추가된 곡 + 최근에 재생된 곡 + 자주 듣는 노래 + 새 재생목록 + 저장 + 취소 + 덮어쓰기 + 지우기 + 재생목록 %d + 재생목록 이름 + %s을(를) 삭제할까요? + 자주 듣는 곡들 목록을 비우시겠습니까? + 최근 재생 목록을 비우시겠습니까? + 최근 추가 목록을 비우시겠습니까? + 이 작업은 되돌릴 수 없습니다 + 임시 저장된 이미지들이 영구적으로 제거됩니다 + 갤러리에서 사진 선택 + Google 검색 + 기본 사진 사용 + 이전 사진 사용 + 재생 + 다음 곡 재생 + 앨범 재생 + 이 아티스트의 다른 곡들 + 이름 바꾸기 + 삭제 + 앨범 아트 받아오기 + 아티스트 이미지 받아오기 + 최근 목록에서 제거 + 벨소리로 지정 + 재생목록에서 제거 + 이미지 변경 + 재생 + 일시정지 + 다음 + 이전 + 셔플 + 모두 셔플 + 반복 + 모두 반복 + 한 곡 반복 + 대기열 열기 + 음악 탐색 + \'%s\'이(가) 벨소리로 지정되었습니다 + 재생목록의 이름이 변경되었습니다 + 인터페이스 + 저장소 + 데이터 + 캐시 제거 + 임시 저장된 모든 이미지 제거 + Wi-Fi를 통해서만 다운로드 + 데이터 과금을 막기 위해 모바일 네트워크를 통해 다운로드하지 않음 + 앨범 아트가 없으면 다운로드 + 아티스트 이미지가 없으면 다운로드 + 일반 + 음악 시각화 표시 + 노래 가사 표시 + SRT 파일이 있는 곡만 + 흔들어 재생 + 기기를 흔들어 다음 곡을 재생 + 잠금화면 앨범 아트 + 잠금화면 배경을 앨범 아트로 바꿈 + 음악: 4 \u00d7 1 + 음악: 4 \u00d7 2 + 음악: 4 \u00d7 2 (다른 배치) + 음악: 최근에 들은 곡 + 이퀄라이저를 열 수 없습니다. + 컴퓨터에서 기기로 음악을 복사하려면 USB 케이블을 사용하십시오. + 검색 결과 없음 + 스펠링이 정확한 지 확인해보거나, 다른 키워드를 사용해보십시오. + 즐겨찾기에 추가한 음악들이 여기에 표시됩니다. + 최근에 재생된 곡 없음 + 최근에 들은 음악들이 여기에 표시됩니다. + 재생목록에 음악 없음 + 재생목록에 음악를 추가하려면 음악, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \"재생목록에 추가\"를 선택하십시오. + 자주 듣는 곡 없음 + 자주 듣는 음악들이 여기에 표시됩니다. + 최근에 추가된 곡 없음 + 지난 한 달 동안 추가된 음악들이 여기에 표시됩니다. + 음악 없음 + 컴퓨터에서 기기로 음악을 복사하려면 USB 케이블을 사용하십시오. + 대기열에 노래 없음 + 노래를 재생 대기열에 추가하려면 노래, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \"대기열에 추가\"를 선택하십시오. + %1$s 트랙을 재생할 수 없음 + 알 수 없는 연도 + 30초 미만 + 30-60초 + 1-2분 + 2-3분 + 3-4분 + 4-5분 + 5-10분 + 10-30분 + 30-60분 + 60분 초과 + 1곡의 음악 + 2-4곡의 음악 + 5-9곡의 음악 + 10곡 이상의 음악 + 5개 이상의 앨범 + "기타" + 모든 아티스트 보기 + 모든 앨범 보기 + 모든 음악 보기 + 모든 재생목록 보기 + 음악 검색 + 모든 \"%s\" 아티스트 + 모든 \"%s\" 앨범 + 모든 \"%s\" 음악 + 모든 \"%s\" 재생목록 + %1$s %2$s + 음악 재생 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 1b7f5b3..1a3c1fa 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -17,115 +17,101 @@ limitations under the License. --> - مۆسیقا - - تازه‌کان - هونەرمەند - ئەلبوم - گۆرانییەکان - لیستی لێدان - چه‌شنه‌کان - لێدانی ئێستا - لێدانی ڕیزکراو - - ئەلبوم - گۆرانیەکانی لوتکە - هەموو گۆرانیەکان - - ڕێکخستن - گه‌ڕان - ڕیزکراو - هه‌ڕه‌مه‌کی - لیستیلێدەری ڕیزکراو - ئەبلومی ڕیزکراو - هونەرمەندی ڕیزکراو - تراکی لوتکەی ڕیزکراو - لێدراوی تازەی ڕیزکراو - ڕیزکردنەوەی تازا زیادکراو - لێدانی هه‌مووی - ڕیزکردن به‌پێی - پاکردنەوەی خشتەکە - پاککردنه‌وه‌ی تازه‌کان - پاککردنه‌وه‌ی ڕیزه‌کان - پاشەکەوتکردنی ریزی ڕێزکراو بۆ لێدان - یه‌کسانکه‌ری ده‌نگ - - زیادکردن بۆ لێدراوه‌کان - زیادکردن بۆ ڕیزکراوه‌کان - سڕینه‌وه‌ له‌ تازه‌کان - سڕینه‌وه‌ له‌ ڕیزه‌کان - - A-Z - Z-A - هونه‌رمه‌ند - ئه‌لبوم - ساڵ - ماوه‌ - ڕۆژی زیادکردنی - لیستی تراکه‌کان - ژماره‌ی گۆرانییه‌کان - ژماره‌ی ئه‌لبومه‌کان - ناوی په‌ڕگه‌ - - دوایین زیادکردن - تازە لێدراو - تراکی لوتکەکانم - - لیستی لێدانی تازه‌ - پاشەکەوتکردن - لابردن - له‌جیاتیدانان - لیستی لێدانی %d - ناوی لیستی لێدان - دڵنیای له‌ سڕینه‌وه‌ی %s ؟ - ئه‌مه‌ دواتر ناتوانی بیگه‌ڕێنیته‌وه‌ - ئه‌مه‌ واته‌ سڕینه‌وه‌ی هه‌موو وێنه‌ خه‌زنکراوه‌کان به‌ گشتی - هه‌ڵبژاردنی وینه‌یه‌ک له‌ گه‌له‌ری - گه‌ڕانی گۆگڵ - به‌کارهێنانی وێنه‌ی سه‌ره‌تایی - به‌کارهێنانی وێنه‌ی کۆن - - لێدان - لێدانی داهاتوو - زیاتر له‌لایه‌ن هونه‌رمه‌نده‌وه‌ - ناوگۆڕین - سڕینه‌وه‌ - ده‌رهێنانی هونه‌ری ئه‌لبوم - ده‌رهێنانی وێنه‌ی هونه‌رمه‌ند - سڕینه‌وه‌ له‌ تازه‌کان - خستنه‌ سه‌ر زه‌نگ - سڕینه‌وه‌ له‌ لیستی لێدراوه‌کان - - لێدان - وه‌ستان - دواتر - پێشتر - هه‌ڕه‌مه‌کی - هه‌ڕه‌مه‌کی - دوبارەکردنەوە - دووباره‌کردنه‌وه‌ی هه‌مووی - دووباره‌کردنه‌وه‌ی یه‌کدانه‌ - - \'%s\' خستنه‌ سه‌ر زه‌نگ - ناوی لیستی لێدان گۆڕا - - ڕووکار - بیرگەی - داتا - سڕینه‌وه‌ی حه‌شارگه‌ - سڕینه‌وه‌ی هه‌موو وێنه‌ حه‌شارگه‌کان - دابه‌زاندن ته‌نیا له‌ڕێگه‌ی وایه‌رلێسه‌وه‌ - بۆ باڵانس نه‌بردنی سیمکارته‌که‌ت ، دابه‌زاندن مه‌که‌ له‌ڕێگه‌ی سیمکارته‌وه‌ - دابه‌زاندنی ئه‌لبومه‌ هونه‌رییه‌ ونبوه‌کان - دابه‌زاندنی وێنه‌ هونه‌رمه‌نده‌ ونبوه‌کان - - ئه‌پۆڵۆ:تازه‌ترین که‌ گوێلێگیراون - - یه‌کسانکه‌ری ده‌نگ ناکرێته‌وه‌. - بۆ له‌به‌رگرتنه‌وه‌ی گۆرانی له‌ کۆمپیوته‌ر بۆ ئامێره‌که‌ت ، کێبڵی USB به‌کاربهێنه‌. - هیچ ئه‌نجامێکی گه‌ڕان نه‌دۆزرایه‌وه‌ - ئه‌و گۆرانیانه‌ی په‌سه‌ندن له‌لات لێره‌ نیشان ده‌درێن. - ئه‌و ئه‌لبومانه‌ی که‌ گوێت لێگرتوون لێره‌ نیشان ئه‌درێن ، گۆرانی لێبده‌. - ئه‌و گۆرانیانه‌ی که‌ زیادکراون له‌ مانگی پێشوو لێره‌ نیشان ئه‌درێن. - + مۆسیقا + تازه‌کان + هونەرمەند + ئەلبوم + گۆرانییەکان + لیستی لێدان + چه‌شنه‌کان + لێدانی ئێستا + لێدانی ڕیزکراو + ئەلبوم + گۆرانیەکانی لوتکە + هەموو گۆرانیەکان + ڕێکخستن + گه‌ڕان + ڕیزکراو + هه‌ڕه‌مه‌کی + لیستیلێدەری ڕیزکراو + ئەبلومی ڕیزکراو + هونەرمەندی ڕیزکراو + تراکی لوتکەی ڕیزکراو + لێدراوی تازەی ڕیزکراو + ڕیزکردنەوەی تازا زیادکراو + لێدانی هه‌مووی + ڕیزکردن به‌پێی + پاکردنەوەی خشتەکە + پاککردنه‌وه‌ی تازه‌کان + پاککردنه‌وه‌ی ڕیزه‌کان + پاشەکەوتکردنی ریزی ڕێزکراو بۆ لێدان + یه‌کسانکه‌ری ده‌نگ + زیادکردن بۆ لێدراوه‌کان + زیادکردن بۆ ڕیزکراوه‌کان + سڕینه‌وه‌ له‌ تازه‌کان + سڕینه‌وه‌ له‌ ڕیزه‌کان + A-Z + Z-A + هونه‌رمه‌ند + ئه‌لبوم + ساڵ + ماوه‌ + ڕۆژی زیادکردنی + لیستی تراکه‌کان + ژماره‌ی گۆرانییه‌کان + ژماره‌ی ئه‌لبومه‌کان + ناوی په‌ڕگه‌ + دوایین زیادکردن + تازە لێدراو + تراکی لوتکەکانم + لیستی لێدانی تازه‌ + پاشەکەوتکردن + لابردن + له‌جیاتیدانان + لیستی لێدانی %d + ناوی لیستی لێدان + دڵنیای له‌ سڕینه‌وه‌ی %s ؟ + ئه‌مه‌ دواتر ناتوانی بیگه‌ڕێنیته‌وه‌ + ئه‌مه‌ واته‌ سڕینه‌وه‌ی هه‌موو وێنه‌ خه‌زنکراوه‌کان به‌ گشتی + هه‌ڵبژاردنی وینه‌یه‌ک له‌ گه‌له‌ری + گه‌ڕانی گۆگڵ + به‌کارهێنانی وێنه‌ی سه‌ره‌تایی + به‌کارهێنانی وێنه‌ی کۆن + لێدان + لێدانی داهاتوو + زیاتر له‌لایه‌ن هونه‌رمه‌نده‌وه‌ + ناوگۆڕین + سڕینه‌وه‌ + ده‌رهێنانی هونه‌ری ئه‌لبوم + ده‌رهێنانی وێنه‌ی هونه‌رمه‌ند + سڕینه‌وه‌ له‌ تازه‌کان + خستنه‌ سه‌ر زه‌نگ + سڕینه‌وه‌ له‌ لیستی لێدراوه‌کان + لێدان + وه‌ستان + دواتر + پێشتر + هه‌ڕه‌مه‌کی + هه‌ڕه‌مه‌کی + دوبارەکردنەوە + دووباره‌کردنه‌وه‌ی هه‌مووی + دووباره‌کردنه‌وه‌ی یه‌کدانه‌ + \'%s\' خستنه‌ سه‌ر زه‌نگ + ناوی لیستی لێدان گۆڕا + ڕووکار + بیرگەی + داتا + سڕینه‌وه‌ی حه‌شارگه‌ + سڕینه‌وه‌ی هه‌موو وێنه‌ حه‌شارگه‌کان + دابه‌زاندن ته‌نیا له‌ڕێگه‌ی وایه‌رلێسه‌وه‌ + بۆ باڵانس نه‌بردنی سیمکارته‌که‌ت ، دابه‌زاندن مه‌که‌ له‌ڕێگه‌ی سیمکارته‌وه‌ + دابه‌زاندنی ئه‌لبومه‌ هونه‌رییه‌ ونبوه‌کان + دابه‌زاندنی وێنه‌ هونه‌رمه‌نده‌ ونبوه‌کان + ئه‌پۆڵۆ:تازه‌ترین که‌ گوێلێگیراون + یه‌کسانکه‌ری ده‌نگ ناکرێته‌وه‌. + بۆ له‌به‌رگرتنه‌وه‌ی گۆرانی له‌ کۆمپیوته‌ر بۆ ئامێره‌که‌ت ، کێبڵی USB به‌کاربهێنه‌. + هیچ ئه‌نجامێکی گه‌ڕان نه‌دۆزرایه‌وه‌ + ئه‌و گۆرانیانه‌ی په‌سه‌ندن له‌لات لێره‌ نیشان ده‌درێن. + ئه‌و ئه‌لبومانه‌ی که‌ گوێت لێگرتوون لێره‌ نیشان ئه‌درێن ، گۆرانی لێبده‌. + ئه‌و گۆرانیانه‌ی که‌ زیادکراون له‌ مانگی پێشوو لێره‌ نیشان ئه‌درێن. diff --git a/app/src/main/res/values-lb/plurals.xml b/app/src/main/res/values-lb/plurals.xml index 88a09f9..660b711 100644 --- a/app/src/main/res/values-lb/plurals.xml +++ b/app/src/main/res/values-lb/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d Interpret - %d Interpreten - - - - %d Album - %d Alben - - - - %d Lidd - %d Lidder - - - - %d Genre - %d Genren - - - - %d St. - %d St. - - - - %d Min. - %d Min. - - - - %d Lidd an d\'Ofspilllëscht dobäigesat. - %d Lidder an d\'Ofspilllëscht dobäigesat. - - - - %d Lidd vun der Ofspilllëscht geläscht. - %d Lidder vun der Ofspilllëscht geläscht. - - - - %d Lidd an d\'Ofspilllëscht dobäigesat. - %d Lidder an d\'Ofspilllëscht dobäigesat. - - - - %d Lidd bei d\'Favoritten dobäigesat. - %d Lidder bei d\'Favoritten dobäigesat. - - - - %d Lidd gouf geläscht. - %d Lidder goufe geläscht. - + + %d Interpret + %d Interpreten + + + %d Album + %d Alben + + + %d Lidd + %d Lidder + + + %d Genre + %d Genren + + + %d St. + %d St. + + + %d Min. + %d Min. + + + %d Lidd an d\'Ofspilllëscht dobäigesat. + %d Lidder an d\'Ofspilllëscht dobäigesat. + + + %d Lidd vun der Ofspilllëscht geläscht. + %d Lidder vun der Ofspilllëscht geläscht. + + + %d Lidd an d\'Ofspilllëscht dobäigesat. + %d Lidder an d\'Ofspilllëscht dobäigesat. + + + %d Lidd bei d\'Favoritten dobäigesat. + %d Lidder bei d\'Favoritten dobäigesat. + + + %d Lidd gouf geläscht. + %d Lidder goufe geläscht. + diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index 065ff53..de629b9 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Musek - - Rezent - Interpreten - Alben - Musekstécker - Ofspilllëschten - Genren - Gëtt ofgespillt - Waardeschlaang ofspillen - - Alben - Top-Lidder - All d\'Lidder - - Astellungen - Sichen - Mëschen - All zoufälleg ofspillen - Ofspilllëscht mëschen - Album mëschen - Interpret mëschen - Top-Lidder mëschen - \"VIru kuerzem ofgespillt\" mëschen - \"Fir d\'lescht dobäigesat\" mëschen - All ofspillen - Zortéieren no - Lëscht eidel maachen - Rezent eidel maachen - Waardeschlaang eidel maachen - Waardeschläif an eng Ofspilllëscht späicheren - Equalizer - - An d\'Ofspilllëscht setzen - Un d\'Waardeschlaang hänken - Aus der \"Viru kuerzem gelauschtert\"-Lëscht läschen - Aus der Waardeschlaang läschen - - A-Z - Z-A - Interpret - Album - Joer - Dauer - Datum dobäigesat - Lidderlëscht - Unzuel u Museksstécker - Unzuel vun Alben - Fichiersnumm - - Fir d\'lescht dobäigesat - Viru kuerzem ofgespillt - Meng Top-Lidder - - Nei Ofspilllëscht - Späicheren - Ofbriechen - Iwwerschreiwen - Eidel maachen - Ofspilllëscht %d - Numm vun der Ofspilllëscht - %s läschen? - Top-Lidder eidel maachen? - Rezent ofgespillt eidel maachen? - \"Fir d\'lescht dobäigesat\" eidel maachen? - Dat kann net réckgängeg gemaach ginn - Heiduerch ginn all d\'tëschegespäichert Biller definitiv geläscht - Foto aus der Galerie auswielen - Google-Sich - Standardfoto benotzen - Al Foto benotzen - - Ofspillen - Als nächst ofspillen - Album ofspillen - Méi vun dësem Interpret - Ëmbenennen - Läschen - Album-Cover eroflueden - Interpretebild eroflueden - Aus der \"Viru kuerzem gelauschtert\"-Lëscht läschen - Als Schelltoun benotzen - Aus der Ofspilllëscht läschen - Bild änneren - - Ofspillen - Paus - Weider - Zréck - Mëschen - All mëschen - Widderhuelen - All widderhuelen - Eent widderhuelen - Waardeschlaang opmaachen - Musek duerchsichen - - \'%s\' als Schelltoun setzen - Ofspilllëscht ëmbenannt - - Interface - Späicher - Daten - Tëschespäicher läschen - All d\'tëschegespäichert Biller läschen - Just iwwer WLAN eroflueden - Fir Providerkäschten ze reduzéieren, net iwwer mobil Netzwierker eroflueden - Feelend Album-Coveren eroflueden - Feelend Interpretebiller eroflueden - Allgemeng - Musekvisualiséierung uweisen - Liddertexter uweisen - Fir Lidder déi en \"srt\"-Fichier hunn - Rësele fir opzespillen - Apparat rësele fir dat nächst Lidd ofzespillen - Album-Biller um Spärschierm - D\'Hannergrondbild um Spärschierm mam Album-Bild ersetzen - - Musek: 4 \u00d7 1 - Musek: 4 \u00d7 2 - Musek: 4 \u00d7 2 (alternativ) - Musek: viru kuerzem gelauschtert - - Den Equalizer konnt net opgemaach ginn. - Benotz en USB-Kabel fir Musek vun dengem Computer op den Apparat z\'iwwerdroen. - Keng Sichresultater fonnt - Iwwerpréif w.e.g., datt s du déi korrekt Schreifweis benotzt hues, oder probéier en anert Stéchwuert. - Lidder, déi s du als Favorit markéiert hues, ginn hei ugewisen. - Keng rezent Lidder - Lidder, déi s du viru kuerzem gelauschtert hues, ginn hei ugewisen. - Keng Lidder an der Ofspilllëscht - Fir Lidder an dës Ofspilllëscht ze setzen, dréck den Optiounsmenü op engem Lidd, Album oder Interpret, a wiel \"An d\'Ofspilllëscht setzen\" aus. - Keng Top-Lidder - D\'Lidder, déi s du am meeschte lauschters, ginn hei ugewisen. - Keng Lidder an der lescht dobäigesat - Lidder, déi s du de leschte Mount gelauschtert hues, ginn hei ugewisen. - Keng Musek fonnt - Benotz en USB-Kabel fir Musek vun dengem Computer op den Apparat z\'iwwerdroen. - Keng Lidder an der Waardeschlaang - Fir Lidder an d\'Waardeschlaang ze setzen, dréck den Optiounsmenü bei engem Lidd, Album oder Interpret, a wiel \"An d\'Waardeschlaang setzen\" aus. - Lidd %1$s kann net ofgespillt ginn - - Onbekannt Joer - Manner wéi 30 Sekonnen - 30-60 Sekonnen - 1-2 Minutten - 2-3 Minutten - 3-4 Minutten - 4-5 Minutten - 5-10 Minutten - 10-30 Minutten - 30-60 Minutten - Méi wéi 60 Minutten - 1 Lidd - 2-4 Lidder - 5-9 Lidder - 10 oder méi Lidder - 5 oder méi Alben - "Aner" - All d\'Interpreten uweisen - All d\'Alben uweisen - All d\'Lidder uweisen - All d\'Ofspilllëschten uweisen - Musek sichen - All \"%s\" Interpreten - All \"%s\" Alben - All \"%s\" Lidder - All \"%s\" Ofspilllëschten - %1$s %2$s + Musek + Rezent + Interpreten + Alben + Musekstécker + Ofspilllëschten + Genren + Gëtt ofgespillt + Waardeschlaang ofspillen + Alben + Top-Lidder + All d\'Lidder + Astellungen + Sichen + Mëschen + All zoufälleg ofspillen + Ofspilllëscht mëschen + Album mëschen + Interpret mëschen + Top-Lidder mëschen + \"VIru kuerzem ofgespillt\" mëschen + \"Fir d\'lescht dobäigesat\" mëschen + All ofspillen + Zortéieren no + Lëscht eidel maachen + Rezent eidel maachen + Waardeschlaang eidel maachen + Waardeschläif an eng Ofspilllëscht späicheren + Equalizer + An d\'Ofspilllëscht setzen + Un d\'Waardeschlaang hänken + Aus der \"Viru kuerzem gelauschtert\"-Lëscht läschen + Aus der Waardeschlaang läschen + A-Z + Z-A + Interpret + Album + Joer + Dauer + Datum dobäigesat + Lidderlëscht + Unzuel u Museksstécker + Unzuel vun Alben + Fichiersnumm + Fir d\'lescht dobäigesat + Viru kuerzem ofgespillt + Meng Top-Lidder + Nei Ofspilllëscht + Späicheren + Ofbriechen + Iwwerschreiwen + Eidel maachen + Ofspilllëscht %d + Numm vun der Ofspilllëscht + %s läschen? + Top-Lidder eidel maachen? + Rezent ofgespillt eidel maachen? + \"Fir d\'lescht dobäigesat\" eidel maachen? + Dat kann net réckgängeg gemaach ginn + Heiduerch ginn all d\'tëschegespäichert Biller definitiv geläscht + Foto aus der Galerie auswielen + Google-Sich + Standardfoto benotzen + Al Foto benotzen + Ofspillen + Als nächst ofspillen + Album ofspillen + Méi vun dësem Interpret + Ëmbenennen + Läschen + Album-Cover eroflueden + Interpretebild eroflueden + Aus der \"Viru kuerzem gelauschtert\"-Lëscht läschen + Als Schelltoun benotzen + Aus der Ofspilllëscht läschen + Bild änneren + Ofspillen + Paus + Weider + Zréck + Mëschen + All mëschen + Widderhuelen + All widderhuelen + Eent widderhuelen + Waardeschlaang opmaachen + Musek duerchsichen + \'%s\' als Schelltoun setzen + Ofspilllëscht ëmbenannt + Interface + Späicher + Daten + Tëschespäicher läschen + All d\'tëschegespäichert Biller läschen + Just iwwer WLAN eroflueden + Fir Providerkäschten ze reduzéieren, net iwwer mobil Netzwierker eroflueden + Feelend Album-Coveren eroflueden + Feelend Interpretebiller eroflueden + Allgemeng + Musekvisualiséierung uweisen + Liddertexter uweisen + Fir Lidder déi en \"srt\"-Fichier hunn + Rësele fir opzespillen + Apparat rësele fir dat nächst Lidd ofzespillen + Album-Biller um Spärschierm + D\'Hannergrondbild um Spärschierm mam Album-Bild ersetzen + Musek: 4 \u00d7 1 + Musek: 4 \u00d7 2 + Musek: 4 \u00d7 2 (alternativ) + Musek: viru kuerzem gelauschtert + Den Equalizer konnt net opgemaach ginn. + Benotz en USB-Kabel fir Musek vun dengem Computer op den Apparat z\'iwwerdroen. + Keng Sichresultater fonnt + Iwwerpréif w.e.g., datt s du déi korrekt Schreifweis benotzt hues, oder probéier en anert Stéchwuert. + Lidder, déi s du als Favorit markéiert hues, ginn hei ugewisen. + Keng rezent Lidder + Lidder, déi s du viru kuerzem gelauschtert hues, ginn hei ugewisen. + Keng Lidder an der Ofspilllëscht + Fir Lidder an dës Ofspilllëscht ze setzen, dréck den Optiounsmenü op engem Lidd, Album oder Interpret, a wiel \"An d\'Ofspilllëscht setzen\" aus. + Keng Top-Lidder + D\'Lidder, déi s du am meeschte lauschters, ginn hei ugewisen. + Keng Lidder an der lescht dobäigesat + Lidder, déi s du de leschte Mount gelauschtert hues, ginn hei ugewisen. + Keng Musek fonnt + Benotz en USB-Kabel fir Musek vun dengem Computer op den Apparat z\'iwwerdroen. + Keng Lidder an der Waardeschlaang + Fir Lidder an d\'Waardeschlaang ze setzen, dréck den Optiounsmenü bei engem Lidd, Album oder Interpret, a wiel \"An d\'Waardeschlaang setzen\" aus. + Lidd %1$s kann net ofgespillt ginn + Onbekannt Joer + Manner wéi 30 Sekonnen + 30-60 Sekonnen + 1-2 Minutten + 2-3 Minutten + 3-4 Minutten + 4-5 Minutten + 5-10 Minutten + 10-30 Minutten + 30-60 Minutten + Méi wéi 60 Minutten + 1 Lidd + 2-4 Lidder + 5-9 Lidder + 10 oder méi Lidder + 5 oder méi Alben + "Aner" + All d\'Interpreten uweisen + All d\'Alben uweisen + All d\'Lidder uweisen + All d\'Ofspilllëschten uweisen + Musek sichen + All \"%s\" Interpreten + All \"%s\" Alben + All \"%s\" Lidder + All \"%s\" Ofspilllëschten + %1$s %2$s diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index c290bc7..124911d 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Muzika - - Nauja - Atlikėjai - Albumai - Dainos - Grojaraščiai - Žanrai - Dabar leidžiama - Paleisti eilėje - - Albumai - Top dainos - Visos dainos - - Nustatymai - Paieška - Maišyti - Maišyti viską - Maišyti grojaraštį - Maišyti albumą - Maišyti atlikėją - Maišyti top takelius - Maišyti naujausiai leistas - Maišyti neseniai pridėtas - Paleisti viską - Rūšiuoti pagal - Išvalyti sąrašą - Išvalyti naujausias - Išvalyti eilę - Išsaugoti eilę į grojaraštį - Vienodintuvas - - Pridėti į grojaraštį - Pridėti į eilę - Pašalinti iš naujausių - Pašalinti iš eilės - - A - Z - Z - A - Atlikėją - Albumą - Metus - Trukmę - Pridėjimo datą - Takelių sąrašą - Dainų skaičių - Albumų skaičių - Failo pavadinimą - - Neseniai pridėta - Naujausiai leista - Mano top takeliai - - Naujas grojaraštis - Išsaugoti - Atšaukti - Perrašyti - Išvalyti - Grojaraštis %d - Grojaraščio pavadinimas - Ištrinti %s? - Išvalyti top takelius? - Išvalyti naujausiai grotas? - Išvalyti neseniai pridėtas? - Tai negali būti atšaukta - Visam laikui bus ištrinti talpyklos vaizdo įrašai - Pasirinkite nuotrauką iš galerijos - „Google“ paieška - Naudoti numatytąją nuotrauką - Naudoti seną nuotrauką - - Paleisti - Paleisti kitą - Paleisti albumą - Daugiau pagal atlikėją - Pervardyti - Ištrinti - Atsisiųsti albumo viršelį - Atsisiųsti atlikėjo vaizdą - Pašalinti iš naujausių - Naudoti kaip skambėjimo toną - Pašalinti iš grojaraščio - Pakeisti vaizdą - - Paleisti - Sustabdyti - Kitas - Ankstesnis - Maišyti - Maišyti viską - Pakartoti - Pakartoti visus - Pakartoti vieną - Atidaryti eilę - Naršyti muziką - - %s“ nustatytas kaip skambėjimo tonas - Grojaraštis pervardytas - - Sąsaja - Saugykla - Duomenys - Ištrinti talpyklą - Pašalinti visus talpyklos vaizdus - Atsisiųsti tik per „Wi-Fi“ - Siekiant sumažinti operatoriaus mokesčius nesisiųsti per mobiliojio ryšio tinklus - Atsisiųsti trūkstamus albumo viršelius - Atsisiųsti trūkstamus atlikėjų vaizdus - Bendra - Rodyti muzikos vizualizaciją - Rodyti dainos žodžius - Dėl dainų, kurios turi srt failą - Purtyti, kad paleisti - Purtyti įrenginį, kad paleisti kitą takelį - Ekrano užrakto albumo viršelis - Pakeisti ekrano užrakto foną į albumo viršelį - - Muzika: 4 \u00d7 1 - Muzika: 4 \u00d7 2 - Muzika: 4 \u00d7 2 (pakaitinis) - Muzika: naujausiai klausyta - - Nepavyko atidaryti vienodintuvo. - Kad kopijuotumėte muziką iš kompiuterio į savo įrenginį, naudokite USB kabelį. - Nerasta jokių paieškos rezultatų - Patikrinkite, kad turite teisingą rašybą arba bandykite kitą raktažodį. - Dainas, kurias pažymite kaip mėgstamas bus rodomos čia. - Nėra naujausių dainų - Naujausiai klausytos dainos bus rodomos čia. - Nėra dainų grojaraštyje - Kad pridėtumėte dainas į šį grojaraštį, bakstelėkite meniu parinktį ant dainos, albumo arba atlikėjo ir pasirinkite „Pridėti į grojaraštį“. - Nėra top takelių - Dainas, kurias klausėte daugiausiai bus pridėtos į šį sąrašą. - Nėra naujausiai pridėtų dainų - Dainas, kurias pridėjote per pastarąjį mėnesį bus rodomos čia. - Muzikos nerasta - Kad kopijuotumėte muziką iš kompiuterio į savo įrenginį, naudokite USB kabelį. - Nėra dainų eilėje - Kad pridėtumėte dainas į eilę, bakstelėkite meniu parinktį ant dainos, albumo arba atlikėjo ir pasirinkite „Pridėti į eilę“. - Nepavyko paleisti takelio %1$s - - Nežinomi metai - Mažiau nei 30 sek. - 30 - 60 sek. - 1 - 2 min. - 2 - 3 min. - 3 - 4 min. - 4 - 5 min. - 5 - 10 min. - 10 - 30 min. - 30 - 60 min. - Daugiau nei 60 min. - 1 daina - 2 - 4 dainos - 5 - 9 dainos - 10+ dainų - 5+ albumai - "Kita" - Rodyti visus atlikėjus - Rodyti visus albumus - Rodyti visas dainas - Rodyti visus grojaraščius - Ieškoti muzikos - Visi \"%s\" atlikėjai - Visi \"%s\" albumai - Visos \"%s\" dainos - Visi \"%s\" grojaraščiai - %1$s %2$s + Muzika + Nauja + Atlikėjai + Albumai + Dainos + Grojaraščiai + Žanrai + Dabar leidžiama + Paleisti eilėje + Albumai + Top dainos + Visos dainos + Nustatymai + Paieška + Maišyti + Maišyti viską + Maišyti grojaraštį + Maišyti albumą + Maišyti atlikėją + Maišyti top takelius + Maišyti naujausiai leistas + Maišyti neseniai pridėtas + Paleisti viską + Rūšiuoti pagal + Išvalyti sąrašą + Išvalyti naujausias + Išvalyti eilę + Išsaugoti eilę į grojaraštį + Vienodintuvas + Pridėti į grojaraštį + Pridėti į eilę + Pašalinti iš naujausių + Pašalinti iš eilės + A - Z + Z - A + Atlikėją + Albumą + Metus + Trukmę + Pridėjimo datą + Takelių sąrašą + Dainų skaičių + Albumų skaičių + Failo pavadinimą + Neseniai pridėta + Naujausiai leista + Mano top takeliai + Naujas grojaraštis + Išsaugoti + Atšaukti + Perrašyti + Išvalyti + Grojaraštis %d + Grojaraščio pavadinimas + Ištrinti %s? + Išvalyti top takelius? + Išvalyti naujausiai grotas? + Išvalyti neseniai pridėtas? + Tai negali būti atšaukta + Visam laikui bus ištrinti talpyklos vaizdo įrašai + Pasirinkite nuotrauką iš galerijos + „Google“ paieška + Naudoti numatytąją nuotrauką + Naudoti seną nuotrauką + Paleisti + Paleisti kitą + Paleisti albumą + Daugiau pagal atlikėją + Pervardyti + Ištrinti + Atsisiųsti albumo viršelį + Atsisiųsti atlikėjo vaizdą + Pašalinti iš naujausių + Naudoti kaip skambėjimo toną + Pašalinti iš grojaraščio + Pakeisti vaizdą + Paleisti + Sustabdyti + Kitas + Ankstesnis + Maišyti + Maišyti viską + Pakartoti + Pakartoti visus + Pakartoti vieną + Atidaryti eilę + Naršyti muziką + %s“ nustatytas kaip skambėjimo tonas + Grojaraštis pervardytas + Sąsaja + Saugykla + Duomenys + Ištrinti talpyklą + Pašalinti visus talpyklos vaizdus + Atsisiųsti tik per „Wi-Fi“ + Siekiant sumažinti operatoriaus mokesčius nesisiųsti per mobiliojio ryšio tinklus + Atsisiųsti trūkstamus albumo viršelius + Atsisiųsti trūkstamus atlikėjų vaizdus + Bendra + Rodyti muzikos vizualizaciją + Rodyti dainos žodžius + Dėl dainų, kurios turi srt failą + Purtyti, kad paleisti + Purtyti įrenginį, kad paleisti kitą takelį + Ekrano užrakto albumo viršelis + Pakeisti ekrano užrakto foną į albumo viršelį + Muzika: 4 \u00d7 1 + Muzika: 4 \u00d7 2 + Muzika: 4 \u00d7 2 (pakaitinis) + Muzika: naujausiai klausyta + Nepavyko atidaryti vienodintuvo. + Kad kopijuotumėte muziką iš kompiuterio į savo įrenginį, naudokite USB kabelį. + Nerasta jokių paieškos rezultatų + Patikrinkite, kad turite teisingą rašybą arba bandykite kitą raktažodį. + Dainas, kurias pažymite kaip mėgstamas bus rodomos čia. + Nėra naujausių dainų + Naujausiai klausytos dainos bus rodomos čia. + Nėra dainų grojaraštyje + Kad pridėtumėte dainas į šį grojaraštį, bakstelėkite meniu parinktį ant dainos, albumo arba atlikėjo ir pasirinkite „Pridėti į grojaraštį“. + Nėra top takelių + Dainas, kurias klausėte daugiausiai bus pridėtos į šį sąrašą. + Nėra naujausiai pridėtų dainų + Dainas, kurias pridėjote per pastarąjį mėnesį bus rodomos čia. + Muzikos nerasta + Kad kopijuotumėte muziką iš kompiuterio į savo įrenginį, naudokite USB kabelį. + Nėra dainų eilėje + Kad pridėtumėte dainas į eilę, bakstelėkite meniu parinktį ant dainos, albumo arba atlikėjo ir pasirinkite „Pridėti į eilę“. + Nepavyko paleisti takelio %1$s + Nežinomi metai + Mažiau nei 30 sek. + 30 - 60 sek. + 1 - 2 min. + 2 - 3 min. + 3 - 4 min. + 4 - 5 min. + 5 - 10 min. + 10 - 30 min. + 30 - 60 min. + Daugiau nei 60 min. + 1 daina + 2 - 4 dainos + 5 - 9 dainos + 10+ dainų + 5+ albumai + "Kita" + Rodyti visus atlikėjus + Rodyti visus albumus + Rodyti visas dainas + Rodyti visus grojaraščius + Ieškoti muzikos + Visi \"%s\" atlikėjai + Visi \"%s\" albumai + Visos \"%s\" dainos + Visi \"%s\" grojaraščiai + %1$s %2$s diff --git a/app/src/main/res/values-lv/plurals.xml b/app/src/main/res/values-lv/plurals.xml index ef2ae00..1c7a370 100644 --- a/app/src/main/res/values-lv/plurals.xml +++ b/app/src/main/res/values-lv/plurals.xml @@ -17,70 +17,59 @@ limitations under the License. --> - - - %d izpildītājs - %d izpildītājs - %d izpildītāji - - - - %d albums - %d albums - %d albumi - - - - %d dziesma - %d dziesma - %d dziesmas - - - - %d žanrs - %d žanrs - %d žanri - - - - %dh - %dh - %dh - - - - %dm - %dm - %dm - - - - %d dziesma pievienota atskaņošanas sarakstam. - %d dziesma pievienota atskaņošanas sarakstam. - %d dziesmas pievienota atskaņošanas sarakstam. - - - - %d dziesma noņemta no atskaņošanas saraksta. - %d dziesma noņemta no atskaņošanas saraksta. - %d dziesmas noņemtas no atskaņošanas saraksta. - - - - %d dziesma pievienota rindai. - %d dziesma pievienota rindai. - %d dziesmas pievienotas rindai. - - - - %d dziesma pievienota favorītiem. - %d dziesma pievienota favorītiem. - %d dziesmas pievienotas favorītiem. - - - - %d dziesma izdzēsta. - %d dziesma izdzēsta. - %d dziesmas izdzēstas. - + + %d izpildītājs + %d izpildītājs + %d izpildītāji + + + %d albums + %d albums + %d albumi + + + %d dziesma + %d dziesma + %d dziesmas + + + %d žanrs + %d žanrs + %d žanri + + + %dh + %dh + %dh + + + %dm + %dm + %dm + + + %d dziesma pievienota atskaņošanas sarakstam. + %d dziesma pievienota atskaņošanas sarakstam. + %d dziesmas pievienota atskaņošanas sarakstam. + + + %d dziesma noņemta no atskaņošanas saraksta. + %d dziesma noņemta no atskaņošanas saraksta. + %d dziesmas noņemtas no atskaņošanas saraksta. + + + %d dziesma pievienota rindai. + %d dziesma pievienota rindai. + %d dziesmas pievienotas rindai. + + + %d dziesma pievienota favorītiem. + %d dziesma pievienota favorītiem. + %d dziesmas pievienotas favorītiem. + + + %d dziesma izdzēsta. + %d dziesma izdzēsta. + %d dziesmas izdzēstas. + diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 86ca985..e394b5b 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -17,167 +17,153 @@ limitations under the License. --> - Mūzika - - Nesenie - Izpildītāji - Albumi - Dziesmas - Atskaņošanas saraksti - Žanri - Šobrīd atskaņo - Atskaņošanas rinda - - Albumi - Labākās dziesmas - Visas dziesmas - - Iestatījumi - Meklēt - Jaukt - Jaukt visu - Jaukt atskaņošanas sarakstu - Jaukt albumu - Jaukt mākslinieku - Jaukt labākās dziesmas - Jaukt nesen atskaņoto - Jaukt nesen pievienoto - Atskaņot visu - Kārtot pēc - Notīrīt sarakstu - Notīrīt nesenos - Notīrīt rindu - Ekvalaizers - - Pievienot atskaņošanas sarakstam - Pievienot rindai - Izņemt no nesenajiem - Izņemt no rindas - - A-Z - Z-A - Izpildītājs - Albums - Gads - Ilgums - Pievienošanas datums - Dziesmu saraksts - Dziesmu skaits - Albumu skaits - Faila nosaukums - - Pēdējais pievienotais - Nesen atskaņotais - Manas top dziesmas - - Jauns atskaņošanas saraksts - Saglabāt - Atcelt - Pārrakstīt - Notīrīt - Atskaņošanas sarakts %d - Atskaņošanas saraksta nosaukums - Dzēst %s ? - Notīrīt labākās dziesmas? - Notīrīt nesen atskaņoto? - Notīrīt nesen pievienoto? - To nevar atsaukt - Kešoto attēlu ieraksti tiks dzēsti neatgriezeniski - Izvēlēties foto no galerijas - Google meklēšana - Izmantot noklusēto foto - Izmantot agrāko foto - - Atskaņot - Atskaņot nākamo - Vairāk no izpildītāja - Pārsaukt - Dzēst - Ielādēt albuma vāku - Ielādēt izpildītaja attēlu - Izņemt no nesenajiem - Izmantot kā zvana signālu - Izņemt no atskaņošanas saraksta - Mainīt attēlu - - Atskaņot - Apturēt - Nākamais - Iepriekšējais - Jaukt - Jaukt visu - Atkārtot - Atkārtot visu - Atkārtot vienu - Atvērt rindu - Pārlūkot mūziku - - \'%s\' ir uzstadīts kā zvana signāls - Atskaņošanas saraksts ir pārsaukts - - Izskats - Krātuve - Dati - Dzēst kešatmiņu - Dzēst visas kešotās bildes - lejuplādēt tikai caur Wi-Fi - Lai mazinātu izmaksas, neveikt lejuplādi, izmantojot mobilo tīklu - Lejuplādēt trūkstošo albuma noformējumu - Lejuplādēt trūkstošos izpildītāju attēlus - Vispārīgi - Rādīt mūzikas vizualizāciju - Rādīt dziesmu vārdus - Dziesmām kam ir srt fails - - Mūzika: 4 \u00d7 1 - Mūzika: 4 \u00d7 2 - Mūzika: 4 \u00d7 2 (alternatīvā) - Mūzika: nesen klaustītie - - Ekvalaizeru nevar atvērt. - Lai kopētu mūziku no datora uz šo iekārtu, izmantojiet USB kabeli. - Nekas netika atrasts - Lūdzu, pārbaudiet vārda pareizrakstību vai izmantojiet citu atslēgvārdu. - Izlasei pievienotās dziesmas tiks parādītas šeit. - Nav neseno dziesmu - Nesen klausītās dziesmas tiks parādītas šeit. - Atskaņošanas sarakstā nav dziesmu - Lai šim atskaņošanas sarakstam pievienotu dziesmas, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \"Pievienot atskaņošanas sarakstam\". - Nav labāko dziesmu - Jūsu biežāk klausītās dziesmas tiks pievienotas šim sarakstam. - Nav nesen pievienotu dziesmu - Šeit tiks parādītas pēdējā mēneša laikā pievienotās dziesmas. - Nav atrasta mūzika - Lai kopētu mūziku no datora uz šo iekārtu, izmantojiet USB kabeli. - Atskaņošanas rindā nav dziesmu - Lai pievienotu dziesmas atskaņošanas rindai, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \"Pievienot rindai\". - Nevar atskaņot dziesmu %1$s - - Nezināms gads - Mazāk kā 30 sekundes - 30 - 60 sekundes - 1 - 2 minūtes - 2 - 3 minūtes - 3 - 4 minūtes - 4 - 5 minūtes - 5 - 10 minūtes - 10 - 30 minūtes - 30 - 60 minūtes - Vairāk par 60 minūtēm - 1 dziesma - 2 - 4 dziesmas - 5 - 9 dziesmas - 10 + dziesmas - 5 + albumi - "Cits" - Parādīt visus māksliniekus - Parādīt visus albumus - Rādīt visas dziesmas - Parādīt visus atskaņošanas sarakstus - Meklēt mūziku - Visi \"%s\" mākslinieki - Visi \"%s\" albumi - Visas \"%s\" dziesmas - Visi \"%s\" atskaņošanas saraksti - %1$s %2$s + Mūzika + Nesenie + Izpildītāji + Albumi + Dziesmas + Atskaņošanas saraksti + Žanri + Šobrīd atskaņo + Atskaņošanas rinda + Albumi + Labākās dziesmas + Visas dziesmas + Iestatījumi + Meklēt + Jaukt + Jaukt visu + Jaukt atskaņošanas sarakstu + Jaukt albumu + Jaukt mākslinieku + Jaukt labākās dziesmas + Jaukt nesen atskaņoto + Jaukt nesen pievienoto + Atskaņot visu + Kārtot pēc + Notīrīt sarakstu + Notīrīt nesenos + Notīrīt rindu + Ekvalaizers + Pievienot atskaņošanas sarakstam + Pievienot rindai + Izņemt no nesenajiem + Izņemt no rindas + A-Z + Z-A + Izpildītājs + Albums + Gads + Ilgums + Pievienošanas datums + Dziesmu saraksts + Dziesmu skaits + Albumu skaits + Faila nosaukums + Pēdējais pievienotais + Nesen atskaņotais + Manas top dziesmas + Jauns atskaņošanas saraksts + Saglabāt + Atcelt + Pārrakstīt + Notīrīt + Atskaņošanas sarakts %d + Atskaņošanas saraksta nosaukums + Dzēst %s ? + Notīrīt labākās dziesmas? + Notīrīt nesen atskaņoto? + Notīrīt nesen pievienoto? + To nevar atsaukt + Kešoto attēlu ieraksti tiks dzēsti neatgriezeniski + Izvēlēties foto no galerijas + Google meklēšana + Izmantot noklusēto foto + Izmantot agrāko foto + Atskaņot + Atskaņot nākamo + Vairāk no izpildītāja + Pārsaukt + Dzēst + Ielādēt albuma vāku + Ielādēt izpildītaja attēlu + Izņemt no nesenajiem + Izmantot kā zvana signālu + Izņemt no atskaņošanas saraksta + Mainīt attēlu + Atskaņot + Apturēt + Nākamais + Iepriekšējais + Jaukt + Jaukt visu + Atkārtot + Atkārtot visu + Atkārtot vienu + Atvērt rindu + Pārlūkot mūziku + \'%s\' ir uzstadīts kā zvana signāls + Atskaņošanas saraksts ir pārsaukts + Izskats + Krātuve + Dati + Dzēst kešatmiņu + Dzēst visas kešotās bildes + lejuplādēt tikai caur Wi-Fi + Lai mazinātu izmaksas, neveikt lejuplādi, izmantojot mobilo tīklu + Lejuplādēt trūkstošo albuma noformējumu + Lejuplādēt trūkstošos izpildītāju attēlus + Vispārīgi + Rādīt mūzikas vizualizāciju + Rādīt dziesmu vārdus + Dziesmām kam ir srt fails + Mūzika: 4 \u00d7 1 + Mūzika: 4 \u00d7 2 + Mūzika: 4 \u00d7 2 (alternatīvā) + Mūzika: nesen klaustītie + Ekvalaizeru nevar atvērt. + Lai kopētu mūziku no datora uz šo iekārtu, izmantojiet USB kabeli. + Nekas netika atrasts + Lūdzu, pārbaudiet vārda pareizrakstību vai izmantojiet citu atslēgvārdu. + Izlasei pievienotās dziesmas tiks parādītas šeit. + Nav neseno dziesmu + Nesen klausītās dziesmas tiks parādītas šeit. + Atskaņošanas sarakstā nav dziesmu + Lai šim atskaņošanas sarakstam pievienotu dziesmas, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \"Pievienot atskaņošanas sarakstam\". + Nav labāko dziesmu + Jūsu biežāk klausītās dziesmas tiks pievienotas šim sarakstam. + Nav nesen pievienotu dziesmu + Šeit tiks parādītas pēdējā mēneša laikā pievienotās dziesmas. + Nav atrasta mūzika + Lai kopētu mūziku no datora uz šo iekārtu, izmantojiet USB kabeli. + Atskaņošanas rindā nav dziesmu + Lai pievienotu dziesmas atskaņošanas rindai, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \"Pievienot rindai\". + Nevar atskaņot dziesmu %1$s + Nezināms gads + Mazāk kā 30 sekundes + 30 - 60 sekundes + 1 - 2 minūtes + 2 - 3 minūtes + 3 - 4 minūtes + 4 - 5 minūtes + 5 - 10 minūtes + 10 - 30 minūtes + 30 - 60 minūtes + Vairāk par 60 minūtēm + 1 dziesma + 2 - 4 dziesmas + 5 - 9 dziesmas + 10 + dziesmas + 5 + albumi + "Cits" + Parādīt visus māksliniekus + Parādīt visus albumus + Rādīt visas dziesmas + Parādīt visus atskaņošanas sarakstus + Meklēt mūziku + Visi \"%s\" mākslinieki + Visi \"%s\" albumi + Visas \"%s\" dziesmas + Visi \"%s\" atskaņošanas saraksti + %1$s %2$s diff --git a/app/src/main/res/values-ml/plurals.xml b/app/src/main/res/values-ml/plurals.xml index a267785..4aa1827 100644 --- a/app/src/main/res/values-ml/plurals.xml +++ b/app/src/main/res/values-ml/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d കലാകാരന് - %d കലാകാരന്മാർ - - - - %d ആൽബം - %d ആൽബങ്ങളും - - - - %d പാട്ട് - %d പാട്ടുകൾ - - - - %dസംഗീത തരം - %dസംഗീത തരങ്ങൾ - - - - %d - %d - - - - %d - %d - - - - %d ഗാനം പ്ലേലിസ്റ്റിലേക്ക് ചേർത്തു. - %d പാട്ടുകൾ പ്ലേലിസ്റ്റിലേക്ക് ചേർത്തു. - - - - %d ഗാനം പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കം. - %d ഗാനം പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കം. - - - - %d ഗാനം ക്യൂ ചേർത്തു. - %d പാട്ടുകൾ ക്യൂ ചേർത്തു. - - - - %d പാട്ട് പ്രിയപ്പെട്ടവലേക്ക് ചേർത്തു. - %d പാട്ടുകൾ പ്രിയപ്പെട്ടവലേക്ക് ചേർത്തു. - - - - %d പാട്ട് ഡിലീറ്റ് ചെയ്തു. - %d പാട്ടുകൾ ഇല്ലാതാക്കി. - + + %d കലാകാരന് + %d കലാകാരന്മാർ + + + %d ആൽബം + %d ആൽബങ്ങളും + + + %d പാട്ട് + %d പാട്ടുകൾ + + + %dസംഗീത തരം + %dസംഗീത തരങ്ങൾ + + + %d + %d + + + %d + %d + + + %d ഗാനം പ്ലേലിസ്റ്റിലേക്ക് ചേർത്തു. + %d പാട്ടുകൾ പ്ലേലിസ്റ്റിലേക്ക് ചേർത്തു. + + + %d ഗാനം പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കം. + %d ഗാനം പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കം. + + + %d ഗാനം ക്യൂ ചേർത്തു. + %d പാട്ടുകൾ ക്യൂ ചേർത്തു. + + + %d പാട്ട് പ്രിയപ്പെട്ടവലേക്ക് ചേർത്തു. + %d പാട്ടുകൾ പ്രിയപ്പെട്ടവലേക്ക് ചേർത്തു. + + + %d പാട്ട് ഡിലീറ്റ് ചെയ്തു. + %d പാട്ടുകൾ ഇല്ലാതാക്കി. + diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index cbd3e0e..6640137 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - സംഗീതം - - അടുത്തിടെയുള്ളത് - ആർട്ടിസ്റ്റുകൾ - ആൽബങ്ങൾ - ഗാനങ്ങൾ - പ്ലേലിസ്റ്റുകൾ - വിഭാഗങ്ങൾ - ഇപ്പോൾ പ്ലേ ചെയ്യുന്നു - ക്യൂ പ്ലേ ചെയ്യുന്നു - - ആൽബങ്ങൾ - മുന്‍നിര ഗാനങ്ങൾ - ഗാനങ്ങൾ എല്ലാം - - ക്രമീകരണം - തിരയുക - ഷഫിൾ ചെയ്യുക - എല്ലാം ഷഫിൾ ചെയ്യുക - പ്ലേലിസ്റ്റ് ഷഫിൾ ചെയ്യുക - ആൽബം ഷഫിൾ ചെയ്യുക - ആർട്ടിസ്റ്റ് ഷഫിൾ ചെയ്യുക - മുനിര ട്രാക്കുകൾ ഷഫിൾ ചെയ്യുക - സമീപകാലത്ത് പ്ലേ ചെയ്തത് ഷഫിൾ ചെയ്യുക - അവസാനം ചേർത്തത് ഷഫിൾ ചെയ്യുക - എല്ലാം പ്ലേ ചെയ്യുക - ഇതുപ്രകാരം അടുക്കുക - ലിസ്റ്റ് മായ്‌ക്കുക - സമീപകാലത്തുള്ളത് മായ്ക്കുക - ക്യൂ മായ്ക്കുക - പ്ലേലിസ്റ്റിലേക്ക് ക്യൂ സംരക്ഷിക്കുക - ഇക്വലൈസർ - - പ്ലേലിസ്റ്റിൽ ചേർക്കുക - ക്യൂവിൽ ചേർക്കുക - സമീപകാലത്തുള്ളവയില്‍ നിന്ന് നീക്കം ചെയ്യുക - ക്യൂവിൽ നിന്ന് നീക്കം ചെയ്യുക - - A-Z - Z-A - ആർട്ടിസ്റ്റ് - ആൽബം - വര്‍ഷം - ദൈർഘ്യം - ചേർത്ത തീയതി - ട്രാക്ക് ലിസ്റ്റ് - ഗാനങ്ങളുടെ എണ്ണം - ആൽബങ്ങളും എണ്ണം - ഫയല്‍നാമം - - അവസാനം ചേർത്തത് - സമീപകാലത്ത് പ്ലേ ചെയ്തത് - എന്റെ മുന്‍നിര ട്രാക്കുകൾ - - പുതിയ പ്ലേലിസ്റ്റ് - സംരക്ഷിക്കുക - റദ്ദാക്കുക - പുനരാലേഖനം ചെയ്യുക - മായ്‌ക്കുക - പ്ലേലിസ്റ്റ് %d - പ്ലേലിസ്റ്റിന്റെ പേര് - %sഇല്ലാതാക്കണോ?? - ട്രാക്കുകൾ മായ്ക്കണോ? - സമീപകാലത്ത് പ്ലേ ചെയ്തത് മായ്ക്കണോ? - അവസാനം ചേർത്തത് മായ്ക്കണോ? - ഇത് പൂര്‍വ്വസ്ഥിതിയിലാക്കാന്‍ കഴിയില്ല - ഈ കാഷെ ചെയ്ത ഇമേജ് എൻട്രികൾ ശാശ്വതമായി ഇല്ലാതാക്കുന്നതാണ് - ഗാലറിയിൽ നിന്നും ഫോട്ടോ തിരഞ്ഞെടുക്കുക - ഗൂഗിള്‍ തിരയല്‍ - ഡിഫോള്‍ട്ട് ഫോട്ടോ ഉപയോഗിക്കുക - പഴയ ഫോട്ടോ ഉപയോഗിക്കുക - - പ്ലേ ചെയ്യുക - അടുത്തത് പ്ലേ ചെയ്യുക - ആൽബം പ്ലേ ചെയ്യുക - ആര്‍ട്ടിസ്റ്റില്‍ നിന്ന് കൂടുതൽ - പേരുമാറ്റുക - ഇല്ലാതാക്കുക - ആൽബം ആർട്ട് ലഭ്യമാക്കുക - ആർട്ടിസ്റ്റ് ചിത്രം ലഭ്യമാക്കുക - സമീപകാലത്തുള്ളവയില്‍ നിന്ന് നീക്കം ചെയ്യുക - റിംഗ്‌ടോൺ ആയി ഉപയോഗിക്കുക - പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കംചെയ്യുക - ചിത്രം മാറ്റുക - - പ്ലേ ചെയ്യുക - താൽക്കാലികമായി നിർത്തുക - അടുത്തത് - മുമ്പത്തെ - ഷഫിൾ ചെയ്യുക - എല്ലാം ഷഫിൾ ചെയ്യുക - ആവർത്തിക്കുക - എല്ലാം ആവർത്തിക്കുക - ഒരിക്കല്‍ ആവർത്തിക്കുക - ക്യൂ തുറക്കുക - സംഗീതം ബ്രൗസ് ചെയ്യുക - - \'%s\' റിംഗ്ടോൺ ആയി സജ്ജമാക്കി - പ്ലേലിസ്റ്റിന്റെ പേര് മാറ്റി - - ഇന്റർഫേസ് - സംഭരണം - ഡാറ്റ - കാഷെ ഇല്ലാതാക്കുക - കാഷെ ചെയ്ത ചിത്രങ്ങൾ എല്ലാം നീക്കം ചെയ്യുക - Wi-Fi വഴി മാത്രം ഡൗൺലോഡ് ചെയ്യുക - കാരിയർ നിരക്കുകൾ കുറയ്ക്കുന്നതിന്, മൊബൈൽ നെറ്റ്‌വർക്കുകൾ മുഖേന ഡൗൺലോഡ് ചെയ്യരുത് - നഷ്ടപ്പെട്ട ആൽബം ആർട്ട് ഡൗൺലോഡ് ചെയ്യുക - നഷ്ടപ്പെട്ട ആർട്ടിസ്റ്റ് ചിത്രങ്ങൾ ഡൗൺലോഡ് ചെയ്യുക - പൊതുവായത് - സംഗീത ദൃശ്യവത്ക്കരണം കാണിക്കുക - പാട്ടിന്റെ വരികൾ കാണിക്കുക - srt ഫയൽ ഉള്ള ഗാനങ്ങള്‍ക്ക് വേണ്ടിയുള്ളത് - പ്ലേ ചെയ്യാന്‍ കുലുക്കുക - അടുത്ത ഗാനം പ്ലേ ചെയ്യാന്‍ നിങ്ങളുടെ ഉപകരണം കുലുക്കുക - ലോക്ക് സ്ക്രീനിലേക്ക് ആൽബം ആർട്ട് - ആൽബം ആർട്ട് ഉപയോഗിച്ച് ലോക്ക് സ്ക്രീൻ പശ്ചാത്തലം പകരംവയ്ക്കുക - - സംഗീതം: 4 \u00d7 1 - സംഗീതം: 4 \u00d7 2 - സംഗീതം: 4 \u00d7 2 (ഇതരമാര്‍ഗ്ഗം) - സംഗീതം: സമീപകാലത്ത് കേട്ടത് - - ഈക്വലൈസര്‍ തുറക്കാൻ കഴിഞ്ഞില്ല. - നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് സംഗീതം പകർത്തുന്നതിന്, ഒരു USB കേബിൾ ഉപയോഗിക്കുക. - തിരയൽ ഫലങ്ങൾ ഒന്നും കണ്ടെത്തിയില്ല - ശരിയായ സ്പെല്ലിംഗ് നിങ്ങള്‍ക്കുണ്ടോയെന്ന്‍ പരിശോധിക്കുക. അല്ലെങ്കിൽ മറ്റൊരു കീവേഡ് ശ്രമിക്കുക. - പ്രിയപ്പെട്ടവയായി നിങ്ങള്‍ അടയാളപ്പെടുത്തുക ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. - സമീപകാലത്തുള്ള ഗാനങ്ങൾ ഇല്ല - നിങ്ങൾ അടുത്തിടെ കേട്ട ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. - പ്ലേലിസ്റ്റില്‍ ഗാനങ്ങൾ ഇല്ല - ഈ പ്ലേ ലിസ്റ്റിലേക്ക് ഗാനങ്ങള്‍ ചേര്‍ക്കാന്‍, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി \"പ്ലേ ലിസ്റ്റില്‍ ചേര്‍ക്കുക\" തിരഞ്ഞെടുക്കുക. - മുന്‍നിര ട്രാക്കുകൾ ഇല്ല - നിങ്ങൾ ഏറ്റവും കൂടുതല്‍ കേൾക്കുന്ന പാട്ടുകൾ ഈ ലിസ്റ്റിൽ ചേർക്കുന്നതാണ്. - സമീപകാലത്ത് ഗാനങ്ങൾ ചേർത്തില്ല - നിങ്ങൾ കഴിഞ്ഞ മാസം ചേർത്ത ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. - സംഗീതം കണ്ടെത്തിയില്ല - നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് സംഗീതം പകർത്തുന്നതിന്, ഒരു USB കേബിൾ ഉപയോഗിക്കുക. - പ്ലേ ക്യൂവിൽ ഗാനങ്ങൾ ഇല്ല - ഈ പ്ലേ ക്യൂവില്‍ ഗാനങ്ങള്‍ ചേർക്കാൻ, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി "ക്യൂവില്‍ ചേര്‍ക്കുക\" തിരഞ്ഞെടുക്കുക. - ട്രാക്ക് %1$s പ്ലേ ചെയ്യാൻ കഴിയുന്നില്ല - - അജ്ഞാതമായ വർഷം - 30 സെക്കൻഡിൽ താഴെ - 30 - 60 സെക്കൻഡ് - 1 - 2 മിനിറ്റ് - 2 - 3 മിനിറ്റ് - 3 - 4 മിനിറ്റ് - 4 - 5 മിനിറ്റ് - 5 - 10 മിനിറ്റ് - 10 - 30 മിനിറ്റ് - 30 - 60 മിനിറ്റ് - 60 മിനിറ്റിൽ കൂടുതൽ - 1 ഗാനം - 2 - 4 ഗാനങ്ങൾ - 5 - 9 ഗാനങ്ങൾ - 10+ ഗാനങ്ങൾ - 5+ ആൽബങ്ങൾ - ""മറ്റുള്ളവ"" - എല്ലാ ആര്‍ട്ടിസ്റ്റുകളെയും കാണിക്കുക - എല്ലാ ആൽബങ്ങളും കാണിക്കുക - എല്ലാ ഗാനങ്ങളും കാണിക്കുക - എല്ലാ പ്ലേലിസ്റ്റുകളും കാണിക്കുക - സംഗീതം തിരയുക - \"%s\" ആര്‍ട്ടിസ്റ്റുകള്‍ എല്ലാം - \"%s\" ആൽബങ്ങൾ എല്ലാം - \"%s\" പാട്ടുകൾ എല്ലാം - \"%s\" പ്ലേലിസ്റ്റുകൾ എല്ലാം - %1$s %2$s + സംഗീതം + അടുത്തിടെയുള്ളത് + ആർട്ടിസ്റ്റുകൾ + ആൽബങ്ങൾ + ഗാനങ്ങൾ + പ്ലേലിസ്റ്റുകൾ + വിഭാഗങ്ങൾ + ഇപ്പോൾ പ്ലേ ചെയ്യുന്നു + ക്യൂ പ്ലേ ചെയ്യുന്നു + ആൽബങ്ങൾ + മുന്‍നിര ഗാനങ്ങൾ + ഗാനങ്ങൾ എല്ലാം + ക്രമീകരണം + തിരയുക + ഷഫിൾ ചെയ്യുക + എല്ലാം ഷഫിൾ ചെയ്യുക + പ്ലേലിസ്റ്റ് ഷഫിൾ ചെയ്യുക + ആൽബം ഷഫിൾ ചെയ്യുക + ആർട്ടിസ്റ്റ് ഷഫിൾ ചെയ്യുക + മുനിര ട്രാക്കുകൾ ഷഫിൾ ചെയ്യുക + സമീപകാലത്ത് പ്ലേ ചെയ്തത് ഷഫിൾ ചെയ്യുക + അവസാനം ചേർത്തത് ഷഫിൾ ചെയ്യുക + എല്ലാം പ്ലേ ചെയ്യുക + ഇതുപ്രകാരം അടുക്കുക + ലിസ്റ്റ് മായ്‌ക്കുക + സമീപകാലത്തുള്ളത് മായ്ക്കുക + ക്യൂ മായ്ക്കുക + പ്ലേലിസ്റ്റിലേക്ക് ക്യൂ സംരക്ഷിക്കുക + ഇക്വലൈസർ + പ്ലേലിസ്റ്റിൽ ചേർക്കുക + ക്യൂവിൽ ചേർക്കുക + സമീപകാലത്തുള്ളവയില്‍ നിന്ന് നീക്കം ചെയ്യുക + ക്യൂവിൽ നിന്ന് നീക്കം ചെയ്യുക + A-Z + Z-A + ആർട്ടിസ്റ്റ് + ആൽബം + വര്‍ഷം + ദൈർഘ്യം + ചേർത്ത തീയതി + ട്രാക്ക് ലിസ്റ്റ് + ഗാനങ്ങളുടെ എണ്ണം + ആൽബങ്ങളും എണ്ണം + ഫയല്‍നാമം + അവസാനം ചേർത്തത് + സമീപകാലത്ത് പ്ലേ ചെയ്തത് + എന്റെ മുന്‍നിര ട്രാക്കുകൾ + പുതിയ പ്ലേലിസ്റ്റ് + സംരക്ഷിക്കുക + റദ്ദാക്കുക + പുനരാലേഖനം ചെയ്യുക + മായ്‌ക്കുക + പ്ലേലിസ്റ്റ് %d + പ്ലേലിസ്റ്റിന്റെ പേര് + %sഇല്ലാതാക്കണോ?? + ട്രാക്കുകൾ മായ്ക്കണോ? + സമീപകാലത്ത് പ്ലേ ചെയ്തത് മായ്ക്കണോ? + അവസാനം ചേർത്തത് മായ്ക്കണോ? + ഇത് പൂര്‍വ്വസ്ഥിതിയിലാക്കാന്‍ കഴിയില്ല + ഈ കാഷെ ചെയ്ത ഇമേജ് എൻട്രികൾ ശാശ്വതമായി ഇല്ലാതാക്കുന്നതാണ് + ഗാലറിയിൽ നിന്നും ഫോട്ടോ തിരഞ്ഞെടുക്കുക + ഗൂഗിള്‍ തിരയല്‍ + ഡിഫോള്‍ട്ട് ഫോട്ടോ ഉപയോഗിക്കുക + പഴയ ഫോട്ടോ ഉപയോഗിക്കുക + പ്ലേ ചെയ്യുക + അടുത്തത് പ്ലേ ചെയ്യുക + ആൽബം പ്ലേ ചെയ്യുക + ആര്‍ട്ടിസ്റ്റില്‍ നിന്ന് കൂടുതൽ + പേരുമാറ്റുക + ഇല്ലാതാക്കുക + ആൽബം ആർട്ട് ലഭ്യമാക്കുക + ആർട്ടിസ്റ്റ് ചിത്രം ലഭ്യമാക്കുക + സമീപകാലത്തുള്ളവയില്‍ നിന്ന് നീക്കം ചെയ്യുക + റിംഗ്‌ടോൺ ആയി ഉപയോഗിക്കുക + പ്ലേലിസ്റ്റിൽ നിന്നും നീക്കംചെയ്യുക + ചിത്രം മാറ്റുക + പ്ലേ ചെയ്യുക + താൽക്കാലികമായി നിർത്തുക + അടുത്തത് + മുമ്പത്തെ + ഷഫിൾ ചെയ്യുക + എല്ലാം ഷഫിൾ ചെയ്യുക + ആവർത്തിക്കുക + എല്ലാം ആവർത്തിക്കുക + ഒരിക്കല്‍ ആവർത്തിക്കുക + ക്യൂ തുറക്കുക + സംഗീതം ബ്രൗസ് ചെയ്യുക + \'%s\' റിംഗ്ടോൺ ആയി സജ്ജമാക്കി + പ്ലേലിസ്റ്റിന്റെ പേര് മാറ്റി + ഇന്റർഫേസ് + സംഭരണം + ഡാറ്റ + കാഷെ ഇല്ലാതാക്കുക + കാഷെ ചെയ്ത ചിത്രങ്ങൾ എല്ലാം നീക്കം ചെയ്യുക + Wi-Fi വഴി മാത്രം ഡൗൺലോഡ് ചെയ്യുക + കാരിയർ നിരക്കുകൾ കുറയ്ക്കുന്നതിന്, മൊബൈൽ നെറ്റ്‌വർക്കുകൾ മുഖേന ഡൗൺലോഡ് ചെയ്യരുത് + നഷ്ടപ്പെട്ട ആൽബം ആർട്ട് ഡൗൺലോഡ് ചെയ്യുക + നഷ്ടപ്പെട്ട ആർട്ടിസ്റ്റ് ചിത്രങ്ങൾ ഡൗൺലോഡ് ചെയ്യുക + പൊതുവായത് + സംഗീത ദൃശ്യവത്ക്കരണം കാണിക്കുക + പാട്ടിന്റെ വരികൾ കാണിക്കുക + srt ഫയൽ ഉള്ള ഗാനങ്ങള്‍ക്ക് വേണ്ടിയുള്ളത് + പ്ലേ ചെയ്യാന്‍ കുലുക്കുക + അടുത്ത ഗാനം പ്ലേ ചെയ്യാന്‍ നിങ്ങളുടെ ഉപകരണം കുലുക്കുക + ലോക്ക് സ്ക്രീനിലേക്ക് ആൽബം ആർട്ട് + ആൽബം ആർട്ട് ഉപയോഗിച്ച് ലോക്ക് സ്ക്രീൻ പശ്ചാത്തലം പകരംവയ്ക്കുക + സംഗീതം: 4 \u00d7 1 + സംഗീതം: 4 \u00d7 2 + സംഗീതം: 4 \u00d7 2 (ഇതരമാര്‍ഗ്ഗം) + സംഗീതം: സമീപകാലത്ത് കേട്ടത് + ഈക്വലൈസര്‍ തുറക്കാൻ കഴിഞ്ഞില്ല. + നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് സംഗീതം പകർത്തുന്നതിന്, ഒരു USB കേബിൾ ഉപയോഗിക്കുക. + തിരയൽ ഫലങ്ങൾ ഒന്നും കണ്ടെത്തിയില്ല + ശരിയായ സ്പെല്ലിംഗ് നിങ്ങള്‍ക്കുണ്ടോയെന്ന്‍ പരിശോധിക്കുക. അല്ലെങ്കിൽ മറ്റൊരു കീവേഡ് ശ്രമിക്കുക. + പ്രിയപ്പെട്ടവയായി നിങ്ങള്‍ അടയാളപ്പെടുത്തുക ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. + സമീപകാലത്തുള്ള ഗാനങ്ങൾ ഇല്ല + നിങ്ങൾ അടുത്തിടെ കേട്ട ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. + പ്ലേലിസ്റ്റില്‍ ഗാനങ്ങൾ ഇല്ല + ഈ പ്ലേ ലിസ്റ്റിലേക്ക് ഗാനങ്ങള്‍ ചേര്‍ക്കാന്‍, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി \"പ്ലേ ലിസ്റ്റില്‍ ചേര്‍ക്കുക\" തിരഞ്ഞെടുക്കുക. + മുന്‍നിര ട്രാക്കുകൾ ഇല്ല + നിങ്ങൾ ഏറ്റവും കൂടുതല്‍ കേൾക്കുന്ന പാട്ടുകൾ ഈ ലിസ്റ്റിൽ ചേർക്കുന്നതാണ്. + സമീപകാലത്ത് ഗാനങ്ങൾ ചേർത്തില്ല + നിങ്ങൾ കഴിഞ്ഞ മാസം ചേർത്ത ഗാനങ്ങൾ ഇവിടെ കാണിക്കുന്നതാണ്. + സംഗീതം കണ്ടെത്തിയില്ല + നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് സംഗീതം പകർത്തുന്നതിന്, ഒരു USB കേബിൾ ഉപയോഗിക്കുക. + പ്ലേ ക്യൂവിൽ ഗാനങ്ങൾ ഇല്ല + ഈ പ്ലേ ക്യൂവില്‍ ഗാനങ്ങള്‍ ചേർക്കാൻ, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി "ക്യൂവില്‍ ചേര്‍ക്കുക\" തിരഞ്ഞെടുക്കുക. + ട്രാക്ക് %1$s പ്ലേ ചെയ്യാൻ കഴിയുന്നില്ല + അജ്ഞാതമായ വർഷം + 30 സെക്കൻഡിൽ താഴെ + 30 - 60 സെക്കൻഡ് + 1 - 2 മിനിറ്റ് + 2 - 3 മിനിറ്റ് + 3 - 4 മിനിറ്റ് + 4 - 5 മിനിറ്റ് + 5 - 10 മിനിറ്റ് + 10 - 30 മിനിറ്റ് + 30 - 60 മിനിറ്റ് + 60 മിനിറ്റിൽ കൂടുതൽ + 1 ഗാനം + 2 - 4 ഗാനങ്ങൾ + 5 - 9 ഗാനങ്ങൾ + 10+ ഗാനങ്ങൾ + 5+ ആൽബങ്ങൾ + ""മറ്റുള്ളവ"" + എല്ലാ ആര്‍ട്ടിസ്റ്റുകളെയും കാണിക്കുക + എല്ലാ ആൽബങ്ങളും കാണിക്കുക + എല്ലാ ഗാനങ്ങളും കാണിക്കുക + എല്ലാ പ്ലേലിസ്റ്റുകളും കാണിക്കുക + സംഗീതം തിരയുക + \"%s\" ആര്‍ട്ടിസ്റ്റുകള്‍ എല്ലാം + \"%s\" ആൽബങ്ങൾ എല്ലാം + \"%s\" പാട്ടുകൾ എല്ലാം + \"%s\" പ്ലേലിസ്റ്റുകൾ എല്ലാം + %1$s %2$s diff --git a/app/src/main/res/values-mr/plurals.xml b/app/src/main/res/values-mr/plurals.xml index 12257b7..8533d8f 100644 --- a/app/src/main/res/values-mr/plurals.xml +++ b/app/src/main/res/values-mr/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d कलाकार - %d कलाकार - - - - %d अल्बम - %d अल्बम्स - - - - %d गाणे - %d गाणी - - - - %d जेनर - %d जेनर्स - - - - %dता - %dता - - - - %dमि - %dमि - - - - %d गाणे प्लेलिस्टमध्ये जोडले. - %d गाणी प्लेलिस्टमध्ये जोडली. - - - - %d गाणे प्लेलिस्टतून काढले. - %d गाणी प्लेलिस्टतून काढली. - - - - %d गाणे रांगेत जोडले. - %d गाणी रांगेत जोडली. - - - - %d गाणे मनपसंतमध्ये जोडले. - %d गाणी मनपसंतमध्ये जोडली. - - - - %d गाणे हटवले गेले. - %d गाणी हटवली गेली. - + + %d कलाकार + %d कलाकार + + + %d अल्बम + %d अल्बम्स + + + %d गाणे + %d गाणी + + + %d जेनर + %d जेनर्स + + + %dता + %dता + + + %dमि + %dमि + + + %d गाणे प्लेलिस्टमध्ये जोडले. + %d गाणी प्लेलिस्टमध्ये जोडली. + + + %d गाणे प्लेलिस्टतून काढले. + %d गाणी प्लेलिस्टतून काढली. + + + %d गाणे रांगेत जोडले. + %d गाणी रांगेत जोडली. + + + %d गाणे मनपसंतमध्ये जोडले. + %d गाणी मनपसंतमध्ये जोडली. + + + %d गाणे हटवले गेले. + %d गाणी हटवली गेली. + diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index 7c26d8d..2dc8bc0 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - संगीत - - अलीकडील - कलाकार - अल्बम्स - गाणी - प्लेलिस्ट - जेनेर्स - आता प्ले करत आहे - प्ले रांग - - अल्बम्स - सर्वोच्च गाणी - सर्व गाणी - - सेटिंग्ज - शोधा - शफल - सर्व शफल करा - प्लेलिस्ट शफल करा - अल्बम शफल करा - कलाकार शफल करा - सर्वोच्च ट्रॅक्स शफल करा - अलीकडेच प्ले केलेले शफल करा - शेवटचे जोडलेले शफल करा - सर्व प्ले करा - नुसार क्रमवारी लावा - सूची साफ करा - अलीकडील साफ करा - रांग साफ करा - रांग प्लेलिस्टमध्ये जतन करा - संतुलक - - प्लेलिस्टमध्ये जोडा - रांगेत जोडा - अलीकडील मधून काढा - रांगेतून काढा - - A-Z - Z-A - कलाकार - अल्बम - वर्ष - कालावधी - तारीख जोडली - ट्रॅक यादी - गाण्यांची संख्या - अल्बम्सची संख्या - फाइलनाव - - शेवटचे जोडले - अलीकडेच प्ले केले - माझे सर्वोच्च ट्रॅक्स - - नवीन प्लेलिस्ट - जतन करा - रद्द करा - खोडून त्याजागी लिहा - साफ करा - प्लेलिस्ट %d - प्लेलिस्ट नाव - %sहटवायचे? - सर्वोच ट्रॅक्स साफ करायचे? - अलीकडेच प्ले केलेले साफ करायचे? - शेवटचे जोडलेले साफ करायचे? - हे पुनर्स्थापित करता येत नाही - यामुळे कॅशे केलेल्या प्रतिमा प्रविष्ठी कायमस्वरूपी हटवल्या जातील - गॅलरीमधून फोटो निवडा - Google शोध - डिफॉल्ट फोटो वापरा - जुना फोटो वापरा - - प्ले करा - पुढील प्ले करा - अल्बम प्ले करा - कलाकाराकडून अधिक - पुनर्नामित करा - हटवायचे? - अल्बम कला मिळवा - कलाकार प्रतिमा मिळवा - अलीकडील मधून काढा - रींग टोन म्हणून वापरा - प्लेलिस्टतून काढा - प्रतिमा बदला - - प्ले करा - विराम द्या - पुढील - मागील - शफल - सर्व शफल करा - पुनरावृत्ती - सर्व पुनरावृत्ती करा - एक पुनरावृत्ती करा - रांग उघडा - संगीत ब्राउझ करा - - \'%s\' रींग टोन म्हणून सेट करा - प्लेलिस्ट पुनर्नामित केली - - इंटरफेस - संचयन - डेटा - कॅशे हटवा - सर्व कॅशे केलेल्या प्रतिमा काढा - फक्त Wi-Fi द्वारे डाउनलोड करा - वाहक शुल्क कमी करण्यासाठी, मोबाईल नेटवर्क्सवर डाउनलोड करू नका - गहाळ अल्बमकला डाउनलोड करा - गहाळ कलाकार प्रतिमा डाउनलोड करा - सामान्य - संगीत व्हिज्युअलायझेशन दर्शवा - गाण्याच्या शब्दरचना दर्शवा - srt फाइल असलेल्या गाण्यांसाठी - प्ले करण्यासाठी हलवा - पुढील गाणे प्ले करण्यासाठी तुमचे डिव्हाइस हलवा - लॉकस्क्रीन अल्बम कला - लॉकस्क्रीन पार्श्वभूमीच्या जागी अल्बम कला आणा - - संगीत: 4 \u00d7 1 - संगीत: 4 \u00d7 2 - संगीत: 4 \u00d7 2 (पर्यायी) - संगीत: अलीकडेच ऐकलेले - - इक्वेलायझर उघडता आला नाही. - तुमच्या कॉम्प्युटरवरून तुमच्या डिव्हाइसला कॉपी करण्यासाठी, एक USB केबल वापरा. - शोध निकाल आढळले नाहीत - तुमचे स्पेलिंग अचूक असल्याचे कृपया तपासा किंवा भिन्न कळशब्द वापरून पाहा. - तुम्ही मनपसंत म्हणून खूण केलेली गाणी इथे दाखवली जातील. - हल्लीची गाणी नाहीत - तुम्ही अलीकडेच ऐकलेली गाणी इथे दाखवली जातील. - प्लेलिस्टमध्ये गाणी नाहीत - प्लेलिस्टमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \"प्लेलिस्टमध्ये जोडा\" निवडा. - सर्वोच्च ट्रॅक्स नाहीत - तुम्ही जी गाणी सर्वाधिक ऐकता ती या यादीमध्ये जोडली जातील. - कोणतीही गाणी अलीकडे जोडलेली नाहीत - गेल्या महिन्यात तुम्ही जोडलेली गाणी इथे दाखवली जातील. - कोणतेही संगीत सापडले नाही - तुमच्या कॉम्प्युटरवरून तुमच्या डिव्हाइसला कॉपी करण्यासाठी, एक USB केबल वापरा. - प्ले रांगेमध्ये गाणी नाहीत - प्ले रांगेमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \"प्ले रांगेमध्ये जोडा\" निवडा. - ट्रॅक प्ले करण्यात अक्षम %1$s - - अज्ञात वर्ष - 30 सेकंदांहून कमी - 30 - 60 सेकंद - 1 - 2 मिनिटे - 2 - 3 मिनिटे - 3 - 4 मिनिटे - 4 - 5 मिनिटे - 5 - 10 मिनिटे - 10 - 30 मिनिटे - 30 - 60 मिनिटे - 60 मिनिटांहून अधिक - 1 गाणे - 2 - 4 गाणी - 5 - 9 गाणी - 10+ गाणी - 5+ अल्बम्स - ""इतर"" - सर्व कलाकार दर्शवा - सर्व अल्बम्स दर्शवा - सर्व गाणी दर्शवा - सर्व प्लेलिस्ट दर्शवा - संगीत शोधा - सर्व \"%s\" कलाकार - सर्व \"%s\" अल्बम्स - सर्व \"%s\" गाणी - सर्व \"%s\" प्लेलिस्ट - %1$s %2$s + संगीत + अलीकडील + कलाकार + अल्बम्स + गाणी + प्लेलिस्ट + जेनेर्स + आता प्ले करत आहे + प्ले रांग + अल्बम्स + सर्वोच्च गाणी + सर्व गाणी + सेटिंग्ज + शोधा + शफल + सर्व शफल करा + प्लेलिस्ट शफल करा + अल्बम शफल करा + कलाकार शफल करा + सर्वोच्च ट्रॅक्स शफल करा + अलीकडेच प्ले केलेले शफल करा + शेवटचे जोडलेले शफल करा + सर्व प्ले करा + नुसार क्रमवारी लावा + सूची साफ करा + अलीकडील साफ करा + रांग साफ करा + रांग प्लेलिस्टमध्ये जतन करा + संतुलक + प्लेलिस्टमध्ये जोडा + रांगेत जोडा + अलीकडील मधून काढा + रांगेतून काढा + A-Z + Z-A + कलाकार + अल्बम + वर्ष + कालावधी + तारीख जोडली + ट्रॅक यादी + गाण्यांची संख्या + अल्बम्सची संख्या + फाइलनाव + शेवटचे जोडले + अलीकडेच प्ले केले + माझे सर्वोच्च ट्रॅक्स + नवीन प्लेलिस्ट + जतन करा + रद्द करा + खोडून त्याजागी लिहा + साफ करा + प्लेलिस्ट %d + प्लेलिस्ट नाव + %sहटवायचे? + सर्वोच ट्रॅक्स साफ करायचे? + अलीकडेच प्ले केलेले साफ करायचे? + शेवटचे जोडलेले साफ करायचे? + हे पुनर्स्थापित करता येत नाही + यामुळे कॅशे केलेल्या प्रतिमा प्रविष्ठी कायमस्वरूपी हटवल्या जातील + गॅलरीमधून फोटो निवडा + Google शोध + डिफॉल्ट फोटो वापरा + जुना फोटो वापरा + प्ले करा + पुढील प्ले करा + अल्बम प्ले करा + कलाकाराकडून अधिक + पुनर्नामित करा + हटवायचे? + अल्बम कला मिळवा + कलाकार प्रतिमा मिळवा + अलीकडील मधून काढा + रींग टोन म्हणून वापरा + प्लेलिस्टतून काढा + प्रतिमा बदला + प्ले करा + विराम द्या + पुढील + मागील + शफल + सर्व शफल करा + पुनरावृत्ती + सर्व पुनरावृत्ती करा + एक पुनरावृत्ती करा + रांग उघडा + संगीत ब्राउझ करा + \'%s\' रींग टोन म्हणून सेट करा + प्लेलिस्ट पुनर्नामित केली + इंटरफेस + संचयन + डेटा + कॅशे हटवा + सर्व कॅशे केलेल्या प्रतिमा काढा + फक्त Wi-Fi द्वारे डाउनलोड करा + वाहक शुल्क कमी करण्यासाठी, मोबाईल नेटवर्क्सवर डाउनलोड करू नका + गहाळ अल्बमकला डाउनलोड करा + गहाळ कलाकार प्रतिमा डाउनलोड करा + सामान्य + संगीत व्हिज्युअलायझेशन दर्शवा + गाण्याच्या शब्दरचना दर्शवा + srt फाइल असलेल्या गाण्यांसाठी + प्ले करण्यासाठी हलवा + पुढील गाणे प्ले करण्यासाठी तुमचे डिव्हाइस हलवा + लॉकस्क्रीन अल्बम कला + लॉकस्क्रीन पार्श्वभूमीच्या जागी अल्बम कला आणा + संगीत: 4 \u00d7 1 + संगीत: 4 \u00d7 2 + संगीत: 4 \u00d7 2 (पर्यायी) + संगीत: अलीकडेच ऐकलेले + इक्वेलायझर उघडता आला नाही. + तुमच्या कॉम्प्युटरवरून तुमच्या डिव्हाइसला कॉपी करण्यासाठी, एक USB केबल वापरा. + शोध निकाल आढळले नाहीत + तुमचे स्पेलिंग अचूक असल्याचे कृपया तपासा किंवा भिन्न कळशब्द वापरून पाहा. + तुम्ही मनपसंत म्हणून खूण केलेली गाणी इथे दाखवली जातील. + हल्लीची गाणी नाहीत + तुम्ही अलीकडेच ऐकलेली गाणी इथे दाखवली जातील. + प्लेलिस्टमध्ये गाणी नाहीत + प्लेलिस्टमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \"प्लेलिस्टमध्ये जोडा\" निवडा. + सर्वोच्च ट्रॅक्स नाहीत + तुम्ही जी गाणी सर्वाधिक ऐकता ती या यादीमध्ये जोडली जातील. + कोणतीही गाणी अलीकडे जोडलेली नाहीत + गेल्या महिन्यात तुम्ही जोडलेली गाणी इथे दाखवली जातील. + कोणतेही संगीत सापडले नाही + तुमच्या कॉम्प्युटरवरून तुमच्या डिव्हाइसला कॉपी करण्यासाठी, एक USB केबल वापरा. + प्ले रांगेमध्ये गाणी नाहीत + प्ले रांगेमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \"प्ले रांगेमध्ये जोडा\" निवडा. + ट्रॅक प्ले करण्यात अक्षम %1$s + अज्ञात वर्ष + 30 सेकंदांहून कमी + 30 - 60 सेकंद + 1 - 2 मिनिटे + 2 - 3 मिनिटे + 3 - 4 मिनिटे + 4 - 5 मिनिटे + 5 - 10 मिनिटे + 10 - 30 मिनिटे + 30 - 60 मिनिटे + 60 मिनिटांहून अधिक + 1 गाणे + 2 - 4 गाणी + 5 - 9 गाणी + 10+ गाणी + 5+ अल्बम्स + ""इतर"" + सर्व कलाकार दर्शवा + सर्व अल्बम्स दर्शवा + सर्व गाणी दर्शवा + सर्व प्लेलिस्ट दर्शवा + संगीत शोधा + सर्व \"%s\" कलाकार + सर्व \"%s\" अल्बम्स + सर्व \"%s\" गाणी + सर्व \"%s\" प्लेलिस्ट + %1$s %2$s diff --git a/app/src/main/res/values-nb/plurals.xml b/app/src/main/res/values-nb/plurals.xml index dd4e5bd..6c766f3 100644 --- a/app/src/main/res/values-nb/plurals.xml +++ b/app/src/main/res/values-nb/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artister - - - - %d album - %d albumer - - - - %d sang - %d sanger - - - - %d sjanger - %d sjangre - - - - %dt - %dt - - - - %dm - %dm - - - - %d sang lagt til i spillelisten. - %d sanger lagt til i spillelisten. - - - - %d sang fjernet fra spillelisten. - %d sanger fjernet fra spillelisten. - - - - %d sang lagt til i avspillingskø. - %d sanger lagt til i avspillingskø. - - - - %d sang lagt til i favoritter. - %d sanger lagt til i favoritter. - - - - %d sang ble slettet. - %d sanger ble slettet. - + + %d artist + %d artister + + + %d album + %d albumer + + + %d sang + %d sanger + + + %d sjanger + %d sjangre + + + %dt + %dt + + + %dm + %dm + + + %d sang lagt til i spillelisten. + %d sanger lagt til i spillelisten. + + + %d sang fjernet fra spillelisten. + %d sanger fjernet fra spillelisten. + + + %d sang lagt til i avspillingskø. + %d sanger lagt til i avspillingskø. + + + %d sang lagt til i favoritter. + %d sanger lagt til i favoritter. + + + %d sang ble slettet. + %d sanger ble slettet. + diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index cdadaed..59ef579 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Musikk - - Siste - Artister - Albumer - Sanger - Spillelister - Sjangrer - Nå spilles - Avspillingskø - - Albumer - Topp sanger - Alle sanger - - Innstillinger - Søk - Shuffle - Shuffle alle - Shuffle spilleliste - Shuffle album - Shuffle artist - Shuffle topp sanger - Shuffle nylig spilte - Shuffle sist lagt til - Spill alle - Sorter etter - Tøm liste - Slett siste - Slett kø - Lagre kø til spillelisten - Equalizer - - Legg til i spilleliste - Legg til i køen - Fjern fra siste - Fjern fra køen - - A-Z - Z-A - Artist - Album - År - Varighet - Dato lagt til - Sporliste - Antall sanger - Antall album - Filnavn - - Sist lagt til - Nylig spilte - Mine topp spor - - Ny spilleliste - Lagre - Avbryt - Overskriv - Tøm - Spilleliste %d - Navnet på spillelisten - Slett %s? - Slett topp spor? - Fjern nylig spilt? - Fjern sist lagt til? - Dette kan ikke omgjøres - Dette vil permanent slette allehurtigbufferbilder - Velg foto fra Galleri - Google søk - Bruk standard bilde - Bruk gammelt bilde - - Spill av - Spill neste - Spill album - Mer fra denne artisten - Gi nytt navn - Slett - Hent albumcover - Hent artistbilder - Fjern fra siste - Bruk som ringetone - Fjern fra spillelisten - Endre bilde - - Spill av - Pause - Neste - Forrige - Shuffle - Shuffle alle - Gjenta - Gjenta alle - Gjenta én - Åpne kø - Bla gjennom musikken - - \'%s\' Sett som ringetone - Spillelisten fikk et nytt navn - - Grensesnitt - Lagring - Data - Slett hurtigbuffer - Slett alle mellomlagrede bilder - Last ned kun med Wi-Fi - For å redusere operatøravgifter, ikke last ned over mobilnett - Last ned manglende albumcover - Last ned manglende artistbilder - Generelt - Vis musikk visualisering - Vis sangtekst - For sanger som har en srt fil - Rist for å spille - Rist enheten for å spille neste sang - Albumgrafikk på låseskjerm - Erstatt låseskjermsbakgrunn med albumgrafikk - - Musikk: 4 \u00d7 1 - Musikk: 4 \u00d7 2 - Musikk: 4 \u00d7 2 (alternativ) - Musikk: nylig hørte - - Equalizeren kan ikke åpnes. - For å kopiere musikk fra en datamaskin til enheten, bruk en USB kabel. - Ingen resultater funnet - Kontroller at du har riktig stavemåte eller prøv et annet nøkkelord. - Sanger du markerer som favoritter vil bli vist her. - Ingen nye sanger - Sanger du har lyttet til sist vises her. - Ingen sanger i spillelisten - For å legge til sanger i denne spillelisten, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \"Legg til i spilleliste\". - Ingen topp spor - Sangene du hører på mest vil bli lagt til denne listen. - Ingen sanger lagt til i det siste - Sanger du har lagt til den siste måneden vil bli vist her. - Ingen musikk funnet - For å kopiere musikk fra en datamaskin til enheten, bruk en USB kabel. - Ingen sanger i avspillingskøen - For å legge til sanger i spillekøen, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \"Legg til i kø\". - Kan ikke spille spor %1$s - - Ukjent år - Mindre enn 30 sekunder - 30 - 60 sekunder - 1 - 2 minutter - 2 - 3 minutter - 3 - 4 minutter - 4 - 5 minutter - 5 - 10 minutter - 10 - 30 minutter - 30 - 60 minutter - Mer enn 60 minutter - 1 sang - 2 - 4 sanger - 5 - 9 sanger - 10 + sanger - 5 + album - "Andre" - Vis alle artister - Vis alle album - Vis alle sanger - Vis alle spillelister - Søk musikk - Alle \"%s\" artister - Alle \"%s\" albumer - Alle \"%s\" sanger - Alle \"%s\" spillelister - %1$s %2$s + Musikk + Siste + Artister + Albumer + Sanger + Spillelister + Sjangrer + Nå spilles + Avspillingskø + Albumer + Topp sanger + Alle sanger + Innstillinger + Søk + Shuffle + Shuffle alle + Shuffle spilleliste + Shuffle album + Shuffle artist + Shuffle topp sanger + Shuffle nylig spilte + Shuffle sist lagt til + Spill alle + Sorter etter + Tøm liste + Slett siste + Slett kø + Lagre kø til spillelisten + Equalizer + Legg til i spilleliste + Legg til i køen + Fjern fra siste + Fjern fra køen + A-Z + Z-A + Artist + Album + År + Varighet + Dato lagt til + Sporliste + Antall sanger + Antall album + Filnavn + Sist lagt til + Nylig spilte + Mine topp spor + Ny spilleliste + Lagre + Avbryt + Overskriv + Tøm + Spilleliste %d + Navnet på spillelisten + Slett %s? + Slett topp spor? + Fjern nylig spilt? + Fjern sist lagt til? + Dette kan ikke omgjøres + Dette vil permanent slette allehurtigbufferbilder + Velg foto fra Galleri + Google søk + Bruk standard bilde + Bruk gammelt bilde + Spill av + Spill neste + Spill album + Mer fra denne artisten + Gi nytt navn + Slett + Hent albumcover + Hent artistbilder + Fjern fra siste + Bruk som ringetone + Fjern fra spillelisten + Endre bilde + Spill av + Pause + Neste + Forrige + Shuffle + Shuffle alle + Gjenta + Gjenta alle + Gjenta én + Åpne kø + Bla gjennom musikken + \'%s\' Sett som ringetone + Spillelisten fikk et nytt navn + Grensesnitt + Lagring + Data + Slett hurtigbuffer + Slett alle mellomlagrede bilder + Last ned kun med Wi-Fi + For å redusere operatøravgifter, ikke last ned over mobilnett + Last ned manglende albumcover + Last ned manglende artistbilder + Generelt + Vis musikk visualisering + Vis sangtekst + For sanger som har en srt fil + Rist for å spille + Rist enheten for å spille neste sang + Albumgrafikk på låseskjerm + Erstatt låseskjermsbakgrunn med albumgrafikk + Musikk: 4 \u00d7 1 + Musikk: 4 \u00d7 2 + Musikk: 4 \u00d7 2 (alternativ) + Musikk: nylig hørte + Equalizeren kan ikke åpnes. + For å kopiere musikk fra en datamaskin til enheten, bruk en USB kabel. + Ingen resultater funnet + Kontroller at du har riktig stavemåte eller prøv et annet nøkkelord. + Sanger du markerer som favoritter vil bli vist her. + Ingen nye sanger + Sanger du har lyttet til sist vises her. + Ingen sanger i spillelisten + For å legge til sanger i denne spillelisten, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \"Legg til i spilleliste\". + Ingen topp spor + Sangene du hører på mest vil bli lagt til denne listen. + Ingen sanger lagt til i det siste + Sanger du har lagt til den siste måneden vil bli vist her. + Ingen musikk funnet + For å kopiere musikk fra en datamaskin til enheten, bruk en USB kabel. + Ingen sanger i avspillingskøen + For å legge til sanger i spillekøen, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \"Legg til i kø\". + Kan ikke spille spor %1$s + Ukjent år + Mindre enn 30 sekunder + 30 - 60 sekunder + 1 - 2 minutter + 2 - 3 minutter + 3 - 4 minutter + 4 - 5 minutter + 5 - 10 minutter + 10 - 30 minutter + 30 - 60 minutter + Mer enn 60 minutter + 1 sang + 2 - 4 sanger + 5 - 9 sanger + 10 + sanger + 5 + album + "Andre" + Vis alle artister + Vis alle album + Vis alle sanger + Vis alle spillelister + Søk musikk + Alle \"%s\" artister + Alle \"%s\" albumer + Alle \"%s\" sanger + Alle \"%s\" spillelister + %1$s %2$s diff --git a/app/src/main/res/values-nl/plurals.xml b/app/src/main/res/values-nl/plurals.xml index 2072698..358d528 100644 --- a/app/src/main/res/values-nl/plurals.xml +++ b/app/src/main/res/values-nl/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artiest - %d artiesten - - - - %d album - %d albums - - - - %d nummer - %d nummers - - - - %d genre - %d genres - - - - %du - %du - - - - %dm - %dm - - - - %d nummer toegevoegd aan afspeellijst. - %d nummers toegevoegd aan afspeellijst. - - - - %d nummer verwijderd uit afspeellijst. - %d nummers verwijderd uit afspeellijst. - - - - %d nummer toegevoegd aan wachtrij. - %d nummers toegevoegd aan wachtrij. - - - - %d nummer toegevoegd aan favorieten. - %d nummers toegevoegd aan favorieten. - - - - %d nummer verwijderd. - %d nummers verwijderd. - + + %d artiest + %d artiesten + + + %d album + %d albums + + + %d nummer + %d nummers + + + %d genre + %d genres + + + %du + %du + + + %dm + %dm + + + %d nummer toegevoegd aan afspeellijst. + %d nummers toegevoegd aan afspeellijst. + + + %d nummer verwijderd uit afspeellijst. + %d nummers verwijderd uit afspeellijst. + + + %d nummer toegevoegd aan wachtrij. + %d nummers toegevoegd aan wachtrij. + + + %d nummer toegevoegd aan favorieten. + %d nummers toegevoegd aan favorieten. + + + %d nummer verwijderd. + %d nummers verwijderd. + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7031110..fae2ddf 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Muziek - - Recent - Artiesten - Albums - Nummers - Afspeellijsten - Genres - Nu afspelen - Wachtrij - - Albums - Beste nummers - Alle nummers - - Instellingen - Zoeken - Shuffle - Shuffle alles - Shuffle afspeellijst - Shuffle album - Shuffle artiest - Shuffle beste nummers - Shuffle recente nrs. - Shuffle laatst toegevoegd - Alles afspelen - Sorteren op - Lijst wissen - Recente items wissen - Wachtrij wissen - Wachtrij opslaan als afspeellijst - Equalizer - - Toevoegen aan afspeellijst - Toevoegen aan wachtrij - Verwijderen uit recente - Verwijderen uit wachtrij - - A-Z - Z-A - Artiest - Album - Jaar - Duur - Datum toegevoegd - Tracklist - Aantal nummers - Aantal albums - Bestandsnaam - - Laatst toegevoegd - Recent afgespeeld - Mijn beste nummers - - Nieuwe afspeellijst - Opslaan - Annuleren - Overschrijven - Leegmaken - Afspeellijst %d - Naam afspeellijst - \'%s\' verwijderen? - Beste nummers wissen? - Recent afgespeelde nummers wissen? - Laatst toegevoegde wissen? - Dit kan niet ongedaan worden gemaakt - Hiermee worden alle opgeslagen afbeeldingen permanent verwijderd - Afbeelding selecteren uit Galerij - Google Zoeken - Standaardafbeelding - Oude afbeelding - - Afspelen - Volgende afspelen - Album afspelen - Meer van deze artiest - Naam wijzigen - Verwijderen - Albumhoes ophalen - Artiestenafbeelding ophalen - Verwijderen uit recente - Gebruiken als beltoon - Verwijderen uit afspeellijst - Afbeelding wijzigen - - Afspelen - Pauzeren - Volgende - Vorige - Shufflen - Alles shufflen - Herhalen - Alles herhalen - Eén herhalen - Wachtrij openen - Muziek verkennen - - \'%s\' ingesteld als beltoon - Naam afspeellijst gewijzigd - - Uiterlijk - Opslag - Gegevens - Cache wissen - Opgeslagen afbeeldingen verwijderen - Alleen via wifi - Om gegevensgebruik te verminderen, niet downloaden via mobiele gegevensverbinding - Albumhoezen downloaden - Artiestenafbeeldingen downloaden - Algemeen - Muziekvisualisaties weergeven - Songteksten weergeven - Voor nummers met een srt-bestand - Schudden voor afspelen - Uw apparaat schudden om het volgende nummer af te spelen - Albumhoes op vergrendelingsscherm - Achtergrond vergrendelingsscherm vervangen door albumhoes - - Muziek: 4 \u00d7 1 - Muziek: 4 \u00d7 2 - Muziek: 4 \u00d7 2 (alternatief) - Muziek: recent beluisterd - - Kan equalizer niet openen. - Om muziek van uw computer te kopiëren naar uw apparaat, kunt u een USB-kabel gebruiken. - Geen zoekresultaten gevonden - Controleer of u de juiste spelling gebruikt of probeer een ander trefwoord. - Uw favoriete nummers worden hier getoond. - Geen recente nummers - Nummers waar u recent naar hebt geluisterd worden hier getoond. - Geen nummers in afspeellijst - Om nummers toe te voegen aan deze afspeellijst, tik op het menu van een nummer, album of artiest en selecteer \'Toevoegen aan afspeellijst\'. - Geen beste nummers - Nummers waar u het meest naar luistert worden toegevoegd aan deze lijst. - Geen nummers recent toegevoegd - Nummers die u in de afgelopen maand hebt toegevoegd worden hier getoond. - Geen muziek gevonden - Om muziek van uw computer te kopiëren naar uw apparaat, kunt u een USB-kabel gebruiken. - Geen nummers in wachtrij - Om nummers toe te voegen aan de wachtrij, tik op het menu van een nummer, album of artiest en selecteer \'Toevoegen aan wachtrij\'. - Kan nummer %1$s niet afspelen - - Onbekend jaar - Minder dan 30 seconden - 30 - 60 seconden - 1 - 2 minuten - 2 - 3 minuten - 3 - 4 minuten - 4 - 5 minuten - 5 - 10 minuten - 10 - 30 minuten - 30 - 60 minuten - Meer dan 60 minuten - 1 nummer - 2 - 4 nummers - 5 - 9 nummers - 10+ nummers - 5+ albums - "Overig" - Alle artiesten tonen - Alle albums tonen - Alle nummers tonen - Alle afspeellijsten tonen - Muziek zoeken - Alle \"%s\" artiesten - Alle \"%s\" albums - Alle \"%s\" nummers - Alle \"%s\" afspeellijsten - %1$s %2$s + Muziek + Recent + Artiesten + Albums + Nummers + Afspeellijsten + Genres + Nu afspelen + Wachtrij + Albums + Beste nummers + Alle nummers + Instellingen + Zoeken + Shuffle + Shuffle alles + Shuffle afspeellijst + Shuffle album + Shuffle artiest + Shuffle beste nummers + Shuffle recente nrs. + Shuffle laatst toegevoegd + Alles afspelen + Sorteren op + Lijst wissen + Recente items wissen + Wachtrij wissen + Wachtrij opslaan als afspeellijst + Equalizer + Toevoegen aan afspeellijst + Toevoegen aan wachtrij + Verwijderen uit recente + Verwijderen uit wachtrij + A-Z + Z-A + Artiest + Album + Jaar + Duur + Datum toegevoegd + Tracklist + Aantal nummers + Aantal albums + Bestandsnaam + Laatst toegevoegd + Recent afgespeeld + Mijn beste nummers + Nieuwe afspeellijst + Opslaan + Annuleren + Overschrijven + Leegmaken + Afspeellijst %d + Naam afspeellijst + \'%s\' verwijderen? + Beste nummers wissen? + Recent afgespeelde nummers wissen? + Laatst toegevoegde wissen? + Dit kan niet ongedaan worden gemaakt + Hiermee worden alle opgeslagen afbeeldingen permanent verwijderd + Afbeelding selecteren uit Galerij + Google Zoeken + Standaardafbeelding + Oude afbeelding + Afspelen + Volgende afspelen + Album afspelen + Meer van deze artiest + Naam wijzigen + Verwijderen + Albumhoes ophalen + Artiestenafbeelding ophalen + Verwijderen uit recente + Gebruiken als beltoon + Verwijderen uit afspeellijst + Afbeelding wijzigen + Afspelen + Pauzeren + Volgende + Vorige + Shufflen + Alles shufflen + Herhalen + Alles herhalen + Eén herhalen + Wachtrij openen + Muziek verkennen + \'%s\' ingesteld als beltoon + Naam afspeellijst gewijzigd + Uiterlijk + Opslag + Gegevens + Cache wissen + Opgeslagen afbeeldingen verwijderen + Alleen via wifi + Om gegevensgebruik te verminderen, niet downloaden via mobiele gegevensverbinding + Albumhoezen downloaden + Artiestenafbeeldingen downloaden + Algemeen + Muziekvisualisaties weergeven + Songteksten weergeven + Voor nummers met een srt-bestand + Schudden voor afspelen + Uw apparaat schudden om het volgende nummer af te spelen + Albumhoes op vergrendelingsscherm + Achtergrond vergrendelingsscherm vervangen door albumhoes + Muziek: 4 \u00d7 1 + Muziek: 4 \u00d7 2 + Muziek: 4 \u00d7 2 (alternatief) + Muziek: recent beluisterd + Kan equalizer niet openen. + Om muziek van uw computer te kopiëren naar uw apparaat, kunt u een USB-kabel gebruiken. + Geen zoekresultaten gevonden + Controleer of u de juiste spelling gebruikt of probeer een ander trefwoord. + Uw favoriete nummers worden hier getoond. + Geen recente nummers + Nummers waar u recent naar hebt geluisterd worden hier getoond. + Geen nummers in afspeellijst + Om nummers toe te voegen aan deze afspeellijst, tik op het menu van een nummer, album of artiest en selecteer \'Toevoegen aan afspeellijst\'. + Geen beste nummers + Nummers waar u het meest naar luistert worden toegevoegd aan deze lijst. + Geen nummers recent toegevoegd + Nummers die u in de afgelopen maand hebt toegevoegd worden hier getoond. + Geen muziek gevonden + Om muziek van uw computer te kopiëren naar uw apparaat, kunt u een USB-kabel gebruiken. + Geen nummers in wachtrij + Om nummers toe te voegen aan de wachtrij, tik op het menu van een nummer, album of artiest en selecteer \'Toevoegen aan wachtrij\'. + Kan nummer %1$s niet afspelen + Onbekend jaar + Minder dan 30 seconden + 30 - 60 seconden + 1 - 2 minuten + 2 - 3 minuten + 3 - 4 minuten + 4 - 5 minuten + 5 - 10 minuten + 10 - 30 minuten + 30 - 60 minuten + Meer dan 60 minuten + 1 nummer + 2 - 4 nummers + 5 - 9 nummers + 10+ nummers + 5+ albums + "Overig" + Alle artiesten tonen + Alle albums tonen + Alle nummers tonen + Alle afspeellijsten tonen + Muziek zoeken + Alle \"%s\" artiesten + Alle \"%s\" albums + Alle \"%s\" nummers + Alle \"%s\" afspeellijsten + %1$s %2$s diff --git a/app/src/main/res/values-or-rIN/plurals.xml b/app/src/main/res/values-or-rIN/plurals.xml index 2cbf7c8..5d44be0 100644 --- a/app/src/main/res/values-or-rIN/plurals.xml +++ b/app/src/main/res/values-or-rIN/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d କଳାକାର - %d କଳାକାର - - - - %d ଆଲ୍‍ବମ୍‍ - %d ଆଲ୍‍ବମ୍‍ - - - - %d ସଙ୍ଗୀତ - %d ସଙ୍ଗୀତ - - - - %d ଜେନେରେ - %d ଜେନେରେ - - - - %dଘଣ୍ଟା - %dh - - - - %dମିନିଟ୍ - %dm - - - - %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। - %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। - - - - %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। - %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। - - - - %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। - %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। - - - - %d ଗୀତ ପସନ୍ଦିଦା େ ଯୋଗ କରାଯାଇଛି। - %d ଗୀତ ପସନ୍ଦିତାସମୂହରେ ଯୋଗ କରାଯାଇଛି। - - - - %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। - %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। - + + %d କଳାକାର + %d କଳାକାର + + + %d ଆଲ୍‍ବମ୍‍ + %d ଆଲ୍‍ବମ୍‍ + + + %d ସଙ୍ଗୀତ + %d ସଙ୍ଗୀତ + + + %d ଜେନେରେ + %d ଜେନେରେ + + + %dଘଣ୍ଟା + %dh + + + %dମିନିଟ୍ + %dm + + + %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। + %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। + + + %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ପସନ୍ଦିଦା େ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ପସନ୍ଦିତାସମୂହରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। + %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। + diff --git a/app/src/main/res/values-or-rIN/strings.xml b/app/src/main/res/values-or-rIN/strings.xml index 5f15489..84f33f4 100644 --- a/app/src/main/res/values-or-rIN/strings.xml +++ b/app/src/main/res/values-or-rIN/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - ସଙ୍ଗୀତ - - ସାମ୍ପ୍ରତିକ - କଳାକାରଗଣ - ଆଲବମଗୁଡିକ - ସଙ୍ଗୀତଗୁଡିକ - ଚାଳନାତାଲିକା‌ଗୁଡିକ - ଜେନେରେସ୍‍ - ବର୍ତ୍ତମାନ ଚାଳନ କରନ୍ତୁ - ପ୍ଲେ ଧାଡି - - ଆଲବମଗୁଡିକ - ଶ୍ରେଷ୍ଠ ଗୀତଗୁଡିକ - ସମସ୍ତ ସଂଗୀତ - - ସେଟିଂସ୍ - ସନ୍ଧାନ - ସଫଲ୍ - ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ - ଚାଳନତାଲିକା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - ଆଲ୍‍ବମ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - କଳାକାର ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - ସମ୍ପ୍ରତି ପ୍ଲେ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - ଶେଷରେ ଯାହା ଯୋଗ ହୋଇଛି ତାହା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ - ସମସ୍ତ ଚାଳନ କରନ୍ତୁ - ଦ୍ଵାରା ସର୍ଟ୍ - ତାଲିକା ଖାଲି କରନ୍ତୁ - ସମ୍ପ୍ରତି ଖାଲି କରନ୍ତୁ - ଧାଡି ଖାଲି କରନ୍ତୁ - ଚାଳନତାଲିକାରେ ଧାଡି ସଂରକ୍ଷଣ କରନ୍ତୁ - ସମାନକାରୀ - - ଚାଳନତାଲିକାରେ ଯୋଡନ୍ତୁ - ଧାଡି ଯୋଗ କରନ୍ତୁ - ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ - ଧାଡିରୁ ଅପସାରଣ କରନ୍ତୁ - - A-Z - Z-A - କଳାକାର - ଆଲ୍‍ବମ୍‍ - ବ‍ର୍ଷ - ଅବଧି - ତାରିଖ ଯୋଗ କରାଯାଇଛି - ଟ୍ରାକ୍‍ ତାଲିକା - ଗୀତ ସଂଖ୍ୟା - ଆଲ୍‍ବମ୍‍ ସଂଖ୍ୟା - ଫାଇଲ୍‌ ନାମ - - ଶେଷରେ ଯୋଗ କରାଯାଇଥିବା - ସମ୍ପ୍ରତି ପ୍ଲେ ହୋଇଥିବା - ମୋ ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ - - ନୂଆ ପ୍ଲେତାଲିକା - ସଞ୍ଚୟ - ବାତିଲ - ଅଧିଲିଖନ - ଖାଲି - ଚାଳନତାଲିକା %d - ଚାଳନତାଲିକା ନାମ - ଏହା ବିଲୋପ କରିବେ କି %s? - ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ହଟାଇବେ କି? - ସଂପ୍ରତି ପ୍ଲେଗୁଡିକୁ ହଟାଇବେ କି? - ଶେଷରେ ଯାହା ଯୋଗ କରାଯାଇଛି, ତାହା ଖାଲି କରିବେ କି? - ଏହା ଅନ୍‍ଡନ୍‍ ହୋଇପାରିବ ନାହିଁ - ଏହା କ୍ୟାଚ୍‍ରେ ଥିବା ଚିତ୍ର ପ୍ରବେଶ ‍ସ୍ଥାୟୀ ଭାବେ ବିଲୋପ କରିଦେବ - ଗ୍ୟାଲେରୀରୁ ଫଟୋ ପରିବର୍ତ୍ତନ କରନ୍ତୁ - Google ସନ୍ଧାନ - ଡିଫଲ୍ଟ ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ - ପୁରୁଣା ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ - - ଚଳାଅ - ପରବର୍ତ୍ତୀ ପ୍ଲେ କରନ୍ତୁ - ଆଲ୍‍ବମ୍‍ ପ୍ଲେ କରନ୍ତୁ - କଳାକାରଙ୍କ ଦ୍ୱାରା ଅଧିକ - ପୁନଃନାମ - ବିଲୋପ କରନ୍ତୁ - ଅଲ୍‍ବମ୍‍ ର୍ଟ୍‍ ପ୍ରାପ୍ତ କରନ୍ତୁ - କଳାକାର ଚିତ୍ର ପ୍ରାପ୍ତ କରନ୍ତୁ - ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ - ରିଂଗଟୋନ ଭାବେ ବ୍ୟବହାର - ଚାଳନାତାଲିକା‌ରୁ ଅପସାରଣ କରନ୍ତୁ - ଚିତ୍ର ପରିବର୍ତ୍ତନ କରନ୍ତୁ - - ଚଳାଅ - ବିରତ - ପରବର୍ତ୍ତୀ - ପୂର୍ବବର୍ତ୍ତୀ - ସଫଲ୍ - ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ - ପୁନରାବୃତ୍ତି - ସମସ୍ତ ପୁନରାବୃତ୍ତି - ଏକ ପୁନରାବୃତ୍ତି - ଧାଡି ଖୋଲନ୍ତୁ - ଗୀତ ବ୍ରାଉଜ୍‍ କରନ୍ତୁ - - \'%s\' ରିଙ୍ଗ୍‍ଟୋନ୍‍ ଭାବେ ସେଟ୍‍ କରନ୍ତୁ - ପ୍ଲେତାଲିକା ପୁନଃନାମ ହୋଇଛି। - - ଇଂଟରଫେସ୍‍ - ଷ୍ଟୋରେଜ୍ - ଡାଟା - କ୍ୟାସେ ବିଲୋପ କରନ୍ତୁ - ସମସ୍ତ କ୍ୟାସେର ଚିତ୍ର ଅପସାରଣ କରନ୍ତୁ - କେବଳ Wi-Fi ମାଧ୍ୟମରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ - ମୋବାଇଲ୍‍ ଅପ୍ରେଟର ଶୁଳ୍କ ହ୍ରାସ କରିବା ପାଇଁ, ମୋବାଇଲ୍‍ ନେତ୍‍ୱାର୍କ୍‍ରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ ନାହିଁ - ହଜିଯାଇଥିବା ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ - ହଜିଯାଇଥିବା କଳାକାର ଚିତ୍ର ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ - ସାଧାରଣ - ମ୍ୟୁଜିକ୍‍ ଭିଜୁଆଲାଇଜେସନ୍‍ ଦେଖାନ୍ତୁ - ଗୀତ ଲିରିକ୍ସ ଦେଖାନ୍ତୁ - ଯେଉଁ ଗୀତଗୁଡିକର srt ଫାଇଲ୍‍ ଅଛି ତାହା ପାଇଁ - ପ୍ଲେ କରିବା ପାଇଁ ହଲାନ୍ତୁ - ପର ଗୀତ ପ୍ଲେ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ହଲାନ୍ତୁ - ଲକ୍‍ସ୍କ୍ରିନ୍‍ ଆଲ୍‍ବମ୍‍ ଆର୍ଟ - ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ସହିତ ଲକ୍‍ସ୍କ୍ରିନ୍ ପ୍ରତି‍ସ୍ଥାପନ କରନ୍ତୁ - - ସଙ୍ଗୀତ: 4 \u00d7 1 - ସଙ୍ଗୀତ: 4 \u00d7 2 - ସଙ୍ଗୀତ: 4 \u00d7 2 (ବିକଳ୍ପ) - ସଙ୍ଗୀତ: ସମ୍ପ୍ରତି ଶୁଣାଯାଇଥିବା - - ଇକ୍ୱାଲାଇଜର୍‍ ଖୋଲାଯାଇପାରିବ ନାହିଁ। - ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। - କୌଣସି ସନ୍ଧାନ ଫଳାଫଳ ମିଳିଲା ନାହିଁ - ଆପଣ ବନାନ ଠିକ୍‍ କରିଥିବା ଦୟାକରି ପରୀକ୍ଷିତ କରନ୍ତୁ ବା ଏକ ଭିନ୍ନ କିଓ୍ୱାର୍ଡ ଚେଷ୍ଟା କରନ୍ତୁ। - ଆପଣ ପସନ୍ଦିତାସମୂହ ଚିହ୍ନିତ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। - କୌଣସି ସମ୍ପ୍ରତି ଗୀତ ନାହିଁ - ସମ୍ପ୍ରତି ଆପଣ ଶୁଣୁଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ପ୍ରଦର୍ଶନ କରିବା। - ଚାଳନତାଲିକାରେ କିଛି ଗୀତ ନାହିଁ - ଏହି ଚାଳନତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ଚାଳନତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। - କୌଣସି ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ନାହିଁ - ଆପଣ ଅଧିକ ଥର ଶୁଣୁ୍ଥିବା ଗୀତଗୁଡିକ ଏହି ତାଲିକାରେ ଯୋଗ ହୋଇଯିବ। - ସମ୍ପ୍ରତି କୌଣସି ଗୀତ ଯୋଗ ହୋଇନାହିଁ - ଆପଣ ବିଗତ ମାସରେ ଯୋଗ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। - କୌଣସି ସଙ୍ଗୀତ ମିଳିଲା ନାହିଁ - ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। - ପ୍ଲେ ଧାଡିରେ କୌଣସି ଗୀତ ନାହିଁ - ଏହି ପ୍ଲେତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ପ୍ଲେତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। - ଟ୍ରାକ୍‍ %1$s ପ୍ଲେ କରିବାରେ ଅ‍କ୍ଷମ - - ଅଜ୍ଞାତ ବ‍ର୍ଷ - 30 ସେକେଣ୍ଡରୁ କମ୍‍ - 30 - 60 ସେକେଣ୍ଡ - 1 - 2 ମିନିଟ୍‍ - 2 - 3 ମିନିଟ୍‍ - 3 - 4 ମିନିଟ୍‍ - 4 - 5 ମିନିଟ୍‍ - 5 - 10 ମିନିଟ୍‍ - 10 - 30 ମିନିଟ୍‍ - 30 - 60 ମିନିଟ୍‍ - 60 ମିନିଟ୍‍ରୁ ଅଧିକ - 1 ଗୀତ - 2 - 4 ଗୀତ - 5 - 9 ଗୀତ - 10+ ଗୀତ - 5+ ଆଲ୍‍ବମ୍‍ - ""ଅନ୍ୟାନ୍ୟ"" - ସମସ୍ତ କଳାକାର ଦେଖାନ୍ତୁ - ସମସ୍ତ ଆଲ୍‍ବମ୍‍ ଦେଖାନ୍ତୁ - ସମସ୍ତ ଗୀତ ଦେଖାନ୍ତୁ - ସମସ୍ତ ପ୍ଲେତାଲିକା ପ୍ରଦର୍ଶନ କରନ୍ତୁ - ସଙ୍ଗୀତ ସନ୍ଧାନ କରନ୍ତୁ - ସମ୍ସ୍ତ \"%s\" କଳାକାର - ସମ୍ସ୍ତ \"%s\" ଆଲ୍‍ବମ୍‍ - ସମ୍ସ୍ତ \"%s\" ଗୀତ - ସମ୍ସ୍ତ \"%s\" ପ୍ଲେତାଲିକା - %1$s %2$s + ସଙ୍ଗୀତ + ସାମ୍ପ୍ରତିକ + କଳାକାରଗଣ + ଆଲବମଗୁଡିକ + ସଙ୍ଗୀତଗୁଡିକ + ଚାଳନାତାଲିକା‌ଗୁଡିକ + ଜେନେରେସ୍‍ + ବର୍ତ୍ତମାନ ଚାଳନ କରନ୍ତୁ + ପ୍ଲେ ଧାଡି + ଆଲବମଗୁଡିକ + ଶ୍ରେଷ୍ଠ ଗୀତଗୁଡିକ + ସମସ୍ତ ସଂଗୀତ + ସେଟିଂସ୍ + ସନ୍ଧାନ + ସଫଲ୍ + ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ + ଚାଳନତାଲିକା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଆଲ୍‍ବମ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + କଳାକାର ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ସମ୍ପ୍ରତି ପ୍ଲେ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଶେଷରେ ଯାହା ଯୋଗ ହୋଇଛି ତାହା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ସମସ୍ତ ଚାଳନ କରନ୍ତୁ + ଦ୍ଵାରା ସର୍ଟ୍ + ତାଲିକା ଖାଲି କରନ୍ତୁ + ସମ୍ପ୍ରତି ଖାଲି କରନ୍ତୁ + ଧାଡି ଖାଲି କରନ୍ତୁ + ଚାଳନତାଲିକାରେ ଧାଡି ସଂରକ୍ଷଣ କରନ୍ତୁ + ସମାନକାରୀ + ଚାଳନତାଲିକାରେ ଯୋଡନ୍ତୁ + ଧାଡି ଯୋଗ କରନ୍ତୁ + ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ + ଧାଡିରୁ ଅପସାରଣ କରନ୍ତୁ + A-Z + Z-A + କଳାକାର + ଆଲ୍‍ବମ୍‍ + ବ‍ର୍ଷ + ଅବଧି + ତାରିଖ ଯୋଗ କରାଯାଇଛି + ଟ୍ରାକ୍‍ ତାଲିକା + ଗୀତ ସଂଖ୍ୟା + ଆଲ୍‍ବମ୍‍ ସଂଖ୍ୟା + ଫାଇଲ୍‌ ନାମ + ଶେଷରେ ଯୋଗ କରାଯାଇଥିବା + ସମ୍ପ୍ରତି ପ୍ଲେ ହୋଇଥିବା + ମୋ ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ + ନୂଆ ପ୍ଲେତାଲିକା + ସଞ୍ଚୟ + ବାତିଲ + ଅଧିଲିଖନ + ଖାଲି + ଚାଳନତାଲିକା %d + ଚାଳନତାଲିକା ନାମ + ଏହା ବିଲୋପ କରିବେ କି %s? + ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ହଟାଇବେ କି? + ସଂପ୍ରତି ପ୍ଲେଗୁଡିକୁ ହଟାଇବେ କି? + ଶେଷରେ ଯାହା ଯୋଗ କରାଯାଇଛି, ତାହା ଖାଲି କରିବେ କି? + ଏହା ଅନ୍‍ଡନ୍‍ ହୋଇପାରିବ ନାହିଁ + ଏହା କ୍ୟାଚ୍‍ରେ ଥିବା ଚିତ୍ର ପ୍ରବେଶ ‍ସ୍ଥାୟୀ ଭାବେ ବିଲୋପ କରିଦେବ + ଗ୍ୟାଲେରୀରୁ ଫଟୋ ପରିବର୍ତ୍ତନ କରନ୍ତୁ + Google ସନ୍ଧାନ + ଡିଫଲ୍ଟ ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ + ପୁରୁଣା ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ + ଚଳାଅ + ପରବର୍ତ୍ତୀ ପ୍ଲେ କରନ୍ତୁ + ଆଲ୍‍ବମ୍‍ ପ୍ଲେ କରନ୍ତୁ + କଳାକାରଙ୍କ ଦ୍ୱାରା ଅଧିକ + ପୁନଃନାମ + ବିଲୋପ କରନ୍ତୁ + ଅଲ୍‍ବମ୍‍ ର୍ଟ୍‍ ପ୍ରାପ୍ତ କରନ୍ତୁ + କଳାକାର ଚିତ୍ର ପ୍ରାପ୍ତ କରନ୍ତୁ + ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ + ରିଂଗଟୋନ ଭାବେ ବ୍ୟବହାର + ଚାଳନାତାଲିକା‌ରୁ ଅପସାରଣ କରନ୍ତୁ + ଚିତ୍ର ପରିବର୍ତ୍ତନ କରନ୍ତୁ + ଚଳାଅ + ବିରତ + ପରବର୍ତ୍ତୀ + ପୂର୍ବବର୍ତ୍ତୀ + ସଫଲ୍ + ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ + ପୁନରାବୃତ୍ତି + ସମସ୍ତ ପୁନରାବୃତ୍ତି + ଏକ ପୁନରାବୃତ୍ତି + ଧାଡି ଖୋଲନ୍ତୁ + ଗୀତ ବ୍ରାଉଜ୍‍ କରନ୍ତୁ + \'%s\' ରିଙ୍ଗ୍‍ଟୋନ୍‍ ଭାବେ ସେଟ୍‍ କରନ୍ତୁ + ପ୍ଲେତାଲିକା ପୁନଃନାମ ହୋଇଛି। + ଇଂଟରଫେସ୍‍ + ଷ୍ଟୋରେଜ୍ + ଡାଟା + କ୍ୟାସେ ବିଲୋପ କରନ୍ତୁ + ସମସ୍ତ କ୍ୟାସେର ଚିତ୍ର ଅପସାରଣ କରନ୍ତୁ + କେବଳ Wi-Fi ମାଧ୍ୟମରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ମୋବାଇଲ୍‍ ଅପ୍ରେଟର ଶୁଳ୍କ ହ୍ରାସ କରିବା ପାଇଁ, ମୋବାଇଲ୍‍ ନେତ୍‍ୱାର୍କ୍‍ରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ ନାହିଁ + ହଜିଯାଇଥିବା ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ହଜିଯାଇଥିବା କଳାକାର ଚିତ୍ର ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ସାଧାରଣ + ମ୍ୟୁଜିକ୍‍ ଭିଜୁଆଲାଇଜେସନ୍‍ ଦେଖାନ୍ତୁ + ଗୀତ ଲିରିକ୍ସ ଦେଖାନ୍ତୁ + ଯେଉଁ ଗୀତଗୁଡିକର srt ଫାଇଲ୍‍ ଅଛି ତାହା ପାଇଁ + ପ୍ଲେ କରିବା ପାଇଁ ହଲାନ୍ତୁ + ପର ଗୀତ ପ୍ଲେ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ହଲାନ୍ତୁ + ଲକ୍‍ସ୍କ୍ରିନ୍‍ ଆଲ୍‍ବମ୍‍ ଆର୍ଟ + ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ସହିତ ଲକ୍‍ସ୍କ୍ରିନ୍ ପ୍ରତି‍ସ୍ଥାପନ କରନ୍ତୁ + ସଙ୍ଗୀତ: 4 \u00d7 1 + ସଙ୍ଗୀତ: 4 \u00d7 2 + ସଙ୍ଗୀତ: 4 \u00d7 2 (ବିକଳ୍ପ) + ସଙ୍ଗୀତ: ସମ୍ପ୍ରତି ଶୁଣାଯାଇଥିବା + ଇକ୍ୱାଲାଇଜର୍‍ ଖୋଲାଯାଇପାରିବ ନାହିଁ। + ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। + କୌଣସି ସନ୍ଧାନ ଫଳାଫଳ ମିଳିଲା ନାହିଁ + ଆପଣ ବନାନ ଠିକ୍‍ କରିଥିବା ଦୟାକରି ପରୀକ୍ଷିତ କରନ୍ତୁ ବା ଏକ ଭିନ୍ନ କିଓ୍ୱାର୍ଡ ଚେଷ୍ଟା କରନ୍ତୁ। + ଆପଣ ପସନ୍ଦିତାସମୂହ ଚିହ୍ନିତ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। + କୌଣସି ସମ୍ପ୍ରତି ଗୀତ ନାହିଁ + ସମ୍ପ୍ରତି ଆପଣ ଶୁଣୁଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ପ୍ରଦର୍ଶନ କରିବା। + ଚାଳନତାଲିକାରେ କିଛି ଗୀତ ନାହିଁ + ଏହି ଚାଳନତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ଚାଳନତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। + କୌଣସି ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ନାହିଁ + ଆପଣ ଅଧିକ ଥର ଶୁଣୁ୍ଥିବା ଗୀତଗୁଡିକ ଏହି ତାଲିକାରେ ଯୋଗ ହୋଇଯିବ। + ସମ୍ପ୍ରତି କୌଣସି ଗୀତ ଯୋଗ ହୋଇନାହିଁ + ଆପଣ ବିଗତ ମାସରେ ଯୋଗ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। + କୌଣସି ସଙ୍ଗୀତ ମିଳିଲା ନାହିଁ + ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। + ପ୍ଲେ ଧାଡିରେ କୌଣସି ଗୀତ ନାହିଁ + ଏହି ପ୍ଲେତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ପ୍ଲେତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। + ଟ୍ରାକ୍‍ %1$s ପ୍ଲେ କରିବାରେ ଅ‍କ୍ଷମ + ଅଜ୍ଞାତ ବ‍ର୍ଷ + 30 ସେକେଣ୍ଡରୁ କମ୍‍ + 30 - 60 ସେକେଣ୍ଡ + 1 - 2 ମିନିଟ୍‍ + 2 - 3 ମିନିଟ୍‍ + 3 - 4 ମିନିଟ୍‍ + 4 - 5 ମିନିଟ୍‍ + 5 - 10 ମିନିଟ୍‍ + 10 - 30 ମିନିଟ୍‍ + 30 - 60 ମିନିଟ୍‍ + 60 ମିନିଟ୍‍ରୁ ଅଧିକ + 1 ଗୀତ + 2 - 4 ଗୀତ + 5 - 9 ଗୀତ + 10+ ଗୀତ + 5+ ଆଲ୍‍ବମ୍‍ + ""ଅନ୍ୟାନ୍ୟ"" + ସମସ୍ତ କଳାକାର ଦେଖାନ୍ତୁ + ସମସ୍ତ ଆଲ୍‍ବମ୍‍ ଦେଖାନ୍ତୁ + ସମସ୍ତ ଗୀତ ଦେଖାନ୍ତୁ + ସମସ୍ତ ପ୍ଲେତାଲିକା ପ୍ରଦର୍ଶନ କରନ୍ତୁ + ସଙ୍ଗୀତ ସନ୍ଧାନ କରନ୍ତୁ + ସମ୍ସ୍ତ \"%s\" କଳାକାର + ସମ୍ସ୍ତ \"%s\" ଆଲ୍‍ବମ୍‍ + ସମ୍ସ୍ତ \"%s\" ଗୀତ + ସମ୍ସ୍ତ \"%s\" ପ୍ଲେତାଲିକା + %1$s %2$s diff --git a/app/src/main/res/values-or/plurals.xml b/app/src/main/res/values-or/plurals.xml new file mode 100644 index 0000000..5d44be0 --- /dev/null +++ b/app/src/main/res/values-or/plurals.xml @@ -0,0 +1,64 @@ + + + + + + %d କଳାକାର + %d କଳାକାର + + + %d ଆଲ୍‍ବମ୍‍ + %d ଆଲ୍‍ବମ୍‍ + + + %d ସଙ୍ଗୀତ + %d ସଙ୍ଗୀତ + + + %d ଜେନେରେ + %d ଜେନେରେ + + + %dଘଣ୍ଟା + %dh + + + %dମିନିଟ୍ + %dm + + + %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ଚାଳନତାଲିକାରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। + %d ଗୀତ ଚାଳନତାଲିକାରୁ ଅପସାରଣ କରାଯାଇଛି। + + + %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ଧାଡିରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ପସନ୍ଦିଦା େ ଯୋଗ କରାଯାଇଛି। + %d ଗୀତ ପସନ୍ଦିତାସମୂହରେ ଯୋଗ କରାଯାଇଛି। + + + %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। + %d ଗୀତ ବିଲୋପିତ ହୋଇଛି। + + diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml new file mode 100644 index 0000000..84f33f4 --- /dev/null +++ b/app/src/main/res/values-or/strings.xml @@ -0,0 +1,175 @@ + + + + + ସଙ୍ଗୀତ + ସାମ୍ପ୍ରତିକ + କଳାକାରଗଣ + ଆଲବମଗୁଡିକ + ସଙ୍ଗୀତଗୁଡିକ + ଚାଳନାତାଲିକା‌ଗୁଡିକ + ଜେନେରେସ୍‍ + ବର୍ତ୍ତମାନ ଚାଳନ କରନ୍ତୁ + ପ୍ଲେ ଧାଡି + ଆଲବମଗୁଡିକ + ଶ୍ରେଷ୍ଠ ଗୀତଗୁଡିକ + ସମସ୍ତ ସଂଗୀତ + ସେଟିଂସ୍ + ସନ୍ଧାନ + ସଫଲ୍ + ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ + ଚାଳନତାଲିକା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଆଲ୍‍ବମ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + କଳାକାର ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ସମ୍ପ୍ରତି ପ୍ଲେ ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ଶେଷରେ ଯାହା ଯୋଗ ହୋଇଛି ତାହା ସ୍ଥାନ ବଦଳ କରନ୍ତୁ + ସମସ୍ତ ଚାଳନ କରନ୍ତୁ + ଦ୍ଵାରା ସର୍ଟ୍ + ତାଲିକା ଖାଲି କରନ୍ତୁ + ସମ୍ପ୍ରତି ଖାଲି କରନ୍ତୁ + ଧାଡି ଖାଲି କରନ୍ତୁ + ଚାଳନତାଲିକାରେ ଧାଡି ସଂରକ୍ଷଣ କରନ୍ତୁ + ସମାନକାରୀ + ଚାଳନତାଲିକାରେ ଯୋଡନ୍ତୁ + ଧାଡି ଯୋଗ କରନ୍ତୁ + ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ + ଧାଡିରୁ ଅପସାରଣ କରନ୍ତୁ + A-Z + Z-A + କଳାକାର + ଆଲ୍‍ବମ୍‍ + ବ‍ର୍ଷ + ଅବଧି + ତାରିଖ ଯୋଗ କରାଯାଇଛି + ଟ୍ରାକ୍‍ ତାଲିକା + ଗୀତ ସଂଖ୍ୟା + ଆଲ୍‍ବମ୍‍ ସଂଖ୍ୟା + ଫାଇଲ୍‌ ନାମ + ଶେଷରେ ଯୋଗ କରାଯାଇଥିବା + ସମ୍ପ୍ରତି ପ୍ଲେ ହୋଇଥିବା + ମୋ ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ + ନୂଆ ପ୍ଲେତାଲିକା + ସଞ୍ଚୟ + ବାତିଲ + ଅଧିଲିଖନ + ଖାଲି + ଚାଳନତାଲିକା %d + ଚାଳନତାଲିକା ନାମ + ଏହା ବିଲୋପ କରିବେ କି %s? + ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ହଟାଇବେ କି? + ସଂପ୍ରତି ପ୍ଲେଗୁଡିକୁ ହଟାଇବେ କି? + ଶେଷରେ ଯାହା ଯୋଗ କରାଯାଇଛି, ତାହା ଖାଲି କରିବେ କି? + ଏହା ଅନ୍‍ଡନ୍‍ ହୋଇପାରିବ ନାହିଁ + ଏହା କ୍ୟାଚ୍‍ରେ ଥିବା ଚିତ୍ର ପ୍ରବେଶ ‍ସ୍ଥାୟୀ ଭାବେ ବିଲୋପ କରିଦେବ + ଗ୍ୟାଲେରୀରୁ ଫଟୋ ପରିବର୍ତ୍ତନ କରନ୍ତୁ + Google ସନ୍ଧାନ + ଡିଫଲ୍ଟ ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ + ପୁରୁଣା ଫଟୋ ବ୍ୟବହାର କରନ୍ତୁ + ଚଳାଅ + ପରବର୍ତ୍ତୀ ପ୍ଲେ କରନ୍ତୁ + ଆଲ୍‍ବମ୍‍ ପ୍ଲେ କରନ୍ତୁ + କଳାକାରଙ୍କ ଦ୍ୱାରା ଅଧିକ + ପୁନଃନାମ + ବିଲୋପ କରନ୍ତୁ + ଅଲ୍‍ବମ୍‍ ର୍ଟ୍‍ ପ୍ରାପ୍ତ କରନ୍ତୁ + କଳାକାର ଚିତ୍ର ପ୍ରାପ୍ତ କରନ୍ତୁ + ସମ୍ପ୍ରତିରୁ ଅପସାରଣ କରନ୍ତୁ + ରିଂଗଟୋନ ଭାବେ ବ୍ୟବହାର + ଚାଳନାତାଲିକା‌ରୁ ଅପସାରଣ କରନ୍ତୁ + ଚିତ୍ର ପରିବର୍ତ୍ତନ କରନ୍ତୁ + ଚଳାଅ + ବିରତ + ପରବର୍ତ୍ତୀ + ପୂର୍ବବର୍ତ୍ତୀ + ସଫଲ୍ + ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ + ପୁନରାବୃତ୍ତି + ସମସ୍ତ ପୁନରାବୃତ୍ତି + ଏକ ପୁନରାବୃତ୍ତି + ଧାଡି ଖୋଲନ୍ତୁ + ଗୀତ ବ୍ରାଉଜ୍‍ କରନ୍ତୁ + \'%s\' ରିଙ୍ଗ୍‍ଟୋନ୍‍ ଭାବେ ସେଟ୍‍ କରନ୍ତୁ + ପ୍ଲେତାଲିକା ପୁନଃନାମ ହୋଇଛି। + ଇଂଟରଫେସ୍‍ + ଷ୍ଟୋରେଜ୍ + ଡାଟା + କ୍ୟାସେ ବିଲୋପ କରନ୍ତୁ + ସମସ୍ତ କ୍ୟାସେର ଚିତ୍ର ଅପସାରଣ କରନ୍ତୁ + କେବଳ Wi-Fi ମାଧ୍ୟମରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ମୋବାଇଲ୍‍ ଅପ୍ରେଟର ଶୁଳ୍କ ହ୍ରାସ କରିବା ପାଇଁ, ମୋବାଇଲ୍‍ ନେତ୍‍ୱାର୍କ୍‍ରେ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ ନାହିଁ + ହଜିଯାଇଥିବା ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ହଜିଯାଇଥିବା କଳାକାର ଚିତ୍ର ଡାଉନ୍‍ଲୋଡ୍‍ କରନ୍ତୁ + ସାଧାରଣ + ମ୍ୟୁଜିକ୍‍ ଭିଜୁଆଲାଇଜେସନ୍‍ ଦେଖାନ୍ତୁ + ଗୀତ ଲିରିକ୍ସ ଦେଖାନ୍ତୁ + ଯେଉଁ ଗୀତଗୁଡିକର srt ଫାଇଲ୍‍ ଅଛି ତାହା ପାଇଁ + ପ୍ଲେ କରିବା ପାଇଁ ହଲାନ୍ତୁ + ପର ଗୀତ ପ୍ଲେ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ହଲାନ୍ତୁ + ଲକ୍‍ସ୍କ୍ରିନ୍‍ ଆଲ୍‍ବମ୍‍ ଆର୍ଟ + ଆଲ୍‍ବମ୍‍ ଆର୍ଟ ସହିତ ଲକ୍‍ସ୍କ୍ରିନ୍ ପ୍ରତି‍ସ୍ଥାପନ କରନ୍ତୁ + ସଙ୍ଗୀତ: 4 \u00d7 1 + ସଙ୍ଗୀତ: 4 \u00d7 2 + ସଙ୍ଗୀତ: 4 \u00d7 2 (ବିକଳ୍ପ) + ସଙ୍ଗୀତ: ସମ୍ପ୍ରତି ଶୁଣାଯାଇଥିବା + ଇକ୍ୱାଲାଇଜର୍‍ ଖୋଲାଯାଇପାରିବ ନାହିଁ। + ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। + କୌଣସି ସନ୍ଧାନ ଫଳାଫଳ ମିଳିଲା ନାହିଁ + ଆପଣ ବନାନ ଠିକ୍‍ କରିଥିବା ଦୟାକରି ପରୀକ୍ଷିତ କରନ୍ତୁ ବା ଏକ ଭିନ୍ନ କିଓ୍ୱାର୍ଡ ଚେଷ୍ଟା କରନ୍ତୁ। + ଆପଣ ପସନ୍ଦିତାସମୂହ ଚିହ୍ନିତ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। + କୌଣସି ସମ୍ପ୍ରତି ଗୀତ ନାହିଁ + ସମ୍ପ୍ରତି ଆପଣ ଶୁଣୁଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ପ୍ରଦର୍ଶନ କରିବା। + ଚାଳନତାଲିକାରେ କିଛି ଗୀତ ନାହିଁ + ଏହି ଚାଳନତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ଚାଳନତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। + କୌଣସି ଶୀ‍ର୍ଷ ଟ୍ରାକ୍‍ ନାହିଁ + ଆପଣ ଅଧିକ ଥର ଶୁଣୁ୍ଥିବା ଗୀତଗୁଡିକ ଏହି ତାଲିକାରେ ଯୋଗ ହୋଇଯିବ। + ସମ୍ପ୍ରତି କୌଣସି ଗୀତ ଯୋଗ ହୋଇନାହିଁ + ଆପଣ ବିଗତ ମାସରେ ଯୋଗ କରିଥିବା ଗୀତଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ। + କୌଣସି ସଙ୍ଗୀତ ମିଳିଲା ନାହିଁ + ସଙ୍ଗୀତ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‍କୁ କପି କରିବା ପାଇଁ, ଏକ USB ତାର ବ୍ୟବହାର କରନ୍ତୁ। + ପ୍ଲେ ଧାଡିରେ କୌଣସି ଗୀତ ନାହିଁ + ଏହି ପ୍ଲେତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \"ପ୍ଲେତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\"ରେ ଚୟନ କରନ୍ତୁ। + ଟ୍ରାକ୍‍ %1$s ପ୍ଲେ କରିବାରେ ଅ‍କ୍ଷମ + ଅଜ୍ଞାତ ବ‍ର୍ଷ + 30 ସେକେଣ୍ଡରୁ କମ୍‍ + 30 - 60 ସେକେଣ୍ଡ + 1 - 2 ମିନିଟ୍‍ + 2 - 3 ମିନିଟ୍‍ + 3 - 4 ମିନିଟ୍‍ + 4 - 5 ମିନିଟ୍‍ + 5 - 10 ମିନିଟ୍‍ + 10 - 30 ମିନିଟ୍‍ + 30 - 60 ମିନିଟ୍‍ + 60 ମିନିଟ୍‍ରୁ ଅଧିକ + 1 ଗୀତ + 2 - 4 ଗୀତ + 5 - 9 ଗୀତ + 10+ ଗୀତ + 5+ ଆଲ୍‍ବମ୍‍ + ""ଅନ୍ୟାନ୍ୟ"" + ସମସ୍ତ କଳାକାର ଦେଖାନ୍ତୁ + ସମସ୍ତ ଆଲ୍‍ବମ୍‍ ଦେଖାନ୍ତୁ + ସମସ୍ତ ଗୀତ ଦେଖାନ୍ତୁ + ସମସ୍ତ ପ୍ଲେତାଲିକା ପ୍ରଦର୍ଶନ କରନ୍ତୁ + ସଙ୍ଗୀତ ସନ୍ଧାନ କରନ୍ତୁ + ସମ୍ସ୍ତ \"%s\" କଳାକାର + ସମ୍ସ୍ତ \"%s\" ଆଲ୍‍ବମ୍‍ + ସମ୍ସ୍ତ \"%s\" ଗୀତ + ସମ୍ସ୍ତ \"%s\" ପ୍ଲେତାଲିକା + %1$s %2$s + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 01ad86a..7b60ae4 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -17,174 +17,159 @@ limitations under the License. --> - Muzyka - - Ostatnio słuchane - Wykonawcy - Albumy - Utwory - Playlisty - Gatunki - Teraz odtwarzane - Kolejka odtwarzania - - Albumy - Najlepiej oceniane utwory - Wszystkie utwory - - Ustawienia - Szukaj - Losowo - Losuj wszystko - Losuj listę odtwarzania - Losuj album - Losuj wykonawcę - Losuj najlepiej oceniane utwory - Losuj ostatnio słuchane - Losuj ostatnio dodane - Odtwórz wszystko - Sortuj wg - Wyczyść listę - Wyczyść ostatnio słuchane - Wyczyść kolejkę - Zapisz kolejkę odtwarzania jako listę odtwarzania - Equalizer - - Dodaj do playlisty - Dodaj do kolejki - Usuń z ostatnio słuchanych - Usuń z kolejki - - A-Z - Z-A - Wykonawca - Album - Rok - Czas trwania - Data dodania - Lista utworów - Liczba utworów - Liczba albumów - Nazwa pliku - - Ostatnio dodane - Ostatnio odtwarzane - Moje najlepsze utwory - - Nowa playlista - Zapisz - Anuluj - Nadpisz - Wyczyść - Playlista %d - Nazwa playlisty - Usunąć %s? - Wyczyścić najlepiej oceniane utwory? - Wyczyścić najczęściej słuchane utwory? - Wyczyścić ostatnio dodane? - Operacja nie może zostać cofnięta - Grafiki z pamięci podręcznej zostaną trwale usunięte - Użyj zdjęcia z galerii - Wyszukiwarka Google - Użyj domyślnego zdjęcia - Użyj starego zdjęcia - - Odtwórz - Odtwórz następny - Odtwórz album - Więcej tego wykonawcy - Zmień nazwę - Usuń - Pobierz okładkę albumu - Pobierz zdjęcie wykonawcy - Usuń z ostatnio słuchanych - Ustaw jako dzwonek - Usuń z playlisty - Zmień obrazek - - Odtwórz - Pauza - Następny - Poprzedni - Losowo - Losowo wszystkie - Powtarzaj - Powtarzaj wszystkie - Powtarzaj bieżący - Otwórz kolejkę - Przeglądaj muzykę - - \"%s\" ustawiono jako dzwonek - Zmieniono nazwę playlisty - - Interfejs - Pamięć - Dane - Wyczyść pamięć podręczną - Usuń wszystkie zapisane grafiki - Pobieraj tylko za pośrednictwem Wi-Fi - Aby uniknąć opłat, nie pobieraj plików podczas połączenia GSM - Pobierz brakujące okładki albumów - Pobierz brakujące zdjęcia wykonawców - Ogólne - Pokaż wizualizacje muzyki - Pokaż teksty piosenek - Utwory, które mają plik srt - Potrząśnij, aby rozpocząć odtwarzanie - Wstrząśnij urządzenie, aby odtworzyć następny utwór - Okładka albumu na ekranie blokady - Zastąp tło ekranu blokady okładką albumu - - Muzyka: 4 \u00d7 1 - Muzyka: 4 \u00d7 2 - Muzyka: 4×2 (alternatywny) - Muzyka: Ostatnio słuchane - - Equalizer nie może zostać uruchomiony. - Aby skopiować muzykę z komputera do urządzenia, użyj kabla USB. - Nie znaleziono pasujących wyników - Proszę sprawdzić, czy masz poprawną pisownię lub spróbuj innego słowa kluczowego. - Tutaj pojawią się utwory oznaczone jako ulubione. - Brak ostatnio słuchanych utworów - Ostatnio przesłuchane albumy pojawią się tutaj. Zobaczysz je po odtworzeniu kilku utworów. - Brak utworów na playliście - Aby dodawać utwory do playlisty, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \"Dodaj do playlisty\". - Brak najlepiej ocenianych utworów - Utwory, które słuchasz najczęściej zostaną dodane do tej listy. - Brak ostatnio dodanych utworów - Tutaj pojawią się utwory dodane w przeciągu ostatniego miesiąca. - Nie znaleziono plików muzycznych - Aby skopiować muzykę z komputera do urządzenia, użyj kabla USB. - Brak piosenek umieszczonych w kolejce - Aby dodać utwory do Kolejki Odtwarzania, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \"Dodaj do kolejki\". - Nie można otworzyć utworu %1$s - - Nieznany rok - Mniej niż 30 sekund - 30 - 60 sekund - 1 - 2 minuty - 2 - 3 minut - 3 - 4 minuty - 4 - 5 minut - 5 - 10 minut - 10 - 30 minut - 30 - 60 minut - Więcej niż 60 minut - 1 piosenka - 2 - 4 piosenek - 5 - 9 piosenek - 10+ piosenek - 5+ Albumów - "Inny" - Pokaż wszystkich artystów - Pokaż wszystkie albumy - Pokaż wszystkie utwory - Pokaż wszystkie playlisty - Szukaj Muzyki - Wszyscy artyści \"%s\" - Wszystkie albumy \"%s\" - Wszystkie piosenki \"%s\" - Wszystkie playlisty \"%s\" - %1$s %2$s - Odtwarzanie muzyki + Muzyka + Ostatnio słuchane + Wykonawcy + Albumy + Utwory + Playlisty + Gatunki + Teraz odtwarzane + Kolejka odtwarzania + Albumy + Najlepiej oceniane utwory + Wszystkie utwory + Ustawienia + Szukaj + Losowo + Losuj wszystko + Losuj listę odtwarzania + Losuj album + Losuj wykonawcę + Losuj najlepiej oceniane utwory + Losuj ostatnio słuchane + Losuj ostatnio dodane + Odtwórz wszystko + Sortuj wg + Wyczyść listę + Wyczyść ostatnio słuchane + Wyczyść kolejkę + Zapisz kolejkę odtwarzania jako listę odtwarzania + Equalizer + Dodaj do playlisty + Dodaj do kolejki + Usuń z ostatnio słuchanych + Usuń z kolejki + A-Z + Z-A + Wykonawca + Album + Rok + Czas trwania + Data dodania + Lista utworów + Liczba utworów + Liczba albumów + Nazwa pliku + Ostatnio dodane + Ostatnio odtwarzane + Moje najlepsze utwory + Nowa playlista + Zapisz + Anuluj + Nadpisz + Wyczyść + Playlista %d + Nazwa playlisty + Usunąć %s? + Wyczyścić najlepiej oceniane utwory? + Wyczyścić najczęściej słuchane utwory? + Wyczyścić ostatnio dodane? + Operacja nie może zostać cofnięta + Grafiki z pamięci podręcznej zostaną trwale usunięte + Użyj zdjęcia z galerii + Wyszukiwarka Google + Użyj domyślnego zdjęcia + Użyj starego zdjęcia + Odtwórz + Odtwórz następny + Odtwórz album + Więcej tego wykonawcy + Zmień nazwę + Usuń + Pobierz okładkę albumu + Pobierz zdjęcie wykonawcy + Usuń z ostatnio słuchanych + Ustaw jako dzwonek + Usuń z playlisty + Zmień obrazek + Odtwórz + Pauza + Następny + Poprzedni + Losowo + Losowo wszystkie + Powtarzaj + Powtarzaj wszystkie + Powtarzaj bieżący + Otwórz kolejkę + Przeglądaj muzykę + \"%s\" ustawiono jako dzwonek + Zmieniono nazwę playlisty + Interfejs + Pamięć + Dane + Wyczyść pamięć podręczną + Usuń wszystkie zapisane grafiki + Pobieraj tylko za pośrednictwem Wi-Fi + Aby uniknąć opłat, nie pobieraj plików podczas połączenia GSM + Pobierz brakujące okładki albumów + Pobierz brakujące zdjęcia wykonawców + Ogólne + Pokaż wizualizacje muzyki + Pokaż teksty piosenek + Utwory, które mają plik srt + Potrząśnij, aby rozpocząć odtwarzanie + Wstrząśnij urządzenie, aby odtworzyć następny utwór + Okładka albumu na ekranie blokady + Zastąp tło ekranu blokady okładką albumu + Muzyka: 4 \u00d7 1 + Muzyka: 4 \u00d7 2 + Muzyka: 4×2 (alternatywny) + Muzyka: Ostatnio słuchane + Equalizer nie może zostać uruchomiony. + Aby skopiować muzykę z komputera do urządzenia, użyj kabla USB. + Nie znaleziono pasujących wyników + Proszę sprawdzić, czy masz poprawną pisownię lub spróbuj innego słowa kluczowego. + Tutaj pojawią się utwory oznaczone jako ulubione. + Brak ostatnio słuchanych utworów + Ostatnio przesłuchane albumy pojawią się tutaj. Zobaczysz je po odtworzeniu kilku utworów. + Brak utworów na playliście + Aby dodawać utwory do playlisty, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \"Dodaj do playlisty\". + Brak najlepiej ocenianych utworów + Utwory, które słuchasz najczęściej zostaną dodane do tej listy. + Brak ostatnio dodanych utworów + Tutaj pojawią się utwory dodane w przeciągu ostatniego miesiąca. + Nie znaleziono plików muzycznych + Aby skopiować muzykę z komputera do urządzenia, użyj kabla USB. + Brak piosenek umieszczonych w kolejce + Aby dodać utwory do Kolejki Odtwarzania, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \"Dodaj do kolejki\". + Nie można otworzyć utworu %1$s + Nieznany rok + Mniej niż 30 sekund + 30 - 60 sekund + 1 - 2 minuty + 2 - 3 minut + 3 - 4 minuty + 4 - 5 minut + 5 - 10 minut + 10 - 30 minut + 30 - 60 minut + Więcej niż 60 minut + 1 piosenka + 2 - 4 piosenek + 5 - 9 piosenek + 10+ piosenek + 5+ Albumów + "Inny" + Pokaż wszystkich artystów + Pokaż wszystkie albumy + Pokaż wszystkie utwory + Pokaż wszystkie playlisty + Szukaj Muzyki + Wszyscy artyści \"%s\" + Wszystkie albumy \"%s\" + Wszystkie piosenki \"%s\" + Wszystkie playlisty \"%s\" + %1$s %2$s diff --git a/app/src/main/res/values-pt-rBR/plurals.xml b/app/src/main/res/values-pt-rBR/plurals.xml index 58d335d..bbf15de 100644 --- a/app/src/main/res/values-pt-rBR/plurals.xml +++ b/app/src/main/res/values-pt-rBR/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistas - - - - %d álbum - %d álbuns - - - - %d música - %d músicas - - - - %d gênero - %d gêneros - - - - %dh - %dh - - - - %dm - %dm - - - - %d música adicionada à lista de reprodução. - %d músicas adicionadas à lista de reprodução. - - - - %d música removida da lista de reprodução. - %d músicas removidas da lista de reprodução. - - - - %d música adicionada à fila. - %d músicas adicionadas à fila. - - - - %d música adicionada aos favoritos. - %d músicas adicionadas aos favoritos. - - - - %d música foi apagada. - %d músicas foram apagadas. - + + %d artista + %d artistas + + + %d álbum + %d álbuns + + + %d música + %d músicas + + + %d gênero + %d gêneros + + + %dh + %dh + + + %dm + %dm + + + %d música adicionada à lista de reprodução. + %d músicas adicionadas à lista de reprodução. + + + %d música removida da lista de reprodução. + %d músicas removidas da lista de reprodução. + + + %d música adicionada à fila. + %d músicas adicionadas à fila. + + + %d música adicionada aos favoritos. + %d músicas adicionadas aos favoritos. + + + %d música foi apagada. + %d músicas foram apagadas. + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b1e98e0..d0879fa 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Música - - Recente - Artistas - Álbuns - Músicas - Listas de reprodução - Gêneros - Tocando - Fila de reprodução - - Álbuns - Mais tocadas - Todas as músicas - - Configurações - Busca - Aleatório - Todas aleatório - Aleatório na lista - Aleatório no álbum - Aleatório no artista - Aleatório nas mais tocadas - Aleatório nas tocadas recentemente - Aleatório nas últimas adicionadas - Tocar todas - Ordenar por - Limpar lista - Limpar recentes - Limpar fila - Salvar fila como lista de reprodução - Equalizador - - Adicionar à lista de reprodução - Adicionar à fila - Remover das recentes - Remover da fila - - A-Z - Z-A - Artista - Álbum - Ano - Duração - Data adicionada - Lista de faixas - Número de músicas - Número de álbuns - Nome do arquivo - - Última adição - Tocadas recentemente - Minhas mais tocadas - - Nova lista de reprodução - Salvar - Cancelar - Substituir - Limpar - Lista de reprodução %d - Nome da lista de reprodução - Apagar %s? - Limpar mais tocadas? - Limpar tocadas recentemente? - Limpar últimas adicionadas? - Não pode ser desfeito - Isso vai apagar permanentemente o cache de imagens - Escolher foto da Galeria - Pesquisa no Google - Usar foto padrão - Usar foto antiga - - Tocar - Tocar seguinte - Tocar o álbum - Mais do artista - Renomear - Apagar - Buscar a arte do álbum - Buscar imagem do artista - Remover das recentes - Usar como toque - Remover da lista de reprodução - Alterar imagem - - Tocar - Pausar - Próxima - Anterior - Aleatório - Todas aleatório - Repetir - Repetir todas - Repetir uma - Abrir fila - Buscar nas músicas - - \'%s\' foi definido como toque de celular - Lista de reprodução renomeada - - Interface - Armazenamento - Dados - Apagar cache - Remover todas as imagens em cache - Baixar somente via Wi-Fi - Não baixar pela rede móvel para reduzir cobranças da operadora - Baixar a arte dos álbuns que faltam - Baixar imagens dos artistas que faltam - Geral - Mostrar visualização de música - Mostrar letras de músicas - Para as músicas que tenham um arquivo srt - Agite para tocar - Agite seu dispositivo para tocar a próxima música - Arte do álbum na tela de bloqueio - Substitui o fundo da tela de bloqueio pela arte do álbum - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - Música: 4 \u00d7 2 (alternativa) - Música: ouvidas recentemente - - O equalizador não pôde ser aberto. - Para copiar músicas do seu computador para seu dispositivo, use um cabo USB. - Nenhum resultado de busca - Verifique se está escrito corretamente ou tente uma palavra diferente. - As músicas marcadas como favoritas serão exibidas aqui. - Não há músicas recentes - Músicas ouvidas recentemente serão mostradas aqui. - Não há músicas na lista de reprodução - Para adicionar músicas a esta lista de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \"Adicionar à lista de reprodução\". - Não há mais tocadas - As músicas mais ouvidas serão adicionadas a esta lista. - Não há músicas adicionadas recentemente - As músicas que você adicionou no último mês serão exibidas aqui. - Nenhuma música encontrada - Para copiar músicas do seu computador para seu dispositivo, use um cabo USB. - Não há músicas na fila de reprodução - Para adicionar músicas à sua fila de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \"Adicionar à fila\". - Impossível tocar %1$s - - Ano desconhecido - Menos de 30 segundos - 30 a 60 segundos - 1 a 2 minutos - 2 a 3 minutos - 3 a 4 minutos - 4 a 5 minutos - 5 a 10 minutos - 10 a 30 minutos - 30 a 60 minutos - Mais de 60 minutos - 1 música - 2 a 4 músicas - 5 a 9 músicas - 10 ou mais músicas - Mais de 5 álbuns - "Outro" - Mostrar todos os artistas - Mostrar todos os álbuns - Mostrar todas as músicas - Mostrar todas as listas de reprodução - Buscar música - Todos os artistas com \"%s\" - Todos os álbuns com \"%s\" - Todas as músicas com \"%s\" - Todas as listas de reprodução com \"%s\" - %1$s %2$s - Reprodução de música + Música + Recente + Artistas + Álbuns + Músicas + Listas de reprodução + Gêneros + Tocando + Fila de reprodução + Álbuns + Mais tocadas + Todas as músicas + Configurações + Busca + Aleatório + Todas aleatório + Aleatório na lista + Aleatório no álbum + Aleatório no artista + Aleatório nas mais tocadas + Aleatório nas tocadas recentemente + Aleatório nas últimas adicionadas + Tocar todas + Ordenar por + Limpar lista + Limpar recentes + Limpar fila + Salvar fila como lista de reprodução + Equalizador + Adicionar à lista de reprodução + Adicionar à fila + Remover das recentes + Remover da fila + A-Z + Z-A + Artista + Álbum + Ano + Duração + Data adicionada + Lista de faixas + Número de músicas + Número de álbuns + Nome do arquivo + Última adição + Tocadas recentemente + Minhas mais tocadas + Nova lista de reprodução + Salvar + Cancelar + Substituir + Limpar + Lista de reprodução %d + Nome da lista de reprodução + Apagar %s? + Limpar mais tocadas? + Limpar tocadas recentemente? + Limpar últimas adicionadas? + Não pode ser desfeito + Isso vai apagar permanentemente o cache de imagens + Escolher foto da Galeria + Pesquisa no Google + Usar foto padrão + Usar foto antiga + Tocar + Tocar seguinte + Tocar o álbum + Mais do artista + Renomear + Apagar + Buscar a arte do álbum + Buscar imagem do artista + Remover das recentes + Usar como toque + Remover da lista de reprodução + Alterar imagem + Tocar + Pausar + Próxima + Anterior + Aleatório + Todas aleatório + Repetir + Repetir todas + Repetir uma + Abrir fila + Buscar nas músicas + \'%s\' foi definido como toque de celular + Lista de reprodução renomeada + Interface + Armazenamento + Dados + Apagar cache + Remover todas as imagens em cache + Baixar somente via Wi-Fi + Não baixar pela rede móvel para reduzir cobranças da operadora + Baixar a arte dos álbuns que faltam + Baixar imagens dos artistas que faltam + Geral + Mostrar visualização de música + Mostrar letras de músicas + Para as músicas que tenham um arquivo srt + Agite para tocar + Agite seu dispositivo para tocar a próxima música + Arte do álbum na tela de bloqueio + Substitui o fundo da tela de bloqueio pela arte do álbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternativa) + Música: ouvidas recentemente + O equalizador não pôde ser aberto. + Para copiar músicas do seu computador para seu dispositivo, use um cabo USB. + Nenhum resultado de busca + Verifique se está escrito corretamente ou tente uma palavra diferente. + As músicas marcadas como favoritas serão exibidas aqui. + Não há músicas recentes + Músicas ouvidas recentemente serão mostradas aqui. + Não há músicas na lista de reprodução + Para adicionar músicas a esta lista de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \"Adicionar à lista de reprodução\". + Não há mais tocadas + As músicas mais ouvidas serão adicionadas a esta lista. + Não há músicas adicionadas recentemente + As músicas que você adicionou no último mês serão exibidas aqui. + Nenhuma música encontrada + Para copiar músicas do seu computador para seu dispositivo, use um cabo USB. + Não há músicas na fila de reprodução + Para adicionar músicas à sua fila de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \"Adicionar à fila\". + Impossível tocar %1$s + Ano desconhecido + Menos de 30 segundos + 30 a 60 segundos + 1 a 2 minutos + 2 a 3 minutos + 3 a 4 minutos + 4 a 5 minutos + 5 a 10 minutos + 10 a 30 minutos + 30 a 60 minutos + Mais de 60 minutos + 1 música + 2 a 4 músicas + 5 a 9 músicas + 10 ou mais músicas + Mais de 5 álbuns + "Outro" + Mostrar todos os artistas + Mostrar todos os álbuns + Mostrar todas as músicas + Mostrar todas as listas de reprodução + Buscar música + Todos os artistas com \"%s\" + Todos os álbuns com \"%s\" + Todas as músicas com \"%s\" + Todas as listas de reprodução com \"%s\" + %1$s %2$s + Reprodução de música diff --git a/app/src/main/res/values-pt-rPT/plurals.xml b/app/src/main/res/values-pt-rPT/plurals.xml index 2ab9fc7..6d906c9 100644 --- a/app/src/main/res/values-pt-rPT/plurals.xml +++ b/app/src/main/res/values-pt-rPT/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artista - %d artistas - - - - %d álbum - %d álbuns - - - - %d música - %d músicas - - - - %d género - %d géneros - - - - %dh - %dh - - - - %dm - %dm - - - - %d música adicionada à lista de reprodução. - %d músicas adicionadas à lista de reprodução. - - - - %d música removida da lista de reprodução. - %d músicas removidas da lista de reprodução. - - - - %d música adicionada à fila. - %d músicas adicionadas à fila. - - - - %d música adicionada aos favoritos. - %d músicas adicionadas aos favoritos. - - - - %d música foi apagada. - %d músicas foram apagadas. - + + %d artista + %d artistas + + + %d álbum + %d álbuns + + + %d música + %d músicas + + + %d género + %d géneros + + + %dh + %dh + + + %dm + %dm + + + %d música adicionada à lista de reprodução. + %d músicas adicionadas à lista de reprodução. + + + %d música removida da lista de reprodução. + %d músicas removidas da lista de reprodução. + + + %d música adicionada à fila. + %d músicas adicionadas à fila. + + + %d música adicionada aos favoritos. + %d músicas adicionadas aos favoritos. + + + %d música foi apagada. + %d músicas foram apagadas. + diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 871bdb5..54c536b 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Música - - Recente - Artistas - Álbuns - Músicas - Listas de reprodução - Géneros - A tocar agora - Fila de reprodução - - Álbuns - Top de Músicas - Todas as músicas - - Definições - Procurar - Reproduzir aleatoriamente - Reproduzir todas aleatoriamente - Reproduzir lista de reprodução aleatoriamente - Reproduzir álbum aleatoriamente - Reproduzir artista aleatoriamente - Reproduzir Top de músicas aleatoriamente - Reproduzir tocadas recentemente aleatoriamente - Reproduzir últimas adicionadas aleatoriamente - Reproduzir todas - Ordenar por - Limpar lista - Limpar recentes - Limpar fila - Guardar a fila na lista de reprodução - Equalizador - - Adicionar à lista de reprodução - Adicionar à fila - Remover das recentes - Remover da fila - - A-Z - Z-A - Artista - Álbum - Ano - Duração - Data adicionada - Lista de músicas - Número de músicas - Número de álbuns - Nome do ficheiro - - Últimas adicionadas - Tocadas recentemente - O meu Top de músicas - - Nova lista de reprodução - Guardar - Cancelar - Substituir - Limpar - Lista de reprodução %d - Nome da lista de reprodução - Remover %s? - Limpar Top de Músicas? - Limpar as tocadas recentemente? - Limpar as últimas adicionadas? - Não pode ser desfeito - Isto vai remover permanentemente as imagens em cache - Escolher foto da Galeria - Pesquisa no Google - Usar foto padrão - Usar foto antiga - - Reproduzir - Reproduzir próxima - Reproduzir o álbum - Mais do mesmo artista - Mudar nome - Eliminar - Procurar capa do álbum - Procurar imagem do artista - Remover das recentes - Usar como toque - Remover da lista de reprodução - Alterar imagem - - Reproduzir - Pausa - Próxima - Anterior - Reproduzir aleatoriamente - Reproduzir todas aleatoriamente - Repetir - Repetir todas - Repetir uma - Abrir fila - Navegar músicas - - \'%s\' definida como toque - Mudado o nome da lista de reprodução - - Interface - Armazenamento - Dados - Apagar cache - Eliminar todas as imagens em cache - Baixar somente via Wi-Fi - Para reduzir custos adicionais por parte da operadora, não fazer download em redes móveis - Baixar capas de álbuns em falta - Baixar imagens do artista em falta - Geral - Mostrar visualização da música - Mostrar letras das músicas - Para músicas que têm um ficheiro .srt - Agitar para reproduzir - Agite o seu dispositivo para reproduzir a próxima música - Capa do álbum no ecrã de bloqueio - Substituir a imagem de fundo do ecrã de bloqueio pela capa do álbum - - Música: 4 \u00d7 1 - Música: 4 \u00d7 2 - Música: 4 \u00d7 2 (alternativo) - Música: recentemente ouvida - - O equalizador não pôde ser aberto. - Para copiar a música do seu computador para o seu dispositivo, utilize um cabo USB. - Nenhum resultado encontrado - Por favor, verifique se está escrito corretamente ou tente uma palavra diferente. - Vão ser mostradas aqui as músicas que você marcou como favoritas. - Não há músicas recentes - Músicas que ouviu recentemente vão ser mostradas aqui. - Não há músicas na lista de reprodução - Para adicionar músicas a esta lista de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \"Adicionar à lista de reprodução\". - O Top de Músicas não existe - As músicas que mais ouvir serão adicionadas a esta lista. - Não foram adicionadas músicas recentemente - Vão ser mostradas aqui as músicas que adicionou no último mês. - Nenhuma música encontrada - Para copiar a música do seu computador para o seu dispositivo, utilize um cabo USB. - Não há músicas na fila de reprodução - Para adicionar músicas à sua fila de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \"Adicionar à fila\". - Incapaz de reproduzir a música %1$s - - Ano desconhecido - Menos de 30 segundos - 30 - 60 segundos - 1 - 2 minutos - 2 - 3 minutos - 3 - 4 minutos - 4 - 5 minutos - 5 - 10 minutos - 10 - 30 minutos - 30 - 60 minutos - Mais de 60 minutos - 1 música - 2 - 4 músicas - 5 - 9 músicas - Mais de 10 músicas - Mais de 5 álbuns - "Outro" - Mostrar todos os artistas - Mostrar todos os álbuns - Mostrar todas as músicas - Mostrar todas as listas de reprodução - Pesquisar músicas - Todos os artistas \"%s\" - Todos os álbuns \"%s\" - Todas as músicas \"%s\" - Todas as listas de reprodução \"%s\" - %1$s %2$s - Reproduzir música + Música + Recente + Artistas + Álbuns + Músicas + Listas de reprodução + Géneros + A tocar agora + Fila de reprodução + Álbuns + Top de Músicas + Todas as músicas + Definições + Procurar + Reproduzir aleatoriamente + Reproduzir todas aleatoriamente + Reproduzir lista de reprodução aleatoriamente + Reproduzir álbum aleatoriamente + Reproduzir artista aleatoriamente + Reproduzir Top de músicas aleatoriamente + Reproduzir tocadas recentemente aleatoriamente + Reproduzir últimas adicionadas aleatoriamente + Reproduzir todas + Ordenar por + Limpar lista + Limpar recentes + Limpar fila + Guardar a fila na lista de reprodução + Equalizador + Adicionar à lista de reprodução + Adicionar à fila + Remover das recentes + Remover da fila + A-Z + Z-A + Artista + Álbum + Ano + Duração + Data adicionada + Lista de músicas + Número de músicas + Número de álbuns + Nome do ficheiro + Últimas adicionadas + Tocadas recentemente + O meu Top de músicas + Nova lista de reprodução + Guardar + Cancelar + Substituir + Limpar + Lista de reprodução %d + Nome da lista de reprodução + Remover %s? + Limpar Top de Músicas? + Limpar as tocadas recentemente? + Limpar as últimas adicionadas? + Não pode ser desfeito + Isto vai remover permanentemente as imagens em cache + Escolher foto da Galeria + Pesquisa no Google + Usar foto padrão + Usar foto antiga + Reproduzir + Reproduzir próxima + Reproduzir o álbum + Mais do mesmo artista + Mudar nome + Eliminar + Procurar capa do álbum + Procurar imagem do artista + Remover das recentes + Usar como toque + Remover da lista de reprodução + Alterar imagem + Reproduzir + Pausa + Próxima + Anterior + Reproduzir aleatoriamente + Reproduzir todas aleatoriamente + Repetir + Repetir todas + Repetir uma + Abrir fila + Navegar músicas + \'%s\' definida como toque + Mudado o nome da lista de reprodução + Interface + Armazenamento + Dados + Apagar cache + Eliminar todas as imagens em cache + Baixar somente via Wi-Fi + Para reduzir custos adicionais por parte da operadora, não fazer download em redes móveis + Baixar capas de álbuns em falta + Baixar imagens do artista em falta + Geral + Mostrar visualização da música + Mostrar letras das músicas + Para músicas que têm um ficheiro .srt + Agitar para reproduzir + Agite o seu dispositivo para reproduzir a próxima música + Capa do álbum no ecrã de bloqueio + Substituir a imagem de fundo do ecrã de bloqueio pela capa do álbum + Música: 4 \u00d7 1 + Música: 4 \u00d7 2 + Música: 4 \u00d7 2 (alternativo) + Música: recentemente ouvida + O equalizador não pôde ser aberto. + Para copiar a música do seu computador para o seu dispositivo, utilize um cabo USB. + Nenhum resultado encontrado + Por favor, verifique se está escrito corretamente ou tente uma palavra diferente. + Vão ser mostradas aqui as músicas que você marcou como favoritas. + Não há músicas recentes + Músicas que ouviu recentemente vão ser mostradas aqui. + Não há músicas na lista de reprodução + Para adicionar músicas a esta lista de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \"Adicionar à lista de reprodução\". + O Top de Músicas não existe + As músicas que mais ouvir serão adicionadas a esta lista. + Não foram adicionadas músicas recentemente + Vão ser mostradas aqui as músicas que adicionou no último mês. + Nenhuma música encontrada + Para copiar a música do seu computador para o seu dispositivo, utilize um cabo USB. + Não há músicas na fila de reprodução + Para adicionar músicas à sua fila de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \"Adicionar à fila\". + Incapaz de reproduzir a música %1$s + Ano desconhecido + Menos de 30 segundos + 30 - 60 segundos + 1 - 2 minutos + 2 - 3 minutos + 3 - 4 minutos + 4 - 5 minutos + 5 - 10 minutos + 10 - 30 minutos + 30 - 60 minutos + Mais de 60 minutos + 1 música + 2 - 4 músicas + 5 - 9 músicas + Mais de 10 músicas + Mais de 5 álbuns + "Outro" + Mostrar todos os artistas + Mostrar todos os álbuns + Mostrar todas as músicas + Mostrar todas as listas de reprodução + Pesquisar músicas + Todos os artistas \"%s\" + Todos os álbuns \"%s\" + Todas as músicas \"%s\" + Todas as listas de reprodução \"%s\" + %1$s %2$s + Reproduzir música diff --git a/app/src/main/res/values-ro/plurals.xml b/app/src/main/res/values-ro/plurals.xml index ee6fa62..3707eda 100644 --- a/app/src/main/res/values-ro/plurals.xml +++ b/app/src/main/res/values-ro/plurals.xml @@ -17,70 +17,59 @@ limitations under the License. --> - - - %d artist - %d artiști - %d artiști - - - - %d album - %d albume - %d albume - - - - %d melodie - %d melodii - %d melodii - - - - %d gen - %d genuri - %d genuri - - - - %do - %do - %do - - - - %dm - %dm - %dm - - - - %d cântec adăugat la lista de redare. - %d (de) cântece adăugate la lista de redare. - %d (de) cântece adăugate la lista de redare. - - - - %d melodie ștearsă din lista de redare. - %d melodii șterse din lista de redare. - %d melodii șterse din lista de redare. - - - - %d melodie adăugată la coadă. - %d melodii adăugate la coadă. - %d melodii adăugate la coadă. - - - - %d melodie adăugată la Favorite. - %d melodii adăugate la Favorite. - %d melodii adăugate la Favorite. - - - - %d melodie a fost ștearsă. - %d melodii au fost șterse. - %d melodii au fost șterse. - + + %d artist + %d artiști + %d artiști + + + %d album + %d albume + %d albume + + + %d melodie + %d melodii + %d melodii + + + %d gen + %d genuri + %d genuri + + + %do + %do + %do + + + %dm + %dm + %dm + + + %d cântec adăugat la lista de redare. + %d (de) cântece adăugate la lista de redare. + %d (de) cântece adăugate la lista de redare. + + + %d melodie ștearsă din lista de redare. + %d melodii șterse din lista de redare. + %d melodii șterse din lista de redare. + + + %d melodie adăugată la coadă. + %d melodii adăugate la coadă. + %d melodii adăugate la coadă. + + + %d melodie adăugată la Favorite. + %d melodii adăugate la Favorite. + %d melodii adăugate la Favorite. + + + %d melodie a fost ștearsă. + %d melodii au fost șterse. + %d melodii au fost șterse. + diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index c7e6fd3..69e7f5e 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Muzică - - Recent - Artiști - Albume - Melodii - Liste de redare - Genuri - Rulează acum - Coadă de redare - - Albume - Melodii de top - Toate melodiile - - Setări - Căutare - Amestecare - Amestecă toate - Amestecă lista de redare - Amestecă albumul - Amestecă artistul - Amestecă melodiile de top - Amestecă melodiile redate recent - Amestecă ultimele adăugate - Redă tot - Sortare după - Curăță lista - Curăță recent - Curăță coada - Salvați lista pentru redare - Egalizator - - Adaugă la lista de redare - Adaugă la coadă - Elimină din recente - Elimină din coadă - - A-Z - Z-A - Artist - Album - An - Durată - Data adăugării - Lista de melodii - Numărul de melodii - Numărul de albume - Nume fișier - - Ultimele adăugate - Redate recent - Piesele mele de top - - Listă redare nouă - Salvare - Anulare - Suprascrie - Curăță - Listă de redare %d - Numele listei de redare - Șterge %s? - Golește melodiile de top? - Golește lista de redare recentă? - Golește ultimele adăugate? - Această acțiune nu poate fi anulată - Aceasta va șterge permanent imaginile păstrate în cache - Alege poza din Galerie - Căutare pe Google - Utilizare foto implicită - Utilizare foto veche - - Redare - Redă următoarea - Redă album - Mai mult de același artist - Redenumire - Ștergere - Obține coperta albumului - Obține imaginea artistului - Elimină din recente - Folosește ca ton de apel - Elimină din lista de redare - Modificare imagine - - Redare - Pauză - Înainte - Înapoi - Amestecă - Amestecă toate - Repetă - Repetă toate - Repetă una - Deschide coada - Răsfoire muzică - - \'%s\' este ton de apel - Listă de redare redenumită - - Interfața - Stocare - Date - Șterge cache-ul - Elimină toate imaginile din cache - Descărcați doar via Wi-Fi - Pentru a micșora taxele operatorului, nu descărcați folosind rețelele mobile - Descărcare copertă album absentă - Descărcare imagine artist absentă - General - Arată vizualizarea muzicală - Arată versurile - Pentru melodii care au un fișier srt - Scuturați pentru a reda - Se agită dispozitivul pentru a reda melodia următoare - Coperta albumului pe ecranul de blocare - Înlocuiți fundalul ecranului de blocare cu coperta albumului - - Muzică: 4 \u00d7 1 - Muzică: 4 \u00d7 2 - Muzică: 4 \u00d7 2 (alternativ) - Muzică: recent ascultate - - Egalizatorul nu a putut fi deschis. - Pentru a copia muzică de pe calculator în dispozitivul dvs, folosiți un cablu USB. - Nu am găsit rezultate la căutare - Vă rugăm să verificați că aveți ortografia corectă sau încercați un cuvânt cheie diferit. - Melodiile marcate de dvs ca favorite vor fi afișate aici. - Nicio melodie recentă - Melodiile redate recent vor fi afișate aici. - Nicio melodie în lista de redare - Pentru a adăuga melodii la această listă de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \"Adăugați la lista de redare\". - Nicio melodie de top - Melodiile ascultate cel mai des vor fi adăugate la această listă. - Nicio melodie adăugată recent - Melodiile adăugate de dvs în ultima lună vor fi afișate aici. - Nicio melodie nu a fost găsită - Pentru a copia muzică de pe computer în dispozitivul dvs, folosiți un cablu USB. - Nicio melodie în coada de redare - Pentru a adăuga melodii în coada de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \"Adăugați la coadă\". - Melodia %1$s nu poate fi redată - - An necunoscut - Mai puțin de 30 de secunde - 30 - 60 de secunde - 1 - 2 minute - 2 - 3 minute - 3 - 4 minute - 4 - 5 minute - 5 - 10 minute - 10 - 30 de minute - 30 - 60 de minute - Mai mult de 60 de minute - 1 melodie - 2 - 4 melodii - 5 - 9 melodii - 10+ melodii - 5+ albume - "Altele" - Arată toți artiștii - Arată toate albumele - Arată toate melodiile - Arată toate listele de redare - Căutare muzică - Toți \"%s\" artiștii - Toate \"%s\" albumele - Toate \"%s\" melodiile - Toate \"%s\" listele de redare - %1$s %2$s - Redare muzică + Muzică + Recent + Artiști + Albume + Melodii + Liste de redare + Genuri + Rulează acum + Coadă de redare + Albume + Melodii de top + Toate melodiile + Setări + Căutare + Amestecare + Amestecă toate + Amestecă lista de redare + Amestecă albumul + Amestecă artistul + Amestecă melodiile de top + Amestecă melodiile redate recent + Amestecă ultimele adăugate + Redă tot + Sortare după + Curăță lista + Curăță recent + Curăță coada + Salvați lista pentru redare + Egalizator + Adaugă la lista de redare + Adaugă la coadă + Elimină din recente + Elimină din coadă + A-Z + Z-A + Artist + Album + An + Durată + Data adăugării + Lista de melodii + Numărul de melodii + Numărul de albume + Nume fișier + Ultimele adăugate + Redate recent + Piesele mele de top + Listă redare nouă + Salvare + Anulare + Suprascrie + Curăță + Listă de redare %d + Numele listei de redare + Șterge %s? + Golește melodiile de top? + Golește lista de redare recentă? + Golește ultimele adăugate? + Această acțiune nu poate fi anulată + Aceasta va șterge permanent imaginile păstrate în cache + Alege poza din Galerie + Căutare pe Google + Utilizare foto implicită + Utilizare foto veche + Redare + Redă următoarea + Redă album + Mai mult de același artist + Redenumire + Ștergere + Obține coperta albumului + Obține imaginea artistului + Elimină din recente + Folosește ca ton de apel + Elimină din lista de redare + Modificare imagine + Redare + Pauză + Înainte + Înapoi + Amestecă + Amestecă toate + Repetă + Repetă toate + Repetă una + Deschide coada + Răsfoire muzică + \'%s\' este ton de apel + Listă de redare redenumită + Interfața + Stocare + Date + Șterge cache-ul + Elimină toate imaginile din cache + Descărcați doar via Wi-Fi + Pentru a micșora taxele operatorului, nu descărcați folosind rețelele mobile + Descărcare copertă album absentă + Descărcare imagine artist absentă + General + Arată vizualizarea muzicală + Arată versurile + Pentru melodii care au un fișier srt + Scuturați pentru a reda + Se agită dispozitivul pentru a reda melodia următoare + Coperta albumului pe ecranul de blocare + Înlocuiți fundalul ecranului de blocare cu coperta albumului + Muzică: 4 \u00d7 1 + Muzică: 4 \u00d7 2 + Muzică: 4 \u00d7 2 (alternativ) + Muzică: recent ascultate + Egalizatorul nu a putut fi deschis. + Pentru a copia muzică de pe calculator în dispozitivul dvs, folosiți un cablu USB. + Nu am găsit rezultate la căutare + Vă rugăm să verificați că aveți ortografia corectă sau încercați un cuvânt cheie diferit. + Melodiile marcate de dvs ca favorite vor fi afișate aici. + Nicio melodie recentă + Melodiile redate recent vor fi afișate aici. + Nicio melodie în lista de redare + Pentru a adăuga melodii la această listă de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \"Adăugați la lista de redare\". + Nicio melodie de top + Melodiile ascultate cel mai des vor fi adăugate la această listă. + Nicio melodie adăugată recent + Melodiile adăugate de dvs în ultima lună vor fi afișate aici. + Nicio melodie nu a fost găsită + Pentru a copia muzică de pe computer în dispozitivul dvs, folosiți un cablu USB. + Nicio melodie în coada de redare + Pentru a adăuga melodii în coada de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \"Adăugați la coadă\". + Melodia %1$s nu poate fi redată + An necunoscut + Mai puțin de 30 de secunde + 30 - 60 de secunde + 1 - 2 minute + 2 - 3 minute + 3 - 4 minute + 4 - 5 minute + 5 - 10 minute + 10 - 30 de minute + 30 - 60 de minute + Mai mult de 60 de minute + 1 melodie + 2 - 4 melodii + 5 - 9 melodii + 10+ melodii + 5+ albume + "Altele" + Arată toți artiștii + Arată toate albumele + Arată toate melodiile + Arată toate listele de redare + Căutare muzică + Toți \"%s\" artiștii + Toate \"%s\" albumele + Toate \"%s\" melodiile + Toate \"%s\" listele de redare + %1$s %2$s + Redare muzică diff --git a/app/src/main/res/values-ru/plurals.xml b/app/src/main/res/values-ru/plurals.xml index 5c3fdec..0a93cf8 100644 --- a/app/src/main/res/values-ru/plurals.xml +++ b/app/src/main/res/values-ru/plurals.xml @@ -17,81 +17,70 @@ limitations under the License. --> - - - %d исполнитель - %d исполнителя - %d исполнителей - %d исполнителей - - - - %d альбом - %d альбома - %d альбомов - %d альбомов - - - - %d трек - %d трека - %d треков - %d треков - - - - %d жанр - %d жанра - %d жанров - %d жанров - - - - %d ч. - %d ч. - %dч. - %d ч. - - - - %d мин. - %d мин. - %d мин. - %d мин. - - - - %d трек добавлен в плейлист. - %d трека добавлены в плейлист. - %d треков добавлены в плейлист. - %d треков добавлены в плейлист. - - - - %d трек удален из плейлиста. - %d трека удалены из плейлиста. - %d треков удалены из плейлиста. - %d треков удалены из плейлиста. - - - - %d трек добавлен в очередь. - %d трека добавлены в очередь. - %d треков добавлены в очередь. - %d треков добавлены в очередь. - - - - %d трек добавлен в избранное. - %d трека добавлены в избранное. - %d треков добавлены в избранное. - %d треков добавлены в избранное. - - - - %d трек удален. - %d трека удалены. - %d треков удалены. - %d треков удалены. - + + %d исполнитель + %d исполнителя + %d исполнителей + %d исполнителей + + + %d альбом + %d альбома + %d альбомов + %d альбомов + + + %d трек + %d трека + %d треков + %d треков + + + %d жанр + %d жанра + %d жанров + %d жанров + + + %d ч. + %d ч. + %dч. + %d ч. + + + %d мин. + %d мин. + %d мин. + %d мин. + + + %d трек добавлен в плейлист. + %d трека добавлены в плейлист. + %d треков добавлены в плейлист. + %d треков добавлены в плейлист. + + + %d трек удален из плейлиста. + %d трека удалены из плейлиста. + %d треков удалены из плейлиста. + %d треков удалены из плейлиста. + + + %d трек добавлен в очередь. + %d трека добавлены в очередь. + %d треков добавлены в очередь. + %d треков добавлены в очередь. + + + %d трек добавлен в избранное. + %d трека добавлены в избранное. + %d треков добавлены в избранное. + %d треков добавлены в избранное. + + + %d трек удален. + %d трека удалены. + %d треков удалены. + %d треков удалены. + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 15f7f0e..62f57a5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Музыка - - Недавние - Исполнители - Альбомы - Треки - Плейлисты - Жанры - Сейчас играет - Очередь воспроизведения - - Альбомы - Топ-треки - Все треки - - Настройки - Поиск - Перемешать - Перемешать все - Перемешать плейлист - Перемешать альбом - Перемешать исполнителя - Перемешать топ-треки - Перемешать недавно воспроизведенные - Перемешать последние добавленные - Воспроизвести все - Сортировать по - Очистить список - Очистить недавние - Очистить очередь - Сохранить в плейлист - Эквалайзер - - Добавить в плейлист - Добавить в очередь - Удалить из недавних - Удалить из очереди - - Алфавиту - Алфавиту в обр. порядке - Исполнителю - Альбому - Году - Длительности - Дате добавления - Трек-листу - Количеству треков - Количеству альбомов - Имени файла - - Недавно добавленные - Недавно воспроизведенные - Мои топ-треки - - Новый плейлист - Сохранить - Отмена - Заменить - Очистить - Плейлист %d - Имя плейлиста - Удалить «%s»? - Очистить список топ-треков? - Очистить недавно воспроизведенные? - Очистить недавно добавленные? - Это действие невозможно отменить - Кэшированные изображения будут удалены. - Выбрать из Галереи - Найти в Google - Изображение по умолчанию - Исходное изображение - - Воспроизвести - Воспр. следующим - Воспр. альбом - Все треки исполнителя - Переименовать - Удалить - Загрузить обложку альбома - Загрузить фото исполнителя - Удалить из недавних - Использовать как рингтон - Удалить из плейлиста - Изменить изображение - - Воспроизвести - Пауза - След. - Предыдущий - Перемешать - Перемешать все - Повтор - Повтор всех - Повтор трека - Открыть очередь - Обзор музыки - - Трек «%s» установлен как рингтон - Плейлист переименован - - Интерфейс - Хранилище - Данные - Очистить кэш - Удалить все кэшированные изображения - Загрузка только через Wi-Fi - Не загружать данные через мобильный интернет, чтобы избежать возможных расходов - Загружать обложки альбомов - Загружать фото исполнителей - Общее - Показывать визуализацию музыки - Показывать текст песни - Для песен, к которым имеется файл srt - Перекл. треков встряхиванием - Встряхните устройство для перехода к следующему треку - Обложка альбома - Заменять обои экрана блокировки обложкой воспроизводимого альбома - - Музыка: 4 \u00d7 1 - Музыка: 4 \u00d7 2 - Музыка: 4 \u00d7 2 (альтернативный) - Музыка: недавно прослушанные - - Не удалось открыть эквалайзер. - Чтобы скопировать музыку с ПК, используйте USB-кабель. - Поиск не дал результатов - Проверьте правильность ввода или попробуйте поиск по другому ключевому слову. - Здесь будут треки, которые вы добавили в избранное. - Нет недавних треков - Здесь появятся треки, которые вы недавно слушали. - Нет треков в плейлисте - Чтобы добавить треки в плейлист, нажмите меню параметров трека, альбома или исполнителя и выберите «Добавить в плейлист». - Нет топ-треков - В этот список добавятся треки, которые вы слушаете чаще всего. - Нет недавно добавленных треков - Здесь появятся треки, добавленные за последний месяц. - Музыка не найдена - Чтобы скопировать музыку с ПК, используйте USB-кабель. - Нет треков в очереди - Чтобы добавить треки в очередь воспроизведения, нажмите меню параметров трека, альбома или исполнителя и выберите «Добавить в очередь». - Невозможно воспроизвести трек «%1$s» - - Неизвестный год - Меньше 30 секунд - 30−60 секунд - 1−2 минуты - 2−3 минуты - 3−4 минуты - 4−5 минут - 5−10 минут - 10−30 минут - 30−60 минут - Более 60 минут - 1 трек - 2−4 трека - 5−9 треков - Более 10 треков - Более 5 альбомов - "Другие" - Показать всех исполнителей - Показать все альбомы - Показать все треки - Показать все плейлисты - Поиск музыки - Все исполнители «%s» - Все альбомы «%s» - Все треки «%s» - Все плейлисты «%s» - %1$s %2$s - Воспроизведение музыки + Музыка + Недавние + Исполнители + Альбомы + Треки + Плейлисты + Жанры + Сейчас играет + Очередь воспроизведения + Альбомы + Топ-треки + Все треки + Настройки + Поиск + Перемешать + Перемешать все + Перемешать плейлист + Перемешать альбом + Перемешать исполнителя + Перемешать топ-треки + Перемешать недавно воспроизведенные + Перемешать последние добавленные + Воспроизвести все + Сортировать по + Очистить список + Очистить недавние + Очистить очередь + Сохранить в плейлист + Эквалайзер + Добавить в плейлист + Добавить в очередь + Удалить из недавних + Удалить из очереди + Алфавиту + Алфавиту в обр. порядке + Исполнителю + Альбому + Году + Длительности + Дате добавления + Трек-листу + Количеству треков + Количеству альбомов + Имени файла + Недавно добавленные + Недавно воспроизведенные + Мои топ-треки + Новый плейлист + Сохранить + Отмена + Заменить + Очистить + Плейлист %d + Имя плейлиста + Удалить «%s»? + Очистить список топ-треков? + Очистить недавно воспроизведенные? + Очистить недавно добавленные? + Это действие невозможно отменить + Кэшированные изображения будут удалены. + Выбрать из Галереи + Найти в Google + Изображение по умолчанию + Исходное изображение + Воспроизвести + Воспр. следующим + Воспр. альбом + Все треки исполнителя + Переименовать + Удалить + Загрузить обложку альбома + Загрузить фото исполнителя + Удалить из недавних + Использовать как рингтон + Удалить из плейлиста + Изменить изображение + Воспроизвести + Пауза + След. + Предыдущий + Перемешать + Перемешать все + Повтор + Повтор всех + Повтор трека + Открыть очередь + Обзор музыки + Трек «%s» установлен как рингтон + Плейлист переименован + Интерфейс + Хранилище + Данные + Очистить кэш + Удалить все кэшированные изображения + Загрузка только через Wi-Fi + Не загружать данные через мобильный интернет, чтобы избежать возможных расходов + Загружать обложки альбомов + Загружать фото исполнителей + Общее + Показывать визуализацию музыки + Показывать текст песни + Для песен, к которым имеется файл srt + Перекл. треков встряхиванием + Встряхните устройство для перехода к следующему треку + Обложка альбома + Заменять обои экрана блокировки обложкой воспроизводимого альбома + Музыка: 4 \u00d7 1 + Музыка: 4 \u00d7 2 + Музыка: 4 \u00d7 2 (альтернативный) + Музыка: недавно прослушанные + Не удалось открыть эквалайзер. + Чтобы скопировать музыку с ПК, используйте USB-кабель. + Поиск не дал результатов + Проверьте правильность ввода или попробуйте поиск по другому ключевому слову. + Здесь будут треки, которые вы добавили в избранное. + Нет недавних треков + Здесь появятся треки, которые вы недавно слушали. + Нет треков в плейлисте + Чтобы добавить треки в плейлист, нажмите меню параметров трека, альбома или исполнителя и выберите «Добавить в плейлист». + Нет топ-треков + В этот список добавятся треки, которые вы слушаете чаще всего. + Нет недавно добавленных треков + Здесь появятся треки, добавленные за последний месяц. + Музыка не найдена + Чтобы скопировать музыку с ПК, используйте USB-кабель. + Нет треков в очереди + Чтобы добавить треки в очередь воспроизведения, нажмите меню параметров трека, альбома или исполнителя и выберите «Добавить в очередь». + Невозможно воспроизвести трек «%1$s» + Неизвестный год + Меньше 30 секунд + 30−60 секунд + 1−2 минуты + 2−3 минуты + 3−4 минуты + 4−5 минут + 5−10 минут + 10−30 минут + 30−60 минут + Более 60 минут + 1 трек + 2−4 трека + 5−9 треков + Более 10 треков + Более 5 альбомов + "Другие" + Показать всех исполнителей + Показать все альбомы + Показать все треки + Показать все плейлисты + Поиск музыки + Все исполнители «%s» + Все альбомы «%s» + Все треки «%s» + Все плейлисты «%s» + %1$s %2$s + Воспроизведение музыки diff --git a/app/src/main/res/values-sc-rIT/strings.xml b/app/src/main/res/values-sc-rIT/strings.xml index cc3851c..a9afbc7 100644 --- a/app/src/main/res/values-sc-rIT/strings.xml +++ b/app/src/main/res/values-sc-rIT/strings.xml @@ -17,42 +17,28 @@ limitations under the License. --> - Mùsica - - - - Cunfiguratziones - Chirca - - - Artista - Annu - Longària - - - Sarva - Annulla - Subraiscrie - Isbòida - - Iscantzella - - - - Datos - Generale - - - - Prus pagu de 30 segundos - 30 - 60 segundos - 1 - 2 minutos - 2 - 3 minutos - 3 - 4 minutos - 4 - 5 minutos - 5 - 10 minutos - 10 - 30 minutos - 30 - 60 minutos - Prus de 60 minutos - "Àteru" + Mùsica + Cunfiguratziones + Chirca + Artista + Annu + Longària + Sarva + Annulla + Subraiscrie + Isbòida + Iscantzella + Datos + Generale + Prus pagu de 30 segundos + 30 - 60 segundos + 1 - 2 minutos + 2 - 3 minutos + 3 - 4 minutos + 4 - 5 minutos + 5 - 10 minutos + 10 - 30 minutos + 30 - 60 minutos + Prus de 60 minutos + "Àteru" diff --git a/app/src/main/res/values-sk/plurals.xml b/app/src/main/res/values-sk/plurals.xml index 3244758..2edd5ce 100644 --- a/app/src/main/res/values-sk/plurals.xml +++ b/app/src/main/res/values-sk/plurals.xml @@ -17,81 +17,70 @@ limitations under the License. --> - - - %d interpret - %d interpreti - %d interpretov - %d interpretov - - - - %d album - %d albumy - %d albumov - %d albumov - - - - %d skladba - %d skladby - %d skladieb - %d skladieb - - - - %d žáner - %d žánry - %d žánrov - %d žánrov - - - - %dh - %dh - %dh - %dh - - - - %dm - %dm - %dm - %dm - - - - %d skladba bola pridaná do zoznamu skladieb. - %d skladby boli pridané do zoznamu skladieb. - %d skladieb bolo pridaných do zoznamu skladieb. - %d skladieb bolo pridaných do zoznamu skladieb. - - - - %d skladba bola odstránená zo zoznamu skladieb. - %d skladby boli odstránené zo zoznamu skladieb. - %d skladieb bolo odstránených zo zoznamu skladieb. - %d skladieb bolo odstránených zo zoznamu skladieb. - - - - %d skladba bola pridaná do poradia. - %d skladby boli pridané do poradia. - %d skladieb bolo pridaných do poradia. - %d skladieb bolo pridaných do poradia. - - - - %d skladba bola pridaná do obľúbených. - %d skladby boli pridané do obľúbených. - %d skladieb bolo pridaných do obľúbených. - %d skladieb bolo pridaných do obľúbených. - - - - %d skladba bola vymazaná. - %d skladby boli vymazané. - %d skladieb boo vymazaných. - %d skladieb boo vymazaných. - + + %d interpret + %d interpreti + %d interpretov + %d interpretov + + + %d album + %d albumy + %d albumov + %d albumov + + + %d skladba + %d skladby + %d skladieb + %d skladieb + + + %d žáner + %d žánry + %d žánrov + %d žánrov + + + %dh + %dh + %dh + %dh + + + %dm + %dm + %dm + %dm + + + %d skladba bola pridaná do zoznamu skladieb. + %d skladby boli pridané do zoznamu skladieb. + %d skladieb bolo pridaných do zoznamu skladieb. + %d skladieb bolo pridaných do zoznamu skladieb. + + + %d skladba bola odstránená zo zoznamu skladieb. + %d skladby boli odstránené zo zoznamu skladieb. + %d skladieb bolo odstránených zo zoznamu skladieb. + %d skladieb bolo odstránených zo zoznamu skladieb. + + + %d skladba bola pridaná do poradia. + %d skladby boli pridané do poradia. + %d skladieb bolo pridaných do poradia. + %d skladieb bolo pridaných do poradia. + + + %d skladba bola pridaná do obľúbených. + %d skladby boli pridané do obľúbených. + %d skladieb bolo pridaných do obľúbených. + %d skladieb bolo pridaných do obľúbených. + + + %d skladba bola vymazaná. + %d skladby boli vymazané. + %d skladieb boo vymazaných. + %d skladieb boo vymazaných. + diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 67036a4..64bd63e 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Hudba - - Nedávne - Interpreti - Albumy - Skladby - Zoznamy skladieb - Žánre - Práve sa prehráva - Prehrať poradie - - Albumy - Najlepšie skladby - Všetky skladby - - Nastavenia - Hľadať - Prehrať náhodne - Prehrať všetky náhodne - Prehrať zoznam skladieb náhodne - Prehrať album náhodne - Prehrať interpreta náhodne - Prehrať najlepšie stopy náhodne - Prehrať nedávno prehrávané náhodne - Prehrať naposledy pridané náhodne - Prehrať všetky - Zoradiť podľa - Vyčistiť zoznam - Vyčistiť nedávne - Vyčistiť poradie - Uložiť poradie do zoznamu skladieb - Ekvalizér - - Pridať do zoznamu skladieb - Pridať do poradia - Odstrániť z nedávnych - Odstrániť z poradia - - A-Z - Z-A - Interpreta - Albumu - Roku - Dĺžky - Dátumu pridania - Zoznamu stôp - Počtu skladieb - Počtu albumov - Názvu súboru - - Naposledy pridané - Nedávno prehrávané - Moje najlepšie skladby - - Nový zoznam skladieb - Uložiť - Zrušiť - Prepísať - Vyčistiť - Zoznam skladieb %d - Názov zoznamu skladieb - Vymazať %s? - Vyčistiť najlepšie stopy? - Vyčistiť nedávno prehrávané? - Vyčistiť naposledy pridané? - Táto akcia sa nedá vrátiť späť - Týmto natrvalo odstránite obrázky vo vyrovnávacej pamäti - Vybrať fotografiu z Galérie - Vyhľadať pomocou Google - Použiť predvolenú fotografiu - Použiť pôvodnú fotografiu - - Prehrať - Prehrať ďalšiu - Prehrať album - Viac od interpreta - Premenovať - Vymazať - Získať obrázok albumu - Získať obrázok interpreta - Odstrániť z nedávnych - Nastaviť ako vyzváňanie - Odstrániť zo zoznamu skladieb - Zmeniť obrázok - - Prehrať - Pozastaviť - Ďalšia - Predchádzajúca - Prehrať náhodne - Prehrať všetky náhodne - Opakovať - Opakovať všetky - Opakovať jednu - Otvoriť poradie - Prehľadávať hudbu - - Skladba \'%s\' bola nastavená ako vyzváňanie - Zoznam skladieb bol premenovaný - - Rozhranie - Úložisko - Údaje - Vymazať vyrovnávaciu pamäť - Odstráni všetky obrázky vo vyrovnávacej pamäti - Preberať iba cez Wi-Fi - Na zníženie poplatkov poskytovateľovi sa nebude preberať cez mobilné siete - Prevziať chýbajúce obrázky albumov - Prevziať chýbajúce obrázky interpretov - Všeobecné - Zobraziť vizualizáciu hudby - Zobraziť texty skladieb - Pre skladby, ktoré majú súbor srt - Prehrať zatrasením - Prehrať ďalšiu skladbu zatrasením vášho zariadenia - Obal albumu na obrazovke uzamknutia - Nahradiť pozadie na obrazovke uzamknutia s obalom albumu - - Hudba: 4 \u00d7 1 - Hudba: 4 \u00d7 2 - Hudba: 4 \u00d7 2 (alternatívna) - Hudba: nedávno počúvané - - Nedá sa otvoriť ekvalizér. - Na kopírovanie hudby z vášho počítača do vášho zariadenia použite USB kábel. - Žiadne výsledky hľadania - Skontrolujte, či máte správny pravopis alebo vyskúšajte iné kľúčové slovo. - Tu budú zobrazené skladby, ktoré ste označili ako obľúbené. - Žiadne nedávne skladby - Tu budú zobrazené skladby, ktoré ste nedávno počúvali. - Žiadne skladby v zozname skladieb - Pre pridanie skladieb do zoznamu skladieb kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \"Pridať do zoznamu skladieb\". - Žiadne najlepšie skladby - Tu budú zobrazené skladby, ktoré počúvate najčastejšie. - Žiadne nedávno pridané skladby - Tu budú zobrazené skladby, ktoré ste pridali za posledný mesiac. - Nenašla sa žiadna hudba - Na kopírovanie hudby z vášho počítača do vášho zariadenia použite USB kábel. - Žiadne skladby v poradí na prehrávanie - Pre pridanie skladieb do poradia na prehrávanie kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \"Pridať do poradia\". - Nepodarilo sa prehrať skladbu %1$s - - Neznámy rok - Menej ako 30 sekúnd - 30 - 60 sekúnd - 1 - 2 minúty - 2 - 3 minúty - 3 - 4 minúty - 4 - 5 minút - 5 - 10 minút - 10 - 30 minút - 30 - 60 minút - Viac ako 60 minút - 1 skladba - 2 - 4 skladby - 5 - 9 skladieb - Viac ako 10 skladieb - Viac ako 5 albumov - "Iné" - Zobraziť všetkých interpretov - Zobraziť všetky albumy - Zobraziť všetky skladby - Zobraziť všetky zoznamy skladieb - Vyhľadávanie hudby - Všetko od interpreta \"%s\" - Všetko v albume \"%s\" - Všetky skladby \"%s\" - Všetky v zozname skladieb \"%s\" - %1$s %2$s - Prehrávanie zvuku + Hudba + Nedávne + Interpreti + Albumy + Skladby + Zoznamy skladieb + Žánre + Práve sa prehráva + Prehrať poradie + Albumy + Najlepšie skladby + Všetky skladby + Nastavenia + Hľadať + Prehrať náhodne + Prehrať všetky náhodne + Prehrať zoznam skladieb náhodne + Prehrať album náhodne + Prehrať interpreta náhodne + Prehrať najlepšie stopy náhodne + Prehrať nedávno prehrávané náhodne + Prehrať naposledy pridané náhodne + Prehrať všetky + Zoradiť podľa + Vyčistiť zoznam + Vyčistiť nedávne + Vyčistiť poradie + Uložiť poradie do zoznamu skladieb + Ekvalizér + Pridať do zoznamu skladieb + Pridať do poradia + Odstrániť z nedávnych + Odstrániť z poradia + A-Z + Z-A + Interpreta + Albumu + Roku + Dĺžky + Dátumu pridania + Zoznamu stôp + Počtu skladieb + Počtu albumov + Názvu súboru + Naposledy pridané + Nedávno prehrávané + Moje najlepšie skladby + Nový zoznam skladieb + Uložiť + Zrušiť + Prepísať + Vyčistiť + Zoznam skladieb %d + Názov zoznamu skladieb + Vymazať %s? + Vyčistiť najlepšie stopy? + Vyčistiť nedávno prehrávané? + Vyčistiť naposledy pridané? + Táto akcia sa nedá vrátiť späť + Týmto natrvalo odstránite obrázky vo vyrovnávacej pamäti + Vybrať fotografiu z Galérie + Vyhľadať pomocou Google + Použiť predvolenú fotografiu + Použiť pôvodnú fotografiu + Prehrať + Prehrať ďalšiu + Prehrať album + Viac od interpreta + Premenovať + Vymazať + Získať obrázok albumu + Získať obrázok interpreta + Odstrániť z nedávnych + Nastaviť ako vyzváňanie + Odstrániť zo zoznamu skladieb + Zmeniť obrázok + Prehrať + Pozastaviť + Ďalšia + Predchádzajúca + Prehrať náhodne + Prehrať všetky náhodne + Opakovať + Opakovať všetky + Opakovať jednu + Otvoriť poradie + Prehľadávať hudbu + Skladba \'%s\' bola nastavená ako vyzváňanie + Zoznam skladieb bol premenovaný + Rozhranie + Úložisko + Údaje + Vymazať vyrovnávaciu pamäť + Odstráni všetky obrázky vo vyrovnávacej pamäti + Preberať iba cez Wi-Fi + Na zníženie poplatkov poskytovateľovi sa nebude preberať cez mobilné siete + Prevziať chýbajúce obrázky albumov + Prevziať chýbajúce obrázky interpretov + Všeobecné + Zobraziť vizualizáciu hudby + Zobraziť texty skladieb + Pre skladby, ktoré majú súbor srt + Prehrať zatrasením + Prehrať ďalšiu skladbu zatrasením vášho zariadenia + Obal albumu na obrazovke uzamknutia + Nahradiť pozadie na obrazovke uzamknutia s obalom albumu + Hudba: 4 \u00d7 1 + Hudba: 4 \u00d7 2 + Hudba: 4 \u00d7 2 (alternatívna) + Hudba: nedávno počúvané + Nedá sa otvoriť ekvalizér. + Na kopírovanie hudby z vášho počítača do vášho zariadenia použite USB kábel. + Žiadne výsledky hľadania + Skontrolujte, či máte správny pravopis alebo vyskúšajte iné kľúčové slovo. + Tu budú zobrazené skladby, ktoré ste označili ako obľúbené. + Žiadne nedávne skladby + Tu budú zobrazené skladby, ktoré ste nedávno počúvali. + Žiadne skladby v zozname skladieb + Pre pridanie skladieb do zoznamu skladieb kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \"Pridať do zoznamu skladieb\". + Žiadne najlepšie skladby + Tu budú zobrazené skladby, ktoré počúvate najčastejšie. + Žiadne nedávno pridané skladby + Tu budú zobrazené skladby, ktoré ste pridali za posledný mesiac. + Nenašla sa žiadna hudba + Na kopírovanie hudby z vášho počítača do vášho zariadenia použite USB kábel. + Žiadne skladby v poradí na prehrávanie + Pre pridanie skladieb do poradia na prehrávanie kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \"Pridať do poradia\". + Nepodarilo sa prehrať skladbu %1$s + Neznámy rok + Menej ako 30 sekúnd + 30 - 60 sekúnd + 1 - 2 minúty + 2 - 3 minúty + 3 - 4 minúty + 4 - 5 minút + 5 - 10 minút + 10 - 30 minút + 30 - 60 minút + Viac ako 60 minút + 1 skladba + 2 - 4 skladby + 5 - 9 skladieb + Viac ako 10 skladieb + Viac ako 5 albumov + "Iné" + Zobraziť všetkých interpretov + Zobraziť všetky albumy + Zobraziť všetky skladby + Zobraziť všetky zoznamy skladieb + Vyhľadávanie hudby + Všetko od interpreta \"%s\" + Všetko v albume \"%s\" + Všetky skladby \"%s\" + Všetky v zozname skladieb \"%s\" + %1$s %2$s + Prehrávanie zvuku diff --git a/app/src/main/res/values-sl/plurals.xml b/app/src/main/res/values-sl/plurals.xml index 61d0b49..5993663 100644 --- a/app/src/main/res/values-sl/plurals.xml +++ b/app/src/main/res/values-sl/plurals.xml @@ -17,81 +17,70 @@ limitations under the License. --> - - - %d izvajalec - %d izvajalca - %d izvajalci - %d izvajalcev - - - - %d album - %d albuma - %d albumi - %d albumov - - - - %d skladba - %d skladbi - %d skladbe - %d skladb - - - - %d žanr - %d žanra - %d žanri - %d žanrov - - - - %d ura - %d uri - %d ure - %d ur - - - - %d min. - %d min. - %d min. - %d min. - - - - %d skladba dodana na seznam predvajanja. - %d skladbi dodani na seznam predvajanja. - %d skladbe dodane na seznam predvajanja. - %d skladb dodanih na seznam predvajanja. - - - - %d skladba odstranjena iz seznama predvajanja. - %d skladbi odstranjeni iz seznama predvajanja. - %d skladbe odstranjene iz seznama predvajanja. - %d skladb odstranjenih iz seznama predvajanja. - - - - %d skladba dodana v čakalno vrsto. - %d skladbi dodani v čakalno vrsto. - %d skladbe dodane v čakalno vrsto. - %d skladb dodanih v čakalno vrsto. - - - - %d skladba dodana k priljubljenim. - %d skladbi dodani k priljubljenim. - %d skladbe dodane k priljubljenim. - %d skladb dodanih k priljubljenim. - - - - %d skladba je bila izbrisana. - %d skladbi sta bili izbrisani. - %d skladbe so bile izbrisane. - %d skladb je bilo izbrisanih. - + + %d izvajalec + %d izvajalca + %d izvajalci + %d izvajalcev + + + %d album + %d albuma + %d albumi + %d albumov + + + %d skladba + %d skladbi + %d skladbe + %d skladb + + + %d žanr + %d žanra + %d žanri + %d žanrov + + + %d ura + %d uri + %d ure + %d ur + + + %d min. + %d min. + %d min. + %d min. + + + %d skladba dodana na seznam predvajanja. + %d skladbi dodani na seznam predvajanja. + %d skladbe dodane na seznam predvajanja. + %d skladb dodanih na seznam predvajanja. + + + %d skladba odstranjena iz seznama predvajanja. + %d skladbi odstranjeni iz seznama predvajanja. + %d skladbe odstranjene iz seznama predvajanja. + %d skladb odstranjenih iz seznama predvajanja. + + + %d skladba dodana v čakalno vrsto. + %d skladbi dodani v čakalno vrsto. + %d skladbe dodane v čakalno vrsto. + %d skladb dodanih v čakalno vrsto. + + + %d skladba dodana k priljubljenim. + %d skladbi dodani k priljubljenim. + %d skladbe dodane k priljubljenim. + %d skladb dodanih k priljubljenim. + + + %d skladba je bila izbrisana. + %d skladbi sta bili izbrisani. + %d skladbe so bile izbrisane. + %d skladb je bilo izbrisanih. + diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index c407054..e588e8d 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Glasba - - Nedavno - Izvajalci - Albumi - Skladbe - Seznami predvajanja - Zvrsti - Trenutno se predvaja - Predvajaj čakalno vrsto - - Albumi - Največkrat predvajane - Vse skladbe - - Nastavitve - Išči - Premešaj - Premešaj vse - Premešaj seznam predvajanja - Premešaj album - Premešaj izvajalca - Premešaj največkrat predvajane - Premešaj nedavno predvajane - Premešaj nazadnje dodane - Predvajaj vse - Razvrsti po - Počisti seznam - Počisti nedavne - Počisti čakalno vrsto - Shrani čakalno vrsto na seznam predvajanja - Izenačevalnik - - Dodaj na seznam predvajanja - Dodaj v čakalno vrsto - Odstrani iz nedavnih - Odstrani iz čakalne vrste - - A-Ž - Ž-A - Izvajalec - Album - Leto - Trajanje - Datum dodajanja - Seznam skladb - številu skladb - številu albumov - Ime datoteke - - Nazadnje dodano - Nazadnje predvajano - Moje največkrat predvajane - - Nov seznam predvajanja - Shrani - Prekliči - Prepiši - Počisti - Seznam predvajanja %d - Ime seznama predvajanja - Izbriši %s? - Počisti največkrat predvajane? - Počisti nedavno predvajane? - Počisti nazadnje dodane? - Tega ni mogoče razveljaviti - To bo trajno izbrisalo vnose predpomnjenih slik - Izberite fotografijo iz galerije - Iskanje Google - Uporabi privzeto fotografijo - Uporabi staro fotografijo - - Predvajaj - Predvajaj naslednjo - Predvajaj album - Več od izvajalca - Preimenuj - Izbriši - Pridobi naslovnico - Pridobi sliko izvajalca - Odstrani iz nedavnih - Uporabi kot melodijo zvonjenja - Odstrani iz seznama predvajanja - Spremeni sliko - - Predvajaj - Premor - Naslednja - Prejšnja - Premešaj - Premešaj vse - Ponovi - Ponovi vse - Ponovi eno - Odpri čakalno vrsto - Prebrskaj glasbo - - %s nastavljena kot melodijo zvonjenja - Seznam predvajanja preimenovan - - Vmesnik - Shranjevanje - Podatki - Izbriši predpomnilnik - Odstrani vse predpomnjene slike - Prenesi samo preko omrežja Wi-Fi - Za zmanjšanje stroškov ne prenašajte preko mobilnih omrežij - Prenesi manjkajoče naslovnice - Prenesi manjkajoče slike izvajalcev - Splošno - Prikaži predočenje glasbe - Prikaži besedilo skladbe - Za pesmi, ki imajo datoteko srt - Stresi za predvajanje - Stresite svojo napravo za predvajanje naslednje skladbe - Naslovnica zaslona za zakl. - Nadomesti ozadje zaklenjenega zaslona z naslovnico - - Glasba: 4 \u00d7 1 - Glasba: 4 \u00d7 2 - Glasba: 4 \u00d7 2 (nadomestno) - Glasba: nedavno poslušano - - Izenačevalnika ni mogoče odpreti. - Za kopiranje glasbe iz vašega računalnika na vašo napravo uporabite kabel USB. - Rezultatov iskanja ni bilo najdenih - Preverite svoje črkovanje ali poskusite z drugo tipkovnico. - Skladbe, ki jih označite kot priljubljene, bodo prikazane tukaj. - Ni nedavnih skladb - Skladbe, ki ste jih nedavno poslušali, bodo prikazane tukaj. - Na seznamu predvajanja ni skladb - Za dodajanje skladb na ta seznam predvajanja tapnite meni možnosti na skladbi, albumu ali izvajalcu in izberite »Dodaj na seznam predvajanja«. - Ni največkrat predvajanih - Skladbe, ki ste jih največkrat poslušali, bodo dodane na ta seznam. - Ni nedavno dodanih skladb - Skladbe, ki ste jih dodali v prejšnjem mesecu, bodo prikazane tukaj. - Glasbe ni bilo najdene - Za kopiranje glasbe iz vašega računalnika na vašo napravo uporabite kabel USB. - Ni skladb v čakalni vrsti predvajanja - Za dodajanje skladb v čakalno vrsto predvajanja tapnite meni možnosti na skladbi, albumu ali izvajalcu in izberite »Dodaj v čakalno vrsto«. - Skladbe %1$s ni mogoče predvajati - - Neznano leto - Manj kot 30 sekund - 30 - 60 sekund - 1 - 2 minut - 2 - 3 minute - 3 - 4 minute - 4 - 5 minut - 5 - 10 minut - 10 - 30 minut - 30 - 60 minut - Več kot 60 minut - 1 skladba - 2 - 4 skladbe - 5 - 9 skladb - 10 in več skladb - 5 in več albumov - "Ostalo" - Prikaži vse izvajalce - Prikaži vse albume - Prikaži vse skladbe - Prikaži vse sezname predvajanja - Išči po glasbi - Vseh \"%s\" izvajalcev - Vseh \"%s\" albumov - Vseh \"%s\" skladb - Vseh \"%s\" seznamov predvajanja - %1$s %2$s - Predvajanje glasbe + Glasba + Nedavno + Izvajalci + Albumi + Skladbe + Seznami predvajanja + Zvrsti + Trenutno se predvaja + Predvajaj čakalno vrsto + Albumi + Največkrat predvajane + Vse skladbe + Nastavitve + Išči + Premešaj + Premešaj vse + Premešaj seznam predvajanja + Premešaj album + Premešaj izvajalca + Premešaj največkrat predvajane + Premešaj nedavno predvajane + Premešaj nazadnje dodane + Predvajaj vse + Razvrsti po + Počisti seznam + Počisti nedavne + Počisti čakalno vrsto + Shrani čakalno vrsto na seznam predvajanja + Izenačevalnik + Dodaj na seznam predvajanja + Dodaj v čakalno vrsto + Odstrani iz nedavnih + Odstrani iz čakalne vrste + A-Ž + Ž-A + Izvajalec + Album + Leto + Trajanje + Datum dodajanja + Seznam skladb + številu skladb + številu albumov + Ime datoteke + Nazadnje dodano + Nazadnje predvajano + Moje največkrat predvajane + Nov seznam predvajanja + Shrani + Prekliči + Prepiši + Počisti + Seznam predvajanja %d + Ime seznama predvajanja + Izbriši %s? + Počisti največkrat predvajane? + Počisti nedavno predvajane? + Počisti nazadnje dodane? + Tega ni mogoče razveljaviti + To bo trajno izbrisalo vnose predpomnjenih slik + Izberite fotografijo iz galerije + Iskanje Google + Uporabi privzeto fotografijo + Uporabi staro fotografijo + Predvajaj + Predvajaj naslednjo + Predvajaj album + Več od izvajalca + Preimenuj + Izbriši + Pridobi naslovnico + Pridobi sliko izvajalca + Odstrani iz nedavnih + Uporabi kot melodijo zvonjenja + Odstrani iz seznama predvajanja + Spremeni sliko + Predvajaj + Premor + Naslednja + Prejšnja + Premešaj + Premešaj vse + Ponovi + Ponovi vse + Ponovi eno + Odpri čakalno vrsto + Prebrskaj glasbo + %s nastavljena kot melodijo zvonjenja + Seznam predvajanja preimenovan + Vmesnik + Shranjevanje + Podatki + Izbriši predpomnilnik + Odstrani vse predpomnjene slike + Prenesi samo preko omrežja Wi-Fi + Za zmanjšanje stroškov ne prenašajte preko mobilnih omrežij + Prenesi manjkajoče naslovnice + Prenesi manjkajoče slike izvajalcev + Splošno + Prikaži predočenje glasbe + Prikaži besedilo skladbe + Za pesmi, ki imajo datoteko srt + Stresi za predvajanje + Stresite svojo napravo za predvajanje naslednje skladbe + Naslovnica zaslona za zakl. + Nadomesti ozadje zaklenjenega zaslona z naslovnico + Glasba: 4 \u00d7 1 + Glasba: 4 \u00d7 2 + Glasba: 4 \u00d7 2 (nadomestno) + Glasba: nedavno poslušano + Izenačevalnika ni mogoče odpreti. + Za kopiranje glasbe iz vašega računalnika na vašo napravo uporabite kabel USB. + Rezultatov iskanja ni bilo najdenih + Preverite svoje črkovanje ali poskusite z drugo tipkovnico. + Skladbe, ki jih označite kot priljubljene, bodo prikazane tukaj. + Ni nedavnih skladb + Skladbe, ki ste jih nedavno poslušali, bodo prikazane tukaj. + Na seznamu predvajanja ni skladb + Za dodajanje skladb na ta seznam predvajanja tapnite meni možnosti na skladbi, albumu ali izvajalcu in izberite »Dodaj na seznam predvajanja«. + Ni največkrat predvajanih + Skladbe, ki ste jih največkrat poslušali, bodo dodane na ta seznam. + Ni nedavno dodanih skladb + Skladbe, ki ste jih dodali v prejšnjem mesecu, bodo prikazane tukaj. + Glasbe ni bilo najdene + Za kopiranje glasbe iz vašega računalnika na vašo napravo uporabite kabel USB. + Ni skladb v čakalni vrsti predvajanja + Za dodajanje skladb v čakalno vrsto predvajanja tapnite meni možnosti na skladbi, albumu ali izvajalcu in izberite »Dodaj v čakalno vrsto«. + Skladbe %1$s ni mogoče predvajati + Neznano leto + Manj kot 30 sekund + 30 - 60 sekund + 1 - 2 minut + 2 - 3 minute + 3 - 4 minute + 4 - 5 minut + 5 - 10 minut + 10 - 30 minut + 30 - 60 minut + Več kot 60 minut + 1 skladba + 2 - 4 skladbe + 5 - 9 skladb + 10 in več skladb + 5 in več albumov + "Ostalo" + Prikaži vse izvajalce + Prikaži vse albume + Prikaži vse skladbe + Prikaži vse sezname predvajanja + Išči po glasbi + Vseh \"%s\" izvajalcev + Vseh \"%s\" albumov + Vseh \"%s\" skladb + Vseh \"%s\" seznamov predvajanja + %1$s %2$s + Predvajanje glasbe diff --git a/app/src/main/res/values-sq/plurals.xml b/app/src/main/res/values-sq/plurals.xml index 8a6d27b..cf89b1c 100644 --- a/app/src/main/res/values-sq/plurals.xml +++ b/app/src/main/res/values-sq/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artistë - - - - %d album - %d albume - - - - %d këngë - %d këngë - - - - %d zhanër - %d zhanre - - - - %dh - %dh - - - - %dm - %dm - - - - %d këngë u shtua në listën e këngëve. - %d këngë u shtuan në listën e këngëve. - - - - %d këngë u hoq nga lista e këngëve. - %d këngë u hoqën nga lista e këngëve. - - - - %d këngë u shtua në radhë. - %d këngë u shtuan në radhë. - - - - %d këngë u shtua në listën e këngëve të preferuara. - %d këngë u shtuan në listën e këngëve të preferuara. - - - - %d këngë u fshi. - %d këngë u fshinë. - + + %d artist + %d artistë + + + %d album + %d albume + + + %d këngë + %d këngë + + + %d zhanër + %d zhanre + + + %dh + %dh + + + %dm + %dm + + + %d këngë u shtua në listën e këngëve. + %d këngë u shtuan në listën e këngëve. + + + %d këngë u hoq nga lista e këngëve. + %d këngë u hoqën nga lista e këngëve. + + + %d këngë u shtua në radhë. + %d këngë u shtuan në radhë. + + + %d këngë u shtua në listën e këngëve të preferuara. + %d këngë u shtuan në listën e këngëve të preferuara. + + + %d këngë u fshi. + %d këngë u fshinë. + diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index f6af384..8290faf 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -17,97 +17,83 @@ limitations under the License. --> - Muzika - - Së fundmi - Artistët - Albumet - Këngët - Listat e Këngëve - Zhanret - - Albumet - Të gjitha këngët - - Kërko - Rendit sipas - Hiqe listën - - Shto në radhë - Hiq nga radha - - A-ZH - ZH-A - Artisti - Albumi - Viti - Numri i këngëve - Numri i albumeve - Emri i skedarit - - Shtuar së fundmi - - Listë e re - Ruaj - Anullo - Mbishkruaj - Hiq - Lista %d - Emri i listës së këngëve - Dëshiron ta fshish %s? - Zgjidh një foto nga Galeria - Kërkimi në Google - Përdor foton e paracaktuar - Përdor foto të vjetër - - Riemërto - Fshi - Ndërro imazhin - - Vë në pauzë - Përsërit - Përsëriti të gjitha - - Lista u riemërtua - - Ndërfaqe - Memoria - Shkarko vetëm me Wi-Fi - Për të reduktuar pagesat ndaj operatorit, mos shkarkoni mbi rrjetet celulare - Shkarko kopertinën e munguar të albumit - Kopertina e albumit në ekranin bllokues - Zëvendëso sfondin e ekranit bllokues me kopertinat e albumeve - - Muzika: 4\u00d7 1 - Muzika: 4\u00d7 2 - Muzika: 4 \u00d7 2 (alternative) - Muzika: dëgjuar së fundmi - - - Viti i panjohur - Më pak se 30 sekonda - 30 - 60 sekonda - 1 - 2 minuta - 2 - 3 minuta - 3 - 4 minuta - 4 - 5 minuta - 5 - 10 minuta - 10 - 30 minuta - 30 - 60 minuta - Më shumë se 60 minuta - 1 këngë - 2 - 4 këngë - 5 - 9 këngë - 10+ këngë - 5+ albume - Trego të gjithë artistët - Trego të gjithë albumet - Trego të gjitha këngët - Trego të gjitha listat e këngëve - Kërko muzikë - Të gjithë artistët \"%s\" - Të gjithë albumet \"%s\" - Të gjitha këngët \"%s\" - Të gjitha listat e këngëve \"%s\" - %1$s %2$s + Muzika + Së fundmi + Artistët + Albumet + Këngët + Listat e Këngëve + Zhanret + Albumet + Të gjitha këngët + Kërko + Rendit sipas + Hiqe listën + Shto në radhë + Hiq nga radha + A-ZH + ZH-A + Artisti + Albumi + Viti + Numri i këngëve + Numri i albumeve + Emri i skedarit + Shtuar së fundmi + Listë e re + Ruaj + Anullo + Mbishkruaj + Hiq + Lista %d + Emri i listës së këngëve + Dëshiron ta fshish %s? + Zgjidh një foto nga Galeria + Kërkimi në Google + Përdor foton e paracaktuar + Përdor foto të vjetër + Riemërto + Fshi + Ndërro imazhin + Vë në pauzë + Përsërit + Përsëriti të gjitha + Lista u riemërtua + Ndërfaqe + Memoria + Shkarko vetëm me Wi-Fi + Për të reduktuar pagesat ndaj operatorit, mos shkarkoni mbi rrjetet celulare + Shkarko kopertinën e munguar të albumit + Kopertina e albumit në ekranin bllokues + Zëvendëso sfondin e ekranit bllokues me kopertinat e albumeve + Muzika: 4\u00d7 1 + Muzika: 4\u00d7 2 + Muzika: 4 \u00d7 2 (alternative) + Muzika: dëgjuar së fundmi + Viti i panjohur + Më pak se 30 sekonda + 30 - 60 sekonda + 1 - 2 minuta + 2 - 3 minuta + 3 - 4 minuta + 4 - 5 minuta + 5 - 10 minuta + 10 - 30 minuta + 30 - 60 minuta + Më shumë se 60 minuta + 1 këngë + 2 - 4 këngë + 5 - 9 këngë + 10+ këngë + 5+ albume + Trego të gjithë artistët + Trego të gjithë albumet + Trego të gjitha këngët + Trego të gjitha listat e këngëve + Kërko muzikë + Të gjithë artistët \"%s\" + Të gjithë albumet \"%s\" + Të gjitha këngët \"%s\" + Të gjitha listat e këngëve \"%s\" + %1$s %2$s diff --git a/app/src/main/res/values-sr/plurals.xml b/app/src/main/res/values-sr/plurals.xml index 676526b..412de5f 100644 --- a/app/src/main/res/values-sr/plurals.xml +++ b/app/src/main/res/values-sr/plurals.xml @@ -17,70 +17,59 @@ limitations under the License. --> - - - %d уметник - %d уметника - %d уметника - - - - %d албум - %d албума - %d албума - - - - %d песма - %d песме - %d песама - - - - %d жанр - %d жанра - %d жанрова - - - - %dч - %dч - %dч - - - - %dм - %dм - %dм - - - - %d песма додата на плејлисту. - %d песме додате на плејлисту. - %d песама додато на плејлисту. - - - - %d песма уклоњена са плејлисте. - %d песме уклоњене са плејлисте. - %d песама уклоњено са плејлисте. - - - - %d песма додата у ред. - %d песме додате у ред. - %d песама додато у ред. - - - - %d песма додата у омиљене. - %d песме додате у омиљене. - %d песама додато у омиљене. - - - - %d песма је избрисана. - %d песме су избрисане. - %d песама је избрисано. - + + %d уметник + %d уметника + %d уметника + + + %d албум + %d албума + %d албума + + + %d песма + %d песме + %d песама + + + %d жанр + %d жанра + %d жанрова + + + %dч + %dч + %dч + + + %dм + %dм + %dм + + + %d песма додата на плејлисту. + %d песме додате на плејлисту. + %d песама додато на плејлисту. + + + %d песма уклоњена са плејлисте. + %d песме уклоњене са плејлисте. + %d песама уклоњено са плејлисте. + + + %d песма додата у ред. + %d песме додате у ред. + %d песама додато у ред. + + + %d песма додата у омиљене. + %d песме додате у омиљене. + %d песама додато у омиљене. + + + %d песма је избрисана. + %d песме су избрисане. + %d песама је избрисано. + diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 8b64d91..d1a2e45 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Музика - - Недавне - Извођачи - Албуми - Песме - Плејлисте - Жанрови - Тренутно се слуша - Пусти редом - - Албуми - Најбоље песме - Све песме - - Подешавања - Претражи - Насумично - Насумично све - Насумично плејлиста - Насумично албум - Насумично уметник - Насумично најбоље песме - Насумично недавно пуштано - Насумично последње додато - Пусти све - Сортирај по - Избриши листу - Избриши недавне - Избриши редослед - Сачувај редослед као плејлисту - Еквилајзер - - Додај на плејлисту - Додај у редослед - Уклони из недавних - Уклони из редоследа - - A-Z - Z-A - Извођач - Албум - Година - Трајање - Датум додавања - Листа песама - Број песама - Број албума - Име фајла - - Последње додато - Недавно пуштано - Моје најбоље траке - - Нова плејлиста - Сачувај - Откажи - Препиши - Очисти - Плејлиста %d - Име плејлисте - Избриши %s? - Очисти најбоље песме? - Очисти недавно пуштано? - Очисти последње додато? - Ова акција не може бити поништена - Ова акција ће трајно уклонити кеширане слике - Изабери слику из галерије - Google претрага - Користи подразумевану слику - Користи стару слику - - Пусти - Пусти следећу - Пусти албум - Више о извођачу - Преименуј - Избриши - Преузми слику албума - Преузми слику извођача - Уклони из недавних - Користи као тон звона - Уклони из плејлисте - Промени слику - - Пусти - Пауза - Следеће - Претходно - Насумично - Насумично све - Понови - Понови све - Понови једну - Отвори редослед - Тражи музику - - \'%s\' постављено као тон звона - Плејлиста преименована - - Интерфејс - Складиште - Податак - Избриши кеш - Уклони све кеширане слике - Преузимај само преко Wi-Fi-а - Да би смањио трошкове од оператера, не преузимај преко мобилних мрежа - Преузми омот албума који недостаје - Преузми слике аутора које недостају - Опште - Прикажи визуализацију музике - Прикажи текст песме - За песме које имају srt фајл - Протреси да пустиш - Протреси уређај да пустиш следећу песму - Албум за закључани екран - Замени позадину закључаног екрана са овим албумом - - Музика: 4 \u00d7 1 - Музика: 4 \u00d7 2 - Музика: 4 \u00d7 2 (алтернативно) - Музика: недавно слушано - - Еквилајзер не може бити отворен. - Да копираш музику са рачунара на твој уређај, користи USB кабал. - Нема пронађених резултата - Провери да ли си исправно изговорио или пробај другу кључну реч. - Песме које означиш као омиљене ће бити приказане овде. - Нема недавних песама - Песме које си недавно слушао ће бити приказане овде. - Нема песама у плејлисти - Да додаш песме у ову плејлисту, додирни опциони мени песме, албума или уметника и одабери \"Додај у плејлисту\". - Нема најбољих песама - Песме које највише слушаш ће бити додате на ову листу. - Нема додатих песама недавно - Песме које си додао током претходног месеца ће бити приказане овде. - Нема пронађене музике - Да копираш музику са рачунара на твој уређај, користи USB кабал. - Нема песама у редоследу за пуштање - Да додаш песме у редослед за пуштање, додирни опциони мени на песми, албуму или уметнику и изабери \"Додај у редослед\". - Немогу да пустим нумеру %1$s - - Непозната година - Мање од 30 секунди - 30 - 60 секунди - 1 - 2 минута - 2 - 3 минута - 3 - 4 минута - 4 - 5 минута - 5 - 10 минута - 10 - 30 минута - 30 - 60 минута - Више од 60 минута - 1 песма - 2 - 4 песме - 5 - 9 песама - 10+ песама - 5+ албума - "Друго" - Прикажи све уметнике - Прикажи све албуме - Прикажи све песме - Прикажи све плејлисте - Претражи музику - Сви \"%s\" уметници - Сви \"%s\" албуми - Све \"%s\" песме - Све \"%s\" плејлисте - %1$s %2$s + Музика + Недавне + Извођачи + Албуми + Песме + Плејлисте + Жанрови + Тренутно се слуша + Пусти редом + Албуми + Најбоље песме + Све песме + Подешавања + Претражи + Насумично + Насумично све + Насумично плејлиста + Насумично албум + Насумично уметник + Насумично најбоље песме + Насумично недавно пуштано + Насумично последње додато + Пусти све + Сортирај по + Избриши листу + Избриши недавне + Избриши редослед + Сачувај редослед као плејлисту + Еквилајзер + Додај на плејлисту + Додај у редослед + Уклони из недавних + Уклони из редоследа + A-Z + Z-A + Извођач + Албум + Година + Трајање + Датум додавања + Листа песама + Број песама + Број албума + Име фајла + Последње додато + Недавно пуштано + Моје најбоље траке + Нова плејлиста + Сачувај + Откажи + Препиши + Очисти + Плејлиста %d + Име плејлисте + Избриши %s? + Очисти најбоље песме? + Очисти недавно пуштано? + Очисти последње додато? + Ова акција не може бити поништена + Ова акција ће трајно уклонити кеширане слике + Изабери слику из галерије + Google претрага + Користи подразумевану слику + Користи стару слику + Пусти + Пусти следећу + Пусти албум + Више о извођачу + Преименуј + Избриши + Преузми слику албума + Преузми слику извођача + Уклони из недавних + Користи као тон звона + Уклони из плејлисте + Промени слику + Пусти + Пауза + Следеће + Претходно + Насумично + Насумично све + Понови + Понови све + Понови једну + Отвори редослед + Тражи музику + \'%s\' постављено као тон звона + Плејлиста преименована + Интерфејс + Складиште + Податак + Избриши кеш + Уклони све кеширане слике + Преузимај само преко Wi-Fi-а + Да би смањио трошкове од оператера, не преузимај преко мобилних мрежа + Преузми омот албума који недостаје + Преузми слике аутора које недостају + Опште + Прикажи визуализацију музике + Прикажи текст песме + За песме које имају srt фајл + Протреси да пустиш + Протреси уређај да пустиш следећу песму + Албум за закључани екран + Замени позадину закључаног екрана са овим албумом + Музика: 4 \u00d7 1 + Музика: 4 \u00d7 2 + Музика: 4 \u00d7 2 (алтернативно) + Музика: недавно слушано + Еквилајзер не може бити отворен. + Да копираш музику са рачунара на твој уређај, користи USB кабал. + Нема пронађених резултата + Провери да ли си исправно изговорио или пробај другу кључну реч. + Песме које означиш као омиљене ће бити приказане овде. + Нема недавних песама + Песме које си недавно слушао ће бити приказане овде. + Нема песама у плејлисти + Да додаш песме у ову плејлисту, додирни опциони мени песме, албума или уметника и одабери \"Додај у плејлисту\". + Нема најбољих песама + Песме које највише слушаш ће бити додате на ову листу. + Нема додатих песама недавно + Песме које си додао током претходног месеца ће бити приказане овде. + Нема пронађене музике + Да копираш музику са рачунара на твој уређај, користи USB кабал. + Нема песама у редоследу за пуштање + Да додаш песме у редослед за пуштање, додирни опциони мени на песми, албуму или уметнику и изабери \"Додај у редослед\". + Немогу да пустим нумеру %1$s + Непозната година + Мање од 30 секунди + 30 - 60 секунди + 1 - 2 минута + 2 - 3 минута + 3 - 4 минута + 4 - 5 минута + 5 - 10 минута + 10 - 30 минута + 30 - 60 минута + Више од 60 минута + 1 песма + 2 - 4 песме + 5 - 9 песама + 10+ песама + 5+ албума + "Друго" + Прикажи све уметнике + Прикажи све албуме + Прикажи све песме + Прикажи све плејлисте + Претражи музику + Сви \"%s\" уметници + Сви \"%s\" албуми + Све \"%s\" песме + Све \"%s\" плејлисте + %1$s %2$s diff --git a/app/src/main/res/values-sv/plurals.xml b/app/src/main/res/values-sv/plurals.xml index fc0a686..b2e7cb1 100644 --- a/app/src/main/res/values-sv/plurals.xml +++ b/app/src/main/res/values-sv/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d artist - %d artister - - - - %d album - %d album - - - - %d låt - %d låtar - - - - %d genre - %d genrer - - - - %dt - %dt - - - - %dm - %dm - - - - %d låt lades till spellistan. - %d låtar lades till spellistan. - - - - %d låt borttagen från spellistan. - %d låtar borttagna från spellistan. - - - - %d låt lades till kön. - %d låtar lades till kön. - - - - %d låt lades till Favoriter. - %d låtar lades till Favoriter. - - - - %d låt togs bort. - %d låtar togs bort. - + + %d artist + %d artister + + + %d album + %d album + + + %d låt + %d låtar + + + %d genre + %d genrer + + + %dt + %dt + + + %dm + %dm + + + %d låt lades till spellistan. + %d låtar lades till spellistan. + + + %d låt borttagen från spellistan. + %d låtar borttagna från spellistan. + + + %d låt lades till kön. + %d låtar lades till kön. + + + %d låt lades till Favoriter. + %d låtar lades till Favoriter. + + + %d låt togs bort. + %d låtar togs bort. + diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 84a2be3..5e9e17a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Musik - - Nya - Artister - Album - Låtar - Spellistor - Genrer - Nu spelas - Spelkö - - Album - Bästa låtarna - Alla låtar - - Inställningar - Sök - Blanda - Blanda alla - Blanda spellista - Slumpa album - Slumpa artist - Slumpa bland topplistan - Slumpa senaste spelade - Slumpa senaste tillagda låtar - Spela alla - Sortera efter - Töm lista - Rensa Nya - Rensa kö - Spara kö till spellistan - Equalizer - - Lägg till spellista - Lägg till kö - Ta bort från Nya - Ta bort från kö - - A-Ö - Ö-A - Artist - Album - År - Längd - Tillagd - Låtlista - Antal låtar - Antal album - Filnamn - - Senast tillagda - Senast spelade - Min topplista - - Ny spellista - Spara - Avbryt - Skriv över - Rensa - Spellista %d - Namn på spellista - Ta bort %s? - Rensa topplistan? - Rensa senast spelat? - Rensa senast tillagt? - Detta kan inte ångras - Detta kommer ta bort cachade bilder permanent - Välj foto från Galleri - Sök på Google - Använd standardfoto - Använd gammalt foto - - Spela - Spela nästa - Spela album - Mer av artisten - Byt namn - Ta bort - Hämta albumomslag - Hämta artistbild - Ta bort från Nya - Använd som ringsignal - Ta bort från spellista - Ändra bild - - Spela - Pausa - Nästa - Föregående - Blanda - Blanda alla - Upprepa - Upprepa alla - Upprepa en - Öppna kölista - Bläddra bland musik - - \'%s\' välj som ringsignal - Spellistan omdöpt - - Gränssnitt - Lagring - Data - Ta bort cache - Ta bort alla cachade bilder - Ladda enbart ned via Wi\u2011Fi - Undviker att ladda ned över mobila nätverk för att minska datakostnader - Ladda ned saknade albumomslag - Ladda ned saknade artistbilder - Allmänt - Visa musikvisualisering - Visa låttexter - För låtar som har en srt-fil - Skaka för att spela - Skaka din enhet för att spela nästa låt - Skivomslag för skärmlåsning - Ersätt skärmlåsningsbakgrund med skivomslag - - Musik: 4 \u00d7 1 - Musik: 4 \u00d7 2 - Musik: 4 \u00d7 2 (alternativ) - Musik: nyligen lyssnat - - Equalizern kunde inte öppnas. - Använd en USB-kabel för att kopiera musik från din dator till din enhet. - Inga sökresultat hittades - Kontrollera att du har den korrekta stavningen eller prova ett annat nyckelord. - Låtar som du markerar som Favoriter kommer att synas här. - Inga senaste låtar - Låtar du lyssnat på nyligen kommer visas här. - Inga låtar i spellistan - För att lägga till sånger till denna spellista, tryck på alternativmenyn på en låt, album eller artist och välj \"Lägg till i spellista\". - Ingen topplista - Låtar som du lyssnar på mest kommer läggas till denna lista. - Inga låtar har lagts till nyligen - Låtar som du har lagt till under den senaste månaden kommer att synas här. - Ingen musik hittades - Använd en USB-kabel för att kopiera musik från din dator till din enhet. - Inga sånger i spelkön - För att lägga till sånger till din spelkö, tryck på alternativmenyn på en låt, album eller artist och välj \"Lägg till i spellista\". - Kunde inte spela spår %1$s - - Okänt år - Mindre än 30 sekunder - 30 - 60 sekunder - 1 - 2 minuter - 2 - 3 minuter - 3 - 4 minuter - 4 - 5 minuter - 5 - 10 minuter - 10 - 30 minuter - 30 - 60 minuter - Längre än 60 minuter - 1 låt - 2 - 4 låtar - 5 - 9 låtar - Fler än 10 låtar - Fler än 5 album - "Annan" - Visa alla artister - Visa alla album - Visa alla låtar - Visa alla spellistor - Sök musik - Alla \"%s\" artister - Alla \"%s\" album - Alla \"%s\" låtar - Alla \"%s\" spellistor - %1$s %2$s + Musik + Nya + Artister + Album + Låtar + Spellistor + Genrer + Nu spelas + Spelkö + Album + Bästa låtarna + Alla låtar + Inställningar + Sök + Blanda + Blanda alla + Blanda spellista + Slumpa album + Slumpa artist + Slumpa bland topplistan + Slumpa senaste spelade + Slumpa senaste tillagda låtar + Spela alla + Sortera efter + Töm lista + Rensa Nya + Rensa kö + Spara kö till spellistan + Equalizer + Lägg till spellista + Lägg till kö + Ta bort från Nya + Ta bort från kö + A-Ö + Ö-A + Artist + Album + År + Längd + Tillagd + Låtlista + Antal låtar + Antal album + Filnamn + Senast tillagda + Senast spelade + Min topplista + Ny spellista + Spara + Avbryt + Skriv över + Rensa + Spellista %d + Namn på spellista + Ta bort %s? + Rensa topplistan? + Rensa senast spelat? + Rensa senast tillagt? + Detta kan inte ångras + Detta kommer ta bort cachade bilder permanent + Välj foto från Galleri + Sök på Google + Använd standardfoto + Använd gammalt foto + Spela + Spela nästa + Spela album + Mer av artisten + Byt namn + Ta bort + Hämta albumomslag + Hämta artistbild + Ta bort från Nya + Använd som ringsignal + Ta bort från spellista + Ändra bild + Spela + Pausa + Nästa + Föregående + Blanda + Blanda alla + Upprepa + Upprepa alla + Upprepa en + Öppna kölista + Bläddra bland musik + \'%s\' välj som ringsignal + Spellistan omdöpt + Gränssnitt + Lagring + Data + Ta bort cache + Ta bort alla cachade bilder + Ladda enbart ned via Wi\u2011Fi + Undviker att ladda ned över mobila nätverk för att minska datakostnader + Ladda ned saknade albumomslag + Ladda ned saknade artistbilder + Allmänt + Visa musikvisualisering + Visa låttexter + För låtar som har en srt-fil + Skaka för att spela + Skaka din enhet för att spela nästa låt + Skivomslag för skärmlåsning + Ersätt skärmlåsningsbakgrund med skivomslag + Musik: 4 \u00d7 1 + Musik: 4 \u00d7 2 + Musik: 4 \u00d7 2 (alternativ) + Musik: nyligen lyssnat + Equalizern kunde inte öppnas. + Använd en USB-kabel för att kopiera musik från din dator till din enhet. + Inga sökresultat hittades + Kontrollera att du har den korrekta stavningen eller prova ett annat nyckelord. + Låtar som du markerar som Favoriter kommer att synas här. + Inga senaste låtar + Låtar du lyssnat på nyligen kommer visas här. + Inga låtar i spellistan + För att lägga till sånger till denna spellista, tryck på alternativmenyn på en låt, album eller artist och välj \"Lägg till i spellista\". + Ingen topplista + Låtar som du lyssnar på mest kommer läggas till denna lista. + Inga låtar har lagts till nyligen + Låtar som du har lagt till under den senaste månaden kommer att synas här. + Ingen musik hittades + Använd en USB-kabel för att kopiera musik från din dator till din enhet. + Inga sånger i spelkön + För att lägga till sånger till din spelkö, tryck på alternativmenyn på en låt, album eller artist och välj \"Lägg till i spellista\". + Kunde inte spela spår %1$s + Okänt år + Mindre än 30 sekunder + 30 - 60 sekunder + 1 - 2 minuter + 2 - 3 minuter + 3 - 4 minuter + 4 - 5 minuter + 5 - 10 minuter + 10 - 30 minuter + 30 - 60 minuter + Längre än 60 minuter + 1 låt + 2 - 4 låtar + 5 - 9 låtar + Fler än 10 låtar + Fler än 5 album + "Annan" + Visa alla artister + Visa alla album + Visa alla låtar + Visa alla spellistor + Sök musik + Alla \"%s\" artister + Alla \"%s\" album + Alla \"%s\" låtar + Alla \"%s\" spellistor + %1$s %2$s diff --git a/app/src/main/res/values-ta/plurals.xml b/app/src/main/res/values-ta/plurals.xml index a9e5867..6f06f4b 100644 --- a/app/src/main/res/values-ta/plurals.xml +++ b/app/src/main/res/values-ta/plurals.xml @@ -17,51 +17,40 @@ limitations under the License. --> - - - %d கலைஞர் - %d கலைஞர்கள் - - - - %d ஆல்பம் - %d ஆல்பங்கள் - - - - %d பாடல் - %d பாடல்கள் - - - - %d வகை - %d வகைகள் - - - - - - %d பாடல் இசைப்பட்டியலில் சேர்க்கப்பட்டது. - %d பாடல்கள் இசைப்பட்டியலில் சேர்க்கப்பட்டன. - - - - %d பாடல் இசைப்பட்டியலில் இருந்து நீக்கப்பட்டது. - %d பாடல்கள் இசைப்பட்டியலில் இருந்து நீக்கப்பட்டன. - - - - %d பாடல் சாரையில் சேர்க்கப்பட்டது. - %d பாடல்கள் சாரையில் சேர்க்கப்பட்டன. - - - - %d பாடல் விருப்பங்களில் சேர்க்கப்பட்டது. - %d பாடல்கள் விருப்பங்களில் சேர்க்கப்பட்டன. - - - - %d பாடல் நீக்கப்பட்டது. - %d பாடல்கள் நீக்கப்பட்டன. - + + %d கலைஞர் + %d கலைஞர்கள் + + + %d ஆல்பம் + %d ஆல்பங்கள் + + + %d பாடல் + %d பாடல்கள் + + + %d வகை + %d வகைகள் + + + %d பாடல் இசைப்பட்டியலில் சேர்க்கப்பட்டது. + %d பாடல்கள் இசைப்பட்டியலில் சேர்க்கப்பட்டன. + + + %d பாடல் இசைப்பட்டியலில் இருந்து நீக்கப்பட்டது. + %d பாடல்கள் இசைப்பட்டியலில் இருந்து நீக்கப்பட்டன. + + + %d பாடல் சாரையில் சேர்க்கப்பட்டது. + %d பாடல்கள் சாரையில் சேர்க்கப்பட்டன. + + + %d பாடல் விருப்பங்களில் சேர்க்கப்பட்டது. + %d பாடல்கள் விருப்பங்களில் சேர்க்கப்பட்டன. + + + %d பாடல் நீக்கப்பட்டது. + %d பாடல்கள் நீக்கப்பட்டன. + diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 9bd2bbc..396ba3c 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - இசை - - சமீபத்தியவை - கலைஞர்கள் - ஆல்பங்கள் - பாடல்கள் - இசைப்பட்டியல்கள் - வகைகள் - இப்போது இயங்குகிறது - இயக்க சாரை - - ஆல்பங்கள் - முதன்மையான பாடல்கள் - அனைத்து பாடல்கள் - - அமைப்புகள் - தேடு - குலை - அனைத்தையும் குலை - குலை இசைப்பட்டியல் - குலை ஆல்பம் - குலை கலைஞர்கள் - குலை முதன்மையான தடங்கள் - குலை சமீபத்திய்ல் இயக்கியதை - குலை கடைசியாக சேர்த்ததை - அனைத்தையும் இயக்கு - இதன்படி வரிசைப்படுத்து - பட்டியலை அழி - சமீபத்தியதை அழி - சாரை அழி - சாரை இசைப்பட்டியலில் சேமி - ஈக்வலைசர் - - இசைப்பட்டியலுக்குச் சேர் - சாரையுடன் சேர் - சமீபத்தியதில் இருந்து நீக்கு - சாரையில் இருந்து நீக்கு - - A-Z - Z-A - கலைஞர் - ஆல்பம் - ஆண்டு - கால அளவு - சேர்க்கப்பட்ட தேதி - தட பட்டியல் - பாடல்களின் எண்ணிக்கை - ஆல்பங்களின் எண்ணிக்கை - கோப்புப்பெயர் - - கடைசியாக சேர்க்கப்பட்டது - சமீபத்தில் இயக்கப்பட்டது - என் முதன்மையான தடங்கள் - - புதிய இசைப்பட்டியல் - சேமி - ரத்துசெய் - மேலெழுது - அழி - இசைப்பட்டியல் %d - இசைப்பட்டியல் பெயர் - நீக்கு %s? - முதன்மையான தடங்களை அழிக்கவா? - சமீபத்தில் இயக்கியவற்றை அழிக்கவா? - கடைசியாக சேர்த்தவற்றை அழிக்கவா? - இதை செயல்நீக்க முடியாது - இது நிரந்தரமாக தேக்கிய பட உள்ளீடுகளை நீக்கிவிடும் - கேலரியிலிருந்து படத்தைத் தேர்வுசெய்க - Google தேடல் - இயல்புநிலை புகைப்படத்தை பயன்படுத்தவும் - பழைய புகைப்படத்தை பயன்படுத்தவும் - - இயக்கு - அடுத்ததை இயக்கு - ஆல்பத்தை இயக்கு - கலைஞரினால் மேலும் - மறுபெயரிடு - நீக்கு - ஆல்பம் கலையை எடு - கலைஞர் படத்தை எடு - சமீபத்தியதில் இருந்து நீக்கு - வளையமாகப் பயன்படுத்து - இசைப்பட்டியலிலிருந்து அகற்று - படத்தை மாற்று - - இயக்கு - இடைநிறுத்து - அடுத்து - முந்தையது - குலை - அனைத்தையும் குலை - மீண்டும் - அனைத்தையும் மீண்டும் இயக்கு - ஒன்றை மீண்டும் இயக்கு - சாரையை திற - இசையை உலாவு - - \'%s\' ஐ ரிங்டோனாக அமை - இசைப்பட்டியல் மறுபெயரிடப்பட்டது - - இடைமுகம் - சேமிப்பிடம் - தரவு - தேக்கத்தை நீக்கு - தேக்கப்பட்ட படங்கள் அனைத்தையும் நீக்கு - Wi-fi வழியாக மட்டுமே பதிவிறக்கு - கேரியர் கட்டணங்களை குறைக்க, மொபைல் பிணையங்களில் பதிவிறக்காதே - பதிவிறக்கத்தில் ஆல்பம் கலையை காணவில்லை - பதிவிறக்கத்தில் ஆல்பம் கலைஞர் படங்களைக் காணவில்லை - பொது - இசை காட்சிப்படுத்தலை காண்பி - பாடல் வரிகளைக் காண்பி - srt கோப்பு உடைய பாடல்களுக்கு - இயக்க அசை - அடுத்த பாடலை இயக்குவதற்கு உங்கள் சாதனத்தை அசைக்கவும் - பூட்டுத் திரை ஆல்பம் கலை - பூட்டுத்திரை பின்னணியை ஆல்பம் கலையால் மாற்றிடவும் - - இசை: 4 \u00d7 1 - இசை: 4 \u00d7 2 - இசை: 4 \u00d7 2 (மாற்று) - இசை:சமீபத்தில் கேட்டது - - சமமாக்கியை திறக்க முடியவில்லை. - உங்கள் கணினியில் இருந்து உங்கள் கருவிக்கு இசையை நகலெடுக்க, ஒரு USB கம்பி இழையை பயன்படுத்தவும் - தேடல் முடிவுகள் எதுவும் கண்டுபிடிக்கப்படவில்லை - உங்களிடம் சரியான எழுத்துக்கூட்டுரு இருகிறதா என தயவுசெய்து சரிபார்க்கவும் அல்லது வேறு திறவுச்சொல்லைப் பயன்படுத்தவும். - நீங்கள் விருப்பமானது என்று குறிப்பிடும் பாடல்கள் இங்கே காட்டப்படும். - சமீபத்திய பாடல்கள் இல்லை - நீங்கள் சமீபத்தில் கேட்ட பாடல்கள் இங்கே காட்டப்படும். - இசைப்பட்டியலில் பாடல்கள் இல்லை. - இந்த இசைப்பட்டியலில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \"இசைப்பட்டியலில் சேர்\"ஐ தேர்வுசெய் - முதன்மையான தடங்கள் இல்லை - நீங்கள் அதிகமாக கேட்கும் பாடல்கள் இந்த பட்டியலில் சேர்க்கப்படும். - சமீபத்தில் பாடல்கள் எதுவும் சேர்க்கப்படவில்லை. - சென்ற மாதம் நீங்கள் சேர்த்த பாடல்கள் இங்கே காட்டபப்டும். - இசை எதுவும் கண்டுபிடிக்கப்படவில்லை - உங்கள் கணினியில் இருந்து உங்கள் கருவிக்கு இசையை நகலெடுக்க, ஒரு USB கம்பி இழையை பயன்படுத்தவும் - இயக்க சாரத்தில் பாடல்கள் எதுவும் இல்லை. - இந்த சாரையில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \"வரிசையில் சேர்\"ஐ தேர்வுசெய். - %1$s தடத்தை இயக்க முடியவில்லை - - அறியப்படாத ஆண்டு - 30 வினாடிகளுக்கும் குறைவாக - 30-60 வினாடிகள் - 1 - 2 நிமிடங்கள் - 2 - 3 நிமிடங்கள் - 3 - 4 நிமிடங்கள் - 4 - 5 நிமிடங்கள் - 5 - 10 நிமிடங்கள் - 10 - 30 நிமிடங்கள் - 30 - 60 நிமிடங்கள் - 60 நிமிடங்களுக்கு மேல் - 1 பாடல் - 2 - 4 பாடல்கள் - 5 - 9 பாடல்கள் - 10+ பாடல்கள் - 5+ ஆல்பம்கள் - ""மற்றவை"" - அனைத்து கலைஞர்களையும் காண்பி - அனைத்து ஆல்பங்களையும் காண்பி - அனைத்து பாடல்களையும் காண்பி - அனைத்து இசைப்பட்டியல்களையும் காண்பி - இசையை தேடு - அனைத்து \”%s\" கலைஞர்கள் - அனைத்து \”%s\" ஆல்பங்கள் - அனைத்து \”%s\" பாடல்கள் - அனைத்து \”%s\" இசைப்பட்டியல்கள் - %1$s %2$s + இசை + சமீபத்தியவை + கலைஞர்கள் + ஆல்பங்கள் + பாடல்கள் + இசைப்பட்டியல்கள் + வகைகள் + இப்போது இயங்குகிறது + இயக்க சாரை + ஆல்பங்கள் + முதன்மையான பாடல்கள் + அனைத்து பாடல்கள் + அமைப்புகள் + தேடு + குலை + அனைத்தையும் குலை + குலை இசைப்பட்டியல் + குலை ஆல்பம் + குலை கலைஞர்கள் + குலை முதன்மையான தடங்கள் + குலை சமீபத்திய்ல் இயக்கியதை + குலை கடைசியாக சேர்த்ததை + அனைத்தையும் இயக்கு + இதன்படி வரிசைப்படுத்து + பட்டியலை அழி + சமீபத்தியதை அழி + சாரை அழி + சாரை இசைப்பட்டியலில் சேமி + ஈக்வலைசர் + இசைப்பட்டியலுக்குச் சேர் + சாரையுடன் சேர் + சமீபத்தியதில் இருந்து நீக்கு + சாரையில் இருந்து நீக்கு + A-Z + Z-A + கலைஞர் + ஆல்பம் + ஆண்டு + கால அளவு + சேர்க்கப்பட்ட தேதி + தட பட்டியல் + பாடல்களின் எண்ணிக்கை + ஆல்பங்களின் எண்ணிக்கை + கோப்புப்பெயர் + கடைசியாக சேர்க்கப்பட்டது + சமீபத்தில் இயக்கப்பட்டது + என் முதன்மையான தடங்கள் + புதிய இசைப்பட்டியல் + சேமி + ரத்துசெய் + மேலெழுது + அழி + இசைப்பட்டியல் %d + இசைப்பட்டியல் பெயர் + நீக்கு %s? + முதன்மையான தடங்களை அழிக்கவா? + சமீபத்தில் இயக்கியவற்றை அழிக்கவா? + கடைசியாக சேர்த்தவற்றை அழிக்கவா? + இதை செயல்நீக்க முடியாது + இது நிரந்தரமாக தேக்கிய பட உள்ளீடுகளை நீக்கிவிடும் + கேலரியிலிருந்து படத்தைத் தேர்வுசெய்க + Google தேடல் + இயல்புநிலை புகைப்படத்தை பயன்படுத்தவும் + பழைய புகைப்படத்தை பயன்படுத்தவும் + இயக்கு + அடுத்ததை இயக்கு + ஆல்பத்தை இயக்கு + கலைஞரினால் மேலும் + மறுபெயரிடு + நீக்கு + ஆல்பம் கலையை எடு + கலைஞர் படத்தை எடு + சமீபத்தியதில் இருந்து நீக்கு + வளையமாகப் பயன்படுத்து + இசைப்பட்டியலிலிருந்து அகற்று + படத்தை மாற்று + இயக்கு + இடைநிறுத்து + அடுத்து + முந்தையது + குலை + அனைத்தையும் குலை + மீண்டும் + அனைத்தையும் மீண்டும் இயக்கு + ஒன்றை மீண்டும் இயக்கு + சாரையை திற + இசையை உலாவு + \'%s\' ஐ ரிங்டோனாக அமை + இசைப்பட்டியல் மறுபெயரிடப்பட்டது + இடைமுகம் + சேமிப்பிடம் + தரவு + தேக்கத்தை நீக்கு + தேக்கப்பட்ட படங்கள் அனைத்தையும் நீக்கு + Wi-fi வழியாக மட்டுமே பதிவிறக்கு + கேரியர் கட்டணங்களை குறைக்க, மொபைல் பிணையங்களில் பதிவிறக்காதே + பதிவிறக்கத்தில் ஆல்பம் கலையை காணவில்லை + பதிவிறக்கத்தில் ஆல்பம் கலைஞர் படங்களைக் காணவில்லை + பொது + இசை காட்சிப்படுத்தலை காண்பி + பாடல் வரிகளைக் காண்பி + srt கோப்பு உடைய பாடல்களுக்கு + இயக்க அசை + அடுத்த பாடலை இயக்குவதற்கு உங்கள் சாதனத்தை அசைக்கவும் + பூட்டுத் திரை ஆல்பம் கலை + பூட்டுத்திரை பின்னணியை ஆல்பம் கலையால் மாற்றிடவும் + இசை: 4 \u00d7 1 + இசை: 4 \u00d7 2 + இசை: 4 \u00d7 2 (மாற்று) + இசை:சமீபத்தில் கேட்டது + சமமாக்கியை திறக்க முடியவில்லை. + உங்கள் கணினியில் இருந்து உங்கள் கருவிக்கு இசையை நகலெடுக்க, ஒரு USB கம்பி இழையை பயன்படுத்தவும் + தேடல் முடிவுகள் எதுவும் கண்டுபிடிக்கப்படவில்லை + உங்களிடம் சரியான எழுத்துக்கூட்டுரு இருகிறதா என தயவுசெய்து சரிபார்க்கவும் அல்லது வேறு திறவுச்சொல்லைப் பயன்படுத்தவும். + நீங்கள் விருப்பமானது என்று குறிப்பிடும் பாடல்கள் இங்கே காட்டப்படும். + சமீபத்திய பாடல்கள் இல்லை + நீங்கள் சமீபத்தில் கேட்ட பாடல்கள் இங்கே காட்டப்படும். + இசைப்பட்டியலில் பாடல்கள் இல்லை. + இந்த இசைப்பட்டியலில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \"இசைப்பட்டியலில் சேர்\"ஐ தேர்வுசெய் + முதன்மையான தடங்கள் இல்லை + நீங்கள் அதிகமாக கேட்கும் பாடல்கள் இந்த பட்டியலில் சேர்க்கப்படும். + சமீபத்தில் பாடல்கள் எதுவும் சேர்க்கப்படவில்லை. + சென்ற மாதம் நீங்கள் சேர்த்த பாடல்கள் இங்கே காட்டபப்டும். + இசை எதுவும் கண்டுபிடிக்கப்படவில்லை + உங்கள் கணினியில் இருந்து உங்கள் கருவிக்கு இசையை நகலெடுக்க, ஒரு USB கம்பி இழையை பயன்படுத்தவும் + இயக்க சாரத்தில் பாடல்கள் எதுவும் இல்லை. + இந்த சாரையில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \"வரிசையில் சேர்\"ஐ தேர்வுசெய். + %1$s தடத்தை இயக்க முடியவில்லை + அறியப்படாத ஆண்டு + 30 வினாடிகளுக்கும் குறைவாக + 30-60 வினாடிகள் + 1 - 2 நிமிடங்கள் + 2 - 3 நிமிடங்கள் + 3 - 4 நிமிடங்கள் + 4 - 5 நிமிடங்கள் + 5 - 10 நிமிடங்கள் + 10 - 30 நிமிடங்கள் + 30 - 60 நிமிடங்கள் + 60 நிமிடங்களுக்கு மேல் + 1 பாடல் + 2 - 4 பாடல்கள் + 5 - 9 பாடல்கள் + 10+ பாடல்கள் + 5+ ஆல்பம்கள் + ""மற்றவை"" + அனைத்து கலைஞர்களையும் காண்பி + அனைத்து ஆல்பங்களையும் காண்பி + அனைத்து பாடல்களையும் காண்பி + அனைத்து இசைப்பட்டியல்களையும் காண்பி + இசையை தேடு + அனைத்து \”%s\" கலைஞர்கள் + அனைத்து \”%s\" ஆல்பங்கள் + அனைத்து \”%s\" பாடல்கள் + அனைத்து \”%s\" இசைப்பட்டியல்கள் + %1$s %2$s diff --git a/app/src/main/res/values-te/plurals.xml b/app/src/main/res/values-te/plurals.xml index 9a78c90..c879942 100644 --- a/app/src/main/res/values-te/plurals.xml +++ b/app/src/main/res/values-te/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d కళాకారుడు - %d కళాకారులు - - - - %d ఆల్బమ్ - %d ఆల్బములు - - - - %d పాట - %d పాటలు - - - - %d శైలి - %d శైలులు - - - - %dh - %d - - - - %dm - %dని - - - - %d పాట ప్లేజాబితాకు జోడించబడింది. - %d పాటలు ప్లేజాబితాకు జోడించబడింది. - - - - %d పాట ప్లేజాబితా నుండి తొలిగించబడింది. - %d పాటలు ప్లేజాబితా నుండి తొలిగించబడ్డాయి. - - - - %d పాట నిరీక్షణ క్రమానికి జోడించబడింది. - %d పాటలు నిరీక్షణ క్రమానికి జోడించబడ్డాయి. - - - - %d పాట ఇష్టమైన వాటి జాబితాకు జోడించబడింది. - %d పాటలు ఇష్టమైన వాటి జాబితాకు జోడించబడ్డాయి. - - - - %d పాట తొలగించబడింది. - %d పాటలు తొలగించబడ్డాయి. - + + %d కళాకారుడు + %d కళాకారులు + + + %d ఆల్బమ్ + %d ఆల్బములు + + + %d పాట + %d పాటలు + + + %d శైలి + %d శైలులు + + + %dh + %d + + + %dm + %dని + + + %d పాట ప్లేజాబితాకు జోడించబడింది. + %d పాటలు ప్లేజాబితాకు జోడించబడింది. + + + %d పాట ప్లేజాబితా నుండి తొలిగించబడింది. + %d పాటలు ప్లేజాబితా నుండి తొలిగించబడ్డాయి. + + + %d పాట నిరీక్షణ క్రమానికి జోడించబడింది. + %d పాటలు నిరీక్షణ క్రమానికి జోడించబడ్డాయి. + + + %d పాట ఇష్టమైన వాటి జాబితాకు జోడించబడింది. + %d పాటలు ఇష్టమైన వాటి జాబితాకు జోడించబడ్డాయి. + + + %d పాట తొలగించబడింది. + %d పాటలు తొలగించబడ్డాయి. + diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index d37195a..d531b50 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - సంగీతం - - ఇటీవలివి - ఆర్టిస్టులు - ఆల్బమ్‌లు - పాటలు - ప్లేజాబితాలు - శైలులు - ఇప్పుడు ప్లే చేయబడుతున్నది - ప్లే నిరీక్షణ క్రమం - - ఆల్బమ్‌లు - ఉత్తమ పాటలు - అన్ని పాటలు - - సెట్టింగ్‌లు - శోధించు - మార్చు - అన్నీ షఫుల్ చేయి - ప్లేజాబితాను కలగాపులగం చేయుము - ఆల్బములను కలగాపులగం చేయుము - కళాకారులను కలగాపులగం చేయుము - ఉత్తమ పాటలను కలగాపులగం చేయుము - ఇటీవల ప్లే చేయబడిన వాటిని కలగాపులగం చేయుము - ఆఖరిన జోడించబడిన వాటిని కలగాపులగం చేయుము - అన్నీ ప్లే చేయండి - దీనిద్వారా క్రమబద్ధీకరణ - జాబితాను క్లియర్ చేయి - ఇటీవలి వాటిని క్లియర్ చేయుము - నిరీక్షణ క్రమాన్ని క్లియర్ చేయుము - నిరీక్షణ క్రమాన్ని ప్లేజాబితాకు సేవ్ చేయుము - ఈక్వలైజర్ - - ప్లేజాబితాకు చేర్చు - నిరీక్షణ క్రమానికి జోడించుము - ఇటీవలి వాటి నుండి తొలగించుము - నిరీక్షణ క్రమం నుండి తొలిగించుము - - A-Z - Z-A - ఆర్టిస్టు - ఆల్బమ్ - సంవత్సరం - వ్యవధి - చేర్చబడిన తేదీ - ట్రాక్ జాబితా - పాటల సంఖ్య - ఆల్బముల సంఖ్య - ఫైల్ పేరు - - చివరిగా జోడించబడిన - ఇటీవల ప్లే చేయబడిన - నా యొక్క ఉత్తమ ట్రాకులు - - క్రొత్త ప్లేజాబితా - సేవ్ చేయి - రద్దు చేయి - భర్తీ చేయి - క్లియర్ చేయండి - ప్లేజాబితా %d - ప్లేజాబితా పేరు - %sను తొలగించాలా? - ఉత్తమ ట్రాకులను క్లియర్ చేయాలా? - ఇటీవల ప్లే చేయబడిన వాటిని తొలిగించాలా? - చివరిగా జోడించబడిన దానిని క్లియర్ చేయాలా? - ఈ చర్యని రద్దు చేయడం సాధ్యపడదు - ఇది శాశ్వతంగా క్యాష్ చేసిన చిత్రాల ఎంట్రీలను తొలిగిస్తుంది - గ్యాలరీ నుండి ఫోటోను ఎంచుకోండి - Google శోధన - స్వయంసిద్ధ ఫోటోను ఉపయోగించుము - పాత ఫోటోను ఉపయోగించుము - - ప్లే చేయి - తరువాతి దానిని ప్లే చేయుము - ఆల్బమును ప్లే చేయుము - కళాకారునిచే మరిన్ని - పేరు మార్చు - తొలగించు - ఆల్బమ్ ఆర్టును పొందుము - కళాకారుని చిత్రాన్ని పొందుము - ఇటీవలి వాటి నుండి తొలగించుము - రింగ్‌టోన్ ఉపయోగించు - ప్లేజాబితా నుంచి తీసివేయి - చిత్రాన్ని మార్చుము - - ప్లే చేయి - పాజ్ చేయి - తదుపరి - మునుపటి - మార్చు - అన్నీ షఫుల్ చేయి - పునరావృతం చేయండి - అన్నింటినీ పునరావృతం చేయుము - ఒకదానిని పునరావృతం చేయుము - నిరీక్షణ క్రమాన్ని తెరువుము - సంగీతాన్ని బ్రౌజ్ చేయుము - - \'%s\' న్ని రింగ్‌టోనుగా సెట్ చేయుము - ప్లేజాబితా పేరు మార్చబడింది - - ఇంటర్‌ఫేస్ - నిల్వ - డేటా - కాషును తొలిగించుము - కాష్ చేయబడిన అన్ని చిత్రాలను తొలిగించుము - Wi-Fi ద్వారా మాత్రమే డౌన్లోడ్ చేయుము - కారియర్ ఛార్జీలను తగ్గించేందుకు, మొబైల్ నెట్వర్కుల ద్వారా డౌన్లోడ్ చేయవద్దు - కనిపించకుండా పోయిన ఆల్బమ్ ఆర్టును డౌన్లోడ్ చేయుము - కనిపించకుండా పోయిన కళాకారుని చిత్రాలు డౌన్లోడ్ చేయుము - సాధారణం - సంగీత విజువలైజేషనును చూపుము - పాట సాహిత్యాన్ని చూపుము - srt ఫైల్ కలిగిన పాటల కొరకు - ప్లే చేసేందుకు కదపండి - తరువాతి పాటను ప్లే చేసేందుకు మీ పరికరాన్ని కదపండి - లాక్‌స్కీన్ ఆల్బమ్ ఆర్ట్ - లాక్‌స్కీన్ నేపధ్యాన్ని ఆల్బమ్ ఆర్టుతో భర్తీ చేయండి - - సంగీతం: 4 \u00d7 1 - సంగీతం: 4 \u00d7 2 - సంగీతం: 4 \u00d7 2 (ప్రత్యామ్నాయ) - సంగీతం: ఇటీవల విన్నవి - - ఈక్వలైజరును తెరవడం సాధ్యపడలేదు. - మీ కంప్యూటర్ నుండి మీ యొక్క పరికరానికి సంగీతాన్ని కాపీ చేసేందుకు, USB కేబులును ఉపయోగించండి. - శోధన ఫలితాలు ఏవీ దొరకలేదు - దయచేసి మీరు సరైన అక్షరక్రమాన్ని కలిగి ఉన్నారో లేదో చూడండి లేదా వేరొక కీలకపదంతో ప్రయత్నించండి. - మీరు ఇష్టమైనవిగా గుర్తించిన పాటలు ఇక్కడ చూపించబడతాయి. - ఇటీవలి పాటలు ఏమీ లేవు - మీరు ఇటీవల విన్న పాటలు ఇక్కడ చూపించబడతాయి. - ప్లేజాబితాలో పాటలు లేవు - ప్లేజాబితాకు పాటలను జోడించడానికి, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \"ప్లేజాబితాకు జోడించుము\" ఎంచుకోండి. - ఉత్తమ ట్రాకులు ఏమీ లేవు - మీరు ఎక్కువగా వినే పాటలు జాబితాకు జోడించబడతాయి. - ఇటీవలి కాలంలో పాటలు జోడించబడలేదు - మీరు గత నెల కాలంలో జోడించిన పాటలు ఇక్కడ చూపించబడతాయి. - ఏ సంగీతం కనుగొనబడలేదు - మీ కంప్యూటర్ నుండి మీ యొక్క పరికరానికి సంగీతాన్ని కాపీ చేసేందుకు, USB కేబులును ఉపయోగించండి. - ప్లే నిరీక్షణ క్రమంలో పాటలు లేవు - మీరు ప్లే నిరీక్షణ క్రమానికి పాటలను జోడించేందుకు, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \"నిరీక్షణ క్రమానికి జోడించుము\" ఎంచుకోండి. - ట్రాక్ %1$s ను ప్లే చేయడం సాధ్యపడలేదు - - సంవత్సరం తెలియదు - 30 సెకనుల కంటే తక్కువ - 30 - 60 సెకనులు - 1 - 2 నిమిషాలు - 2 - 3 నిమిషాలు - 3 - 4 నిమిషాలు - 4 - 5 నిమిషాలు - 5 - 10 నిమిషాలు - 10 - 30 నిమిషాలు - 30 - 60 నిమిషాలు - 60 నిమిషాల కంటే ఎక్కువ - 1 పాట - 2 - 4 పాటలు - 5 - 9 పాటలు - 10+ పాటలు - 5+ ఆల్బములు - ""ఇతర"" - అందరు కళాకారులను చూపుము - అన్ని ఆల్బములను చూపుము - అన్ని పాటలను చూపుము - అన్ని ప్లేజాబితాలను చూపుము - సంగీతాన్ని శోధించుము - అందరు \"%s\" కళాకారులు - అన్ని \"%s\" ఆల్బములు - అన్ని \"%s\" పాటలు - అన్ని \"%s\" ప్లేజాబితాలు - %1$s %2$s + సంగీతం + ఇటీవలివి + ఆర్టిస్టులు + ఆల్బమ్‌లు + పాటలు + ప్లేజాబితాలు + శైలులు + ఇప్పుడు ప్లే చేయబడుతున్నది + ప్లే నిరీక్షణ క్రమం + ఆల్బమ్‌లు + ఉత్తమ పాటలు + అన్ని పాటలు + సెట్టింగ్‌లు + శోధించు + మార్చు + అన్నీ షఫుల్ చేయి + ప్లేజాబితాను కలగాపులగం చేయుము + ఆల్బములను కలగాపులగం చేయుము + కళాకారులను కలగాపులగం చేయుము + ఉత్తమ పాటలను కలగాపులగం చేయుము + ఇటీవల ప్లే చేయబడిన వాటిని కలగాపులగం చేయుము + ఆఖరిన జోడించబడిన వాటిని కలగాపులగం చేయుము + అన్నీ ప్లే చేయండి + దీనిద్వారా క్రమబద్ధీకరణ + జాబితాను క్లియర్ చేయి + ఇటీవలి వాటిని క్లియర్ చేయుము + నిరీక్షణ క్రమాన్ని క్లియర్ చేయుము + నిరీక్షణ క్రమాన్ని ప్లేజాబితాకు సేవ్ చేయుము + ఈక్వలైజర్ + ప్లేజాబితాకు చేర్చు + నిరీక్షణ క్రమానికి జోడించుము + ఇటీవలి వాటి నుండి తొలగించుము + నిరీక్షణ క్రమం నుండి తొలిగించుము + A-Z + Z-A + ఆర్టిస్టు + ఆల్బమ్ + సంవత్సరం + వ్యవధి + చేర్చబడిన తేదీ + ట్రాక్ జాబితా + పాటల సంఖ్య + ఆల్బముల సంఖ్య + ఫైల్ పేరు + చివరిగా జోడించబడిన + ఇటీవల ప్లే చేయబడిన + నా యొక్క ఉత్తమ ట్రాకులు + క్రొత్త ప్లేజాబితా + సేవ్ చేయి + రద్దు చేయి + భర్తీ చేయి + క్లియర్ చేయండి + ప్లేజాబితా %d + ప్లేజాబితా పేరు + %sను తొలగించాలా? + ఉత్తమ ట్రాకులను క్లియర్ చేయాలా? + ఇటీవల ప్లే చేయబడిన వాటిని తొలిగించాలా? + చివరిగా జోడించబడిన దానిని క్లియర్ చేయాలా? + ఈ చర్యని రద్దు చేయడం సాధ్యపడదు + ఇది శాశ్వతంగా క్యాష్ చేసిన చిత్రాల ఎంట్రీలను తొలిగిస్తుంది + గ్యాలరీ నుండి ఫోటోను ఎంచుకోండి + Google శోధన + స్వయంసిద్ధ ఫోటోను ఉపయోగించుము + పాత ఫోటోను ఉపయోగించుము + ప్లే చేయి + తరువాతి దానిని ప్లే చేయుము + ఆల్బమును ప్లే చేయుము + కళాకారునిచే మరిన్ని + పేరు మార్చు + తొలగించు + ఆల్బమ్ ఆర్టును పొందుము + కళాకారుని చిత్రాన్ని పొందుము + ఇటీవలి వాటి నుండి తొలగించుము + రింగ్‌టోన్ ఉపయోగించు + ప్లేజాబితా నుంచి తీసివేయి + చిత్రాన్ని మార్చుము + ప్లే చేయి + పాజ్ చేయి + తదుపరి + మునుపటి + మార్చు + అన్నీ షఫుల్ చేయి + పునరావృతం చేయండి + అన్నింటినీ పునరావృతం చేయుము + ఒకదానిని పునరావృతం చేయుము + నిరీక్షణ క్రమాన్ని తెరువుము + సంగీతాన్ని బ్రౌజ్ చేయుము + \'%s\' న్ని రింగ్‌టోనుగా సెట్ చేయుము + ప్లేజాబితా పేరు మార్చబడింది + ఇంటర్‌ఫేస్ + నిల్వ + డేటా + కాషును తొలిగించుము + కాష్ చేయబడిన అన్ని చిత్రాలను తొలిగించుము + Wi-Fi ద్వారా మాత్రమే డౌన్లోడ్ చేయుము + కారియర్ ఛార్జీలను తగ్గించేందుకు, మొబైల్ నెట్వర్కుల ద్వారా డౌన్లోడ్ చేయవద్దు + కనిపించకుండా పోయిన ఆల్బమ్ ఆర్టును డౌన్లోడ్ చేయుము + కనిపించకుండా పోయిన కళాకారుని చిత్రాలు డౌన్లోడ్ చేయుము + సాధారణం + సంగీత విజువలైజేషనును చూపుము + పాట సాహిత్యాన్ని చూపుము + srt ఫైల్ కలిగిన పాటల కొరకు + ప్లే చేసేందుకు కదపండి + తరువాతి పాటను ప్లే చేసేందుకు మీ పరికరాన్ని కదపండి + లాక్‌స్కీన్ ఆల్బమ్ ఆర్ట్ + లాక్‌స్కీన్ నేపధ్యాన్ని ఆల్బమ్ ఆర్టుతో భర్తీ చేయండి + సంగీతం: 4 \u00d7 1 + సంగీతం: 4 \u00d7 2 + సంగీతం: 4 \u00d7 2 (ప్రత్యామ్నాయ) + సంగీతం: ఇటీవల విన్నవి + ఈక్వలైజరును తెరవడం సాధ్యపడలేదు. + మీ కంప్యూటర్ నుండి మీ యొక్క పరికరానికి సంగీతాన్ని కాపీ చేసేందుకు, USB కేబులును ఉపయోగించండి. + శోధన ఫలితాలు ఏవీ దొరకలేదు + దయచేసి మీరు సరైన అక్షరక్రమాన్ని కలిగి ఉన్నారో లేదో చూడండి లేదా వేరొక కీలకపదంతో ప్రయత్నించండి. + మీరు ఇష్టమైనవిగా గుర్తించిన పాటలు ఇక్కడ చూపించబడతాయి. + ఇటీవలి పాటలు ఏమీ లేవు + మీరు ఇటీవల విన్న పాటలు ఇక్కడ చూపించబడతాయి. + ప్లేజాబితాలో పాటలు లేవు + ప్లేజాబితాకు పాటలను జోడించడానికి, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \"ప్లేజాబితాకు జోడించుము\" ఎంచుకోండి. + ఉత్తమ ట్రాకులు ఏమీ లేవు + మీరు ఎక్కువగా వినే పాటలు జాబితాకు జోడించబడతాయి. + ఇటీవలి కాలంలో పాటలు జోడించబడలేదు + మీరు గత నెల కాలంలో జోడించిన పాటలు ఇక్కడ చూపించబడతాయి. + ఏ సంగీతం కనుగొనబడలేదు + మీ కంప్యూటర్ నుండి మీ యొక్క పరికరానికి సంగీతాన్ని కాపీ చేసేందుకు, USB కేబులును ఉపయోగించండి. + ప్లే నిరీక్షణ క్రమంలో పాటలు లేవు + మీరు ప్లే నిరీక్షణ క్రమానికి పాటలను జోడించేందుకు, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \"నిరీక్షణ క్రమానికి జోడించుము\" ఎంచుకోండి. + ట్రాక్ %1$s ను ప్లే చేయడం సాధ్యపడలేదు + సంవత్సరం తెలియదు + 30 సెకనుల కంటే తక్కువ + 30 - 60 సెకనులు + 1 - 2 నిమిషాలు + 2 - 3 నిమిషాలు + 3 - 4 నిమిషాలు + 4 - 5 నిమిషాలు + 5 - 10 నిమిషాలు + 10 - 30 నిమిషాలు + 30 - 60 నిమిషాలు + 60 నిమిషాల కంటే ఎక్కువ + 1 పాట + 2 - 4 పాటలు + 5 - 9 పాటలు + 10+ పాటలు + 5+ ఆల్బములు + ""ఇతర"" + అందరు కళాకారులను చూపుము + అన్ని ఆల్బములను చూపుము + అన్ని పాటలను చూపుము + అన్ని ప్లేజాబితాలను చూపుము + సంగీతాన్ని శోధించుము + అందరు \"%s\" కళాకారులు + అన్ని \"%s\" ఆల్బములు + అన్ని \"%s\" పాటలు + అన్ని \"%s\" ప్లేజాబితాలు + %1$s %2$s diff --git a/app/src/main/res/values-th/plurals.xml b/app/src/main/res/values-th/plurals.xml index f2eabe5..f0886d6 100644 --- a/app/src/main/res/values-th/plurals.xml +++ b/app/src/main/res/values-th/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d ศิลปิน - - - - %d อัลบั้ม - - - - %d เพลง - - - - %d ประเภท - - - - %dชม. - - - - %dนาที - - - - %d เพลงถูกเพิ่มมายังรายการเพลง - - - - %d เพลงถูกลบออกจากรายการเพลง - - - - %d เพลงถูกเพิ่มเข้าในคิว - - - - %d เพลงถูกเพิ่มในรายการโปรด - - - - %d เพลงถูกลบ - + + %d ศิลปิน + + + %d อัลบั้ม + + + %d เพลง + + + %d ประเภท + + + %dชม. + + + %dนาที + + + %d เพลงถูกเพิ่มมายังรายการเพลง + + + %d เพลงถูกลบออกจากรายการเพลง + + + %d เพลงถูกเพิ่มเข้าในคิว + + + %d เพลงถูกเพิ่มในรายการโปรด + + + %d เพลงถูกลบ + diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 81a7855..f8f7444 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - เพลง - - ล่าสุด - ศิลปิน - อัลบั้ม - เพลง - รายการเพลง - ประเภท - กำลังเล่น - คิวเล่น - - อัลบั้ม - เพลงยอดนิยม - เพลงทั้งหมด - - การตั้งค่า - ค้นหา - สลับ - สลับทั้งหมด - สลับรายการเพลง - สลับอัลบั้ม - สลับศิลปิน - สลับแทรคยอดนิยม - สลับเพลงที่เล่นล่าสุด - สลับเพิ่มล่าสุด - เล่นทั้งหมด - เรียงโดย - ล้างรายการ - ล้างรายการล่าสุด - ล้างคิว - บันทึกคิวไปยังรายการที่จะเล่น - Equalizer - - เพิ่มไปยังรายการเพลง - เพิ่มไปยังคิว - นำออกจากรายการล่าสุด - ลบออกจากคิว - - A-Z - Z-A - ศิลปิน - อัลบั้ม - ปี - ระยะเวลา - วันที่เพิ่ม - รายการแทร็ค - จำนวนเพลง - จำนวนอัลบั้ม - ชื่อไฟล์ - - เพิ่มล่าสุด - เพิ่งเล่น - แทร็คยอดนิยมของฉัน - - รายการเพลงใหม่ - บันทึก - ยกเลิก - เขียนทับ - ล้าง - รายการเพลง %d - ชื่อรายการเพลง - ลบ %s หรือไม่ - ล้างรายการยอดนิยมหรือไม่ - ล้างรายการที่เพิ่งเล่นหรือไม่ - ล้างรายการที่เพิ่มล่าสุดหรือไม่ - การกระทำนี้ไม่สามารถยกเลิกได้ - การกระทำนี้จะลบรูปภาพที่แคชอย่างถาวร - เลือกรูปจากแกลเลอรี - ค้นหาด้วย Google - เลือกรูปเริ่มต้น - ใช้รูปเก่า - - เล่น - เล่นรายการถัดไป - เล่นอัลบั้ม - เพิ่มเติมโดยศิลปิน - เปลี่ยนชื่อ - ลบ - เรียกปกอัลบั้ม - เรียกรูปศิลปิน - ลบออกจากรายการล่าสุด - ใช้เป็นเสียงเรียกเข้า - นำออกจากรายการเพลง - เปลี่ยนรูปภาพ - - เล่น - พักชั่วคราว - ถัดไป - ก่อนหน้า - สลับ - สลับทั้งหมด - ซ้ำ - เล่นซ้ำทั้งหมด - ซ้ำหนึ่งครั้ง - เปิดคิว - เรียกดูเพลง - - \'%s\' ตั้งเป็นเสียงเรียกเข้า - เปลี่ยนชื่อรายการเพลง - - อินเตอร์เฟซ - แหล่งเก็บข้อมูล - ข้อมูล - ล้างแคช - ลบรูปที่แคชทั้งหมดออก - ดาวน์โหลดด้วย Wi-Fi เท่านั้น - ในการประหยัดค่าใช้จ่าย ไม่ควรดาวน์โหลดผ่านเครือข่ายมือถือ - ดาวน์โหลดปกอัลบั้มที่หายไป - ดาวน์โหลดภาพศิลปินที่หายไป - ทั่วไป - แสดงภาพเคลื่อนไหวประกอบเพลง - แสดงเนื้อเพลง - สำหรับเพลงที่มีไฟล์ srt - เขย่าเพื่อเล่น - เขย่าอุปกรณ์ของคุณเพื่อเล่นเพลงถัดไป - ปกอัลบั้มบนหน้าจอล็อค - แทนที่ภาพพื้นหลังหน้าจอล็อคด้วยผลงานปกอัลบั้มเพลง - - เพลง: 4 \u00d7 1 - เพลง: 4 \u00d7 2 - เพลง: 4 \u00d7 2 (สลับ) - เพลง: ที่ฟังเมื่อเร็ว ๆ นี้ - - ไม่สามารถเปิด equalizer ได้ - ในการคัดลอกเพลงจากคอมพิวเตอร์ไปยังอุปกรณ์ ให้ใช้สาย USB - ไม่พบผลการค้นหา - กรุณาตรวจสอบว่าการสะกดถูกต้องหรือลองคำอื่น - เพลงที่ทำเป็นรายการโปรดจะแสดงที่นี่ - ไม่มีเพลงล่าสุด - เพลงที่ฟังล่าสุดจะแสดงที่นี่ - ไม่มีเพลงในรายการที่เล่น - ในการเพิ่มเพลงไปยังรายการที่จะเล่น ให้แตะเมนูตัวเลือกบนเพลง อัลบั้มหรือศิลปินแล้วเลือก \"เพิ่มไปยังรายการเพลง\" - ไม่มีเพลงยอดนิยม - เพลงที่คุณฟังบ่อยสุดจะถูกเพิ่มไปยังรายการนี้ - ล่าสุดไม่มีเพลงเพิ่ม - เพลงที่คุณเพิ่มไว้ในเดือนที่แล้วจะแสดงที่นี่ - ไม่พบเพลง - ในการคัดลอกเพลงจากคอมพิวเตอร์สู่อุปกรณ์ ให้ใช้สาย USB - ไม่มีเพลงในคิวเล่น - ในการเพิ่มเพลงไปยังรายการที่เล่น ให้แตะเมนูตัวเลือกบนเพลงหรือศิลปินและเลือก \"เพิ่มไปยังคิวเล่น\" - ไม่สามารถเล่นเพลง %1$s - - ไม่ทราบปี - น้อยกว่า 30 วินาที - 30 - 60 วินาที - 1 - 2 นาที - 2 - 3 นาที - 3 - 4 นาที - 4 - 5 นาที - 5 - 10 นาที - 10 - 30 นาที - 30 - 60 นาที - มากกว่า 60 นาที - 1 เพลง - 2 - 4 เพลง - 5 - 9 เพลง - 10+ เพลง - 5+ อัลบั้ม - "อื่น ๆ" - แสดงศิลปินทั้งหมด - แสดงอัลบั้มทั้งหมด - แสดงเพลงทั้งหมด - แสดงรายการที่เล่นทั้งหมด - ค้นหาเพลง - ศิลปิน \"%s\" ทั้งหมด - อัลบั้ม \"%s\" ทั้งหมด - เพลง \"%s\" ทั้งหมด - รายการเพลง \"%s\" ทั้งหมด - %1$s %2$s + เพลง + ล่าสุด + ศิลปิน + อัลบั้ม + เพลง + รายการเพลง + ประเภท + กำลังเล่น + คิวเล่น + อัลบั้ม + เพลงยอดนิยม + เพลงทั้งหมด + การตั้งค่า + ค้นหา + สลับ + สลับทั้งหมด + สลับรายการเพลง + สลับอัลบั้ม + สลับศิลปิน + สลับแทรคยอดนิยม + สลับเพลงที่เล่นล่าสุด + สลับเพิ่มล่าสุด + เล่นทั้งหมด + เรียงโดย + ล้างรายการ + ล้างรายการล่าสุด + ล้างคิว + บันทึกคิวไปยังรายการที่จะเล่น + Equalizer + เพิ่มไปยังรายการเพลง + เพิ่มไปยังคิว + นำออกจากรายการล่าสุด + ลบออกจากคิว + A-Z + Z-A + ศิลปิน + อัลบั้ม + ปี + ระยะเวลา + วันที่เพิ่ม + รายการแทร็ค + จำนวนเพลง + จำนวนอัลบั้ม + ชื่อไฟล์ + เพิ่มล่าสุด + เพิ่งเล่น + แทร็คยอดนิยมของฉัน + รายการเพลงใหม่ + บันทึก + ยกเลิก + เขียนทับ + ล้าง + รายการเพลง %d + ชื่อรายการเพลง + ลบ %s หรือไม่ + ล้างรายการยอดนิยมหรือไม่ + ล้างรายการที่เพิ่งเล่นหรือไม่ + ล้างรายการที่เพิ่มล่าสุดหรือไม่ + การกระทำนี้ไม่สามารถยกเลิกได้ + การกระทำนี้จะลบรูปภาพที่แคชอย่างถาวร + เลือกรูปจากแกลเลอรี + ค้นหาด้วย Google + เลือกรูปเริ่มต้น + ใช้รูปเก่า + เล่น + เล่นรายการถัดไป + เล่นอัลบั้ม + เพิ่มเติมโดยศิลปิน + เปลี่ยนชื่อ + ลบ + เรียกปกอัลบั้ม + เรียกรูปศิลปิน + ลบออกจากรายการล่าสุด + ใช้เป็นเสียงเรียกเข้า + นำออกจากรายการเพลง + เปลี่ยนรูปภาพ + เล่น + พักชั่วคราว + ถัดไป + ก่อนหน้า + สลับ + สลับทั้งหมด + ซ้ำ + เล่นซ้ำทั้งหมด + ซ้ำหนึ่งครั้ง + เปิดคิว + เรียกดูเพลง + \'%s\' ตั้งเป็นเสียงเรียกเข้า + เปลี่ยนชื่อรายการเพลง + อินเตอร์เฟซ + แหล่งเก็บข้อมูล + ข้อมูล + ล้างแคช + ลบรูปที่แคชทั้งหมดออก + ดาวน์โหลดด้วย Wi-Fi เท่านั้น + ในการประหยัดค่าใช้จ่าย ไม่ควรดาวน์โหลดผ่านเครือข่ายมือถือ + ดาวน์โหลดปกอัลบั้มที่หายไป + ดาวน์โหลดภาพศิลปินที่หายไป + ทั่วไป + แสดงภาพเคลื่อนไหวประกอบเพลง + แสดงเนื้อเพลง + สำหรับเพลงที่มีไฟล์ srt + เขย่าเพื่อเล่น + เขย่าอุปกรณ์ของคุณเพื่อเล่นเพลงถัดไป + ปกอัลบั้มบนหน้าจอล็อค + แทนที่ภาพพื้นหลังหน้าจอล็อคด้วยผลงานปกอัลบั้มเพลง + เพลง: 4 \u00d7 1 + เพลง: 4 \u00d7 2 + เพลง: 4 \u00d7 2 (สลับ) + เพลง: ที่ฟังเมื่อเร็ว ๆ นี้ + ไม่สามารถเปิด equalizer ได้ + ในการคัดลอกเพลงจากคอมพิวเตอร์ไปยังอุปกรณ์ ให้ใช้สาย USB + ไม่พบผลการค้นหา + กรุณาตรวจสอบว่าการสะกดถูกต้องหรือลองคำอื่น + เพลงที่ทำเป็นรายการโปรดจะแสดงที่นี่ + ไม่มีเพลงล่าสุด + เพลงที่ฟังล่าสุดจะแสดงที่นี่ + ไม่มีเพลงในรายการที่เล่น + ในการเพิ่มเพลงไปยังรายการที่จะเล่น ให้แตะเมนูตัวเลือกบนเพลง อัลบั้มหรือศิลปินแล้วเลือก \"เพิ่มไปยังรายการเพลง\" + ไม่มีเพลงยอดนิยม + เพลงที่คุณฟังบ่อยสุดจะถูกเพิ่มไปยังรายการนี้ + ล่าสุดไม่มีเพลงเพิ่ม + เพลงที่คุณเพิ่มไว้ในเดือนที่แล้วจะแสดงที่นี่ + ไม่พบเพลง + ในการคัดลอกเพลงจากคอมพิวเตอร์สู่อุปกรณ์ ให้ใช้สาย USB + ไม่มีเพลงในคิวเล่น + ในการเพิ่มเพลงไปยังรายการที่เล่น ให้แตะเมนูตัวเลือกบนเพลงหรือศิลปินและเลือก \"เพิ่มไปยังคิวเล่น\" + ไม่สามารถเล่นเพลง %1$s + ไม่ทราบปี + น้อยกว่า 30 วินาที + 30 - 60 วินาที + 1 - 2 นาที + 2 - 3 นาที + 3 - 4 นาที + 4 - 5 นาที + 5 - 10 นาที + 10 - 30 นาที + 30 - 60 นาที + มากกว่า 60 นาที + 1 เพลง + 2 - 4 เพลง + 5 - 9 เพลง + 10+ เพลง + 5+ อัลบั้ม + "อื่น ๆ" + แสดงศิลปินทั้งหมด + แสดงอัลบั้มทั้งหมด + แสดงเพลงทั้งหมด + แสดงรายการที่เล่นทั้งหมด + ค้นหาเพลง + ศิลปิน \"%s\" ทั้งหมด + อัลบั้ม \"%s\" ทั้งหมด + เพลง \"%s\" ทั้งหมด + รายการเพลง \"%s\" ทั้งหมด + %1$s %2$s diff --git a/app/src/main/res/values-tr/plurals.xml b/app/src/main/res/values-tr/plurals.xml index 09cb864..73f6b63 100644 --- a/app/src/main/res/values-tr/plurals.xml +++ b/app/src/main/res/values-tr/plurals.xml @@ -17,59 +17,48 @@ limitations under the License. --> - - - %d sanatçı - %d sanatçı - - - - %d albüm - %d albüm - - - - %d şarkı - %d şarkı - - - - %d tür - %d tür - - - - %dsa - %dsa - - - - %ddk - %ddk - - - - %d şarkı çalma listesine eklendi. - %d şarkı çalma listesine eklendi. - - - - %d şarkı çalma listesinden silindi. - %d şarkı çalma listesinden silindi. - - - - %d şarkı kuyruğa eklendi. - %d şarkı kuyruğa eklendi. - - - - %d şarkı favorilere eklendi. - %d şarkı favorilere eklendi. - - - - %d şarkı silindi. - %d şarkı silindi. - + + %d sanatçı + %d sanatçı + + + %d albüm + %d albüm + + + %d şarkı + %d şarkı + + + %d tür + %d tür + + + %dsa + %dsa + + + %ddk + %ddk + + + %d şarkı çalma listesine eklendi. + %d şarkı çalma listesine eklendi. + + + %d şarkı çalma listesinden silindi. + %d şarkı çalma listesinden silindi. + + + %d şarkı kuyruğa eklendi. + %d şarkı kuyruğa eklendi. + + + %d şarkı favorilere eklendi. + %d şarkı favorilere eklendi. + + + %d şarkı silindi. + %d şarkı silindi. + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 2f62c05..5f70617 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Müzik - - Son çalınanlar - Sanatçılar - Albümler - Şarkılar - Çalma listeleri - Türler - Şimdi Çalınıyor - Kuyruğu Çal - - Albümler - Üst Şarkılar - Tüm Şarkılar - - Ayarlar - Ara - Karıştır - Tümünü karıştır - Çalma listesini karıştır - Albümü karıştır - Sanatçıyı karıştır - En çok dinlenenleri karıştır - Son çalınanları karıştır - Son eklenenleri karıştır - Tümünü çal - Sıralama ölçütü: - Listeyi temizle - Sonkileri temizle - Kuyruğu sil - Kuyruğu çalma listesine kaydet - Ekolayzer - - Çalma listesine ekle - Kuyruğa ekle - Sonkilerden kaldır - Kuyruktan çıkar - - A-Z - Z-A - Sanatçı - Albüm - Yıl - Süre - Eklenme tarihi - Parça listesi - Şarkı sayısı - Albüm sayısı - Dosya adı - - Son eklenenler - Son çalınanlar - Üst parçalarım - - Yeni çalma listesi - Kaydet - İptal - Üzerine yaz - Temizle - Çalma listesi %d - Çalma listesi adı - %s silinsin mi? - Üst parçalar temizlensin mi? - Son çalınanlar temizlensin mi? - Son eklenenler temizlensin mi? - Bu işlem geri alınamaz - Bu, önbelleğe alınmış resimleri kalıcı olarak silecek - Galeriden fotoğraf seç - Google arama - Varsayılan fotoğrafı kullan - Eski fotoğrafı kullan - - Çal - Sonrakini çal - Albümü oynat - Sanatçıdan başka şarkılar - Yeniden adlandır - Sil - Albüm kapağını indir - Sanatçı resmini indir - Son çalınanlardan çıkar - Zil sesi olarak kullan - Çalma listesinden sil - Görseli değiştir - - Çal - Duraklat - Sonraki - Önceki - Karıştır - Tümünü karıştır - Tekrarla - Tümünü tekrarla - Birini tekrarla - Kuyruğu aç - Müziğe gözat - - \'%s\' zil sesi olarak ayarlandı - Çalma listesi yeniden adlandırıldı - - Arayüz - Depolama - Veri - Önbelleği sil - Ön belleğe alınmış tüm resimleri sil - Sadece Wi-Fi ile indir - Operatör veri ücretlerini azaltmak için mobil şebeke üzerinden indirme yapmayın - Eksik albüm kapaklarını indir - Eksik sanatçı resimlerini indir - Genel - Müzik görselleştirmelerini göster - Şarkı sözlerini göster - srt dosyası olan şarkılar için - Oynatmak için sallayın - Sıradaki şarkıyı oynatmak için cihazınızı sallayın - Kilit ekranı albüm görseli - Kilit ekranı arkaplanını albüm görseli ile değiştirir - - Müzik: 4 \u00d7 1 - Müzik: 4 \u00d7 2 - Müzik: 4 \u00d7 2 (değiştir) - Müzik: son zamanlarda dinlenen - - Ekolayzer açılamadı. - Bilgisayarınızdan cihazınıza müzik kopyalamak için USB kablo kullanın. - Arama sonucu bulunamadı - Lütfen doğru kelime girdiğinizi kontrol edin ya da farklı bir kelime deneyin. - Favori işaretlediğiniz şarkılar burada gözükecek. - Son çalınan şarkı yok - Son zamanlarda dinlediğiniz şarkılar burada gösterilecek. - Çalma listesinde şarkı yok - Bu çalma listesine şarkı eklemek için, seçeneklerden \"Çalma listesine ekle\"yi tıklayın. - Üst şarkı yok - En çok dinlediğiniz şarkılar bu listeye eklenecek. - Son zamanlarda şarkı eklenmedi - Geçen ay boyunca eklediğiniz şarkılar burada gösterilecek. - Müzik bulunamadı - Bilgisayarınızdan müzik kopyalamak için USB kablo kullanın. - Çalma kuyruğunda şarkı yok - Çalma Kuyruğuna şarkı eklemek için şarkı, albüm veya sanatçı üzerindeki seçenekler menüsüne tıklayın ve \"Kuyruğa ekle\"yi seçin. - %1$s parçası oynatılamıyor - - Bilinmeyen yıl - 30 saniyeden daha az - 30 - 60 saniye - 1 - 2 dakika - 2 - 3 dakika - 3 - 4 dakika - 4 - 5 dakika - 5 - 10 dakika - 10 - 30 dakika - 30 - 60 dakika - 60 dakikadan daha fazla - 1 şarkı - 2 - 4 şarkı - 5 - 9 şarkı - 10+ şarkı - 5+ albüm - "Diğer" - Tüm sanatçıları göster - Tüm albümleri göster - Tüm şarkıları göster - Tüm listeleri göster - Müzik ara - Tüm \"%s\" sanatçıları - Tüm \"%s\" albümleri - Tüm \"%s\" şarkıları - Tüm \"%s\" çalma listeleri - %1$s %2$s - Müzik çalma + Müzik + Son çalınanlar + Sanatçılar + Albümler + Şarkılar + Çalma listeleri + Türler + Şimdi Çalınıyor + Kuyruğu Çal + Albümler + Üst Şarkılar + Tüm Şarkılar + Ayarlar + Ara + Karıştır + Tümünü karıştır + Çalma listesini karıştır + Albümü karıştır + Sanatçıyı karıştır + En çok dinlenenleri karıştır + Son çalınanları karıştır + Son eklenenleri karıştır + Tümünü çal + Sıralama ölçütü: + Listeyi temizle + Sonkileri temizle + Kuyruğu sil + Kuyruğu çalma listesine kaydet + Ekolayzer + Çalma listesine ekle + Kuyruğa ekle + Sonkilerden kaldır + Kuyruktan çıkar + A-Z + Z-A + Sanatçı + Albüm + Yıl + Süre + Eklenme tarihi + Parça listesi + Şarkı sayısı + Albüm sayısı + Dosya adı + Son eklenenler + Son çalınanlar + Üst parçalarım + Yeni çalma listesi + Kaydet + İptal + Üzerine yaz + Temizle + Çalma listesi %d + Çalma listesi adı + %s silinsin mi? + Üst parçalar temizlensin mi? + Son çalınanlar temizlensin mi? + Son eklenenler temizlensin mi? + Bu işlem geri alınamaz + Bu, önbelleğe alınmış resimleri kalıcı olarak silecek + Galeriden fotoğraf seç + Google arama + Varsayılan fotoğrafı kullan + Eski fotoğrafı kullan + Çal + Sonrakini çal + Albümü oynat + Sanatçıdan başka şarkılar + Yeniden adlandır + Sil + Albüm kapağını indir + Sanatçı resmini indir + Son çalınanlardan çıkar + Zil sesi olarak kullan + Çalma listesinden sil + Görseli değiştir + Çal + Duraklat + Sonraki + Önceki + Karıştır + Tümünü karıştır + Tekrarla + Tümünü tekrarla + Birini tekrarla + Kuyruğu aç + Müziğe gözat + \'%s\' zil sesi olarak ayarlandı + Çalma listesi yeniden adlandırıldı + Arayüz + Depolama + Veri + Önbelleği sil + Ön belleğe alınmış tüm resimleri sil + Sadece Wi-Fi ile indir + Operatör veri ücretlerini azaltmak için mobil şebeke üzerinden indirme yapmayın + Eksik albüm kapaklarını indir + Eksik sanatçı resimlerini indir + Genel + Müzik görselleştirmelerini göster + Şarkı sözlerini göster + srt dosyası olan şarkılar için + Oynatmak için sallayın + Sıradaki şarkıyı oynatmak için cihazınızı sallayın + Kilit ekranı albüm görseli + Kilit ekranı arkaplanını albüm görseli ile değiştirir + Müzik: 4 \u00d7 1 + Müzik: 4 \u00d7 2 + Müzik: 4 \u00d7 2 (değiştir) + Müzik: son zamanlarda dinlenen + Ekolayzer açılamadı. + Bilgisayarınızdan cihazınıza müzik kopyalamak için USB kablo kullanın. + Arama sonucu bulunamadı + Lütfen doğru kelime girdiğinizi kontrol edin ya da farklı bir kelime deneyin. + Favori işaretlediğiniz şarkılar burada gözükecek. + Son çalınan şarkı yok + Son zamanlarda dinlediğiniz şarkılar burada gösterilecek. + Çalma listesinde şarkı yok + Bu çalma listesine şarkı eklemek için, seçeneklerden \"Çalma listesine ekle\"yi tıklayın. + Üst şarkı yok + En çok dinlediğiniz şarkılar bu listeye eklenecek. + Son zamanlarda şarkı eklenmedi + Geçen ay boyunca eklediğiniz şarkılar burada gösterilecek. + Müzik bulunamadı + Bilgisayarınızdan müzik kopyalamak için USB kablo kullanın. + Çalma kuyruğunda şarkı yok + Çalma Kuyruğuna şarkı eklemek için şarkı, albüm veya sanatçı üzerindeki seçenekler menüsüne tıklayın ve \"Kuyruğa ekle\"yi seçin. + %1$s parçası oynatılamıyor + Bilinmeyen yıl + 30 saniyeden daha az + 30 - 60 saniye + 1 - 2 dakika + 2 - 3 dakika + 3 - 4 dakika + 4 - 5 dakika + 5 - 10 dakika + 10 - 30 dakika + 30 - 60 dakika + 60 dakikadan daha fazla + 1 şarkı + 2 - 4 şarkı + 5 - 9 şarkı + 10+ şarkı + 5+ albüm + "Diğer" + Tüm sanatçıları göster + Tüm albümleri göster + Tüm şarkıları göster + Tüm listeleri göster + Müzik ara + Tüm \"%s\" sanatçıları + Tüm \"%s\" albümleri + Tüm \"%s\" şarkıları + Tüm \"%s\" çalma listeleri + %1$s %2$s + Müzik çalma diff --git a/app/src/main/res/values-ug/strings.xml b/app/src/main/res/values-ug/strings.xml index 71939fc..b353a9a 100644 --- a/app/src/main/res/values-ug/strings.xml +++ b/app/src/main/res/values-ug/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - نەغمە - - يېقىنقى - سەنئەتكار - ئالبۇم - ناخشا - چالىدىغان تىزىم - ئېقىم - چېلىۋاتىدۇ - چالىدىغان ئۆچىرەت - - ئالبۇم - مودا ناخشىلار - ھەممە ناخشا - - تەڭشەكلەر - ئىزدە - تەرتىپسىز - ھەممىنى تەرتىپسىز چال - تەرتىپسىز چالىدىغان تىزىم - تەرتىپسىز ناخشا توپلىمى - تەرتىپسىز سەنئەتكار - تەرتىپسىز مودا ناخشىلار - تەرتىپسىز يېقىندا قويۇلغان - تەرتىپسىز يېقىندا قوشۇلغان - ھەممىنى قويۇش - تەرتىپى - تىزىملىكنى تازىلاش - يېقىنقىنى تازىلاش - ئۆچىرەتنى تازىلاش - سەپنى قويۇش تىزىملىكىگە قوشۇش - تەڭشىگۈچ - - چالىدىغان تىزىمغا قوش - ئۆچرەتكە قوشۇش - يېقىنقىدىن چىقىرىۋېتىش - ئۆچرەتتىن چىقىرىۋېتىش - - A-Z - Z-A - سەنئەتكار - ئالبۇم - يىل - داۋاملىشىش ۋاقتى - قوشقان ۋاقىت - ناخشا تىزىمى - ناخشا سانى - ناخشا توپلىمى سانى - ھۆججەت ئىسمى - - ئاخىرىدا قوشقان - يېقىندا چالغان - مودا ناخشىلىرىم - - يېڭى چالىدىغان تىزىم - ساقلاش - بىكار قىلىش - قاپلاڭ - تازىلاش - چالىدىغان تىزىم %d - چالىدىغان تىزىم نامى - %s نى ئۆچۈر؟ - ئالقىشلانغان ناخشىلارنى تازىلامسىز؟ - يېقىندا قويۇلغانلارنى تازىلامسىز؟ - ئەڭ ئاخىرى قوشۇلغانلارنى تازىلامسىز؟ - بۇنىڭدىن يېنىۋالغىلى بولمايدۇ - بۇ مەشغۇلات غەملەنگەن سۈرەت تۈرلىرىنى مەڭگۈلۈك ئۆچۈرۈۋېتىدۇ - رەسىم يىغقۇچتىن سۈرەت تاللاڭ - Google ئىزدەش - كۆڭۈلدىكى سۈرەتنى ئىشلەت - كونا سۈرەتنى ئىشلىتىش - - قويۇش - كېيىنكىنى چال - پىلاستىنكىنى قويۇش - بۇ سەنئەتكارنىڭ تېخىمۇ كۆپ ئەسەرلىرى - قايتا ناملاش - ئۆچۈرۇش - ناخشا توپلىمىنىڭ رەسىمىگە ئېرىشىش - سەنئەتكارنىڭ سۈرىتىگە ئېرىشىش - يېقىنقىدىن چىقىرىۋەت - قوڭغۇراق ئاۋازىغا ئىشلەت - چالىدىغان تىزىمدىن چىقىرىۋەت - رەسىم ئۆزگەرتىش - - قويۇش - ۋاقىتلىق توختا - كېيىنكى - ئالدىنقى - تەرتىپسىز - ھەممىنى تەرتىپسىز چال - قايتىلاش - ھەممىنى قايتىلاش - بىرنى قايتىلاش - سەپنى ئېچىش - مۇزىكا كۆرۈش - - %s نى قوڭغۇراق ئاۋازىغا تەڭشە - چالىدىغان تىزىم ئاتى ئۆزگەرتىلدى - - كۆرۈنمە يۈز - ساقلىغۇچ - سانلىق مەلۇمات - غەملەكنى تازىلاش - غەملەنگەن ھەممە سۈرەتلەرنى چىقىرىۋەت - پەقەت Wi-Fi تورىدىلا چۈشۈرۈش - مۇلازىمەت تەمىنلىگۈچىنىڭ خىراجىتىنى ئازايتىش ئۈچۈن، كۆچمە تورنىڭ سانلىق مەلۇمات چۈشۈرۈشىنى ئىشلەتمەيدۇ - ناخشا توپلىمىنىڭ كەم مۇقاۋىسىنى چۈشۈرۈش - سەنئەتكارنىڭ كەم سۈرىتىنى چۈشۈرۈش - ئادەتتىكى - مۇزىكىنىڭ كۆرۈنۈش ئۈنۈمىنى كۆرسىتىش - تېكىسىت كۆرسىتىش - بىر srt ھۆججەت ناخشىغا ماس كىلىدۇ - سىلكىپ قويۇش - تېلېفوننى سىلكىپ كىيىنكى ناخشىنى قويۇڭ - پىلاستىنكا سىرتقى يۈزىنى قۇلۇپلاڭ - قۇلۇپ تەگلىكىنى پىلاستىنكا سىرتقى يۈزىگە ئالماشتۇرۇڭ - - مۇزىكا: 4 \u00d7 1 - مۇزىكا: 4 \u00d7 2 - مۇزىكا: 4 \u00d7 2 (نۆۋەتلىشىدۇ) - يېقىندا قويۇلغان مۇزىكا - - تەڭشىگۈچنى ئاچالمىدى. - سىز USB سىمى ئارقىلىق نەغمىنى كومپيۇتېرىڭىزدىن ئۈسكۈنىگە كۆچۈرۈڭ. - ئىزدەش نەتىجىسى تېپىلمىدى - ئىملايىڭىز توغرىمۇ تەكشۈرۈڭ، ياكى باشقا ھالىقىلىق سۆزنى ئىزدەڭ. - سىز يىغقۇچقا قوشقان ناخشا بۇ جايدا كۆرۈنىدۇ. - يېقىنقى مۇزىكا يوق - بۇ يەردە سىز يېقىندا قويغان مۇزىكىلار كۆرۈنىدۇ. - تىزىملىكتە مۇزىكا يوقكەن - تىزىملىككە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \"تىزىملىككە ناخشا قوشۇش\"نى تاللاڭ. - ئالىقىشلانغان ناخشا يوق - سىز يېقىندا ئاڭلىغان ناخشا بۇ تىزىملىككە قوشۇلىدۇ. - يېقىندا ناخشا قوشۇلمىدى - سىز بىر ئايدىن بېرى قوشقان ناخشىلار بۇ جايدا كۆرۈنىدۇ. - مۇزىكا تاپالمىدى - سىز USB سىمى ئارقىلىق نەغمىنى كومپيۇتېرىڭىزدىن ئۈسكۈنىگە كۆچۈرۈڭ. - تىزىملىكتە مۇزىكا يوق - قويۇش سېپىگە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \"سەپكە ناخشا قوشۇش\"نى تاللاڭ. - ئاۋاز رېلىسى %1$s نى قويالمىدى - - يىلى نامەلۇم - 30 سىكونتتىن قىسقا - 30-60 سىكونتقىچە - 1-2 مىنۇتقىچە - 2-3 مىنۇتقىچە - 3-4 مىنۇتقىچە - 4-5 مىنۇتقىچە - 5-10 مىنۇتقىچە - 10-30 مىنۇتقىچە - 30-60 مىنۇتقىچە - 60 مىنۇتتىن ئۇزۇن - 1 نەغمە ناخشا - 2-4 نەغمە ناخشا - 5-9 نەغمە ناخشا - 10+ نەغمە ناخشا - 5+ پىلاستىنكا - "باشقا" - بارلىق ئارتىسنى كۆرسىتىش - بارلىق پىلاستىنكىنى كۆرسىتىش - بارلىق ناخشىنى كۆرسىتىش - بارلىق قويۇش تىزىملىكىنى كۆرسىتىش - مۇزىكا ئىزدەش - بارلىق \"%s\" ئارتىس - بارلىق \"%s\" پىلاستىنكا - بارلىق \"%s\" ناخشا - بارلىق \"%s\" قويۇش تېزىملىكى - %1$s سائەت %2$s مىنۇت + نەغمە + يېقىنقى + سەنئەتكار + ئالبۇم + ناخشا + چالىدىغان تىزىم + ئېقىم + چېلىۋاتىدۇ + چالىدىغان ئۆچىرەت + ئالبۇم + مودا ناخشىلار + ھەممە ناخشا + تەڭشەكلەر + ئىزدە + تەرتىپسىز + ھەممىنى تەرتىپسىز چال + تەرتىپسىز چالىدىغان تىزىم + تەرتىپسىز ناخشا توپلىمى + تەرتىپسىز سەنئەتكار + تەرتىپسىز مودا ناخشىلار + تەرتىپسىز يېقىندا قويۇلغان + تەرتىپسىز يېقىندا قوشۇلغان + ھەممىنى قويۇش + تەرتىپى + تىزىملىكنى تازىلاش + يېقىنقىنى تازىلاش + ئۆچىرەتنى تازىلاش + سەپنى قويۇش تىزىملىكىگە قوشۇش + تەڭشىگۈچ + چالىدىغان تىزىمغا قوش + ئۆچرەتكە قوشۇش + يېقىنقىدىن چىقىرىۋېتىش + ئۆچرەتتىن چىقىرىۋېتىش + A-Z + Z-A + سەنئەتكار + ئالبۇم + يىل + داۋاملىشىش ۋاقتى + قوشقان ۋاقىت + ناخشا تىزىمى + ناخشا سانى + ناخشا توپلىمى سانى + ھۆججەت ئىسمى + ئاخىرىدا قوشقان + يېقىندا چالغان + مودا ناخشىلىرىم + يېڭى چالىدىغان تىزىم + ساقلاش + بىكار قىلىش + قاپلاڭ + تازىلاش + چالىدىغان تىزىم %d + چالىدىغان تىزىم نامى + %s نى ئۆچۈر؟ + ئالقىشلانغان ناخشىلارنى تازىلامسىز؟ + يېقىندا قويۇلغانلارنى تازىلامسىز؟ + ئەڭ ئاخىرى قوشۇلغانلارنى تازىلامسىز؟ + بۇنىڭدىن يېنىۋالغىلى بولمايدۇ + بۇ مەشغۇلات غەملەنگەن سۈرەت تۈرلىرىنى مەڭگۈلۈك ئۆچۈرۈۋېتىدۇ + رەسىم يىغقۇچتىن سۈرەت تاللاڭ + Google ئىزدەش + كۆڭۈلدىكى سۈرەتنى ئىشلەت + كونا سۈرەتنى ئىشلىتىش + قويۇش + كېيىنكىنى چال + پىلاستىنكىنى قويۇش + بۇ سەنئەتكارنىڭ تېخىمۇ كۆپ ئەسەرلىرى + قايتا ناملاش + ئۆچۈرۇش + ناخشا توپلىمىنىڭ رەسىمىگە ئېرىشىش + سەنئەتكارنىڭ سۈرىتىگە ئېرىشىش + يېقىنقىدىن چىقىرىۋەت + قوڭغۇراق ئاۋازىغا ئىشلەت + چالىدىغان تىزىمدىن چىقىرىۋەت + رەسىم ئۆزگەرتىش + قويۇش + ۋاقىتلىق توختا + كېيىنكى + ئالدىنقى + تەرتىپسىز + ھەممىنى تەرتىپسىز چال + قايتىلاش + ھەممىنى قايتىلاش + بىرنى قايتىلاش + سەپنى ئېچىش + مۇزىكا كۆرۈش + %s نى قوڭغۇراق ئاۋازىغا تەڭشە + چالىدىغان تىزىم ئاتى ئۆزگەرتىلدى + كۆرۈنمە يۈز + ساقلىغۇچ + سانلىق مەلۇمات + غەملەكنى تازىلاش + غەملەنگەن ھەممە سۈرەتلەرنى چىقىرىۋەت + پەقەت Wi-Fi تورىدىلا چۈشۈرۈش + مۇلازىمەت تەمىنلىگۈچىنىڭ خىراجىتىنى ئازايتىش ئۈچۈن، كۆچمە تورنىڭ سانلىق مەلۇمات چۈشۈرۈشىنى ئىشلەتمەيدۇ + ناخشا توپلىمىنىڭ كەم مۇقاۋىسىنى چۈشۈرۈش + سەنئەتكارنىڭ كەم سۈرىتىنى چۈشۈرۈش + ئادەتتىكى + مۇزىكىنىڭ كۆرۈنۈش ئۈنۈمىنى كۆرسىتىش + تېكىسىت كۆرسىتىش + بىر srt ھۆججەت ناخشىغا ماس كىلىدۇ + سىلكىپ قويۇش + تېلېفوننى سىلكىپ كىيىنكى ناخشىنى قويۇڭ + پىلاستىنكا سىرتقى يۈزىنى قۇلۇپلاڭ + قۇلۇپ تەگلىكىنى پىلاستىنكا سىرتقى يۈزىگە ئالماشتۇرۇڭ + مۇزىكا: 4 \u00d7 1 + مۇزىكا: 4 \u00d7 2 + مۇزىكا: 4 \u00d7 2 (نۆۋەتلىشىدۇ) + يېقىندا قويۇلغان مۇزىكا + تەڭشىگۈچنى ئاچالمىدى. + سىز USB سىمى ئارقىلىق نەغمىنى كومپيۇتېرىڭىزدىن ئۈسكۈنىگە كۆچۈرۈڭ. + ئىزدەش نەتىجىسى تېپىلمىدى + ئىملايىڭىز توغرىمۇ تەكشۈرۈڭ، ياكى باشقا ھالىقىلىق سۆزنى ئىزدەڭ. + سىز يىغقۇچقا قوشقان ناخشا بۇ جايدا كۆرۈنىدۇ. + يېقىنقى مۇزىكا يوق + بۇ يەردە سىز يېقىندا قويغان مۇزىكىلار كۆرۈنىدۇ. + تىزىملىكتە مۇزىكا يوقكەن + تىزىملىككە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \"تىزىملىككە ناخشا قوشۇش\"نى تاللاڭ. + ئالىقىشلانغان ناخشا يوق + سىز يېقىندا ئاڭلىغان ناخشا بۇ تىزىملىككە قوشۇلىدۇ. + يېقىندا ناخشا قوشۇلمىدى + سىز بىر ئايدىن بېرى قوشقان ناخشىلار بۇ جايدا كۆرۈنىدۇ. + مۇزىكا تاپالمىدى + سىز USB سىمى ئارقىلىق نەغمىنى كومپيۇتېرىڭىزدىن ئۈسكۈنىگە كۆچۈرۈڭ. + تىزىملىكتە مۇزىكا يوق + قويۇش سېپىگە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \"سەپكە ناخشا قوشۇش\"نى تاللاڭ. + ئاۋاز رېلىسى %1$s نى قويالمىدى + يىلى نامەلۇم + 30 سىكونتتىن قىسقا + 30-60 سىكونتقىچە + 1-2 مىنۇتقىچە + 2-3 مىنۇتقىچە + 3-4 مىنۇتقىچە + 4-5 مىنۇتقىچە + 5-10 مىنۇتقىچە + 10-30 مىنۇتقىچە + 30-60 مىنۇتقىچە + 60 مىنۇتتىن ئۇزۇن + 1 نەغمە ناخشا + 2-4 نەغمە ناخشا + 5-9 نەغمە ناخشا + 10+ نەغمە ناخشا + 5+ پىلاستىنكا + "باشقا" + بارلىق ئارتىسنى كۆرسىتىش + بارلىق پىلاستىنكىنى كۆرسىتىش + بارلىق ناخشىنى كۆرسىتىش + بارلىق قويۇش تىزىملىكىنى كۆرسىتىش + مۇزىكا ئىزدەش + بارلىق \"%s\" ئارتىس + بارلىق \"%s\" پىلاستىنكا + بارلىق \"%s\" ناخشا + بارلىق \"%s\" قويۇش تېزىملىكى + %1$s سائەت %2$s مىنۇت diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index d6b4dca..b48011c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -17,173 +17,159 @@ limitations under the License. --> - Музика - - Нещодавні - Виконавці - Альбоми - Композиції - Списки відтворення - Жанри - Зараз грає - Відтворити чергу - - Альбоми - Топ-композиції - Всі композиції - - Налаштування - Пошук - Перемішати - Перемішати все - Перемішати список відтворення - Перемішати альбом - Перемішати виконавців - Перемішати топ-композицій - Перемішати нещодавно відтворені - Перемішати останні додані - Відтворити усе - Сортувати за - Очистити список - Очистити нещодавні - Очистити чергу - Зберегти чергу до списку відтворення - Еквалайзер - - Додати до списку відтворення - Додати до черги - Видалити з нещодавніх - Видалити з черги - - А-Я - Я-А - Виконавець - Альбом - Рік - Тривалість - Дата додавання - Трек-лист - Кількість пісень - Кількість альбомів - Назва файлу - - Востаннє додано - Нещодавно відтворені - Мої найкращі композиції - - Створити список відтворення - Зберегти - Скасувати - Перезаписати - Очистити - Список відтворення %d - Ім\'я списку відтворення - Видалити %s? - Очистити Топ-композиції? - Очистити нещодавно відтворені? - Очистити нещодавно додані? - Цю дію не можна відмінити - Це призведе до остаточного видалення записів кешованих зображень - Вибрати фото з галереї - Пошук Google - Використовувати типове фото - Використовувати старе фото - - Грати - Грати наступну - Відтворити альбом - Більше за виконавцем - Перейменувати - Видалити - Завантажити обкладинку альбому - Завантажити зображення виконавця - Видалити з останніх - Використати як мелодію дзвінка - Видалити зі списку відтворення - Змінити зображення - - Грати - Пауза - Наступна - Попередня - Перемішати - Перемішати все - Повторення - Повторити все - Повторити одну - Відкрити чергу - Огляд музики - - «%s» встановити як мелодію дзвінка - Список відтворення перейменовано - - Інтерфейс - Сховище - Дані - Видалити кеш - Видалити всі кешовані зображення - Завантажувати лише через Wi-Fi - Щоб знизити витрати мобільного оператора, не завантажуйте через мобільні мережі - Завантажити відсутні обкладинки альбомів - Завантажити відсутні зображення виконавців - Загальні - Показати візуалізацію музики - Показати тексти пісень - Для композицій що мають srt файл - Струсити для програвання - Струсити пристрій для програвання наступної пісні - Обкладинка альбому на екрані блокування - Замінити фон екрану блокування на обкладинку альбому - - Музика: 4 \u00d7 1 - Музика: 4 \u00d7 2 - Музика: 4 \u00d7 2 (альтернативний) - Музика: нещодавно прослухані - - Неможливо відкрити еквалайзер. - Використовуйте USB-кабель для копіювання музики з комп’ютера. - Нічого не знайдено - Будь ласка, перевірте правильність написання або спробуйте різні ключові слова. - Тут відображатимуться улюблені пісні. - Немає останніх композицій - Пісні, які ви слухали нещодавно, з\'являться тут. - Немає пісень у списку відтворення - Щоб додати пісню у цей список відтворення, торкніться меню параметрів на композиції, альбому або виконавця та виберіть \"Додати до списку відтворення\". - Немає Топ-композицій - Пісні, які ви слухаєте найчастіше, буде додано до цього списку. - Немає нещодавно доданих пісень - Пісні, які будуть додані протягом останнього місяця, буде показано тут. - Композицій не знайдено - Використовуйте USB-кабель для копіювання музики з комп’ютера. - Немає пісень в черзі відтворення - Щоб додати пісню у список відтворення, торкніться меню параметрів на композиції, альбому або виконавця та виберіть «Додати до списку відтворення». - Неможливо грати трек %1$s - - Невідомий рік - Менш ніж за 30 секунд - 30 - 60 секунд - 1 - 2 хвилини - 2 - 3 хвилини - 3 - 4 хвилини - 4 - 5 хвилин - 5 - 10 хвилин - 10 - 30 хвилин - 30 - 60 хвилин - Більше ніж 60 хвилин - 1 пісня - 2 - 4 пісні - 5 - 9 пісень - 10 + пісні - 5 + альбоми - "Інші" - Показати всіх виконавців - Показати всі альбоми - Показати всі композиції - Показати всі списки відтворення - Пошук музики - Всі \"%s\" виконавців - Всі \"%s\" альбомів - Всі \"%s\" пісень - Усі \"%s\" списків відтворення - %1$s %2$s + Музика + Нещодавні + Виконавці + Альбоми + Композиції + Списки відтворення + Жанри + Зараз грає + Відтворити чергу + Альбоми + Топ-композиції + Всі композиції + Налаштування + Пошук + Перемішати + Перемішати все + Перемішати список відтворення + Перемішати альбом + Перемішати виконавців + Перемішати топ-композицій + Перемішати нещодавно відтворені + Перемішати останні додані + Відтворити усе + Сортувати за + Очистити список + Очистити нещодавні + Очистити чергу + Зберегти чергу до списку відтворення + Еквалайзер + Додати до списку відтворення + Додати до черги + Видалити з нещодавніх + Видалити з черги + А-Я + Я-А + Виконавець + Альбом + Рік + Тривалість + Дата додавання + Трек-лист + Кількість пісень + Кількість альбомів + Назва файлу + Востаннє додано + Нещодавно відтворені + Мої найкращі композиції + Створити список відтворення + Зберегти + Скасувати + Перезаписати + Очистити + Список відтворення %d + Ім\'я списку відтворення + Видалити %s? + Очистити Топ-композиції? + Очистити нещодавно відтворені? + Очистити нещодавно додані? + Цю дію не можна відмінити + Це призведе до остаточного видалення записів кешованих зображень + Вибрати фото з галереї + Пошук Google + Використовувати типове фото + Використовувати старе фото + Грати + Грати наступну + Відтворити альбом + Більше за виконавцем + Перейменувати + Видалити + Завантажити обкладинку альбому + Завантажити зображення виконавця + Видалити з останніх + Використати як мелодію дзвінка + Видалити зі списку відтворення + Змінити зображення + Грати + Пауза + Наступна + Попередня + Перемішати + Перемішати все + Повторення + Повторити все + Повторити одну + Відкрити чергу + Огляд музики + «%s» встановити як мелодію дзвінка + Список відтворення перейменовано + Інтерфейс + Сховище + Дані + Видалити кеш + Видалити всі кешовані зображення + Завантажувати лише через Wi-Fi + Щоб знизити витрати мобільного оператора, не завантажуйте через мобільні мережі + Завантажити відсутні обкладинки альбомів + Завантажити відсутні зображення виконавців + Загальні + Показати візуалізацію музики + Показати тексти пісень + Для композицій що мають srt файл + Струсити для програвання + Струсити пристрій для програвання наступної пісні + Обкладинка альбому на екрані блокування + Замінити фон екрану блокування на обкладинку альбому + Музика: 4 \u00d7 1 + Музика: 4 \u00d7 2 + Музика: 4 \u00d7 2 (альтернативний) + Музика: нещодавно прослухані + Неможливо відкрити еквалайзер. + Використовуйте USB-кабель для копіювання музики з комп’ютера. + Нічого не знайдено + Будь ласка, перевірте правильність написання або спробуйте різні ключові слова. + Тут відображатимуться улюблені пісні. + Немає останніх композицій + Пісні, які ви слухали нещодавно, з\'являться тут. + Немає пісень у списку відтворення + Щоб додати пісню у цей список відтворення, торкніться меню параметрів на композиції, альбому або виконавця та виберіть \"Додати до списку відтворення\". + Немає Топ-композицій + Пісні, які ви слухаєте найчастіше, буде додано до цього списку. + Немає нещодавно доданих пісень + Пісні, які будуть додані протягом останнього місяця, буде показано тут. + Композицій не знайдено + Використовуйте USB-кабель для копіювання музики з комп’ютера. + Немає пісень в черзі відтворення + Щоб додати пісню у список відтворення, торкніться меню параметрів на композиції, альбому або виконавця та виберіть «Додати до списку відтворення». + Неможливо грати трек %1$s + Невідомий рік + Менш ніж за 30 секунд + 30 - 60 секунд + 1 - 2 хвилини + 2 - 3 хвилини + 3 - 4 хвилини + 4 - 5 хвилин + 5 - 10 хвилин + 10 - 30 хвилин + 30 - 60 хвилин + Більше ніж 60 хвилин + 1 пісня + 2 - 4 пісні + 5 - 9 пісень + 10 + пісні + 5 + альбоми + "Інші" + Показати всіх виконавців + Показати всі альбоми + Показати всі композиції + Показати всі списки відтворення + Пошук музики + Всі \"%s\" виконавців + Всі \"%s\" альбомів + Всі \"%s\" пісень + Усі \"%s\" списків відтворення + %1$s %2$s diff --git a/app/src/main/res/values-vi/plurals.xml b/app/src/main/res/values-vi/plurals.xml index 19839e3..4952b0f 100644 --- a/app/src/main/res/values-vi/plurals.xml +++ b/app/src/main/res/values-vi/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d nghệ sĩ - - - - %d album - - - - %d bài hát - - - - %d thể loại - - - - %dgiờ - - - - %dphút - - - - %d bài hát đã thêm vào danh sách phát. - - - - %d bài hát đã xóa khỏi danh sách phát. - - - - %d bài hát đã thêm vào hàng đợi. - - - - %d bài hát đã thêm vào yêu thích. - - - - %d bài hát đã bị xóa. - + + %d nghệ sĩ + + + %d album + + + %d bài hát + + + %d thể loại + + + %dgiờ + + + %dphút + + + %d bài hát đã thêm vào danh sách phát. + + + %d bài hát đã xóa khỏi danh sách phát. + + + %d bài hát đã thêm vào hàng đợi. + + + %d bài hát đã thêm vào yêu thích. + + + %d bài hát đã bị xóa. + diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 01eeffd..31768a6 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - Nhạc - - Gần đây - Nghệ sĩ - Album - Bài hát - Danh sách phát - Thể loại - Đang phát - Phát danh sách chờ - - Album - Bài hát thường nghe - Tất cả bài hát - - Cài đặt - Tìm kiếm - Phát ngẫu nhiên - Phát ngẫu nhiên tất cả - Phát ngẫu nhiên danh sách phát - Phát album ngẫu nhiên - Phát theo nghệ sĩ ngẫu nhiên - Phát ngẫu nhiên bài hát thường nghe - Phát ngẫu nhiên những bài hát nghe gần đây - Phát ngẫu nhiên những bài hát vừa thêm - Phát tất cả - Xếp theo - Xoá danh sách - Xoá danh sách nghe gần đây - Xoá danh sách chờ - Lưu hàng chờ vào danh sách phát - Bộ chỉnh âm - - Thêm vào danh sách phát - Thêm vào danh sách chờ - Xoá khỏi danh sách nghe gần đây - Xoá khỏi danh sách chờ - - A-Z - Z-A - Nghệ sĩ - Album - Năm - Thời lượng - Ngày thêm - Danh sách bài hát - Số của bài hát - Số của album - Tên tập tin - - Vừa thêm - Đã phát gần đây - Bài hát thường nghe của tôi - - Danh sách phát mới - Lưu - Huỷ - Ghi đè - Xoá - Danh sách phát %d - Tên danh sách phát - Xoá %s? - Xoá những bài hát thường nghe? - Xoá danh sách nghe gần đây? - Xoá danh sách vừa thêm? - Không thể hoàn tác điều này - Điều này sẽ xoá vĩnh viễn các mục nhập ảnh đã lưu trong bộ nhớ đệm - Chọn ảnh từ Bộ sưu tập - Tìm bằng Google - Dùng ảnh mặc định - Dùng ảnh cũ - - Phát - Phát tiếp theo - Phát album - Thêm mục của nghệ sĩ - Đổi tên - Xoá - Tải ảnh bìa album - Tải ảnh nghệ sĩ - Xoá khỏi danh sách nghe gần đây - Dùng làm nhạc chuông - Xoá khỏi danh sách phát - Đổi ảnh - - Phát - Tạm dừng - Bài tiếp theo - Bài trước đó - Phát ngẫu nhiên - Phát ngẫu nhiên tất cả - Lặp lại - Lặp lại tất cả - Lặp lại một bài hát - Mở danh sách chờ - Duyệt nhạc - - \'%s\' được đặt làm nhạc chuông - Đã đổi tên danh sách phát - - Giao diện - Lưu trữ - Dữ liệu - Xoá bộ nhớ đệm - Xoá tất cả ảnh đã có trong bộ nhớ đệm - Chỉ tải xuống qua WiFi - Để giảm cước, đừng tải qua mạng di động - Tải xuống ảnh bìa album còn thiếu - Tải xuống ảnh nghệ sỹ còn thiếu - Tổng quát - Hiện trực quan hoá nhạc - Hiện lời bài hát - Đối với bài hát có tập tin srt - Lắc để phát - Lắc thiết bị để phát bài hát kế tiếp - Ảnh bìa album màn hình khoá - Thay thế nền màn hình khoá bằng ảnh bìa album - - Nghe nhạc: 4 \u00d7 1 - Nghe nhạc: 4 \u00d7 2 - Nghe nhạc: 4 \u00d7 2 (kiểu khác) - Nghe nhạc: đã nghe gần đây - - Không thể mở bộ chỉnh âm. - Để chép nhạc từ máy tính sang thiết bị, hãy dùng cáp USB. - Không tìm thấy kết quả tìm kiếm - Hãy kiểm tra xem bạn đã nhập đúng chính tả chưa hoặc thử từ khoá khác. - Bài hát bạn đã đánh dấu là yêu thích sẽ hiện tại đây. - Không có bài hát nào nghe gần đây - Bài hát bạn đã nghe gần đây sẽ hiện tại đây. - Không có bài hát nào trong danh sách phát - Để thêm bài hát vào danh sách phát này, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \"Thêm vào danh sách phát\". - Không có bài hát thường nghe - Bài hát bạn thường nghe sẽ được thêm vào danh sách này. - Không có bài hát được thêm gần đây - Bài hát bạn thêm trong vòng một tháng gần đây sẽ hiện tại đây. - Không tìm thấy nhạc - Để chép nhạc từ máy tính sang thiết bị, hãy dùng cáp USB. - Không có bài hát trong danh sách chờ phát - Để thêm bài hát vào Danh sách chờ phát, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \"Thêm vào danh sách chờ\". - Không thể phát bài hát %1$s - - Năm chưa rõ - Ngắn hơn 30 giây - 30 - 60 giây - 1 - 2 phút - 2 - 3 phút - 3 - 4 phút - 4 - 5 phút - 5 - 10 phút - 10 - 30 phút - 30 - 60 phút - Lâu hơn 60 phút - 1 bài hát - 2 - 4 bài hát - 5 - 9 bài hát - 10 bài hát trở lên - 5 album trở lên - "Khác" - Hiện tất cả nghệ sĩ - Hiện tất cả album - Hiện tất cả bài hát - Hiện tất cả danh sách phát - Tìm bài hát - Tất cả về nghệ sĩ \"%s\" - Tất cả về album \"%s\" - Tất cả về bài hát \"%s\" - Tất cả về danh sách phát \"%s\" - %1$s %2$s - Điều khiển nhạc + Nhạc + Gần đây + Nghệ sĩ + Album + Bài hát + Danh sách phát + Thể loại + Đang phát + Phát danh sách chờ + Album + Bài hát thường nghe + Tất cả bài hát + Cài đặt + Tìm kiếm + Phát ngẫu nhiên + Phát ngẫu nhiên tất cả + Phát ngẫu nhiên danh sách phát + Phát album ngẫu nhiên + Phát theo nghệ sĩ ngẫu nhiên + Phát ngẫu nhiên bài hát thường nghe + Phát ngẫu nhiên những bài hát nghe gần đây + Phát ngẫu nhiên những bài hát vừa thêm + Phát tất cả + Xếp theo + Xoá danh sách + Xoá danh sách nghe gần đây + Xoá danh sách chờ + Lưu hàng chờ vào danh sách phát + Bộ chỉnh âm + Thêm vào danh sách phát + Thêm vào danh sách chờ + Xoá khỏi danh sách nghe gần đây + Xoá khỏi danh sách chờ + A-Z + Z-A + Nghệ sĩ + Album + Năm + Thời lượng + Ngày thêm + Danh sách bài hát + Số của bài hát + Số của album + Tên tập tin + Vừa thêm + Đã phát gần đây + Bài hát thường nghe của tôi + Danh sách phát mới + Lưu + Huỷ + Ghi đè + Xoá + Danh sách phát %d + Tên danh sách phát + Xoá %s? + Xoá những bài hát thường nghe? + Xoá danh sách nghe gần đây? + Xoá danh sách vừa thêm? + Không thể hoàn tác điều này + Điều này sẽ xoá vĩnh viễn các mục nhập ảnh đã lưu trong bộ nhớ đệm + Chọn ảnh từ Bộ sưu tập + Tìm bằng Google + Dùng ảnh mặc định + Dùng ảnh cũ + Phát + Phát tiếp theo + Phát album + Thêm mục của nghệ sĩ + Đổi tên + Xoá + Tải ảnh bìa album + Tải ảnh nghệ sĩ + Xoá khỏi danh sách nghe gần đây + Dùng làm nhạc chuông + Xoá khỏi danh sách phát + Đổi ảnh + Phát + Tạm dừng + Bài tiếp theo + Bài trước đó + Phát ngẫu nhiên + Phát ngẫu nhiên tất cả + Lặp lại + Lặp lại tất cả + Lặp lại một bài hát + Mở danh sách chờ + Duyệt nhạc + \'%s\' được đặt làm nhạc chuông + Đã đổi tên danh sách phát + Giao diện + Lưu trữ + Dữ liệu + Xoá bộ nhớ đệm + Xoá tất cả ảnh đã có trong bộ nhớ đệm + Chỉ tải xuống qua WiFi + Để giảm cước, đừng tải qua mạng di động + Tải xuống ảnh bìa album còn thiếu + Tải xuống ảnh nghệ sỹ còn thiếu + Tổng quát + Hiện trực quan hoá nhạc + Hiện lời bài hát + Đối với bài hát có tập tin srt + Lắc để phát + Lắc thiết bị để phát bài hát kế tiếp + Ảnh bìa album màn hình khoá + Thay thế nền màn hình khoá bằng ảnh bìa album + Nghe nhạc: 4 \u00d7 1 + Nghe nhạc: 4 \u00d7 2 + Nghe nhạc: 4 \u00d7 2 (kiểu khác) + Nghe nhạc: đã nghe gần đây + Không thể mở bộ chỉnh âm. + Để chép nhạc từ máy tính sang thiết bị, hãy dùng cáp USB. + Không tìm thấy kết quả tìm kiếm + Hãy kiểm tra xem bạn đã nhập đúng chính tả chưa hoặc thử từ khoá khác. + Bài hát bạn đã đánh dấu là yêu thích sẽ hiện tại đây. + Không có bài hát nào nghe gần đây + Bài hát bạn đã nghe gần đây sẽ hiện tại đây. + Không có bài hát nào trong danh sách phát + Để thêm bài hát vào danh sách phát này, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \"Thêm vào danh sách phát\". + Không có bài hát thường nghe + Bài hát bạn thường nghe sẽ được thêm vào danh sách này. + Không có bài hát được thêm gần đây + Bài hát bạn thêm trong vòng một tháng gần đây sẽ hiện tại đây. + Không tìm thấy nhạc + Để chép nhạc từ máy tính sang thiết bị, hãy dùng cáp USB. + Không có bài hát trong danh sách chờ phát + Để thêm bài hát vào Danh sách chờ phát, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \"Thêm vào danh sách chờ\". + Không thể phát bài hát %1$s + Năm chưa rõ + Ngắn hơn 30 giây + 30 - 60 giây + 1 - 2 phút + 2 - 3 phút + 3 - 4 phút + 4 - 5 phút + 5 - 10 phút + 10 - 30 phút + 30 - 60 phút + Lâu hơn 60 phút + 1 bài hát + 2 - 4 bài hát + 5 - 9 bài hát + 10 bài hát trở lên + 5 album trở lên + "Khác" + Hiện tất cả nghệ sĩ + Hiện tất cả album + Hiện tất cả bài hát + Hiện tất cả danh sách phát + Tìm bài hát + Tất cả về nghệ sĩ \"%s\" + Tất cả về album \"%s\" + Tất cả về bài hát \"%s\" + Tất cả về danh sách phát \"%s\" + %1$s %2$s + Điều khiển nhạc diff --git a/app/src/main/res/values-zh-rCN/plurals.xml b/app/src/main/res/values-zh-rCN/plurals.xml index 5dea06e..dd07d40 100644 --- a/app/src/main/res/values-zh-rCN/plurals.xml +++ b/app/src/main/res/values-zh-rCN/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d 位艺术家 - - - - %d 张专辑 - - - - %d 首歌曲 - - - - %d 种类型 - - - - %d 小时 - - - - %d 分钟 - - - - 已添加 %d 首歌曲到播放列表。 - - - - %d 首歌曲已从播放列表中移除。 - - - - %d 首歌曲已添加到队列。 - - - - 已添加 %d 首歌曲到收藏夹。 - - - - 已删除 %d 首歌曲。 - + + %d 位艺术家 + + + %d 张专辑 + + + %d 首歌曲 + + + %d 种类型 + + + %d 小时 + + + %d 分钟 + + + 已添加 %d 首歌曲到播放列表。 + + + %d 首歌曲已从播放列表中移除。 + + + %d 首歌曲已添加到队列。 + + + 已添加 %d 首歌曲到收藏夹。 + + + 已删除 %d 首歌曲。 + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 94aee1d..3a61883 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - 音乐 - - 最近播放 - 艺术家 - 专辑 - 歌曲 - 播放列表 - 类型 - 正在播放 - 播放队列 - - 专辑 - 热门歌曲 - 所有歌曲 - - 设置 - 搜索 - 随机播放 - 全部随机播放 - 随机播放列表 - 随机专辑 - 随机艺术家 - 随机最热门歌曲 - 随机最近播放的歌曲 - 随机最后添加的歌曲 - 全部播放 - 排序方式 - 清除列表 - 清除最近播放列表 - 清除队列 - 保存队列到播放列表 - 均衡器 - - 添加到播放列表 - 添加到队列 - 从最近播放列表移除 - 从队列移除 - - A-Z - Z-A - 艺术家 - 专辑 - 发行年份 - 长度 - 日期已添加 - 曲目列表 - 歌曲数量 - 专辑数量 - 文件名 - - 最后添加 - 最近播放 - 我的热门曲目 - - 新的播放列表 - 保存 - 取消 - 覆盖 - 清空 - 播放列表 %d - 播放列表名称 - 删除 %s - 清空热门曲目? - 清空最近播放? - 清空最后添加? - 此操作不能被撤消 - 这将永久删除缓存的图像 - 从图库中选择照片 - Google 搜索 - 使用默认照片 - 使用旧照片 - - 播放 - 播放下一首 - 播放专辑 - 来自此艺术家的更多作品 - 重命名 - 删除 - 获取专辑封面 - 获取艺术家图像 - 从最近播放列表移除 - 设为铃声 - 从播放列表中移除 - 更改图像 - - 播放 - 暂停 - 下一首 - 上一首 - 随机 - 全部随机 - 重复 - 全部重复 - 单曲重复 - 打开队列 - 浏览音乐 - - 设置“%s”为铃声 - 播放列表已被重命名 - - 界面 - 存储 - 数据 - 清除缓存 - 清除所有缓存的图像 - 仅使用 Wi-Fi 下载 - 为了减少运营商费用,不使用移动网络下载。 - 下载缺失的专辑封面 - 下载缺失的艺术家的图像 - 常规 - 显示音乐可视化效果 - 显示歌词 - 有一个 srt 文件与歌曲匹配 - 摇动播放 - 摇动您的设备以播放下一首歌 - 锁屏唱片封面 - 将锁屏背景换为唱片集封面 - - 音乐:4 \u00d7 1 - 音乐:4 \u00d7 1 - 音乐:4 \u00d7 2 (交替) - 最近听过的音乐 - - 无法打开均衡器。 - 请使用 USB 数据线把音乐从您的计算机复制到您的设备中。 - 无搜索结果 - 请检查您的拼写是否正确,或尝试另一个关键字。 - 您标记为收藏的歌曲将在这里显示。 - 没有最近的歌曲 - 这里会显示您最近听过的歌曲。 - 播放列表中没有歌曲 - 要向此播放列表添加歌曲,请点击歌曲、唱片集或艺术家上的选项菜单,选择“添加到播放列表”。 - 没有热门的曲目 - 您最常听的歌曲将添加到此列表中。 - 最近没有添加歌曲 - 您在这一个月以来添加的歌曲将在这里显示。 - 没有找到音乐 - 请使用 USB 数据线把音乐从您的计算机复制到您的设备中。 - 播放队列中没有音乐 - 要向您的播放队列添加歌曲,请点击歌曲、唱片集或艺术家上的选项菜单,选择“添加到队列”。 - 无法播放音轨 %1$s - - 未知年份 - 少于 30 秒 - 30-60 秒 - 1-2 分钟 - 2-3 分钟 - 3-4 分钟 - 4-5 分钟 - 5-10 分钟 - 10-30 分钟 - 30-60 分钟 - 超过 60 分钟 - 1 首歌曲 - 2-4 首歌曲 - 5-9 首歌曲 - 10+ 首歌曲 - 5+ 张专辑 - "其他" - 显示所有艺术家 - 显示所有专辑 - 显示所有歌曲 - 显示所有播放列表 - 搜索音乐 - 所有的 \"%s\" 艺术家 - 所有的 \"%s\" 专辑 - 所有的 \"%s\" 歌曲 - 所有的 \"%s\" 播放列表 - %1$s %2$s - 音乐播放 + 音乐 + 最近播放 + 艺术家 + 专辑 + 歌曲 + 播放列表 + 类型 + 正在播放 + 播放队列 + 专辑 + 热门歌曲 + 所有歌曲 + 设置 + 搜索 + 随机播放 + 全部随机播放 + 随机播放列表 + 随机专辑 + 随机艺术家 + 随机最热门歌曲 + 随机最近播放的歌曲 + 随机最后添加的歌曲 + 全部播放 + 排序方式 + 清除列表 + 清除最近播放列表 + 清除队列 + 保存队列到播放列表 + 均衡器 + 添加到播放列表 + 添加到队列 + 从最近播放列表移除 + 从队列移除 + A-Z + Z-A + 艺术家 + 专辑 + 发行年份 + 长度 + 日期已添加 + 曲目列表 + 歌曲数量 + 专辑数量 + 文件名 + 最后添加 + 最近播放 + 我的热门曲目 + 新的播放列表 + 保存 + 取消 + 覆盖 + 清空 + 播放列表 %d + 播放列表名称 + 删除 %s + 清空热门曲目? + 清空最近播放? + 清空最后添加? + 此操作不能被撤消 + 这将永久删除缓存的图像 + 从图库中选择照片 + Google 搜索 + 使用默认照片 + 使用旧照片 + 播放 + 播放下一首 + 播放专辑 + 来自此艺术家的更多作品 + 重命名 + 删除 + 获取专辑封面 + 获取艺术家图像 + 从最近播放列表移除 + 设为铃声 + 从播放列表中移除 + 更改图像 + 播放 + 暂停 + 下一首 + 上一首 + 随机 + 全部随机 + 重复 + 全部重复 + 单曲重复 + 打开队列 + 浏览音乐 + 设置“%s”为铃声 + 播放列表已被重命名 + 界面 + 存储 + 数据 + 清除缓存 + 清除所有缓存的图像 + 仅使用 Wi-Fi 下载 + 为了减少运营商费用,不使用移动网络下载。 + 下载缺失的专辑封面 + 下载缺失的艺术家的图像 + 常规 + 显示音乐可视化效果 + 显示歌词 + 有一个 srt 文件与歌曲匹配 + 摇动播放 + 摇动您的设备以播放下一首歌 + 锁屏唱片封面 + 将锁屏背景换为唱片集封面 + 音乐:4 \u00d7 1 + 音乐:4 \u00d7 1 + 音乐:4 \u00d7 2 (交替) + 最近听过的音乐 + 无法打开均衡器。 + 请使用 USB 数据线把音乐从您的计算机复制到您的设备中。 + 无搜索结果 + 请检查您的拼写是否正确,或尝试另一个关键字。 + 您标记为收藏的歌曲将在这里显示。 + 没有最近的歌曲 + 这里会显示您最近听过的歌曲。 + 播放列表中没有歌曲 + 要向此播放列表添加歌曲,请点击歌曲、唱片集或艺术家上的选项菜单,选择“添加到播放列表”。 + 没有热门的曲目 + 您最常听的歌曲将添加到此列表中。 + 最近没有添加歌曲 + 您在这一个月以来添加的歌曲将在这里显示。 + 没有找到音乐 + 请使用 USB 数据线把音乐从您的计算机复制到您的设备中。 + 播放队列中没有音乐 + 要向您的播放队列添加歌曲,请点击歌曲、唱片集或艺术家上的选项菜单,选择“添加到队列”。 + 无法播放音轨 %1$s + 未知年份 + 少于 30 秒 + 30-60 秒 + 1-2 分钟 + 2-3 分钟 + 3-4 分钟 + 4-5 分钟 + 5-10 分钟 + 10-30 分钟 + 30-60 分钟 + 超过 60 分钟 + 1 首歌曲 + 2-4 首歌曲 + 5-9 首歌曲 + 10+ 首歌曲 + 5+ 张专辑 + "其他" + 显示所有艺术家 + 显示所有专辑 + 显示所有歌曲 + 显示所有播放列表 + 搜索音乐 + 所有的 \"%s\" 艺术家 + 所有的 \"%s\" 专辑 + 所有的 \"%s\" 歌曲 + 所有的 \"%s\" 播放列表 + %1$s %2$s + 音乐播放 diff --git a/app/src/main/res/values-zh-rHK/plurals.xml b/app/src/main/res/values-zh-rHK/plurals.xml index 1140836..110f70a 100644 --- a/app/src/main/res/values-zh-rHK/plurals.xml +++ b/app/src/main/res/values-zh-rHK/plurals.xml @@ -17,39 +17,28 @@ limitations under the License. --> - - - - - - %d 種內容類型 - - - - %d 小時 - - - - %d 分鐘 - - - - %d 首歌曲已新增至播放清單。 - - - - %d 首歌曲已從播放清單中移除。 - - - - %d 首歌曲已新增至佇列。 - - - - %d 首歌曲已新增至最愛。 - - - - %d 首歌曲已刪除。 - + + %d 種內容類型 + + + %d 小時 + + + %d 分鐘 + + + %d 首歌曲已新增至播放清單。 + + + %d 首歌曲已從播放清單中移除。 + + + %d 首歌曲已新增至佇列。 + + + %d 首歌曲已新增至最愛。 + + + %d 首歌曲已刪除。 + diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 2c81237..7a6dfb2 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -17,163 +17,149 @@ limitations under the License. --> - - 最近播放 - 歌曲 - 播放清單 - 內容類型 - 正在播放 - 播放佇列 - - 熱門歌曲 - 所有歌曲 - - 設定 - 搜尋 - 隨機播放 - 隨機播放所有歌曲 - 隨機播放清單 - 隨機播放專輯 - 隨機播放演出者 - 隨機播放熱門歌曲 - 隨機播放最近播放過的歌曲 - 隨機播放最近新增的歌曲 - 播放所有歌曲 - 排序依據 - 清除清單 - 清除最近播放 - 清除佇列 - 等化器 - - 新增至播放清單 - 新增至佇列 - 從最近播放中移除 - 從佇列中移除 - - A-Z - Z-A - 演出者 - 專輯 - 年份 - 持續時間 - 已加入日期 - 曲目清單 - 歌曲數量 - 檔案名稱 - - 最後新增 - 最近播放 - 我的熱門曲目 - - 新的播放清單 - 取消 - 覆寫 - 清除 - 播放清單 %d - 播放清單名稱 - 刪除 %s - 清除熱門曲目? - 清除最近播放? - 清除最後新增? - 此操作無法復原 - 這將永久刪除快取圖像項 - 從圖片庫中選擇相片 - Google 搜尋 - 使用預設相片 - 使用舊圖片 - - 播放 - 播放下一首 - 播放專輯 - 更多此演出者的作品 - 重新命名 - 刪除 - 獲取專輯畫面 - 獲取演出者圖像 - 從最近播放中移除 - 從播放清單中移除 - 變更圖像 - - 播放 - 暫停 - 下一首 - 上一首 - 隨機播放 - 全部隨機播放 - 重複播放 - 全部重複播放 - 單曲重複播放 - 打開佇列 - 瀏覽音樂 - - 已重新命名播放清單 - - 介面 - 儲存空間 - 數據 - 刪除快取 - 移除所有快取圖像 - 僅透過 Wi-Fi 下載 - 下載缺少的專輯封面 - 下載缺少的演出者圖像 - 一般 - 顯示音樂視覺化效果 - 顯示歌詞 - 針對有 srt 檔的歌曲 - 搖動即可播放 - 搖動您的裝置即可播放下一首歌曲 - 鎖屏專輯圖片 - 將鎖屏背景替換成專輯圖片 - - 音樂:4 \u00d7 1 - 音樂:4 \u00d7 2 - 音樂:4 \u00d7 2(交替) - 音樂:最近聽過 - - 無法打開等化器。 - 使用 USB 連接線將音樂從電腦複製至裝置。 - 未找到搜尋結果 - 請檢查拼寫是否正確,或嘗試其他關鍵字。 - 您標記為最愛的歌曲將在這裏顯示。 - 無最近播放的歌曲 - 您最近聽過的歌曲將在這裏顯示。 - 播放清單中沒有歌曲 - 要向此播放清單中新增歌曲,請按下選單上的歌曲、專輯或演出者,並選擇「新增至播放清單」。 - 沒有熱門曲目 - 您聽過次數最多的歌曲將新增至此清單。 - 無最近新增的歌曲 - 您最近一個月新增的歌曲將會在這裏顯示。 - 未找到音樂 - 使用 USB 連接線將音樂從電腦複製至裝置。 - 播放佇列中沒有歌曲 - 要向您的播放佇列新增歌曲,請按下選單中的歌曲、專輯或演出者,並在選擇「新增至佇列」。 - 無法播放曲目 %1$s - - 不明年份 - 少於 30 秒 - 30 - 60 秒 - 1 - 2 分鐘 - 2 - 3 分鐘 - 3 - 4 分鐘 - 4 - 5 分鐘 - 5 - 10 分鐘 - 10 - 30 分鐘 - 30 - 60 分鐘 - 超過 60 分鐘 - 1 首歌曲 - 2 - 4 首歌曲 - 5 - 9 首歌曲 - 10 首以上歌曲 - 5 張以上專輯 - "其他" - 顯示所有演出者 - 顯示所有專輯 - 顯示所有歌曲 - 顯示所有播放清單 - 搜尋音樂 - 所有「%s」演出者 - 所有「%s」專輯 - 所有「%s」歌曲 - 所有「%s」播放清單 - %1$s %2$s + 最近播放 + 歌曲 + 播放清單 + 內容類型 + 正在播放 + 播放佇列 + 熱門歌曲 + 所有歌曲 + 設定 + 搜尋 + 隨機播放 + 隨機播放所有歌曲 + 隨機播放清單 + 隨機播放專輯 + 隨機播放演出者 + 隨機播放熱門歌曲 + 隨機播放最近播放過的歌曲 + 隨機播放最近新增的歌曲 + 播放所有歌曲 + 排序依據 + 清除清單 + 清除最近播放 + 清除佇列 + 等化器 + 新增至播放清單 + 新增至佇列 + 從最近播放中移除 + 從佇列中移除 + A-Z + Z-A + 演出者 + 專輯 + 年份 + 持續時間 + 已加入日期 + 曲目清單 + 歌曲數量 + 檔案名稱 + 最後新增 + 最近播放 + 我的熱門曲目 + 新的播放清單 + 取消 + 覆寫 + 清除 + 播放清單 %d + 播放清單名稱 + 刪除 %s + 清除熱門曲目? + 清除最近播放? + 清除最後新增? + 此操作無法復原 + 這將永久刪除快取圖像項 + 從圖片庫中選擇相片 + Google 搜尋 + 使用預設相片 + 使用舊圖片 + 播放 + 播放下一首 + 播放專輯 + 更多此演出者的作品 + 重新命名 + 刪除 + 獲取專輯畫面 + 獲取演出者圖像 + 從最近播放中移除 + 從播放清單中移除 + 變更圖像 + 播放 + 暫停 + 下一首 + 上一首 + 隨機播放 + 全部隨機播放 + 重複播放 + 全部重複播放 + 單曲重複播放 + 打開佇列 + 瀏覽音樂 + 已重新命名播放清單 + 介面 + 儲存空間 + 數據 + 刪除快取 + 移除所有快取圖像 + 僅透過 Wi-Fi 下載 + 下載缺少的專輯封面 + 下載缺少的演出者圖像 + 一般 + 顯示音樂視覺化效果 + 顯示歌詞 + 針對有 srt 檔的歌曲 + 搖動即可播放 + 搖動您的裝置即可播放下一首歌曲 + 鎖屏專輯圖片 + 將鎖屏背景替換成專輯圖片 + 音樂:4 \u00d7 1 + 音樂:4 \u00d7 2 + 音樂:4 \u00d7 2(交替) + 音樂:最近聽過 + 無法打開等化器。 + 使用 USB 連接線將音樂從電腦複製至裝置。 + 未找到搜尋結果 + 請檢查拼寫是否正確,或嘗試其他關鍵字。 + 您標記為最愛的歌曲將在這裏顯示。 + 無最近播放的歌曲 + 您最近聽過的歌曲將在這裏顯示。 + 播放清單中沒有歌曲 + 要向此播放清單中新增歌曲,請按下選單上的歌曲、專輯或演出者,並選擇「新增至播放清單」。 + 沒有熱門曲目 + 您聽過次數最多的歌曲將新增至此清單。 + 無最近新增的歌曲 + 您最近一個月新增的歌曲將會在這裏顯示。 + 未找到音樂 + 使用 USB 連接線將音樂從電腦複製至裝置。 + 播放佇列中沒有歌曲 + 要向您的播放佇列新增歌曲,請按下選單中的歌曲、專輯或演出者,並在選擇「新增至佇列」。 + 無法播放曲目 %1$s + 不明年份 + 少於 30 秒 + 30 - 60 秒 + 1 - 2 分鐘 + 2 - 3 分鐘 + 3 - 4 分鐘 + 4 - 5 分鐘 + 5 - 10 分鐘 + 10 - 30 分鐘 + 30 - 60 分鐘 + 超過 60 分鐘 + 1 首歌曲 + 2 - 4 首歌曲 + 5 - 9 首歌曲 + 10 首以上歌曲 + 5 張以上專輯 + "其他" + 顯示所有演出者 + 顯示所有專輯 + 顯示所有歌曲 + 顯示所有播放清單 + 搜尋音樂 + 所有「%s」演出者 + 所有「%s」專輯 + 所有「%s」歌曲 + 所有「%s」播放清單 + %1$s %2$s diff --git a/app/src/main/res/values-zh-rTW/plurals.xml b/app/src/main/res/values-zh-rTW/plurals.xml index 123d6e9..2047e40 100644 --- a/app/src/main/res/values-zh-rTW/plurals.xml +++ b/app/src/main/res/values-zh-rTW/plurals.xml @@ -17,48 +17,37 @@ limitations under the License. --> - - - %d 位演出者 - - - - %d 張專輯 - - - - %d 首樂曲 - - - - %d 種類型 - - - - %d 小時 - - - - %d 分鐘 - - - - 已新增 %d 首樂曲至播放清單。 - - - - 已從播放清單中移除 %d 首樂曲。 - - - - 已新增 %d 首樂曲至佇列。 - - - - 已新增 %d 首樂曲至最愛。 - - - - 已刪除 %d 首樂曲。 - + + %d 位演出者 + + + %d 張專輯 + + + %d 首樂曲 + + + %d 種類型 + + + %d 小時 + + + %d 分鐘 + + + 已新增 %d 首樂曲至播放清單。 + + + 已從播放清單中移除 %d 首樂曲。 + + + 已新增 %d 首樂曲至佇列。 + + + 已新增 %d 首樂曲至最愛。 + + + 已刪除 %d 首樂曲。 + diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ae4db2b..3392817 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -17,174 +17,160 @@ limitations under the License. --> - 音樂 - - 最近播放 - 演出者 - 專輯 - 樂曲 - 播放清單 - 類型 - 現正播放 - 播放佇列 - - 專輯 - 熱門樂曲 - 所有樂曲 - - 設定 - 搜尋 - 隨機播放 - 隨機播放所有樂曲 - 隨機播放清單 - 隨機播放專輯 - 隨機播放演出者 - 隨機播放熱門樂曲 - 隨機最近播放樂曲 - 隨機播放最近新增樂曲 - 全部播放 - 排序方式 - 清除清單 - 清除最近 - 清除佇列 - 將佇列儲存至播放清單 - 等化器 - - 新增至播放清單 - 新增至佇列 - 從最近播放清單移除 - 從佇列移除 - - 遞增排序 - 遞減排序 - 演出者 - 專輯 - 年份 - 長度 - 新增日期 - 曲目清單 - 樂曲數量 - 專輯數量 - 檔案名稱 - - 最近新增 - 最近播放 - 我的熱門曲目 - - 新增播放清單 - 儲存 - 取消 - 覆蓋 - 清除 - 播放清單%d - 播放清單名稱 - 刪除 「%s」? - 清除熱門曲目? - 清除最近播放? - 清除最近新增? - 這將無法復原 - 這將永久刪除已快取的影像 - 從相簿選擇相片 - Google 搜尋 - 使用預設相片 - 使用舊的相片 - - 播放 - 播放下一首 - 播放專輯 - 更多此演出者的作品 - 重新命名 - 刪除 - 取得專輯封面 - 取得演出者圖片 - 從最近移除 - 設定為鈴聲 - 從播放清單移除 - 變更圖片 - - 播放 - 暫停 - 下一首 - 上一首 - 隨機播放 - 全部隨機播放 - 循環 - 全部循環 - 單曲循環 - 開啟佇列 - 瀏覽音樂 - - 將「%s」設為鈴聲 - 已重新命名播放清單 - - 介面 - 儲存 - 資料 - 清除快取 - 移除所有已快取的影像 - 僅透過 Wi-Fi 下載 - 如要節省傳輸費用,請不要透過行動網路下載 - 下載缺少的專輯封面 - 下載缺少的演出者圖片 - 一般 - 顯示音樂視覺效果 - 顯示歌詞 - 有 srt 檔的樂曲 - 搖動播放 - 搖動您的裝置即可播放下一首樂曲 - 鎖定畫面時的專輯封面 - 鎖定畫面背景替換為專輯封面 - - 音樂:4 \u00d7 1 - 音樂:4 \u00d7 2 - 音樂:4 \u00d7 2 (備用) - 音樂:最近聽過的 - - 無法開啟等化器。 - 請透過 USB 傳輸線從電腦複製音樂到您的裝置。 - 未發現搜尋結果 - 請檢查拼寫是否正確,或嘗試其他關鍵字。 - 您標示為最愛的樂曲將會顯示在這裡。 - 沒有最近播放的樂曲 - 最近聽過的樂曲將會顯示在這裡。 - 播放清單中沒有樂曲 - 要新增樂曲至此播放清單,請於樂曲、專輯或演出者輕觸功能選單,並選擇 [新增至播放清單] 。 - 沒有熱門曲目 - 您最常聽的樂曲將新增至此清單。 - 沒有最近新增的樂曲 - 您最近一個月新增的樂曲將會顯示在這裡。 - 找不到音樂 - 請透過 USB 傳輸線從您的電腦複製音樂至您的裝置。 - 播放佇列中沒有樂曲 - 要新增樂曲至播放佇列,請輕觸樂曲、專輯或演出者,並在功能選單中選擇 [新增至佇列] 。 - 無法播放曲目 %1$s - - 未知年份 - 少於 30 秒 - 30 - 60 秒 - 1 - 2 分鐘 - 2 - 3 分鐘 - 3 - 4 分鐘 - 4 - 5 分鐘 - 5 - 10 分鐘 - 10 - 30 分鐘 - 30 - 60 分鐘 - 超過 60 分鐘 - 1 首樂曲 - 2 - 4 首樂曲 - 5 - 9 首樂曲 - 超過 10 首樂曲 - 超過 5 張專輯 - "其他" - 顯示所有演出者 - 顯示所有專輯 - 顯示所有樂曲 - 顯示所有播放清單 - 搜尋音樂 - 所有含「%s」的演出者 - 所有含「%s」 的專輯 - 所有含 「%s」的樂曲 - 所有含「%s」的播放清單 - %1$s %2$s - 音樂播放 + 音樂 + 最近播放 + 演出者 + 專輯 + 樂曲 + 播放清單 + 類型 + 現正播放 + 播放佇列 + 專輯 + 熱門樂曲 + 所有樂曲 + 設定 + 搜尋 + 隨機播放 + 隨機播放所有樂曲 + 隨機播放清單 + 隨機播放專輯 + 隨機播放演出者 + 隨機播放熱門樂曲 + 隨機最近播放樂曲 + 隨機播放最近新增樂曲 + 全部播放 + 排序方式 + 清除清單 + 清除最近 + 清除佇列 + 將佇列儲存至播放清單 + 等化器 + 新增至播放清單 + 新增至佇列 + 從最近播放清單移除 + 從佇列移除 + 遞增排序 + 遞減排序 + 演出者 + 專輯 + 年份 + 長度 + 新增日期 + 曲目清單 + 樂曲數量 + 專輯數量 + 檔案名稱 + 最近新增 + 最近播放 + 我的熱門曲目 + 新增播放清單 + 儲存 + 取消 + 覆蓋 + 清除 + 播放清單%d + 播放清單名稱 + 刪除 「%s」? + 清除熱門曲目? + 清除最近播放? + 清除最近新增? + 這將無法復原 + 這將永久刪除已快取的影像 + 從相簿選擇相片 + Google 搜尋 + 使用預設相片 + 使用舊的相片 + 播放 + 播放下一首 + 播放專輯 + 更多此演出者的作品 + 重新命名 + 刪除 + 取得專輯封面 + 取得演出者圖片 + 從最近移除 + 設定為鈴聲 + 從播放清單移除 + 變更圖片 + 播放 + 暫停 + 下一首 + 上一首 + 隨機播放 + 全部隨機播放 + 循環 + 全部循環 + 單曲循環 + 開啟佇列 + 瀏覽音樂 + 將「%s」設為鈴聲 + 已重新命名播放清單 + 介面 + 儲存 + 資料 + 清除快取 + 移除所有已快取的影像 + 僅透過 Wi-Fi 下載 + 如要節省傳輸費用,請不要透過行動網路下載 + 下載缺少的專輯封面 + 下載缺少的演出者圖片 + 一般 + 顯示音樂視覺效果 + 顯示歌詞 + 有 srt 檔的樂曲 + 搖動播放 + 搖動您的裝置即可播放下一首樂曲 + 鎖定畫面時的專輯封面 + 鎖定畫面背景替換為專輯封面 + 音樂:4 \u00d7 1 + 音樂:4 \u00d7 2 + 音樂:4 \u00d7 2 (備用) + 音樂:最近聽過的 + 無法開啟等化器。 + 請透過 USB 傳輸線從電腦複製音樂到您的裝置。 + 未發現搜尋結果 + 請檢查拼寫是否正確,或嘗試其他關鍵字。 + 您標示為最愛的樂曲將會顯示在這裡。 + 沒有最近播放的樂曲 + 最近聽過的樂曲將會顯示在這裡。 + 播放清單中沒有樂曲 + 要新增樂曲至此播放清單,請於樂曲、專輯或演出者輕觸功能選單,並選擇 [新增至播放清單] 。 + 沒有熱門曲目 + 您最常聽的樂曲將新增至此清單。 + 沒有最近新增的樂曲 + 您最近一個月新增的樂曲將會顯示在這裡。 + 找不到音樂 + 請透過 USB 傳輸線從您的電腦複製音樂至您的裝置。 + 播放佇列中沒有樂曲 + 要新增樂曲至播放佇列,請輕觸樂曲、專輯或演出者,並在功能選單中選擇 [新增至佇列] 。 + 無法播放曲目 %1$s + 未知年份 + 少於 30 秒 + 30 - 60 秒 + 1 - 2 分鐘 + 2 - 3 分鐘 + 3 - 4 分鐘 + 4 - 5 分鐘 + 5 - 10 分鐘 + 10 - 30 分鐘 + 30 - 60 分鐘 + 超過 60 分鐘 + 1 首樂曲 + 2 - 4 首樂曲 + 5 - 9 首樂曲 + 超過 10 首樂曲 + 超過 5 張專輯 + "其他" + 顯示所有演出者 + 顯示所有專輯 + 顯示所有樂曲 + 顯示所有播放清單 + 搜尋音樂 + 所有含「%s」的演出者 + 所有含「%s」 的專輯 + 所有含 「%s」的樂曲 + 所有含「%s」的播放清單 + %1$s %2$s + 音樂播放 diff --git a/build.gradle b/build.gradle index e006ab4..e38ca33 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.3.2' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0000775..2c961f8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Oct 21 20:30:35 CEST 2018 +#Sat Mar 23 08:26:33 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip