mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Merge branch 'dev' into 9458_faulty_playlist_thumbnail_update
This commit is contained in:
		| @@ -1,3 +1,7 @@ | ||||
| import com.android.tools.profgen.ArtProfileKt | ||||
| import com.android.tools.profgen.ArtProfileSerializer | ||||
| import com.android.tools.profgen.DexFile | ||||
|  | ||||
| plugins { | ||||
|     id "com.android.application" | ||||
|     id "kotlin-android" | ||||
| @@ -308,3 +312,24 @@ static String getGitWorkingBranch() { | ||||
|         return "" | ||||
|     } | ||||
| } | ||||
|  | ||||
| project.afterEvaluate { | ||||
|     tasks.compileReleaseArtProfile.doLast { | ||||
|         outputs.files.each { file -> | ||||
|             if (file.toString().endsWith(".profm")) { | ||||
|                 println("Sorting ${file} ...") | ||||
|                 def version = ArtProfileSerializer.valueOf("METADATA_0_0_2") | ||||
|                 def profile = ArtProfileKt.ArtProfile(file) | ||||
|                 def keys = new ArrayList(profile.profileData.keySet()) | ||||
|                 def sortedData = new LinkedHashMap() | ||||
|                 Collections.sort keys, new DexFile.Companion() | ||||
|                 keys.each { key -> sortedData[key] = profile.profileData[key] } | ||||
|                 new FileOutputStream(file).with { | ||||
|                     write(version.magicBytes$profgen) | ||||
|                     write(version.versionBytes$profgen) | ||||
|                     version.write$profgen(it, sortedData, "") | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,24 @@ | ||||
| package org.schabi.newpipe.database.playlist; | ||||
|  | ||||
| import androidx.room.ColumnInfo; | ||||
|  | ||||
| /** | ||||
|  * This class adds a field to {@link PlaylistMetadataEntry} that contains an integer representing | ||||
|  * how many times a specific stream is already contained inside a local playlist. Used to be able | ||||
|  * to grey out playlists which already contain the current stream in the playlist append dialog. | ||||
|  * @see org.schabi.newpipe.local.playlist.LocalPlaylistManager#getPlaylistDuplicates(String) | ||||
|  */ | ||||
| public class PlaylistDuplicatesEntry extends PlaylistMetadataEntry { | ||||
|     public static final String PLAYLIST_TIMES_STREAM_IS_CONTAINED = "timesStreamIsContained"; | ||||
|     @ColumnInfo(name = PLAYLIST_TIMES_STREAM_IS_CONTAINED) | ||||
|     public final long timesStreamIsContained; | ||||
|  | ||||
|     public PlaylistDuplicatesEntry(final long uid, | ||||
|                                    final String name, | ||||
|                                    final String thumbnailUrl, | ||||
|                                    final long streamCount, | ||||
|                                    final long timesStreamIsContained) { | ||||
|         super(uid, name, thumbnailUrl, streamCount); | ||||
|         this.timesStreamIsContained = timesStreamIsContained; | ||||
|     } | ||||
| } | ||||
| @@ -6,6 +6,7 @@ import androidx.room.RewriteQueriesToDropUnusedColumns; | ||||
| import androidx.room.Transaction; | ||||
|  | ||||
| import org.schabi.newpipe.database.BasicDAO; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistDuplicatesEntry; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistStreamEntry; | ||||
| import org.schabi.newpipe.database.playlist.model.PlaylistStreamEntity; | ||||
| @@ -14,6 +15,7 @@ import java.util.List; | ||||
|  | ||||
| import io.reactivex.rxjava3.core.Flowable; | ||||
|  | ||||
| import static org.schabi.newpipe.database.playlist.PlaylistDuplicatesEntry.PLAYLIST_TIMES_STREAM_IS_CONTAINED; | ||||
| import static org.schabi.newpipe.database.playlist.PlaylistMetadataEntry.PLAYLIST_STREAM_COUNT; | ||||
| import static org.schabi.newpipe.database.playlist.model.PlaylistEntity.DEFAULT_THUMBNAIL; | ||||
| import static org.schabi.newpipe.database.playlist.model.PlaylistEntity.PLAYLIST_ID; | ||||
| @@ -28,6 +30,7 @@ import static org.schabi.newpipe.database.playlist.model.PlaylistStreamEntity.PL | ||||
| import static org.schabi.newpipe.database.stream.model.StreamEntity.STREAM_ID; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamEntity.STREAM_TABLE; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamEntity.STREAM_THUMBNAIL_URL; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamEntity.STREAM_URL; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamStateEntity.JOIN_STREAM_ID_ALIAS; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamStateEntity.STREAM_PROGRESS_MILLIS; | ||||
| import static org.schabi.newpipe.database.stream.model.StreamStateEntity.STREAM_STATE_TABLE; | ||||
| @@ -103,4 +106,24 @@ public interface PlaylistStreamDAO extends BasicDAO<PlaylistStreamEntity> { | ||||
|             + " GROUP BY " + PLAYLIST_ID | ||||
|             + " ORDER BY " + PLAYLIST_NAME + " COLLATE NOCASE ASC") | ||||
|     Flowable<List<PlaylistMetadataEntry>> getPlaylistMetadata(); | ||||
|  | ||||
|     @Transaction | ||||
|     @Query("SELECT " + PLAYLIST_TABLE + "." + PLAYLIST_ID + ", " | ||||
|             + PLAYLIST_NAME + ", " | ||||
|             + PLAYLIST_TABLE + "." + PLAYLIST_THUMBNAIL_URL + ", " | ||||
|             + "COALESCE(COUNT(" + JOIN_PLAYLIST_ID + "), 0) AS " + PLAYLIST_STREAM_COUNT + ", " | ||||
|             + "COALESCE(SUM(" + STREAM_URL + " = :streamUrl), 0) AS " | ||||
|                 + PLAYLIST_TIMES_STREAM_IS_CONTAINED | ||||
|  | ||||
|             + " FROM " + PLAYLIST_TABLE | ||||
|             + " LEFT JOIN " + PLAYLIST_STREAM_JOIN_TABLE | ||||
|             + " ON " + PLAYLIST_TABLE + "." + PLAYLIST_ID + " = " + JOIN_PLAYLIST_ID | ||||
|  | ||||
|             + " LEFT JOIN " + STREAM_TABLE | ||||
|             + " ON " + STREAM_TABLE + "." + STREAM_ID + " = " + JOIN_STREAM_ID | ||||
|             + " AND :streamUrl = :streamUrl" | ||||
|  | ||||
|             + " GROUP BY " + JOIN_PLAYLIST_ID | ||||
|             + " ORDER BY " + PLAYLIST_NAME + " COLLATE NOCASE ASC") | ||||
|     Flowable<List<PlaylistDuplicatesEntry>> getPlaylistDuplicatesMetadata(String streamUrl); | ||||
| } | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import android.os.Bundle; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.widget.TextView; | ||||
| import android.widget.Toast; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| @@ -13,8 +14,8 @@ import androidx.recyclerview.widget.RecyclerView; | ||||
|  | ||||
| import org.schabi.newpipe.NewPipeDatabase; | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; | ||||
| import org.schabi.newpipe.database.playlist.model.PlaylistEntity; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistDuplicatesEntry; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.local.LocalItemListAdapter; | ||||
| import org.schabi.newpipe.local.playlist.LocalPlaylistManager; | ||||
| @@ -29,6 +30,7 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|  | ||||
|     private RecyclerView playlistRecyclerView; | ||||
|     private LocalItemListAdapter playlistAdapter; | ||||
|     private TextView playlistDuplicateIndicator; | ||||
|  | ||||
|     private final CompositeDisposable playlistDisposables = new CompositeDisposable(); | ||||
|  | ||||
| @@ -64,8 +66,9 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|         playlistAdapter = new LocalItemListAdapter(getActivity()); | ||||
|         playlistAdapter.setSelectedListener(selectedItem -> { | ||||
|             final List<StreamEntity> entities = getStreamEntities(); | ||||
|             if (selectedItem instanceof PlaylistMetadataEntry && entities != null) { | ||||
|                 onPlaylistSelected(playlistManager, (PlaylistMetadataEntry) selectedItem, entities); | ||||
|             if (selectedItem instanceof PlaylistDuplicatesEntry && entities != null) { | ||||
|                 onPlaylistSelected(playlistManager, | ||||
|                         (PlaylistDuplicatesEntry) selectedItem, entities); | ||||
|             } | ||||
|         }); | ||||
|  | ||||
| @@ -73,10 +76,13 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|         playlistRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); | ||||
|         playlistRecyclerView.setAdapter(playlistAdapter); | ||||
|  | ||||
|         playlistDuplicateIndicator = view.findViewById(R.id.playlist_duplicate); | ||||
|  | ||||
|         final View newPlaylistButton = view.findViewById(R.id.newPlaylist); | ||||
|         newPlaylistButton.setOnClickListener(ignored -> openCreatePlaylistDialog()); | ||||
|  | ||||
|         playlistDisposables.add(playlistManager.getPlaylists() | ||||
|         playlistDisposables.add(playlistManager | ||||
|                 .getPlaylistDuplicates(getStreamEntities().get(0).getUrl()) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe(this::onPlaylistsReceived)); | ||||
|     } | ||||
| @@ -118,19 +124,36 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|         requireDialog().dismiss(); | ||||
|     } | ||||
|  | ||||
|     private void onPlaylistsReceived(@NonNull final List<PlaylistMetadataEntry> playlists) { | ||||
|         if (playlistAdapter != null && playlistRecyclerView != null) { | ||||
|     private void onPlaylistsReceived(@NonNull final List<PlaylistDuplicatesEntry> playlists) { | ||||
|         if (playlistAdapter != null | ||||
|                 && playlistRecyclerView != null | ||||
|                 && playlistDuplicateIndicator != null) { | ||||
|             playlistAdapter.clearStreamItemList(); | ||||
|             playlistAdapter.addItems(playlists); | ||||
|             playlistRecyclerView.setVisibility(View.VISIBLE); | ||||
|             playlistDuplicateIndicator.setVisibility( | ||||
|                     anyPlaylistContainsDuplicates(playlists) ? View.VISIBLE : View.GONE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private boolean anyPlaylistContainsDuplicates(final List<PlaylistDuplicatesEntry> playlists) { | ||||
|         return playlists.stream() | ||||
|                 .anyMatch(playlist -> playlist.timesStreamIsContained > 0); | ||||
|     } | ||||
|  | ||||
|     private void onPlaylistSelected(@NonNull final LocalPlaylistManager manager, | ||||
|                                     @NonNull final PlaylistMetadataEntry playlist, | ||||
|                                     @NonNull final PlaylistDuplicatesEntry playlist, | ||||
|                                     @NonNull final List<StreamEntity> streams) { | ||||
|         final Toast successToast = Toast.makeText(getContext(), | ||||
|                 R.string.playlist_add_stream_success, Toast.LENGTH_SHORT); | ||||
|  | ||||
|         final String toastText; | ||||
|         if (playlist.timesStreamIsContained > 0) { | ||||
|             toastText = getString(R.string.playlist_add_stream_success_duplicate, | ||||
|                     playlist.timesStreamIsContained); | ||||
|         } else { | ||||
|             toastText = getString(R.string.playlist_add_stream_success); | ||||
|         } | ||||
|  | ||||
|         final Toast successToast = Toast.makeText(getContext(), toastText, Toast.LENGTH_SHORT); | ||||
|  | ||||
|         playlistDisposables.add(manager.appendToPlaylist(playlist.uid, streams) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
|  | ||||
| import org.schabi.newpipe.database.LocalItem; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistDuplicatesEntry; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; | ||||
| import org.schabi.newpipe.local.LocalItemBuilder; | ||||
| import org.schabi.newpipe.local.history.HistoryRecordManager; | ||||
| @@ -13,6 +14,9 @@ import org.schabi.newpipe.util.Localization; | ||||
| import java.time.format.DateTimeFormatter; | ||||
|  | ||||
| public class LocalPlaylistItemHolder extends PlaylistItemHolder { | ||||
|  | ||||
|     private static final float GRAYED_OUT_ALPHA = 0.6f; | ||||
|  | ||||
|     public LocalPlaylistItemHolder(final LocalItemBuilder infoItemBuilder, final ViewGroup parent) { | ||||
|         super(infoItemBuilder, parent); | ||||
|     } | ||||
| @@ -38,6 +42,13 @@ public class LocalPlaylistItemHolder extends PlaylistItemHolder { | ||||
|  | ||||
|         PicassoHelper.loadPlaylistThumbnail(item.thumbnailUrl).into(itemThumbnailView); | ||||
|  | ||||
|         if (item instanceof PlaylistDuplicatesEntry | ||||
|                 && ((PlaylistDuplicatesEntry) item).timesStreamIsContained > 0) { | ||||
|             itemView.setAlpha(GRAYED_OUT_ALPHA); | ||||
|         } else { | ||||
|             itemView.setAlpha(1.0f); | ||||
|         } | ||||
|  | ||||
|         super.updateFromItem(localItem, historyRecordManager, dateTimeFormatter); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package org.schabi.newpipe.local.playlist; | ||||
| import androidx.annotation.Nullable; | ||||
|  | ||||
| import org.schabi.newpipe.database.AppDatabase; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistDuplicatesEntry; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistStreamEntry; | ||||
| import org.schabi.newpipe.database.playlist.dao.PlaylistDAO; | ||||
| @@ -92,6 +93,18 @@ public class LocalPlaylistManager { | ||||
|         return playlistStreamTable.getPlaylistMetadata().subscribeOn(Schedulers.io()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get playlists with attached information about how many times the provided stream is already | ||||
|      * contained in each playlist. | ||||
|      * | ||||
|      * @param streamUrl the stream url for which to check for duplicates | ||||
|      * @return a list of {@link PlaylistDuplicatesEntry} | ||||
|      */ | ||||
|     public Flowable<List<PlaylistDuplicatesEntry>> getPlaylistDuplicates(final String streamUrl) { | ||||
|         return playlistStreamTable.getPlaylistDuplicatesMetadata(streamUrl) | ||||
|                 .subscribeOn(Schedulers.io()); | ||||
|     } | ||||
|  | ||||
|     public Flowable<List<PlaylistStreamEntry>> getPlaylistStreams(final long playlistId) { | ||||
|         return playlistStreamTable.getOrderedStreamsOf(playlistId).subscribeOn(Schedulers.io()); | ||||
|     } | ||||
|   | ||||
| @@ -34,11 +34,26 @@ | ||||
|             tools:ignore="RtlHardcoded" /> | ||||
|     </RelativeLayout> | ||||
|  | ||||
|     <org.schabi.newpipe.views.NewPipeTextView | ||||
|         android:id="@+id/playlist_duplicate" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_below="@+id/newPlaylist" | ||||
|         android:layout_marginHorizontal="@dimen/video_item_search_padding" | ||||
|         android:layout_marginBottom="@dimen/video_item_search_padding" | ||||
|         android:gravity="center" | ||||
|         android:text="@string/duplicate_in_playlist" | ||||
|         android:textAppearance="?android:attr/textAppearanceMedium" | ||||
|         android:textSize="13sp" | ||||
|         android:visibility="gone" | ||||
|         tools:text="@tools:sample/lorem[20]" | ||||
|         tools:visibility="visible" /> | ||||
|  | ||||
|     <View | ||||
|         android:id="@+id/separator" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="1dp" | ||||
|         android:layout_below="@+id/newPlaylist" | ||||
|         android:layout_below="@+id/playlist_duplicate" | ||||
|         android:layout_marginLeft="@dimen/video_item_search_padding" | ||||
|         android:layout_marginRight="@dimen/video_item_search_padding" | ||||
|         android:background="?attr/separator_color" /> | ||||
|   | ||||
| @@ -780,4 +780,6 @@ | ||||
|     <string name="import_subscriptions_hint">استيراد الاشتراكات أو تصديرها من القائمة المكونة من 3 نقاط</string> | ||||
|     <string name="night_theme_available">هذا الخيار متاح فقط إذا تم تحديد %s للسمة</string> | ||||
|     <string name="unset_playlist_thumbnail">إلغاء تعيين الصورة المصغرة الدائمة</string> | ||||
|     <string name="msg_failed_to_copy">فشل النسخ إلى الحافظة</string> | ||||
|     <string name="card">البطاقة</string> | ||||
| </resources> | ||||
| @@ -25,4 +25,77 @@ | ||||
|     <string name="did_you_mean">আপুনি \"%1$s\" বুজাইছিল নেকি\?</string> | ||||
|     <string name="use_external_video_player_title">বাহ্যিক ভিডিঅ’ প্লেয়াৰ ব্যৱহাৰ কৰক</string> | ||||
|     <string name="use_external_audio_player_title">বাহ্যিক অডিঅ’ প্লেয়াৰ ব্যৱহাৰ কৰক</string> | ||||
|     <string name="channel_unsubscribed">Channel আনচাবস্ক্ৰাইব কৰা হ\'ল</string> | ||||
|     <string name="subscription_change_failed">subscription সলনি কৰিব পৰা নগ\'ল</string> | ||||
|     <string name="subscription_update_failed">subscription আপডেট কৰিব পৰা নগ\'ল</string> | ||||
|     <string name="show_info">তথ্য দেখুৱাওক</string> | ||||
|     <string name="tab_subscriptions">চাবস্ক্ৰিপচন</string> | ||||
|     <string name="tab_bookmarks">বুকমাৰ্ক কৰা প্লেলিষ্ট</string> | ||||
|     <string name="tab_choose">টেব নিৰ্বাচন কৰক</string> | ||||
|     <string name="controls_background_title">বেকগ্ৰাউণ্ড</string> | ||||
|     <string name="controls_popup_title">পপ-আপ</string> | ||||
|     <string name="default_resolution_title">স্থায়ী ৰিজ\'লিউচন</string> | ||||
|     <string name="default_popup_resolution_title">স্থায়ী পপআপ ৰিজোলিউচন</string> | ||||
|     <string name="show_higher_resolutions_title">উচ্চ ৰিজ\'লিউচন দেখুৱাওক</string> | ||||
|     <string name="show_higher_resolutions_summary">কেৱল কিছুমান ডিভাইচেহে 2K/4K ভিডিঅ’ বজাব পাৰে</string> | ||||
|     <string name="play_with_kodi_title">Kodi ৰ সৈতে বজাওক</string> | ||||
|     <string name="kore_not_found">Kore এপ ইনষ্টল\?</string> | ||||
|     <string name="show_play_with_kodi_title">\"Kodi ৰ সৈতে খোলক\" বিকল্প দেখুৱাওক</string> | ||||
|     <string name="show_play_with_kodi_summary">Kodi মিডিয়া চেণ্টাৰৰ জৰিয়তে এটা ভিডিঅ\' চলাবলৈ এটা বিকল্প প্ৰদৰ্শন কৰক</string> | ||||
|     <string name="crash_the_player">প্লেয়াৰটো ক্ৰেচ কৰক</string> | ||||
|     <string name="notification_action_buffering">বাফাৰিং</string> | ||||
|     <string name="notification_action_nothing">নথিং</string> | ||||
|     <string name="notification_colorize_title">জাননী ৰঙিণ কৰক</string> | ||||
|     <string name="play_audio">অডিঅ\'</string> | ||||
|     <string name="default_audio_format_title">অডিঅ\' ৰ প্ৰকাৰ</string> | ||||
|     <string name="default_video_format_title">ভিডিঅ\'ৰ প্ৰকাৰ</string> | ||||
|     <string name="theme_title">থিম</string> | ||||
|     <string name="night_theme_title">নিশাৰ থিম</string> | ||||
|     <string name="light_theme_title">পোহৰ</string> | ||||
|     <string name="dark_theme_title">অন্ধকাৰ</string> | ||||
|     <string name="black_theme_title">ক\'লা</string> | ||||
|     <string name="popup_remember_size_pos_title">পপ-আপ বৈশিষ্ট্যসমূহ মনত ৰাখিব</string> | ||||
|     <string name="popup_remember_size_pos_summary">পপ-আপৰ অন্তিম আকাৰ আৰু অৱস্থান মনত ৰাখিব</string> | ||||
|     <string name="use_inexact_seek_summary">Inexact seek য়ে প্লেয়াৰটোক দ্ৰুত গতিত স্থান সলনি কৰিবলৈ অনুমতি দিয়ে। ৫, ১৫ বা ২৫ ছেকেণ্ড সলনি কৰিবলৈ বিচাৰিলে ইয়াৰ প্ৰয়োজন নহয়</string> | ||||
|     <string name="seek_duration_title">ফাষ্ট-ফৰৱাৰ্ড/-ৰিৱাইণ্ড কৰিবলৈ বিচৰা সময়সীমা</string> | ||||
|     <string name="progressive_load_interval_title">প্লেবেক লোড কৰাৰ ব্যৱধানৰ আকাৰ</string> | ||||
|     <string name="progressive_load_interval_summary">লোড ব্যৱধানৰ আকাৰ সলনি কৰক (বৰ্তমানে %s) । এটা কম মানে প্ৰাৰম্ভিক ভিডিঅ\' লোডিং দ্ৰুত কৰিব পাৰে। পৰিৱৰ্তনৰ বাবে এটা খেলুৱৈ পুনৰাৰম্ভৰ প্ৰয়োজন</string> | ||||
|     <string name="notification_colorize_summary">থাম্বনেইলত থকা মূল ৰং অনুসৰি এণ্ড্ৰইডক জাননীৰ ৰং কাষ্টমাইজ কৰিবলৈ কওক (মন কৰিব যে এইটো সকলো ডিভাইচতে উপলব্ধ নহয়)</string> | ||||
|     <string name="clear_queue_confirmation_description">সক্ৰিয় প্লেয়াৰৰ queue সলনি কৰা হ’ব</string> | ||||
|     <string name="download_thumbnail_title">থাম্বনেইল লোড কৰক</string> | ||||
|     <string name="show_comments_title">মন্তব্য দেখুৱাওক</string> | ||||
|     <string name="show_description_title">বিৱৰণ দেখুৱাওক</string> | ||||
|     <string name="show_meta_info_title">মেটা তথ্য দেখুৱাওক</string> | ||||
|     <string name="thumbnail_cache_wipe_complete_notice">সংৰক্ষিত ছবি মচি পেলোৱা হ\'ল</string> | ||||
|     <string name="metadata_cache_wipe_title">সংৰক্ষিত কৰি থোৱা মেটাডাটা মচি পেলাওক</string> | ||||
|     <string name="metadata_cache_wipe_summary">সকলো সংৰক্ষণ কৰি ৰখা ৱেবপেজৰ তথ্য আঁতৰাওক</string> | ||||
|     <string name="metadata_cache_wipe_complete_notice">সংৰক্ষণ কৰি থোৱা মেটাডাটা মচি পেলোৱা হ\'ল</string> | ||||
|     <string name="auto_queue_title">পৰৱৰ্তী ষ্ট্ৰিম স্বয়ংক্ৰিয়ভাৱে enque কৰক</string> | ||||
|     <string name="sort">সজোৱা</string> | ||||
|     <string name="download_path_title">ভিডিঅ\' ডাউনলোড folder</string> | ||||
|     <string name="controls_add_to_playlist_title">যোগ কৰক</string> | ||||
|     <string name="download_path_audio_summary">ডাউনলোড কৰা অডিঅ\' ফাইলসমূহ ইয়াত সংৰক্ষণ কৰা হয়</string> | ||||
|     <string name="notification_scale_to_square_image_title">থাম্বনেইলক ১:১ অনুপাত লৈ ক্ৰপ কৰক</string> | ||||
|     <string name="download_path_summary">ডাউনলোড কৰা ভিডিঅ’ ফাইলসমূহ ইয়াত সংৰক্ষণ কৰা হয়</string> | ||||
|     <string name="download_path_dialog_title">ভিডিঅ\' ফাইলসমূহৰ বাবে ডাউনলোড folder বাছক</string> | ||||
|     <string name="download_path_audio_title">অডিঅ\' ডাউনলোড folder</string> | ||||
|     <string name="download_path_audio_dialog_title">অডিঅ\' ফাইলসমূহৰ বাবে ডাউনলোড folder নিৰ্বাচন কৰক</string> | ||||
|     <string name="notification_scale_to_square_image_summary">জাননীত দেখুওৱা ভিডিঅ’ থাম্বনেইলটো ১৬:৯ৰ পৰা ১:১ অনুপাতলৈ ক্ৰপ কৰক</string> | ||||
|     <string name="notification_action_0_title">First action button</string> | ||||
|     <string name="notification_action_4_title">Fifth action button</string> | ||||
|     <string name="notification_actions_summary">Edit each notification action below by tapping on it. Select up to three of them to be shown in the compact notification by using the checkboxes on the right</string> | ||||
|     <string name="notification_action_1_title">Second action button</string> | ||||
|     <string name="notification_actions_at_most_three">You can select at most three actions to show in the compact notification!</string> | ||||
|     <string name="notification_action_repeat">পুনৰাবৃত্তি</string> | ||||
|     <string name="notification_action_shuffle">শ্বাফেল</string> | ||||
|     <string name="use_inexact_seek_title">দ্ৰুত inexact seek ব্যৱহাৰ কৰক</string> | ||||
|     <string name="clear_queue_confirmation_title">এটা queue বিলুপ্তি কৰাৰ আগতে নিশ্চিতকৰণৰ বাবে সুধিব</string> | ||||
|     <string name="clear_queue_confirmation_summary">এটা প্লেয়াৰ পৰা আন এটালৈ সলনি কৰিলে আপোনাৰ queue সলনি হ\'ব পাৰে</string> | ||||
|     <string name="notification_action_3_title">Fourth action button</string> | ||||
|     <string name="notification_action_2_title">Third action button</string> | ||||
|     <string name="show_description_summary">ভিডিঅ\'ৰ বিৱৰণ আৰু অতিৰিক্ত তথ্য লুকুৱাবলৈ বন্ধ কৰক</string> | ||||
|     <string name="show_comments_summary">মন্তব্য লুকুৱাবলৈ বন্ধ কৰক</string> | ||||
|     <string name="show_next_and_similar_title">\'পৰৱৰ্তী\' আৰু \'সাদৃশ্য থকা\' ভিডিঅ\' দেখুৱাওক</string> | ||||
|     <string name="download_thumbnail_summary">থাম্বনেইলসমূহ লোড কৰা, তথ্য আৰু মেমৰি ব্যৱহাৰ সংৰক্ষণ কৰা ৰোধ কৰিবলে বন্ধ কৰক। পৰিবৰ্তনসমূহে ইন-মেমৰি আৰু অন-ডিস্ক কেশ্ব দুয়োটা পৰিষ্কাৰ কৰে</string> | ||||
|     <string name="show_meta_info_summary">ষ্ট্ৰিমৰ সৃষ্টিকৰ্তা, ষ্ট্ৰিমৰ বিষয়বস্তু বা এটা সন্ধান অনুৰোধৰ বিষয়ে অতিৰিক্ত তথ্যৰ সৈতে মেটা তথ্যৰ বাকচসমূহ লুকুৱাবলৈ বন্ধ কৰক</string> | ||||
| </resources> | ||||
| @@ -1,8 +1,8 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <resources> | ||||
|     <string name="main_bg_subtitle">Başlamaq üçün böyüdücüyə toxun.</string> | ||||
|     <string name="main_bg_subtitle">Başlamaq üçün böyüdücü güzgüyə toxun.</string> | ||||
|     <string name="upload_date_text">%1$s tarixində yayımlanıb</string> | ||||
|     <string name="no_player_found">Yayım oynadıcı tapılmadı. \"VLC\" yüklənilsin\?</string> | ||||
|     <string name="no_player_found">Yayım oynadıcı tapılmadı. \"VLC\" quraşdırılsın\?</string> | ||||
|     <string name="no_player_found_toast">Yayım oynadıcı tapılmadı (Oynatmaq üçün VLC\'ni quraşdıra bilərsiniz).</string> | ||||
|     <string name="install">Yüklə</string> | ||||
|     <string name="cancel">Ləğv et</string> | ||||
| @@ -45,7 +45,7 @@ | ||||
|     <string name="dark_theme_title">Qaranlıq</string> | ||||
|     <string name="black_theme_title">Qara</string> | ||||
|     <string name="unsubscribe">Abunəlikdən çıxın</string> | ||||
|     <string name="open_in_popup_mode">Ani pəncərə rejimində aç</string> | ||||
|     <string name="open_in_popup_mode">Ani görüntü rejimində aç</string> | ||||
|     <string name="autoplay_title">Avtomatik oynat</string> | ||||
|     <string name="download_dialog_title">Endir</string> | ||||
|     <string name="resume_on_audio_focus_gain_summary">Fasilələrdən sonra (məsələn, telefon zəngləri) oynatmağa davam etdir</string> | ||||
| @@ -613,7 +613,7 @@ | ||||
|     <string name="error_occurred_detail">Xəta baş verdi: %1$s</string> | ||||
|     <string name="invalid_file">Fayl mövcud deyil, yaxud oxumaq və ya yazmaq icazəsi yoxdur</string> | ||||
|     <string name="parsing_error">Veb saytı təhlil etmək alınmadı</string> | ||||
|     <string name="playback_pitch">Səs ucalığı</string> | ||||
|     <string name="playback_pitch">Ucalıq</string> | ||||
|     <string name="radio">Radio</string> | ||||
|     <string name="show_crash_the_player_title">\"Oynadıcını çökdür\" Göstər</string> | ||||
|     <string name="show_crash_the_player_summary">Oynadıcıdan istifadə edərkən çökdürmə seçimini göstər</string> | ||||
| @@ -728,4 +728,6 @@ | ||||
|     <string name="app_update_available_notification_text">%s endirmək üçün toxun</string> | ||||
|     <string name="night_theme_available">Bu seçim yalnız tema üçün %s seçildikdə əlçatandır</string> | ||||
|     <string name="unset_playlist_thumbnail">Daimi miniatürü ləğv et</string> | ||||
|     <string name="card">Kart</string> | ||||
|     <string name="msg_failed_to_copy">Buferə kopyalamaq alınmadı</string> | ||||
| </resources> | ||||
| @@ -741,4 +741,6 @@ | ||||
|     <string name="import_subscriptions_hint">Import nebo export odběrů z 3-tečkové nabídky</string> | ||||
|     <string name="night_theme_available">Tato možnost je dostupná pouze při vybraném motivu %s</string> | ||||
|     <string name="unset_playlist_thumbnail">Zrušení nastavení trvalého náhledu</string> | ||||
|     <string name="card">Karta</string> | ||||
|     <string name="msg_failed_to_copy">Kopírování do schránky se nezdařilo</string> | ||||
| </resources> | ||||
| @@ -728,4 +728,6 @@ | ||||
|     <string name="import_subscriptions_hint">Importieren oder Exportieren von Abonnements über das 3-Punkte-Menü</string> | ||||
|     <string name="night_theme_available">Diese Option ist nur verfügbar, wenn %s als Design ausgewählt wird</string> | ||||
|     <string name="unset_playlist_thumbnail">Dauerhaftes Vorschaubild aufheben</string> | ||||
|     <string name="msg_failed_to_copy">Kopieren in die Zwischenablage fehlgeschlagen</string> | ||||
|     <string name="card">Karte</string> | ||||
| </resources> | ||||
| @@ -728,4 +728,6 @@ | ||||
|     <string name="app_update_unavailable_toast">Έχετε την πιο πρόσφατη έκδοση του NewPipe</string> | ||||
|     <string name="night_theme_available">Αυτή η επιλογή είναι διαθέσιμη μόνο εάν έχει επιλεγεί %s για Θέμα</string> | ||||
|     <string name="unset_playlist_thumbnail">Κατάργηση μόνιμης μικρογραφίας</string> | ||||
|     <string name="msg_failed_to_copy">Αποτυχία αντιγραφής στο πρόχειρο</string> | ||||
|     <string name="card">Κάρτα</string> | ||||
| </resources> | ||||
| @@ -744,4 +744,6 @@ | ||||
|     <string name="app_update_available_notification_text">Pulsa para descargar %s</string> | ||||
|     <string name="night_theme_available">Esta opción sólo está disponible si %s está seleccionado para el tema</string> | ||||
|     <string name="unset_playlist_thumbnail">Desactivar las miniaturas permanente</string> | ||||
|     <string name="msg_failed_to_copy">Error al copiar al portapapeles</string> | ||||
|     <string name="card">Tarjeta</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="import_subscriptions_hint">Tellimusi saad importida või eksportida 3 punktiga menüüst</string> | ||||
|     <string name="app_update_unavailable_toast">Sa kasutad NewPipe\'i uusimat versiooni</string> | ||||
|     <string name="night_theme_available">See valik on kasutusel vaid %s teema puhul</string> | ||||
|     <string name="msg_failed_to_copy">Lõikelauale kopeerimine ei õnnestunud</string> | ||||
|     <string name="unset_playlist_thumbnail">Eemalda püsiv pisipilt</string> | ||||
|     <string name="card">Kaart</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_available_notification_text">ضربه برای بارگیری %s</string> | ||||
|     <string name="app_update_unavailable_toast">از جدیدترین نگارش نیوپایپ استفاده میکنید</string> | ||||
|     <string name="night_theme_available">این گزینه تنها هنگامی موجود است که %s به عنوان زمینه گزیده باشد</string> | ||||
|     <string name="card">کارت</string> | ||||
|     <string name="msg_failed_to_copy">شکست در رونوشت به تختهگیره</string> | ||||
|     <string name="unset_playlist_thumbnail">ناتنظیم بندانگشتی ثابت</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_available_notification_text">Toca para descargar %s</string> | ||||
|     <string name="import_subscriptions_hint">Importa ou exporta subscricións dende o menú dos 3 puntos</string> | ||||
|     <string name="night_theme_available">Esta opción só está dispoñible se %s está seleccionado para o tema</string> | ||||
|     <string name="msg_failed_to_copy">Produciuse un erro ao copiar no portapapeis</string> | ||||
|     <string name="unset_playlist_thumbnail">Desactivala miniatura permanente</string> | ||||
|     <string name="card">Tarxeta</string> | ||||
| </resources> | ||||
| @@ -754,4 +754,6 @@ | ||||
|     <string name="app_update_unavailable_toast">זאת הגרסה העדכנית ביותר של NewPipe</string> | ||||
|     <string name="night_theme_available">אפשרות זאת זמינה רק אם נבחרה ערכת נושא %s</string> | ||||
|     <string name="unset_playlist_thumbnail">ביטול הגדרת תמונה ייצוגית קבועה</string> | ||||
|     <string name="card">כרטיס</string> | ||||
|     <string name="msg_failed_to_copy">ההעתקה ללוח הגזירים נכשלה</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_unavailable_toast">आप न्यूपाइप का नवीनतम संस्करण चला रहे हैं</string> | ||||
|     <string name="app_update_available_notification_text">%s डाउनलोड करने के लिए टैप करें</string> | ||||
|     <string name="night_theme_available">यह विकल्प केवल तभी उपलब्ध होता है जब थीम के लिए %s का चयन किया जाता है</string> | ||||
|     <string name="unset_playlist_thumbnail">स्थायी थंमनेल अनसेट करें</string> | ||||
|     <string name="card">कार्ड</string> | ||||
|     <string name="msg_failed_to_copy">क्लिपबोर्ड पर कॉपी करने में विफल</string> | ||||
| </resources> | ||||
| @@ -715,4 +715,6 @@ | ||||
|     <string name="app_update_available_notification_text">Ketuk untuk mengunduh %s</string> | ||||
|     <string name="night_theme_available">Opsi ini hanya tersedia jika %s dipilih untuk Tema</string> | ||||
|     <string name="unset_playlist_thumbnail">Batalkan penetapan gambar kecil permanen</string> | ||||
|     <string name="msg_failed_to_copy">Gagal menyalin ke papan klip</string> | ||||
|     <string name="card">Kartu</string> | ||||
| </resources> | ||||
| @@ -737,7 +737,10 @@ | ||||
|     <string name="faq">Visualizza sul sito</string> | ||||
|     <string name="fast_mode">Recupero veloce</string> | ||||
|     <string name="app_update_available_notification_text">Premi per scaricare %s</string> | ||||
|     <string name="app_update_unavailable_toast">L\'ultima versione di NewPipe è già in esecuzione</string> | ||||
|     <string name="app_update_unavailable_toast">Stai già usando l\'ultima versione di NewPipe</string> | ||||
|     <string name="import_subscriptions_hint">Importa o esporta iscrizioni dal menu a 3 punti</string> | ||||
|     <string name="night_theme_available">Questa opzione è disponibile solo se %s è selezionato come Tema</string> | ||||
|     <string name="msg_failed_to_copy">Copia negli appunti non riuscita</string> | ||||
|     <string name="card">Schede</string> | ||||
|     <string name="unset_playlist_thumbnail">Disattiva la miniatura permanente</string> | ||||
| </resources> | ||||
| @@ -712,4 +712,8 @@ | ||||
|     <string name="faq_title">よくある質問</string> | ||||
|     <string name="faq_description">アプリの使い方に困ったときは、よくある質問に答えていますので、ぜひご覧ください!</string> | ||||
|     <string name="night_theme_available">%sがテーマに選択された場合のみ、この選択肢が利用可能です</string> | ||||
|     <string name="fast_mode">高速モード</string> | ||||
|     <string name="import_subscriptions_hint">3 点メニューから登録チャンネルをインポートまたはエクスポートします</string> | ||||
|     <string name="card">カード</string> | ||||
|     <string name="msg_failed_to_copy">クリップボードへのコピーに失敗しました</string> | ||||
| </resources> | ||||
| @@ -97,14 +97,14 @@ | ||||
|     </plurals> | ||||
|     <string name="start">Pradėti</string> | ||||
|     <string name="pause">Pauzė</string> | ||||
|     <string name="delete">Ištrinti</string> | ||||
|     <string name="delete">Naikinti</string> | ||||
|     <string name="checksum">Kontrolinė suma</string> | ||||
|     <string name="ok">Gerai</string> | ||||
|     <string name="msg_name">Failo pavadinimas</string> | ||||
|     <string name="msg_threads">Gijos</string> | ||||
|     <string name="msg_error">Klaida</string> | ||||
|     <string name="msg_running">NewPipe Atsiunčiama</string> | ||||
|     <string name="msg_running_detail">Palieskite, kad peržiūrėtumėte išsamią informaciją</string> | ||||
|     <string name="msg_running">NewPipe atsisiunčiama</string> | ||||
|     <string name="msg_running_detail">Bakstelėkite, kad peržiūrėtumėte išsamią informaciją</string> | ||||
|     <string name="msg_wait">Prašome palaukti…</string> | ||||
|     <string name="msg_copied">Nukopijuota į iškarpinę</string> | ||||
|     <string name="no_available_dir">Prašome pasirinkti galimą atsisiuntimų aplankalą</string> | ||||
| @@ -212,9 +212,9 @@ | ||||
|     <string name="video_streams_empty">Nerasta video srautų</string> | ||||
|     <string name="audio_streams_empty">Nerasta audio srautų</string> | ||||
|     <string name="detail_drag_description">Tempti kad perrūšiuoti</string> | ||||
|     <string name="create">Sukurti</string> | ||||
|     <string name="create">Kurti</string> | ||||
|     <string name="dismiss">Nutraukti</string> | ||||
|     <string name="rename">Pervadinti</string> | ||||
|     <string name="rename">Pervardyti</string> | ||||
|     <string name="title_last_played">Vėliausiai žiūrėta</string> | ||||
|     <string name="title_most_played">Dažniausiai žiūrėta</string> | ||||
|     <string name="export_complete_toast">Eksportavimas baigtas</string> | ||||
| @@ -230,7 +230,7 @@ | ||||
|     <string name="always_ask_open_action">Visada klausti</string> | ||||
|     <string name="preferred_player_fetcher_notification_title">Gauname informaciją…</string> | ||||
|     <string name="preferred_player_fetcher_notification_message">Įkeliamas pasirinktas turinys</string> | ||||
|     <string name="create_playlist">Naujas grojaraštį</string> | ||||
|     <string name="create_playlist">Naujas grojaraštis</string> | ||||
|     <string name="rename_playlist">Pervadinti</string> | ||||
|     <string name="name">Pavadinimas</string> | ||||
|     <string name="add_to_playlist">Pridėti į grojaraštį</string> | ||||
| @@ -311,7 +311,7 @@ | ||||
|     <string name="app_update_notification_channel_description">Pranešimas apie naują NewPipe versiją</string> | ||||
|     <string name="app_update_notification_channel_name">Programos atnaujinimo pranešimas</string> | ||||
|     <string name="file">Failą</string> | ||||
|     <string name="file_deleted">Failas pašalintas</string> | ||||
|     <string name="file_deleted">Failas panaikintas</string> | ||||
|     <string name="artists">Atlikėjai</string> | ||||
|     <string name="albums">Albumai</string> | ||||
|     <string name="songs">Dainos</string> | ||||
| @@ -686,7 +686,7 @@ | ||||
| \nĮdiekite „Storage Access Framework“ suderinamą su šia failų tvarkykle</string> | ||||
|     <string name="error_report_channel_description">Pranešimai pranešimui apie klaidas</string> | ||||
|     <string name="show_crash_the_player_title">Rodyti „Grotuvas užlūžo“</string> | ||||
|     <string name="create_error_notification">Sukurti klaidos pranešimą</string> | ||||
|     <string name="create_error_notification">Kurti klaidos pranešimą</string> | ||||
|     <string name="error_report_notification_title">NewPipe susidūrė su klaida, paspauskite norėdami pranešti</string> | ||||
|     <string name="no_appropriate_file_manager_message">Šiam veiksmui nebuvo rasta tinkama failų tvarkyklė. | ||||
| \nĮdiekite failų tvarkyklę arba pabandykite išjungti \"%s\" atsisiuntimo nustatymuose</string> | ||||
|   | ||||
| @@ -726,4 +726,8 @@ | ||||
|     <string name="import_subscriptions_hint">Importeer of exporteer abonnementen vanuit het 3-punten menu</string> | ||||
|     <string name="app_update_unavailable_toast">U heeft de laatste versie van NewPipe</string> | ||||
|     <string name="app_update_available_notification_text">Klik om %s te downloaden</string> | ||||
|     <string name="msg_failed_to_copy">Kon niet naar klembord kopiëren</string> | ||||
|     <string name="night_theme_available">Deze instelling is alleen beschikbaar als %s als thema ingesteld is</string> | ||||
|     <string name="card">Kaart</string> | ||||
|     <string name="unset_playlist_thumbnail">Miniatuur niet ingesteld</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_unavailable_toast">ଆପଣ NewPipe ର ସର୍ବଶେଷ ସଂସ୍କରଣ ଚଳାଉଛନ୍ତି</string> | ||||
|     <string name="app_update_available_notification_text">%s ଡାଉନଲୋଡ୍ କରିବାକୁ ଟ୍ୟାପ୍ କରନ୍ତୁ</string> | ||||
|     <string name="night_theme_available">ଥିମ୍ ପାଇଁ %s ଚୟନ ହେଲେ ହିଁ ଏହି ବିକଳ୍ପ ଉପଲବ୍ଧ</string> | ||||
|     <string name="card">କାର୍ଡ</string> | ||||
|     <string name="msg_failed_to_copy">କ୍ଲିପବୋର୍ଡରେ କପି କରିବାରେ ବିଫଳ</string> | ||||
|     <string name="unset_playlist_thumbnail">ସ୍ଥାୟୀ ଥମ୍ୱନେଲ୍ ସେଟ୍ କରନ୍ତୁ</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_unavailable_toast">ਤੁਸੀਂ ਨਿਊਪਾਈਪ ਦਾ ਨਵੀਨਤਮ ਸੰਸਕਰਣ ਚਲਾ ਰਹੇ ਹੋ</string> | ||||
|     <string name="app_update_available_notification_text">%s ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ</string> | ||||
|     <string name="night_theme_available">ਇਹ ਵਿਕਲਪ ਤਾਂ ਹੀ ਉਪਲਬਧ ਹੈ ਜੇਕਰ %s ਨੂੰ ਥੀਮ ਲਈ ਚੁਣਿਆ ਗਿਆ ਹੈ</string> | ||||
|     <string name="unset_playlist_thumbnail">ਸਥਾਈ ਥੰਮਨੇਲ ਨੂੰ ਅਨਸੈੱਟ ਕਰੋ</string> | ||||
|     <string name="msg_failed_to_copy">ਕਲਿੱਪਬੋਰਡ \'ਤੇ ਕਾਪੀ ਕਰਨ ਵਿੱਚ ਅਸਫਲ</string> | ||||
|     <string name="card">ਕਾਰਡ</string> | ||||
| </resources> | ||||
| @@ -749,4 +749,6 @@ | ||||
|     <string name="app_update_unavailable_toast">Używasz najnowszej wersji NewPipe</string> | ||||
|     <string name="night_theme_available">Ta opcja jest dostępna tylko wtedy, gdy %s jest wybrany jako motyw</string> | ||||
|     <string name="unset_playlist_thumbnail">Usuń stałą miniaturę</string> | ||||
|     <string name="msg_failed_to_copy">Nie udało się skopiować do schowka</string> | ||||
|     <string name="card">Karta</string> | ||||
| </resources> | ||||
| @@ -741,4 +741,6 @@ | ||||
|     <string name="app_update_unavailable_toast">Você está executando a versão mais recente do NewPipe</string> | ||||
|     <string name="night_theme_available">Esta opção só está disponível se %s for selecionado para Tema</string> | ||||
|     <string name="unset_playlist_thumbnail">Desativar miniatura permanente</string> | ||||
|     <string name="card">Cartão</string> | ||||
|     <string name="msg_failed_to_copy">Falha ao copiar para a área de transferência</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="app_update_available_notification_text">Toque para descarregar %s</string> | ||||
|     <string name="sort">Ordenação</string> | ||||
|     <string name="night_theme_available">Esta opção só está disponível se %s for selecionado como tema</string> | ||||
|     <string name="unset_playlist_thumbnail">Desativar miniatura permanente</string> | ||||
|     <string name="msg_failed_to_copy">Não foi possível copiar para a área de transferência</string> | ||||
|     <string name="card">Cartão</string> | ||||
| </resources> | ||||
| @@ -740,4 +740,7 @@ | ||||
|     <string name="app_update_unavailable_toast">Já está a executar a versão mais recente do NewPipe</string> | ||||
|     <string name="app_update_available_notification_text">Toque para descarregar %s</string> | ||||
|     <string name="night_theme_available">Esta opção só está disponível se %s for selecionado para o tema</string> | ||||
|     <string name="unset_playlist_thumbnail">Desativar miniatura permanente</string> | ||||
|     <string name="msg_failed_to_copy">Não foi possível copiar para a área de transferência</string> | ||||
|     <string name="card">Cartão</string> | ||||
| </resources> | ||||
| @@ -692,8 +692,8 @@ | ||||
|     <string name="streams_notification_channel_name">Новые видео</string> | ||||
|     <string name="streams_notification_channel_description">Уведомления о новых видео в подписках</string> | ||||
|     <string name="streams_notifications_interval_title">Частота проверки</string> | ||||
|     <string name="enable_streams_notifications_title">Уведомлять о новых видео</string> | ||||
|     <string name="enable_streams_notifications_summary">Получать уведомления о новых видео из каналов, на которые Вы подписаны</string> | ||||
|     <string name="enable_streams_notifications_title">Новые видео</string> | ||||
|     <string name="enable_streams_notifications_summary">Уведомлять о новых видео в подписках</string> | ||||
|     <string name="streams_notifications_network_title">Тип подключения</string> | ||||
|     <string name="any_network">Любая сеть</string> | ||||
|     <string name="notifications_disabled">Уведомления отключены</string> | ||||
| @@ -720,7 +720,7 @@ | ||||
|     <string name="loading_stream_details">Загрузка сведений о трансляции…</string> | ||||
|     <string name="check_new_streams">Проверить наличие новых трансляций</string> | ||||
|     <string name="delete_downloaded_files_confirm">Удалить все загруженные файлы\?</string> | ||||
|     <string name="settings_category_player_notification_title">Уведомления плеера</string> | ||||
|     <string name="settings_category_player_notification_title">Уведомление плеера</string> | ||||
|     <string name="enumeration_comma">,</string> | ||||
|     <string name="semitone">Полутон</string> | ||||
|     <string name="percent">Проценты</string> | ||||
| @@ -736,11 +736,15 @@ | ||||
|     <string name="feed_toggle_hide_played_items">Скрыть проигранные</string> | ||||
|     <string name="feed_toggle_hide_future_items">Скрывать будущие видео</string> | ||||
|     <string name="faq_title">Ответы на частые вопросы</string> | ||||
|     <string name="faq_description">Если у вас возникли проблемы с использованием приложения, обязательно ознакомьтесь с ответами на распространенные вопросы!</string> | ||||
|     <string name="faq_description">Если у вас возникли проблемы с использованием приложения, обязательно ознакомьтесь с ответами на распространённые вопросы!</string> | ||||
|     <string name="faq">Посмотреть на веб-сайте</string> | ||||
|     <string name="sort">Сортировка</string> | ||||
|     <string name="app_update_unavailable_toast">У вас последняя версия</string> | ||||
|     <string name="fast_mode">Быстрый режим</string> | ||||
|     <string name="import_subscriptions_hint">Импорт и экспорт подписок в меню с 3-мя точками</string> | ||||
|     <string name="app_update_available_notification_text">Нажмите для загрузки %s</string> | ||||
|     <string name="card">Карта</string> | ||||
|     <string name="msg_failed_to_copy">Не удалось скопировать в буфер обмена</string> | ||||
|     <string name="night_theme_available">Доступно, когда Тема установлена в %s</string> | ||||
|     <string name="unset_playlist_thumbnail">Убрать постоянную миниатюру</string> | ||||
| </resources> | ||||
| @@ -727,4 +727,7 @@ | ||||
|     <string name="import_subscriptions_hint">Importa o esporta iscritziones dae su menù a 3 puntos</string> | ||||
|     <string name="app_update_unavailable_toast">Ses impreende s\'ùrtima versione de NewPipe</string> | ||||
|     <string name="night_theme_available">Custa optzione est a disponimentu petzi si %s est seletzionadu comente tema</string> | ||||
|     <string name="card">Carta</string> | ||||
|     <string name="msg_failed_to_copy">Còpia in punta de billete fallida</string> | ||||
|     <string name="unset_playlist_thumbnail">Disativa sa miniadura permanente</string> | ||||
| </resources> | ||||
| @@ -728,4 +728,6 @@ | ||||
|     <string name="import_subscriptions_hint">3-nokta menüsünden abonelikleri içe veya dışa aktarın</string> | ||||
|     <string name="night_theme_available">Bu seçenek yalnızca tema için %s seçildiğinde kullanılabilir</string> | ||||
|     <string name="unset_playlist_thumbnail">Kalıcı küçük resmin ayarını kaldır</string> | ||||
|     <string name="card">Kart</string> | ||||
|     <string name="msg_failed_to_copy">Panoya kopyalanamadı</string> | ||||
| </resources> | ||||
| @@ -745,4 +745,6 @@ | ||||
|     <string name="fast_mode">Швидкий режим</string> | ||||
|     <string name="night_theme_available">Ця опція доступна, лише якщо темою обрано %s</string> | ||||
|     <string name="unset_playlist_thumbnail">Прибрати постійну мініатюру</string> | ||||
|     <string name="card">Картки</string> | ||||
|     <string name="msg_failed_to_copy">Не вдалося скопіювати до буфера обміну</string> | ||||
| </resources> | ||||
| @@ -715,4 +715,6 @@ | ||||
|     <string name="app_update_available_notification_text">轻按下载 %s</string> | ||||
|     <string name="night_theme_available">只有在主题中选择了 %s 该选项才可用</string> | ||||
|     <string name="unset_playlist_thumbnail">取消设置永久缩略图</string> | ||||
|     <string name="card">卡片</string> | ||||
|     <string name="msg_failed_to_copy">未能复制到剪贴板</string> | ||||
| </resources> | ||||
| @@ -510,7 +510,7 @@ | ||||
|     <string name="auto_device_theme_title">自動 (跟返部機嘅主題色系)</string> | ||||
|     <string name="featured">精選</string> | ||||
|     <string name="radio">廣播</string> | ||||
|     <string name="description_select_note">您而家可以揀選喺描述入面嘅文字喇。不過要單聲,喺揀選模式嘅時候,個頁面可能眨眨下,同埋啲連結會撳唔到。</string> | ||||
|     <string name="description_select_note">您而家可以揀選喺描述入面嘅文字喇。不過要單聲,喺揀選模式嘅時候,版面可能會有啲眨,同埋啲連結會撳唔到。</string> | ||||
|     <string name="description_select_enable">啟用揀選描述入面嘅文字</string> | ||||
|     <string name="metadata_licence">版權協議</string> | ||||
|     <string name="metadata_category">分類</string> | ||||
| @@ -713,4 +713,8 @@ | ||||
|     <string name="import_subscriptions_hint">右上角嘅選單有得匯入或匯出訂閱</string> | ||||
|     <string name="app_update_unavailable_toast">您已經用緊最新版本嘅 NewPipe</string> | ||||
|     <string name="app_update_available_notification_text">撳一下去下載 %s</string> | ||||
|     <string name="unset_playlist_thumbnail">唔再揀定封面縮圖</string> | ||||
|     <string name="night_theme_available">色系揀做%s嘅時候至有得揀</string> | ||||
|     <string name="msg_failed_to_copy">複製唔到去剪貼簿</string> | ||||
|     <string name="card">一張張</string> | ||||
| </resources> | ||||
| @@ -714,4 +714,7 @@ | ||||
|     <string name="fast_mode">快速模式</string> | ||||
|     <string name="import_subscriptions_hint">從三點式選單匯入或匯出訂閱</string> | ||||
|     <string name="night_theme_available">此選項僅在主題選擇為 %s 時可用</string> | ||||
|     <string name="card">卡片</string> | ||||
|     <string name="unset_playlist_thumbnail">取消設定永久縮圖</string> | ||||
|     <string name="msg_failed_to_copy">無法複製到剪貼簿</string> | ||||
| </resources> | ||||
| @@ -433,6 +433,7 @@ | ||||
|     <string name="preferred_player_fetcher_notification_message">"Loading requested content"</string> | ||||
|     <!-- Local Playlist --> | ||||
|     <string name="create_playlist">New Playlist</string> | ||||
|     <string name="duplicate_in_playlist">The playlists that are grayed out already contain this item.</string> | ||||
|     <string name="rename_playlist">Rename</string> | ||||
|     <string name="name">Name</string> | ||||
|     <string name="add_to_playlist">Add to playlist</string> | ||||
| @@ -446,6 +447,7 @@ | ||||
|     <string name="delete_playlist_prompt">Delete this playlist\?</string> | ||||
|     <string name="playlist_creation_success">Playlist created</string> | ||||
|     <string name="playlist_add_stream_success">Playlisted</string> | ||||
|     <string name="playlist_add_stream_success_duplicate">Duplicate added %d time(s)</string> | ||||
|     <string name="playlist_thumbnail_change_success">Playlist thumbnail changed.</string> | ||||
|     <string name="playlist_no_uploader">Auto-generated (no uploader found)</string> | ||||
|     <!-- Players --> | ||||
|   | ||||
							
								
								
									
										17
									
								
								fastlane/metadata/android/en-US/changelogs/992.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								fastlane/metadata/android/en-US/changelogs/992.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| New | ||||
| • Subscriber count in video details | ||||
| • Download from the queue | ||||
| • Permanently set a playlist thumbnail | ||||
| • Long-press hashtags and links | ||||
| • Card view mode | ||||
|  | ||||
| Improved | ||||
| • Larger mini-player close button | ||||
| • Smoother thumbnail downscaling | ||||
| • Target Android 13 (API 33) | ||||
| • Seeking no longer pauses the player | ||||
|  | ||||
| Fixed | ||||
| • Fix overlay on DeX/mouse | ||||
| • Allow background player with no separate audio streams | ||||
| • Various YouTube fixes and more… | ||||
							
								
								
									
										13
									
								
								fastlane/metadata/android/sl/changelogs/991.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								fastlane/metadata/android/sl/changelogs/991.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| Novo | ||||
| - Dodajanje gumba "Odpri v brskalniku" v podoknu z napakami | ||||
| - Dodana možnost za prikaz skupin kanalov kot seznam | ||||
| - [YouTube] Dolgi pritisk na segmente video pretoka za deljenje časovnega žiga URL-ja | ||||
| - Dodajte gumb za predvajanje v vrsti v mini predvajalnik | ||||
|  | ||||
| Izboljšave | ||||
| - Dodana islandska lokalizacija ter posodobitev številnih drugih prevodov | ||||
| - Številne notranje izboljšave | ||||
|  | ||||
| Popravki | ||||
| - Odprava večih sesutij | ||||
| - [YouTube] Odprava težave z nalaganjem kanalov, nenamenskimi viri ter predvajanjem v nekaterih državah | ||||
							
								
								
									
										1
									
								
								fastlane/metadata/android/sl/short_description.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								fastlane/metadata/android/sl/short_description.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| Brezplačen in enostaven YouTube "frontend" za Android. | ||||
		Reference in New Issue
	
	Block a user
	 Jared234
					Jared234