diff --git a/app/build.gradle b/app/build.gradle
index 81325a1bf..a2feb40b8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -21,8 +21,8 @@ android {
// Version code schema:
// "1.2.3-beta4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 2020001
- versionName "2.2.0-beta1"
+ versionCode 2020003
+ versionName "2.2.0-beta3"
multiDexEnabled false
vectorDrawables.useSupportLibrary true
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 697624337..074ea0c1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -137,13 +137,6 @@
-
-
-
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index aa1d746a5..6afe27d17 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -166,10 +166,15 @@ public class MainActivity extends CastEnabledActivity {
outState.putInt(KEY_GENERATED_VIEW_ID, ViewCompat.generateViewId());
}
- private BottomSheetBehavior.BottomSheetCallback bottomSheetCallback =
+ private final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback =
new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View view, int state) {
+ if (state == BottomSheetBehavior.STATE_COLLAPSED) {
+ onSlide(view, 0.0f);
+ } else if (state == BottomSheetBehavior.STATE_EXPANDED) {
+ onSlide(view, 1.0f);
+ }
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
index d4b32ee06..8380d8626 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
@@ -53,6 +53,10 @@ public class ChaptersListAdapter extends RecyclerView.Adapter true); // Avoid clicks going through player to fragments below
toolbar = root.findViewById(R.id.toolbar);
toolbar.setTitle("");
toolbar.setNavigationOnClickListener(v ->
@@ -158,8 +158,8 @@ public class AudioPlayerFragment extends Fragment implements
case POS_COVER:
tab.setText(R.string.cover_label);
break;
- case POS_DESCR:
- tab.setText(R.string.description_label);
+ case POS_SHOWNOTES:
+ tab.setText(R.string.shownotes_label);
break;
case POS_CHAPTERS:
tab.setText(R.string.chapters_label);
@@ -464,7 +464,7 @@ public class AudioPlayerFragment extends Fragment implements
TimeSpeedConverter converter = new TimeSpeedConverter(controller.getCurrentPlaybackSpeedMultiplier());
int currentPosition = converter.convert(event.getPosition());
int duration = converter.convert(event.getDuration());
- int remainingTime = converter.convert(event.getDuration() - event.getPosition());
+ int remainingTime = converter.convert(Math.max(event.getDuration() - event.getPosition(), 0));
Log.d(TAG, "currentPosition " + Converter.getDurationStringLong(currentPosition));
if (currentPosition == PlaybackService.INVALID_TIME || duration == PlaybackService.INVALID_TIME) {
Log.w(TAG, "Could not react to position observer update because of invalid time");
@@ -473,7 +473,7 @@ public class AudioPlayerFragment extends Fragment implements
txtvPosition.setText(Converter.getDurationStringLong(currentPosition));
showTimeLeft = UserPreferences.shouldShowRemainingTime();
if (showTimeLeft) {
- txtvLength.setText("-" + Converter.getDurationStringLong(remainingTime));
+ txtvLength.setText(((remainingTime > 0) ? "-" : "") + Converter.getDurationStringLong(remainingTime));
} else {
txtvLength.setText(Converter.getDurationStringLong(duration));
}
@@ -592,7 +592,7 @@ public class AudioPlayerFragment extends Fragment implements
switch (position) {
case POS_COVER:
return new CoverFragment();
- case POS_DESCR:
+ case POS_SHOWNOTES:
return new ItemDescriptionFragment();
default:
case POS_CHAPTERS:
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
index d8c382cb2..5cb44655e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
@@ -23,7 +23,6 @@ import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.event.PlaybackPositionEvent;
-import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.util.ChapterUtils;
@@ -94,7 +93,7 @@ public class CoverFragment extends Fragment {
}
private void displayMediaInfo(@NonNull Playable media) {
- String pubDateStr = DateUtils.formatAbbrev(getActivity(), ((FeedMedia) media).getPubDate());
+ String pubDateStr = DateUtils.formatAbbrev(getActivity(), media.getPubDate());
txtvPodcastTitle.setText(StringUtils.stripToEmpty(media.getFeedTitle())
+ "\u00A0"
+ "・"
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
index 2e13bbd79..857a3b0fe 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
@@ -86,6 +86,10 @@ public class ItemDescriptionFragment extends Fragment {
}
webViewLoader = Maybe.create(emitter -> {
Playable media = controller.getMedia();
+ if (media == null) {
+ emitter.onComplete();
+ return;
+ }
if (media instanceof FeedMedia) {
FeedMedia feedMedia = ((FeedMedia) media);
if (feedMedia.getItem() == null) {
@@ -95,7 +99,8 @@ public class ItemDescriptionFragment extends Fragment {
}
Timeline timeline = new Timeline(getActivity(), media.getDescription(), media.getDuration());
emitter.onSuccess(timeline.processShownotes());
- }).subscribeOn(Schedulers.io())
+ })
+ .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
webvDescription.loadDataWithBaseURL("https://127.0.0.1", data, "text/html",
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index 2850acc15..b92043c7d 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -385,7 +385,7 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi
@Override
public boolean onContextItemSelected(MenuItem item) {
Log.d(TAG, "onContextItemSelected() called with: " + "item = [" + item + "]");
- if(!isVisible()) {
+ if (!isVisible() || recyclerAdapter == null) {
return false;
}
FeedItem selectedItem = recyclerAdapter.getSelectedItem();
@@ -464,7 +464,7 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi
int from = viewHolder.getAdapterPosition();
int to = target.getAdapterPosition();
Log.d(TAG, "move(" + from + ", " + to + ") in memory");
- if (from >= queue.size() || to >= queue.size()) {
+ if (from >= queue.size() || to >= queue.size() || from < 0 || to < 0) {
return false;
}
queue.add(to, queue.remove(from));
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
index 0d9181d84..c6c00eb34 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
@@ -2,17 +2,14 @@ package de.danoeh.antennapod.fragment.gpodnet;
import android.os.Bundle;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
+
+import java.util.List;
import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetService;
import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetServiceException;
import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetPodcast;
import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetTag;
-import de.danoeh.antennapod.activity.MainActivity;
-
-import java.util.List;
-
/**
* Shows all podcasts from gpodder.net that belong to a specific tag.
* Use the newInstance method of this class to create a new TagFragment.
@@ -43,12 +40,6 @@ public class TagFragment extends PodcastListFragment {
tag = args.getParcelable("tag");
}
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- ((MainActivity) getActivity()).getSupportActionBar().setTitle(tag.getTitle());
- }
-
@Override
protected List loadPodcastData(GpodnetService service) throws GpodnetServiceException {
return service.getPodcastsForTag(tag, PODCAST_COUNT);
diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
index 8b46a781f..9fd742d5f 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
@@ -154,6 +154,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
Converter.getDurationStringLocalized(activity, media.getDuration())));
if (item.getState() == FeedItem.State.PLAYING || item.getState() == FeedItem.State.IN_PROGRESS) {
int progress = (int) (100.0 * media.getPosition() / media.getDuration());
+ int remainingTime = Math.max(media.getDuration() - media.getPosition(), 0);
progressBar.setProgress(progress);
position.setText(Converter.getDurationStringLong(media.getPosition()));
position.setContentDescription(activity.getString(R.string.position,
@@ -161,7 +162,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
progressBar.setVisibility(View.VISIBLE);
position.setVisibility(View.VISIBLE);
if (UserPreferences.shouldShowRemainingTime()) {
- duration.setText("-" + Converter.getDurationStringLong(media.getDuration() - media.getPosition()));
+ duration.setText(((remainingTime > 0) ? "-" : "") + Converter.getDurationStringLong(remainingTime));
duration.setContentDescription(activity.getString(R.string.chapter_duration,
Converter.getDurationStringLocalized(activity, (media.getDuration() - media.getPosition()))));
}
@@ -194,14 +195,14 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
private void updateDuration(PlaybackPositionEvent event) {
int currentPosition = event.getPosition();
int timeDuration = event.getDuration();
- int remainingTime = event.getDuration() - event.getPosition();
+ int remainingTime = Math.max(timeDuration - currentPosition, 0);
Log.d(TAG, "currentPosition " + Converter.getDurationStringLong(currentPosition));
if (currentPosition == PlaybackService.INVALID_TIME || timeDuration == PlaybackService.INVALID_TIME) {
Log.w(TAG, "Could not react to position observer update because of invalid time");
return;
}
if (UserPreferences.shouldShowRemainingTime()) {
- duration.setText("-" + Converter.getDurationStringLong(remainingTime));
+ duration.setText(((remainingTime > 0) ? "-" : "") + Converter.getDurationStringLong(remainingTime));
} else {
duration.setText(Converter.getDurationStringLong(timeDuration));
}
diff --git a/app/src/main/play/release-notes/en-US/default.txt b/app/src/main/play/release-notes/en-US/default.txt
index 4b4805c6a..cfeaf3575 100644
--- a/app/src/main/play/release-notes/en-US/default.txt
+++ b/app/src/main/play/release-notes/en-US/default.txt
@@ -1,11 +1,8 @@
-NEW
- Optional notifications for new episodes (@connectety)
- Use PodcastIndex for main search (@tonytamsf)
- Sleep timer extend buttons (@max-wittig)
- Optional rewind, forward & skip buttons on widget (@tonytamsf)
- 'When not favorited' as Episode Cleanup (@spacecowboy)
-
-IMPROVED
- More actions for hardware buttons (@timakro)
- Android Auto & chapter support (@tonytamsf, @ByteHamster)
- Fixed stuck notification (@a1291762)
diff --git a/app/src/main/res/layout/audioplayer_fragment.xml b/app/src/main/res/layout/audioplayer_fragment.xml
index f77e96338..743a15c85 100644
--- a/app/src/main/res/layout/audioplayer_fragment.xml
+++ b/app/src/main/res/layout/audioplayer_fragment.xml
@@ -84,7 +84,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:clickable="true"
android:layoutDirection="ltr"
android:orientation="vertical">
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
index 2e0cb705b..e8e85602b 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
@@ -643,8 +643,10 @@ public class DownloadService extends Service {
if (notificationUpdater != null) {
notificationUpdater.run();
}
- cancelNotificationUpdater();
- stopForeground(true);
- stopSelf();
+ handler.post(() -> {
+ cancelNotificationUpdater();
+ stopForeground(true);
+ stopSelf();
+ });
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java
index e2d9ee614..ed94a494c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java
@@ -39,7 +39,7 @@ public class FeedSyncTask {
if (loadAllPages && feed.getNextPageLink() != null) {
try {
feed.setId(savedFeed.getId());
- DBTasks.loadNextPageOfFeed(context, savedFeed, true);
+ DBTasks.loadNextPageOfFeed(context, feed, true);
} catch (DownloadRequestException e) {
Log.e(TAG, "Error trying to load next page", e);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java
index 9a8248984..8d3633b24 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java
@@ -105,7 +105,9 @@ public class ExoPlayerWrapper implements IPlayer {
@Override
public void onSeekProcessed() {
- audioSeekCompleteListener.onSeekComplete(null);
+ if (audioSeekCompleteListener != null) {
+ audioSeekCompleteListener.onSeekComplete(null);
+ }
}
});
}
@@ -174,7 +176,9 @@ public class ExoPlayerWrapper implements IPlayer {
@Override
public void seekTo(int i) throws IllegalStateException {
exoPlayer.seekTo(i);
- audioSeekCompleteListener.onSeekComplete(null);
+ if (audioSeekCompleteListener != null) {
+ audioSeekCompleteListener.onSeekComplete(null);
+ }
}
@Override
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 4de63db74..dbf7760a5 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -540,6 +540,10 @@ public class PlaybackService extends MediaBrowserServiceCompat {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
playableLoaded -> {
+ if (!playable.getIdentifier().equals(
+ PlaybackPreferences.getCurrentlyPlayingFeedMediaId())) {
+ PlaybackPreferences.clearCurrentlyPlayingTemporaryPlaybackSpeed();
+ }
mediaPlayer.playMediaObject(playableLoaded, stream, startWhenPrepared,
prepareImmediately);
addPlayableToQueue(playableLoaded);
@@ -1041,6 +1045,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
PlaybackPreferences.writeNoMediaPlaying();
if (!isCasting) {
stateManager.stopForeground(true);
+ stateManager.stopService();
}
}
if (mediaType == null) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index d16432cd6..6320fa663 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -222,7 +222,7 @@ public final class DBTasks {
}).start();
}
if (!normalFeeds.isEmpty()) {
- DownloadRequester.getInstance().downloadFeeds(context, feeds, loadAllPages, force, initiatedByUser);
+ DownloadRequester.getInstance().downloadFeeds(context, normalFeeds, loadAllPages, force, initiatedByUser);
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index a86bdaa65..827e30394 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -196,10 +196,17 @@ public class DBWriter {
if (queue.remove(item)) {
removedFromQueue.add(item);
}
- if (item.getMedia() != null && item.getMedia().isDownloaded()) {
- deleteFeedMediaSynchronous(context, item.getMedia());
- } else if (item.getMedia() != null && requester.isDownloadingFile(item.getMedia())) {
- requester.cancelDownload(context, item.getMedia());
+ if (item.getMedia() != null) {
+ if (item.getMedia().getId() == PlaybackPreferences.getCurrentlyPlayingFeedMediaId()) {
+ // Applies to both downloaded and streamed media
+ PlaybackPreferences.writeNoMediaPlaying();
+ IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
+ }
+ if (item.getMedia().isDownloaded()) {
+ deleteFeedMediaSynchronous(context, item.getMedia());
+ } else if (requester.isDownloadingFile(item.getMedia())) {
+ requester.cancelDownload(context, item.getMedia());
+ }
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java
index e1e2818cb..8f9b8ce2f 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java
@@ -23,8 +23,12 @@ public final class Converter {
* Converts milliseconds to a string containing hours, minutes and seconds.
*/
public static String getDurationStringLong(int duration) {
- int[] hms = millisecondsToHms(duration);
- return String.format(Locale.getDefault(), "%02d:%02d:%02d", hms[0], hms[1], hms[2]);
+ if (duration <= 0) {
+ return "00:00:00";
+ } else {
+ int[] hms = millisecondsToHms(duration);
+ return String.format(Locale.getDefault(), "%02d:%02d:%02d", hms[0], hms[1], hms[2]);
+ }
}
private static int[] millisecondsToHms(long duration) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
index 117e32cd4..9e3f0058e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
@@ -208,7 +208,12 @@ public abstract class PlaybackController {
handleStatus();
} else {
Log.w(TAG, "Couldn't receive status update: playbackService was null");
- bindToService();
+ if (PlaybackService.isRunning) {
+ bindToService();
+ } else {
+ status = PlayerStatus.STOPPED;
+ handleStatus();
+ }
}
}
};
@@ -232,7 +237,7 @@ public abstract class PlaybackController {
onBufferUpdate(progress);
break;
case PlaybackService.NOTIFICATION_TYPE_RELOAD:
- if (playbackService == null) {
+ if (playbackService == null && PlaybackService.isRunning) {
bindToService();
return;
}
@@ -357,6 +362,7 @@ public abstract class PlaybackController {
}
break;
case STOPPED:
+ updatePlayButtonAppearance(playResource, playText);
break;
case PREPARED:
checkMediaInfoLoaded();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java
index 9079c870e..5941e8f24 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java
@@ -25,18 +25,18 @@ public class RemoteMedia implements Playable {
public static final int PLAYABLE_TYPE_REMOTE_MEDIA = 3;
- private String downloadUrl;
- private String itemIdentifier;
- private String feedUrl;
- private String feedTitle;
- private String episodeTitle;
- private String episodeLink;
- private String feedAuthor;
- private String imageUrl;
- private String feedLink;
- private String mimeType;
- private Date pubDate;
- private String notes;
+ private final String downloadUrl;
+ private final String itemIdentifier;
+ private final String feedUrl;
+ private final String feedTitle;
+ private final String episodeTitle;
+ private final String episodeLink;
+ private final String feedAuthor;
+ private final String imageUrl;
+ private final String feedLink;
+ private final String mimeType;
+ private final Date pubDate;
+ private final String notes;
private List chapters;
private int duration;
private int position;
@@ -44,7 +44,8 @@ public class RemoteMedia implements Playable {
public RemoteMedia(String downloadUrl, String itemId, String feedUrl, String feedTitle,
String episodeTitle, String episodeLink, String feedAuthor,
- String imageUrl, String feedLink, String mimeType, Date pubDate) {
+ String imageUrl, String feedLink, String mimeType, Date pubDate,
+ String notes) {
this.downloadUrl = downloadUrl;
this.itemIdentifier = itemId;
this.feedUrl = feedUrl;
@@ -56,6 +57,7 @@ public class RemoteMedia implements Playable {
this.feedLink = feedLink;
this.mimeType = mimeType;
this.pubDate = pubDate;
+ this.notes = notes;
}
public RemoteMedia(FeedItem item) {
@@ -66,14 +68,15 @@ public class RemoteMedia implements Playable {
this.episodeTitle = item.getTitle();
this.episodeLink = item.getLink();
this.feedAuthor = item.getFeed().getAuthor();
- this.imageUrl = item.getImageUrl();
+ if (!TextUtils.isEmpty(item.getImageUrl())) {
+ this.imageUrl = item.getImageUrl();
+ } else {
+ this.imageUrl = item.getFeed().getImageUrl();
+ }
this.feedLink = item.getFeed().getLink();
this.mimeType = item.getMedia().getMime_type();
this.pubDate = item.getPubDate();
- }
-
- public void setNotes(String notes) {
- this.notes = notes;
+ this.notes = item.getDescription();
}
public String getEpisodeIdentifier() {
@@ -272,8 +275,7 @@ public class RemoteMedia implements Playable {
public RemoteMedia createFromParcel(Parcel in) {
RemoteMedia result = new RemoteMedia(in.readString(), in.readString(), in.readString(),
in.readString(), in.readString(), in.readString(), in.readString(), in.readString(),
- in.readString(), in.readString(), new Date(in.readLong()));
- result.setNotes(in.readString());
+ in.readString(), in.readString(), new Date(in.readLong()), in.readString());
result.setDuration(in.readInt());
result.setPosition(in.readInt());
result.setLastPlayedTime(in.readLong());
diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml
index e087f10d5..87b6616e5 100644
--- a/core/src/main/res/values-ar/strings.xml
+++ b/core/src/main/res/values-ar/strings.xml
@@ -71,7 +71,6 @@
الناشر(ون)
لغة
عنوان الموقع
- صورة
خطأ
حدث خطأ:
هذه العلملية تحتاج السماح للوصول لمساحة التخزين
diff --git a/core/src/main/res/values-br/strings.xml b/core/src/main/res/values-br/strings.xml
index 8e9abc191..718bf4275 100644
--- a/core/src/main/res/values-br/strings.xml
+++ b/core/src/main/res/values-br/strings.xml
@@ -18,6 +18,7 @@
Kerzhlevr
Koumanantoù
Roll ar c\'houmanantoù
+ Nullañ ar pellgargadennoù
Roll istor seniñ
gpodder.net
Titouroù kennaskañ gpodder.net
@@ -25,11 +26,14 @@
Tizhet eo bet bevenn pellgargadurioù ar rannoù. Gallout a rit kreskaat ment ar c\'hrubuilh en arventennoù.
Lenn
Pellgargadurioù
+ Rebuzadurioù
+ N\'eo ket bet kavet \"%1$s\"
%1$d war %2$d rann kroget.\n\nLennet %3$s war %4$s.
Doareoù stadegoù
Jediñ ar padelezh selaouet e gwirionez. Ar rannoù selaouet div wech a gont doubl hag ar re merket evel anlennet ne gontont ket
+ Sammañ an holl rannoù merket evel lennet
Evezhiadenn: tizh al lenn n\'eo morse kemeret e kont.
Adderaouekaat ar roadennoù stadegoù
Dilemel a raio roll istor ar padelezh lennet evit an holl rannoù. Sur oc\'h e fell deoc\'h kenderc\'hel?
@@ -48,6 +52,8 @@
Niver a rannoù pelglarget
Hini ebet
+ N\'eo ket bet kavet arloadoù keverlec\'h
+ Ezporzhiañ ar c\'herzhlevrioù dre ar munud
Digeriñ er merdeer
Eilañ an URL
@@ -65,7 +71,6 @@
Aozer(ien.ezed)
Yezh
URL
- Skeudenn
Fazi
Degouezhet ez eus bet ur fazi:
Ret eo kaout an aotre kadaviñ evit ober se
@@ -92,6 +97,7 @@
Morse
Kas...
Morse
+ Pa n\'emañ ket er sinedoù
Pa n\'emañ ket el lost
Goude bezañ echuet
@@ -115,7 +121,22 @@
- %d diuzet
- %d diuzet
+
+ - %d rann
+ - %d rann
+ - %d rann
+ - %d rann
+ - %d rann
+
O kargañ...
+ Diskouez ur rebuzadur pa vez embannet ur rann nevez
+
+ - Rann nevez
+ - Rannoù nevez
+ - Rannoù nevez
+ - Rannoù nevez
+ - Rannoù nevez
+
Merkañ an holl evel lennet
Merket eo bet an holl rannoù evel lennet
@@ -130,7 +151,11 @@
Arventennoù ar podskignad
Adenvel ar podskignad
Dilemel ar podskignad
+ Rannañ
+ Rannañ…
Rannañ ar restr
+ Ere al lec\'hienn
+ Ere ar podskignad
Kadarnait e fell deoc\'h dilemel ar podskignad \"%1$s\" hag e holl rannoù pellgarget.
O tilemel ar podskignad
Hizivaat ar podskignad a-bezh
@@ -252,6 +277,8 @@
Diweredekaet eo ar pellgargadur war ar c\'hennask hezoug en arventennoù.\n\nFellout a ra deoc\'h aotren ent padennek?\n\nDalc\'het vo soñj eus ho tibab e-pad 10 munutenn.
Kadarnaat ar streaming hezoug
Diweredekaet eo ar streaming war ar c\'hennask hezoug en arventennoù. Stokit da lenn e streaming memestra.
+ Atav
+ Ur wech
Lakaat el lost
Aotren ent padennek
@@ -298,6 +325,7 @@
N\'eo ket bet staliet an enlugellad
Evit gallout kemmañ tizh al lenn ez eo erbedet gweredekaat al lenner media diabarzh Sonic.
Gweredekaat Sonic
+ Rakreolamantoù
Rann ebet er roll len
Gallout a rit ouzhpennañ ur rann en ur bellgargañ anezhi, pe gant ur stokadenn hir hag en ur zibab \"Ouzhpennañ el lost\"
@@ -334,6 +362,7 @@
Elfennoù diavaez
Diskrogoù
Reoliadurioù lenn
+ Asinañ en-dro afelloù fizikel
Klask...
Disoc\'h ebet
Skarzhañ ar roll istor
@@ -342,6 +371,10 @@
Paouez gant al lenn pa vez diluget selaouelloù pe bluetooth
Kenderc\'hel al lenn pa vez adluget ar selaouelloù
Adstagañ gant al lenn pa vez adkennasket ar bluetooth
+ Lamm en ar-raok
+ Lamm war-gil
+ Tremen ar rann
+ Adkregiñ ar rann
Tremen d\'ar rann goude ur wech echuet gant unan
Dilemel ar rann p\'eo echuet gant al lenn
Dilemel ent emgefreek
@@ -362,7 +395,15 @@
Dibab un etremez
Dibab un eur
da %1$s
+
+ - Bep eur
+ - Bep %d eur
+ - Bep %d eur
+ - Bep %d eur
+ - Bep %d eur
+
Lenn kendalc\'hus
+ Digennask ar selaouelloù pe ar bluetooth
Lugañ ar selaouelloù
Adkennaskañ ar bluetooth
Ober gant ar streaming da gentañ
@@ -375,6 +416,7 @@
Pellgargañ ar rann
Streaming
Ketal arveriad
+ Neuz, koumanantoù, skramm prennañ
Dibab un neuz
Kemmañ elfennoù ar stalaf merdeiñ
Kemmañ an elfennoù diskouezet er stalaf merdeiñ
@@ -393,6 +435,7 @@
Niver a rannoù enrollet
Niver hollek a rannoù pellgarget lakaet e krubuilh ar benveg. Diweredekaet e vo ar pellgargañ emgefreek mard eo tizhet an niver-mañ.
Skeudenn ar rannoù
+ Ober gant golo ar rann e listennoù pa vez dioutañ. Mard eo digevasket e vo graet gant golo ar podskignad.
Neuz ar reizhiad
Sklaer
Teñval
@@ -459,6 +502,9 @@
Chromecast a c\'houlenn levraouegoù diavaez a zo diweredekaet en handelv-mañ eus AntennaPod
Ouzhpennañ el lost ur wech pellgarget
Ouzhpennañ ar rannoù pellgarget el lost
+ Lenner genidik Android (dizaliet)
+ Sonic Media Player (dizaliet)
+ ExoPlayer (aliet)
Ober gant ExoPlayer
Kemmet eo bet al lenner evit ExoPlayer
Tremen ar mareoù didrouz en aodio
@@ -479,6 +525,8 @@
Diuzañ ur bajen
Dilemel a denn eus al lost
Tennañ ur rann eus al lost ent emgefreek pa vez dilamet.
+ Sil ar c\'houmanantoù
+ Hini ebet
A-zivout
Handelv AntennaPod
diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml
index d1a602186..570964e6e 100644
--- a/core/src/main/res/values-ca/strings.xml
+++ b/core/src/main/res/values-ca/strings.xml
@@ -65,7 +65,6 @@
Autor/s
Llengua
Adreça web
- Imatge
Error
S\'ha produït un error:
Calen permisos d\'emmagatzematge per a aquesta operació
diff --git a/core/src/main/res/values-cs/strings.xml b/core/src/main/res/values-cs/strings.xml
index a44719c7d..de97d8d5f 100644
--- a/core/src/main/res/values-cs/strings.xml
+++ b/core/src/main/res/values-cs/strings.xml
@@ -76,7 +76,6 @@
Přispěvatel(é)
Jazyk
URL
- Obrázek
Chyba
Došlo k chybě:
Tato operace vyžaduje oprávnění pro přístup do úložiště
@@ -125,8 +124,28 @@
- %d vybráno
- %d vybráno
+
+ - %d epizoda
+ - %d epizody
+ - %d epizod
+ - %d epizod
+
Načítají se další…
Upozornění na epizody
+ Zobrazit oznámení když vyjde nová epizoda.
+
+ - %2$s má novou epizodu
+ - %2$s má %1$d nové epizody
+ - %2$s má %1$d nových epizod
+ - %2$s má %1$d nových epizod
+
+
+ - Nová epizoda
+ - Nové epizody
+ - Nových epizod
+ - Nových epizod
+
+ Tvé odběry mají nové epizody
Označit vše jako poslechnuté
Všechny epizody označeny jako poslechnuté
@@ -158,6 +177,7 @@
Mimo frontu
Obsahuje média
Filtrované
+ {fa-exclamation-circle} Poslední aktualizace selhala. Klikněte pro více informací.
Otevřít podcast
Počkejte prosím na dokončení načítání
@@ -174,6 +194,12 @@
Smazat
Nelze smazat soubor. Restart přístroje může pomoci.
Smazat epizodu
+
+ - %d epizoda vybrána, %d stažení smazáno.
+ - %d epizody vybrány, %d stažení smazáno.
+ - %d epizod vybráno, %d stažení smazáno.
+ - %d epizod vybráno, %d stažení smazáno.
+
Odstranit příznak „nová“
Příznak „nová“ odstraněn
Označit jako poslechnuté
@@ -227,14 +253,24 @@
Probíhá stahování
Detaily
%1$s \n\nURL souboru:\n%2$s
+ Klikněte pro zobrazení detailů.
Úložné zařízení nenalezeno
+ Ve vašem zařízení není dostatek místa.
HTTP chyba
Neznámá chyba
+ Server podcastu odeslal nefunkční zdroj podcastu.
Nepodporovaný typ kanálu
+ Server podcastu odeslal webovou stránku místo podcastu.
+ Server podcastu nemůže najít soubor - pravděpodobně byl smazán.
Chyba spojení
+ Server nelze najít. Zkontrolujte, zda je adresa zadána správně a zda máte funkční síťové připojení.
Chyba přihlášení
Chyba typu souboru
+ Server podcastu nereaguje.
Stahování zrušeno
+ Před dokončením stahování došlo ke ztrátě připojení k serveru
+ Stahování bylo blokováno jinou aplikací ve vašem zařízení.
+ Nelze navázat zabezpečené připojení. To může znamenat, že stahování zablokovala jiná aplikace ve vašem zařízení nebo že něco není v pořádku s certifikáty serveru.
Stahování zrušeno\nVypnuto automatické stahování této položky
Stahování dokončeno s chybou
Automatické stahování dokončeno
@@ -249,6 +285,7 @@
- %d čekajících na stažení
- %d čekajících na stažení
+ Vypínání služby
Stahuji podcast data
Neznámý název
Kanál
@@ -282,6 +319,7 @@
Režim obraz v obraze
AntennaPod - Neznámý klíč médií: %1$d
Soubor nebyl nalezen
+ Položka neobsahuje mediální soubor
Zamknout frontu
Odemknout frontu
@@ -348,11 +386,13 @@
Externí elementy
Přerušení
Ovládání přehrávání
+ Změnit přiřazení hardwarových tlačítek
Vyhledávání…
Žádné výsledky
Vymazat historii
Přehrávač médií
Vyčistit epizody
+ Epizody, které by mělo být možné smazat, pokud bude funkce automatického stahování potřebovat místo pro nové epizody
Při odpojení sluchátek nebo bluetooth připojení pozastavit přehrávání.
Pokračovat v přehrávání po připojení sluchátek
Pokračovat v přehrávání po připojení bluetooth
@@ -384,6 +424,12 @@
Nastavit interval
Nastavit čas v průběhu dne
v %1$s
+
+ - Každou hodinu
+ - Každé %d hodiny
+ - Každých %d hodin
+ - Každých %d hodin
+
Kontinuální přehrávání
Sluchátka nebo Bluetooth odpojeno
Sluchátka připojena
@@ -417,6 +463,7 @@
Historie epizod
Celkový počet epizod stažených na zařízení. Automatické stahování se zastaví při dosažení této hodnoty.
Použít obrázek epizody
+ Použít v seznamu obrázek přímo z epizody, pokud je k dispozici. Není-li tato možnost zaškrtnuta, tak se vždy použije obrázek podcastu.
Zobrazit zbývající čas
Pokud je vybráno, zobrazí se zbývající čas epizody. Jinak se zobrazí celková délka epizody.
Použít systémové téma
@@ -471,6 +518,7 @@
Vypnuto
Velikost odkládací paměti obrázků
Velikost diskové paměti pro obrázky.
+ Dokumentace & Podpora
Uživatelské fórum
Nahlásit chybu
Otevřít systém pro sledování a hlášení chyb
@@ -613,6 +661,7 @@
Prohledat gpodder.net
Přihlásit
Přihlásit
+ Heslo a data nejsou šifrována!
Vytvořit účet
Uživatelské jméno
Heslo
diff --git a/core/src/main/res/values-da/strings.xml b/core/src/main/res/values-da/strings.xml
index cd8f66578..8346cba63 100644
--- a/core/src/main/res/values-da/strings.xml
+++ b/core/src/main/res/values-da/strings.xml
@@ -74,7 +74,6 @@
Forfatter(e)
Sprog
Webadresse
- Billede
Fejl
En fejl er opstået:
Tilladelse til lageradgang kræves for denne handling
@@ -92,7 +91,7 @@
Den nye Automatisk overførsel-indstilling vil automatisk blive anvendt på nye udsendelser.\nVil du også anvende den på tidligere udsendelser?
Slet udsendelser automatisk
Lydstyrkereduktion
- Skrug lyd ned for episoder i dette feed
+ Skrug lyd ned for episoder i dette feed: %1$s
Fra
Lidt
Meget
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index 6eb7bbec2..1dce04bb3 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -75,7 +75,7 @@
Autor(en)
Sprache
URL
- Bild
+ Cover
Fehler
Ein Fehler ist aufgetreten:
Für diese Funktion wird die Speicher-Berechtigung benötigt
@@ -84,6 +84,7 @@
Kapitel
Dauer: %1$s
Beschreibung
+ Shownotes
\u0020Episoden
Verarbeite
Schließen
@@ -93,7 +94,7 @@
Die neue Auto-Download-Einstellung wird automatisch auf neue Episoden angewandt.\nMöchtest du sie auch auf schon veröffentlichte Episoden anwenden?
Episode automatisch löschen
Lautstärke reduzieren
- Lautstärke reduzieren für Episoden aus diesem Podcast: %1$s
+ Lautstärke verringern für Episoden aus diesem Podcast: %1$s
Aus
Schwach
Stark
@@ -103,6 +104,7 @@
Nie
Senden…
Nie
+ Wenn nicht favorisiert
Wenn nicht in der Warteschlange
Wenn fertig gespielt
@@ -164,6 +166,8 @@
Nicht in Warteschlange
Hat Medien
Gefiltert
+ {fa-exclamation-circle} Letzte Aktualisierung fehlgeschlagen.
+Tippen, um Details anzuzeigen.
Podcast öffnen
Bitte warte, bis die Daten geladen sind
@@ -227,14 +231,24 @@
Download läuft
Details
%1$s \n\nDatei-URL:\n%2$s
+ Tippen, um Details anzuzeigen.
Speichermedium nicht gefunden
+ Der Speicherplatz auf deinem Gerät reicht nicht aus.
HTTP Datenfehler
Unbekannter Fehler
+ Der vom Podcast-Server übermittelte Feed ist defekt.
Nicht unterstützter Feed-Typ
+ Der Podcast-Server hat eine Webseite statt eines Podcasts gesendet.
+ Datei auf Podcast-Server nicht vorhanden. Sie könnte gelöscht worden sein.
Verbindungsfehler
+ Konnte den Server nicht finden. Prüfe ob die Adresse richtig geschrieben ist und Du mit dem Netzwerk verbunden bist.
Authentifizierungsfehler
Dateityp-Fehler
+ Der Podcast-Server lehnt eine Antwort ab.
Download abgebrochen
+ Die Serververbindung wurde unterbrochen bevor der Download fertiggestellt wurde
+ Der Download wurde von einer anderen App auf deinem Gerät blockiert.
+ Es kann keine sichere Verbindung hergestellt werden. Dies kann bedeuten, dass eine andere App auf deinem Gerät den Download blockiert oder dass etwas mit dem Zertifikat des Servers nicht stimmt.
Download abgebrochen\nAutomatischen Download für diese Episode deaktiviert
Downloads endeten mit Fehler(n)
Automatisches Herunterladen abgeschlossen
@@ -247,6 +261,7 @@
- %d Download übrig
- %d Downloads übrig
+ Dienst wird herunter gefahren
Lade Podcast-Daten
Unbekannter Titel
Feed
@@ -280,6 +295,7 @@
Bild-in-Bild-Modus
AntennaPod - Unbekannte Medientaste: %1$d
Datei nicht gefunden
+ Element enthält keine Mediendatei
Warteschlange sperren
Warteschlange entsperren
@@ -346,6 +362,7 @@
Externe Elemente
Unterbrechungen
Wiedergabesteuerung
+ Hardware-Tasten neu zuweisen
Suchen…
Keine Ergebnisse
Verlauf leeren
@@ -355,6 +372,10 @@
Wiedergabe pausieren, wenn Kopfhörer ausgesteckt oder Bluetooth getrennt wird
Wiedergabe fortsetzen, wenn Kopfhörer wieder eingesteckt werden
Wiedergabe fortsetzen, wenn Bluetooth wieder verbunden ist
+ Vorwärtstaste
+ Verhalten der Vorwärtstaste anpassen
+ Zurücktaste
+ Verhalten der Zurücktaste anpassen
Vorspulen
Zurückspulen
Episode überspringen
@@ -608,6 +629,7 @@
gpodder.net durchsuchen
Anmeldung
Anmelden
+ Passwort und Daten sind nicht verschlüsselt!
Konto anlegen
Benutzername
Passwort
@@ -820,11 +842,13 @@
Jetzt spielt
Erlaubt es, die Wiedergabe zu steuern. Dies ist die Hauptbenachrichtigung, die du siehst, während ein Podcast abgespielt wird.
Download fehlgeschlagen
+ Wird angezeigt, wenn der Download oder die Feed-Aktualisierung fehlschlägt.
Synchronisation fehlgeschlagen
Wird angezeigt, wenn die gpodder-Synchronisierung fehlschlägt.
Automatischer Download abgeschlossen
Wird angezeigt, wenn Episoden automatisch heruntergeladen worden sind.
Neue Episode
+ Wird angezeigt, wenn eine neue Episode eines Podcasts gefunden wurde, bei dem Benachrichtigungen aktiviert sind
Widget-Einstellungen
Widget erstellen
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
index b53359b2b..229e9b737 100644
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -28,6 +28,7 @@
Descargas
Notificaciones
+ \"%1$s\" no encontrado
Tiempo total de reproducción de episodios:
%1$d episodios iniciados de %2$d.\n\nReproducidos %3$s de %4$s.
@@ -74,7 +75,6 @@
Autor(es)
Idioma
URL
- Imagen
Error
Se produjo un error:
Se necesitan permisos de almacenamiento para esta operación
@@ -164,6 +164,7 @@
No en cola
Tiene multimedia
Filtrados
+ {fa-exclamation-circle} Error en la última actualización. Toca para ver detalles.
Abrir pódcast
Esperando a que los datos carguen
@@ -227,14 +228,24 @@
Descarga en curso
Detalles
%1$s \n\nURL de archivo:\n%2$s
+ Seleccione para ver detalles.
No se ha encontrado un dispositivo de almacenamiento
+ no hay espacio disponible en su dispositivo
Error de datos HTTP
Error desconocido
+ El servidor del host del podcast envió un canal de podcast roto.
Tipo de canal no admitido
+ El servidor del host del podcast envió un sitio web, no un podcast.
+ El servidor del host del podcast no sabe dónde encontrar el archivo. Es posible que se haya borrado.
Error de conexión
+ Servidor no encontrado. Verifique su conexión de red y que la dirección este escrita correctamente.
Error de autenticación
Tipo de archivo erróneo
+ El servidor del host del podcast se niega a responder.
Descarga cancelada
+ Descarga incompleta por perdida de conexión con el servidor.
+ Descargada bloqueada por otra aplicación en su dispositivo.
+ No se pudo establecer una conexión segura. Esto puede significar que otra aplicación de tu dispositivo ha bloqueado la descarga o que hay algún problema con los certificados del servidor.
Descarga cancelada\nSe desactivó la descarga automática en este elemento
Descargas completadas con error(es)
Descargas automáticas completadas
@@ -247,6 +258,7 @@
- Queda %d descarga
- Quedan %d descargas
+ Apagando servicio
Descargando datos del pódcast
Título desconocido
Canal
@@ -477,6 +489,7 @@
Deshabilitado
Tamaño del almacenamiento de imágenes
Tamaño del almacenamiento de imágenes en disco.
+ Documentación & Asistencia
Foro de usuario
Reportar bug
Abrir bug tracker
@@ -613,6 +626,7 @@
Buscar en gpodder.net
Iniciar sesión
Iniciar sesión
+ Clave de acceso y data no encriptadas.
Crear cuenta
Usuario
Contraseña
@@ -623,6 +637,7 @@
Seleccione el servidor
Cree un nuevo dispositivo para usar en su cuenta de gpodder.net o elija uno existente:
Nombre del dispositivo
+ AntennaPod en %1$s
El texto no puede estar en blanco
Dispositivos existentes
Crear dispositivo
diff --git a/core/src/main/res/values-et/strings.xml b/core/src/main/res/values-et/strings.xml
index 5a5c8c804..06f9b3a5a 100644
--- a/core/src/main/res/values-et/strings.xml
+++ b/core/src/main/res/values-et/strings.xml
@@ -75,7 +75,6 @@
Autor(id)
Keel
URL
- Pilt
Viga
Tekkis viga:
Selle tegevuse jaoks tuleb lubada salvestusruumi kasutamine
@@ -125,10 +124,15 @@
Laadimine…
Saadete teavitused
Teate kuvamine, kui avaldatakse uus saade.
+
+ - %2$s jaoks on uus saadet
+ - %2$s jaoks on %1$d uut saadet
+
- Uus saade
- Uued saated
+ Sinu tellitud kanalitel on uusi saateid.
Märgi kuulatuks
Märgi kõik saated kuulatuks
@@ -160,6 +164,7 @@
Pole järjekorras
On meediafaile
Filtreeritud
+ {fa-exclamation-circle} Viimane värskendamine ebaõnnestus. Puuduta üksikasjade jaoks.
Ava taskuhääling
Palun oota andmete laadimist
@@ -174,6 +179,10 @@
Kustuta
Faili ei saa kustutada. Aidata võib seadme taaskäivitamine.
Kustuta saade
+
+ - %d saade valitud, %d allalaadimine kustutatud.
+ - %d saadet valitud, %d allalaadimist kustutatud.
+
Eemalda silt \"uus\"
Eemaldati silt \"uus\"
Märgi kuulatuks
@@ -219,14 +228,24 @@
Allalaadimine on käimas
Üksikasjad
%1$s \n\nFaili URL:\n%2$s
+ Vajuta üksikasjade nägemiseks.
Salvestuskohta ei leitud
+ Sinu seadmes pole piisavalt ruumi.
HTTP andmete viga
Tundmatu tõrge
+ Taskuhäälingut hostiv server saatis vigase voo.
Toetamata uudisvoo tüüp
+ Taskuhäälingut hostiv server saatis veebilehe, mitte taskuhäälingu
+ Taskuhäälingut hostiv server ei leia faili. See võib olla kustutatud.
Ühenduse viga
+ Serverit ei leitud. Kontroll, kas aadress on kirjutatud õigesti ning kas internetiühendus töötab.
Autentimise viga
Failitüübi viga
+ Taskuhäälingut hostiv server keeldub vastamast.
Allalaadimine on tühistatud
+ Ühendus serveriga katkes enne allalaadimise lõppu
+ Allalaadimise blokeeris mingi teine rakendus sinu telefonis.
+ Turvalist ühendust pole võimalik luua. See võib tähendada, et mõni teine rakendus su seadmes blokeeris allalaadimise või on serveri sertifikaatidel midagi viga.
Allalaadimine tühistati\nKeelati selle saate automaatne allalaadimine
Allalaadimised lõpetati veaga (vigadega)
Automaatsed allalaadimised lõpetatud
@@ -239,6 +258,7 @@
- %d allalaadimine jäänud
- %d allalaadimist jäänud
+ Seade lülitub välja
Taskuhäälingu andmete allalaadimine
Tundmatu pealkiri
Uudisvoog
@@ -272,6 +292,7 @@
Pilt-pildis režiim
AntennaPod - Tundmatu meedia võti: %1$d
Faili ei leitud
+ Element ei sisalda meediafaili
Lukusta järjekord
Eemalda järjekorra lukustus
@@ -338,14 +359,24 @@
Välised elemendid
Katkestused
Esituse nupud
+ Muuda riistvara nuppude tegevus
Otsing...
Tulemusi pole
Puhasta ajalugu
Meediaesitaja
Saadete kustutamine
+ Saated, mida tohib kustutada, kui automaatne allalaadimine vajab ruumi uute saadete jaoks
Esitus pausitakse, kui kõrvaklapid või bluetooth eemaldatakse
Esitus jätkub, kui kõrvaklapid uuesti ühendatakse
Esitus jätkub kui bluetooth uuesti ühendub
+ Edasi nupp
+ Muuda edasi nupu tegevust
+ Tagasi nupp
+ Muuda tagasi nupu tegevust
+ Keri edasi
+ Keri tagasi
+ Jäta saade vahele
+ Alusta saadet algusest
Kui saade lõpeb, siis esita kohe järgmine järjekorras olev saade.
Kustuta saated, kui need on kuulatud
Automaatne kustutamine
@@ -366,6 +397,10 @@
Määra intervall
Määra aeg päevades
kell %1$s
+
+ - Üks kord tunnis
+ - Iga %d tunni tagant
+
Pidev esitamine
Peakomplekti või Bluetoothi lahti ühendamisel
Kõrvaklappide uuesti ühendamine
@@ -399,6 +434,9 @@
Saadete vahemälu
Seadme puhvrisse allalaaditud saadete koguarv. Automaatne allalaadimine peatub, kui selle numbrini jõutakse.
Kasuta saate kaanepilti
+ Kui võimalik, kasutatakse nimekirjades saate kaanepilti. Kui märkimata, kasutab rakendus alati taskuhäälingu kaanepilti.
+ Näita allesjäänud aega
+ Kui märgitud, kuvatakse saate alles jäänud aega. Kui märkimata, näidatakse saadete kogupikkust.
Kasuta süsteemi kujundust
Hele
Tume
@@ -451,6 +489,7 @@
Välja lülitatud
Piltide vahemälu suurus
Piltide jaoks kasutatava vahemälu suurus
+ Dokumentatsioon & tugi
Kasutajate foorum
Raporteeri veast
Ava vigade loetelu
@@ -468,6 +507,8 @@
Chromecast vajab kolmanda osapoole omanduslikke teeke, mis on selles AntennaPodi versioonis välja lülitatud
Järjekord allalaaditud
Allalaaditud saadete lisamine järjekorda
+ Sisseehitatud Androidi esitaja (aegunud)
+ Sonic meediaesitaja (aegunud)
ExoPlayer (soovitatud)
Vaheta ExoPlayerile
Vahetati ExoPlayerile.
@@ -556,6 +597,7 @@
Määra unetaimer
Keela unetaimer
+ +%d min
Unetaimer
Vigane sisend, aeg peab olema täisarv
Raputa uuesti alustamiseks
@@ -584,10 +626,21 @@
Otsi gpodder.net-ist
Logi sisse
Logi sisse
+ Parool ja andmed ei ole krüpteeritud!
+ Loo konto
Kasutajanimi
Parool
+ Gpodder.net on avatud lähtekoodiga sünkroniseerimise teenus, mis on sõltumatu AntennaPod projektist.
+ Ametlik gpodder.net server
+ Muu server
+ Hostinimi
+ Vali server
Loo oma gpodder.net konto jaoks uus seade või vali olemasolev:
+ Seadme nimi
+ AntennaPod %1$s seadmel
Pealkiri ei tohi olla tühi
+ Olemasolevad seadmed
+ Loo uus seade
Vali
Palju õnne! Sinu gpodder.net konto on nüüd lingitud sinu seadmega. AntennaPod süngib nüüdsest tellimused sinu seadmes gpodder.net-i kontoga.
Alusta kohe sünkroonimist
@@ -642,6 +695,7 @@
Vaheta lehti
Asukoht: %1$s
Vii ellu
+ Esita peatükk
Autentimine
Muuda kasutajanime ja parooli selle taskuhäälingu ja saadete jaoks.
@@ -776,14 +830,22 @@
Vastuvõtval esitajal esines tõsine viga
Tõrge meedia esitamisel. Jääb vahele...
+ Vead
+ Uudised
Vajalik on tegevus
Näidatakse, kui mingi tegevus on vajalik, näiteks tuleb sisestada parool.
Allalaadimine
Näidatakse allalaadimise ajal.
Praegu esitatakse
Võimaldab esitust juhtida. See on saate kuulamise ajal peamine teade.
+ Allalaadimine ebaõnnestus
+ Näita, kui allalaadimine või uudivoo uuendamine ebaõnnestus.
+ Sünkroonimine nurjus
Näidatakse, kui gpodder sünkroniseerimine ebaõnnestub.
+ Automaatne allalaadimine lõpetatud
Näita, kui saateid laaditi automaatselt alla.
+ Uus saade
+ Näita, kui leiti uus saade, kui teated on lubatud
Vidina seaded
Lisa vidin
diff --git a/core/src/main/res/values-eu/strings.xml b/core/src/main/res/values-eu/strings.xml
index 1c85c76f2..45f5a533f 100644
--- a/core/src/main/res/values-eu/strings.xml
+++ b/core/src/main/res/values-eu/strings.xml
@@ -75,7 +75,6 @@
Egilea(k)
Hizkuntza
URL
- Irudia
Errorea
Errorea gertatu da:
Biltegiratze baimenak behar dira hori egiteko
@@ -165,6 +164,7 @@
Ez dago ilaran
Media du
Iragaziak
+ {fa-exclamation-circle} Errorea azken eguneraketan. Sakatu xehetasunak ikusteko.
Ireki podcasta
Mesedez, itxaron datuak kargatu arte
@@ -228,14 +228,24 @@
Deskarga abian
Xehetasunak
%1$s \n\nartxibategiaren URL:\n%2$s
+ Sakatu xehetasunak ikusteko.
Ez da biltegiratze gailurik aurkitu
+ Ez dago nahikoa lekurik zure gailan.
HTTP datuen errorea
Errore ezezaguna
+ Podcast ostalariaren zerbitzariak hautsitako podcast iturria bidali du.
Kanal mota ez onartua
+ Podcast ostalariaren zerbitzariak webgune bat bidali du, ez podcast bat.
+ Podcast ostalariaren zerbitzariak ez daki non aurkitu fitxategia. Baliteke ezabatu izana.
Konexio errorea
+ Ezin da zerbitzaria aurkitu. Egiaztatu helbidea ondo idatzita dagoen eta lan egiten duen sareko konexiorik baduzun.
Egiaztatze errorea
Artxibategi motaren errorea
+ Podcast ostalariaren zerbitzariak ez du erantzun nahi.
Deskarga ezeztatua
+ Zerbitzariaren konexioa galdu egin da deskarga amaitu aurretik
+ Deskarga zure gailuko beste aplikazio batek blokeatu du.
+ Ezin da konexio segururik ezarri. Horrek esan nahi du zure gailuko beste aplikazio batek deskarga blokeatu duela edo zerbitzariaren ziurtagiriekin zerbait gaizki dagoela.
Deskarga ezeztatua\aktibatu da Auto deskarga elementu honetan
Deskarga(k) osatu d(ir)a errorea(k) d(it)uela
Deskargatu automatikoak osatuta
@@ -248,6 +258,7 @@
- %d deskarga zain
- %d deskarga zain
+ Zerbitzua itzaltzen
Podcastaren datuak deskargatzen
Izenburu ezezaguna
Kanala
@@ -617,6 +628,7 @@
Bilatu gpodder.net-en
Hasi saioa
Hasi saioa
+ Pasahitza eta datuak ez daude enkriptaturik!
Kontua sortu
Erabioltzailea
Pasahitza
diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml
index 0ac22655c..1b5fc573e 100644
--- a/core/src/main/res/values-fa/strings.xml
+++ b/core/src/main/res/values-fa/strings.xml
@@ -71,7 +71,6 @@
مؤلف(ها)
زبان
URL
- تصویر
خطا
یک خطا رخ داد:
دسترسی حافظه برای انجام این عملیات مورد نیاز است
diff --git a/core/src/main/res/values-fi/strings.xml b/core/src/main/res/values-fi/strings.xml
index 4f4ebdf18..bf083ec89 100644
--- a/core/src/main/res/values-fi/strings.xml
+++ b/core/src/main/res/values-fi/strings.xml
@@ -65,7 +65,6 @@
Tekijä(t)
Kieli
URL
- Kuva
Virhe
Tapahtui virhe:
Tallennustilan valtuutus tarvitaan tähän operaatioon.
@@ -529,7 +528,7 @@
Lataa seuraava sivu
Autentikaatio
- Vaihda käyttäjätunnut ja salasana tälle podcastille ja sen jaksoille.
+ Vaihda käyttäjätunnus ja salasana tälle podcastille ja sen jaksoille.
Automaattisen latauksen asetukset
Jakson filtterit
Lista termeistä joilla valitaan jakso automaattiseen lataukseen
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
index 15d38f963..4330aa6e9 100644
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -75,7 +75,6 @@
Auteur(s)
Langue
Lien
- Image
Erreur
Une erreur a eu lieu :
L\'autorisation d\'utiliser le stockage est requis pour cette opération
@@ -83,7 +82,7 @@
Aucun stockage externe n\'est disponible. Merci de connecter un volume de stockage externe pour que l\'application puisse fonctionner correctement.
Chapitres
Durée : %1$s
- Description
+ Notes
\u0020épisodes
Traitement en cours
Fermer
@@ -105,7 +104,7 @@
Jamais
Quand pas un favori
Quand pas dans la liste de lecture
- Après avoir terminé
+ Après avoir été écouté
- 1 heure après avoir été écouté
- %d heures après avoir été écouté
@@ -165,6 +164,7 @@
Pas dans la liste de lecture
Avec média
Filtré
+ {fa-exclamation-circle} La dernière mise à jour a échoué. Taper pour plus de détails.
Ouvrir le podcast
Merci d\'attendre la fin du téléchargement des données
@@ -228,14 +228,24 @@
Téléchargement en cours
Détails
%1$s \n\nLien du fichier :\n%2$s
+ Taper pour plus de détails.
Volume de stockage non trouvé
+ Espace insuffisant sur l\'appareil.
Erreur de données HTTP
Erreur inconnue
+ Le serveur du podcast a retourné un flux ne fonctionnant pas.
Type de flux non géré
+ Le serveur du podcast retourne un site web au lieu d\'un podcast.
+ Le serveur du podcast ne trouve pas le fichier. Il est possible qu\'il ne soit plus disponible.
Erreur de connexion
+ Serveur introuvable. Vérifier que l\'adresse soit correcte et que la connexion fonctionne.
Erreur d\'authentification
Erreur format de fichier
+ Le serveur du podcast refuse de répondre.
Téléchargement annulé
+ La connexion au serveur a été coupée avant la fin du téléchargement
+ Le téléchargement a été bloqué par une application sur l\'appareil.
+ Impossible d\'établir une connexion sécurisée. Une application sur l\'appareil bloque peut-être le téléchargement ou le certificat du serveur peut avoir un problème.
Téléchargement annulé\n Téléchargement Automatique désactivé pour cet élément
Téléchargements terminés avec des erreurs
Téléchargement automatique terminé
@@ -248,7 +258,8 @@
- %d téléchargement restant
- %d téléchargements restants
- Téléchargement des données du podcast
+ Service en cours de fermeture
+ Téléchargement des podcasts
Titre inconnu
Flux
Fichier média
@@ -315,7 +326,7 @@
Aucun épisode dans la liste de lecture
Pour ajouter un épisode, téléchargez le ou faites une pression longue dessus et taper sur \"Ajouter à la liste de lecture\".
- Aucune notes pour cet épisode.
+ Aucune note ou description pour cet épisode.
Aucun téléchargement en cours
Vous pouvez télécharger des épisodes à partir du détail d\'un podcast.
Aucun épisode téléchargé
@@ -348,7 +359,7 @@
Eléments externes
Interruptions
Contrôle de lecture
- Réaffectation des boutons
+ Paramétrage des boutons
Chercher...
Aucun résultat
Effacer l\'historique
@@ -358,15 +369,15 @@
Interrompre la lecture quand les écouteurs ou le bluetooth sont déconnectés
Reprendre la lecture quand des écouteurs sont branchés
Reprendre la lecture quand le Bluetooth se reconnecte
- Bouton Episode Suivant
- Définir le comportement du bouton \"épisode suivant\"
- Bouton Episode Précédent
- Définir le comportement du bouton \"épisode précédent\"
+ Bouton Saut Avant
+ Définir le comportement du bouton \"saut avant\"
+ Bouton Saut Arrière
+ Définir le comportement du bouton \"saut arrière\"
Saut Avant
Saut Arrière
- Sauter l\'épisode
+ Passer l\'épisode
Redémarrer l\'épisode
- Après la fin d\'un épisode, passer au suivant
+ Après la fin d\'un épisode, lire le suivant dans la liste de lecture
Supprimer l\'épisode quand la lecture est finie
Suppression automatique
Les épisodes seront marqués comme lus même s\'il reste quelques secondes pour les finir
@@ -423,9 +434,9 @@
Nombre d\'épisodes stockés
Nombre maximum d\'épisodes stockés sur l\'appareil. Le téléchargement automatique sera suspendu si ce nombre est atteint.
Image des épisodes
- Lorsqu\'elles existent, utiliser pour les listes les images propres aux épisodes au lieu de celle du podcast. Sinon l\'image du podcast sera toujours utilisé.
+ Utiliser dans les listes les images des épisodes. Sinon l\'image du podcast sera utilisée.
Afficher la durée restante
- Pour les épisodes, montrer la durée restant à lire à la place de la durée totale.
+ Montrer la durée restant à lire des épisodes au lieu de la durée totale.
Thème du système
Clair
Sombre
@@ -478,7 +489,7 @@
Désactivé
Taille du cache de l\'image
Taille de l’espace de stockage temporaire des images.
- Documentation & Support
+ Documentation et support
Forum des utilisateurs
Signaler un bug
Ouvrir le suivi des bugs
@@ -615,6 +626,7 @@
Chercher sur gpodder.net
Se connecter
Connexion
+ Le mot de passe et les données ne sont pas cryptés !
Créer un compte
Identifiant
Mot de passe
@@ -823,7 +835,7 @@
Action requise
S\'affiche si une action est requise. Par exemple, un mot de passe à saisir.
Téléchargement en cours
- S\'affiche lorsqu\'un téléchargement est en cours.
+ S\'affiche lors du téléchargement d\'épisodes ou des données des podcasts.
Lecture en cours
Permet de contrôler la lecture. C\'est la notification principale pendant la lecture d\'un podcast.
Erreur de téléchargement
@@ -833,7 +845,7 @@
Fin du téléchargement automatique
S\'affiche lorsque des épisodes ont été téléchargés automatiquement.
Nouveaux épisodes
- S\'affiche quand de nouveaux épisodes sont disponible et que les notifications ont été activées
+ S\'affiche quand de nouveaux épisodes sont disponible pour les podcasts dont la notification a été activée
Préférences des widgets
Créer un widget
diff --git a/core/src/main/res/values-gl/strings.xml b/core/src/main/res/values-gl/strings.xml
index 4bd82858c..d9fce2aa8 100644
--- a/core/src/main/res/values-gl/strings.xml
+++ b/core/src/main/res/values-gl/strings.xml
@@ -75,7 +75,6 @@
Autor(es)
Idioma
URL
- Imaxe
Fallo
Produciuse un fallo:
Precísase o permiso de almacenamento para esta operación
@@ -165,6 +164,7 @@
Fora da cola
Ten multimedia
Filtrado
+ {fa-exclamation-circle} A última Actualización fallou. Toca para ver detalles.
Abrir podcast
Agarda ata que se carguen os datos
@@ -228,14 +228,24 @@
Descarga en proceso
Detalles
%1$s\n\nURL do ficheiro:\n %2$s
+ Toca para ver detalles.
Non se atopou dispositivo de almacenamento
+ Non queda espazo abondo no teu dispositivo.
Fallo de datos HTTP
Fallo descoñecido
+ O servidor que hospeda o podcast enviou unha fonte do podcast incompleta.
Tipo de fonte non admitida
+ O servidor que hospeda o podcast é un sitio web, non un podcast.
+ O servidor que hospeda o podcast non sabe onde se atopa o ficheiro. Pode que fose eliminado.
Fallo na conexión
+ Non se atopa o servidor. Comproba que o enderezo é correcto e que tes conexión á rede.
Fallo na autenticación
Fallo no tipo de ficheiro
+ O servidor que hospeda o podcast non responde.
Descarga cancelada
+ Perdeuse a conexión co servidor antes de completar a descarga
+ A descarga foi bloqueada por outra app no teu dispositivo.
+ Non se estableceu unha conexión segura. Pode significar que outra app no teu dispositivo bloqueou a descarga, ou que algo non é correcto nos certificados do servidor.
Descarga cancelada\nDesactivouse a Descarga Automática para este elemento
Descargas completadas con erro(s)
Descarga automática completada
@@ -248,6 +258,7 @@
- %d descarga restante
- %d descargas restantes
+ Apagando o servizo
Descargando datos do podcast
Título descoñecido
Fonte
@@ -615,6 +626,7 @@
Buscar en gpodder.net
Conexión
Conexión
+ O contrasinal e os datos non están cifrados!
Crear conta
Nome de usuaria
Contrasinal
diff --git a/core/src/main/res/values-hu/strings.xml b/core/src/main/res/values-hu/strings.xml
index 3333c5ae3..b185fced2 100644
--- a/core/src/main/res/values-hu/strings.xml
+++ b/core/src/main/res/values-hu/strings.xml
@@ -71,7 +71,6 @@
Szerző(k)
Nyelv
URL
- Kép
Hiba
Hiba történt:
A művelethez tároló jogosultság szükséges
diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml
index 730623a0d..fa3542524 100644
--- a/core/src/main/res/values-it/strings.xml
+++ b/core/src/main/res/values-it/strings.xml
@@ -75,7 +75,6 @@
Autore(i)
Lingua
URL
- Immagine
Errore
È stato rilevato un errore:
Questa operazione richiede l\'accesso alla memoria
diff --git a/core/src/main/res/values-iw/strings.xml b/core/src/main/res/values-iw/strings.xml
index b1857dabf..e688b1e1f 100644
--- a/core/src/main/res/values-iw/strings.xml
+++ b/core/src/main/res/values-iw/strings.xml
@@ -75,7 +75,6 @@
יוצרים
שפה
כתובת
- תמונה
שגיאה
אירעה שגיאה:
נדרשת הרשאה לאחסון כדי לבצע פעולה זו
@@ -177,6 +176,7 @@
לא בתור
יש מדיה
מסונן
+ {fa-exclamation-circle} הרענון האחרון נכשל. נגיעה לפרטים נוספים.
פתיחת פודקאסט
נא להמתין לסיום טעינת הנתונים
@@ -252,14 +252,24 @@
הורדה מתבצעת
פרטים
%1$s \n\nכתובת הקובץ:\n%2$s
+ יש לגעת כדי להציג עוד פרטים.
התקן האחסון לא נמצא
+ לא נשאר מספיק מקום במכשיר שלך.
שגיאת נתוני HTTP
שגיאה לא ידועה
+ השרת של מארח הפודקאסטים שלח הזנת פודקאסטים פגומה.
סוג ההזנה אינו נתמך
+ השרת של מארח הפודקאסטים שלח אתר במקום פודקאסט.
+ השרת של מארח הפודקאסטים לא יודע איפה למצוא את הקובץ. יכול להיות שהוא נמחק.
שגיאת חיבור
+ לא ניתן לאתר את השרת. יש לבדוק אם הכתובת הוקלדה כראוי ושחיבור הרשת שלך תקין.
שגיאת אימות
שגיאת סוג קובץ
+ השרת של מארח הפודקאסט מסרב להגיב.
הורדה בוטלה
+ החיבור לשרת אבד לפני השלמת ההורדה
+ ההורדה נחסמה על ידי יישומון אחר במכשיר שלך.
+ לא ניתן ליצור חיבור מאובטח. יכול להיות שיישומון אחר במכשיר שלך חסם את ההורדה או שמשהו השתבש באישורי השרת.
ההורדה בוטלה\nההורדה האוטומטית הושבתה עבור פריט זה
הורדות הושלמו עם שגיאה אחת או יותר
ההורדות האוטומטיות הושלמו
@@ -274,6 +284,7 @@
- נותרו %d הורדות
- נותרו %d הורדות
+ השירות נכבה
נתוני הפודקאסט מתקבלים
כותרת לא ידועה
הזנה
@@ -649,6 +660,7 @@
חיפוש ב־gpodder.net
כניסה
כניסה
+ הססמה והנתונים אינם מוצפנים!
יצירת חשבון
שם משתמש
ססמה
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
index f052d8f02..a3758aa7b 100644
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -18,6 +18,7 @@
ログ
購読
購読リスト
+ ダウンロードをキャンセル
再生履歴
gpodder.net
gpodder.net ログイン
@@ -25,11 +26,14 @@
エピソードキャッシュが制限に達しました。設定でキャッシュサイズを増やすことができます。
再生
ダウンロード
+ 通知
+ %1$sが見つかりません
%2$d から %1$d のエピソードが開始しました。\n\n%4$s から%3$s を再生しました。
統計情報モード
実際に再生された時間を計算します。 2回再生すると2回カウントされ、再生済のマークはカウントされません
+ 再生済みとマークされたすべてのポッドキャストを集計する
注意: 再生速度は考慮されません。
統計情報のデータをリセット
これにより、すべてのエピソードを再生した期間の履歴が消去されます。 続行しますか?
@@ -65,7 +69,6 @@
作者
言語
URL
- 映像
エラー
エラーが発生しました。
この操作にはストレージのアクセス許可が必要です
@@ -99,7 +102,16 @@
- 完了 %d 日後
+
+ - %d選択された
+
+
+ - %dエピソード
+
さらに読み込んでいます…
+
+ - 新エピソード
+
すべて再生済としてマーク
すべてのエピソードを再生済にしました
@@ -114,6 +126,8 @@
ポッドキャスト設定
ポッドキャストの名前を変更
ポッドキャストを削除
+ 共有
+ 共有…
ファイルを共有
ポッドキャスト \"%1$s\" とすべての(ダウンロード済を含む)エピソードを削除することを確認してください。
ポッドキャストを削除しています
@@ -211,6 +225,7 @@
モバイルデータ接続でのダウンロードは設定で無効になっています。\n\n一時的に有効にしますか?\n\n選択は 10 分間記憶されます。
モバイルストリーミングの確認
モバイルデータ接続を介したストリーミングは設定で無効になっています。 タップするととにかくストリーミングします。
+ 常に
キューに追加するだけ
一時的に有効にする
@@ -283,6 +298,7 @@
ストレージ
エピソードの自動削除、インポート、エクスポート
プロジェクト
+ 同期
自動
詳細
インポート/エクスポート
diff --git a/core/src/main/res/values-ko/strings.xml b/core/src/main/res/values-ko/strings.xml
index 569877cf3..b442daeeb 100644
--- a/core/src/main/res/values-ko/strings.xml
+++ b/core/src/main/res/values-ko/strings.xml
@@ -75,7 +75,6 @@
저자
언어
URL
- 사진
오류
오류가 발생했습니다:
이 동작에 대해 저장소 권한이 필요합니다
diff --git a/core/src/main/res/values-lt/strings.xml b/core/src/main/res/values-lt/strings.xml
index a55a193c7..e2017a1f4 100644
--- a/core/src/main/res/values-lt/strings.xml
+++ b/core/src/main/res/values-lt/strings.xml
@@ -65,7 +65,6 @@
Autorius (-iai)
Kalba
URL
- Paveikslėlis
Klaida
Įvyko klaida:
Šiam veiksmui atlikti reikalingas laikmenos prieigos leidimas
diff --git a/core/src/main/res/values-nb/strings.xml b/core/src/main/res/values-nb/strings.xml
index bf8c9cae6..8142c1e78 100644
--- a/core/src/main/res/values-nb/strings.xml
+++ b/core/src/main/res/values-nb/strings.xml
@@ -71,7 +71,6 @@
Forfatter(e)
Språk
URL
- Bilde
Feil
Det oppsto en feil:
Lagringstillatelse er nødvendig for denne operasjonen
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
index 48ce0c5e2..1368d15e7 100644
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -75,7 +75,6 @@
Maker(s)
Taal
URL
- Beeld
Fout
Er is een fout opgetreden:
Recht vereist voor gebruik van opslag
@@ -165,6 +164,7 @@
Niet in de wachtrij
Bevat media
Gefilterd
+ {fa-exclamation-circle} Vorige verversing mislukt - druk voor meer informatie.
Podcast openen
Wacht tot de gegevens geladen zijn
@@ -228,14 +228,24 @@
Bezig met downloaden
Details
%1$s \n\nURL van bestand:\n%2$s
+ Druk voor meer informatie.
Opslagmedium niet aangetroffen
+ Er is onvoldoende ruimte op je apparaat.
HTTP-gegevensfout
Onbekende fout
+ De hostserver heeft een beschadigde podcastfeed doorgegeven.
Niet-ondersteunde feedsoort
+ De hostserver heeft een website doorgegeven.
+ De hostserver kan het bestand niet vinden - mogelijk is het verwijderd.
Verbindingsfout
+ De server kan niet worden bereikt. Controleer het adres en je internetverbinding.
Authenticatiefout
Bestandssoortfout
+ De hostserver reageert niet.
Download afgebroken
+ De serververbinding werd verbroken voordat de download kon worden afgerond
+ Het downloaden is geblokkeerd door een andere app.
+ Er kan geen beveiligde verbinding worden opgezet. Mogelijk blokkeert een andere app de download of is er een probleem met de servercertificaten.
Download afgebroken\nAutomatisch downloaden uitgeschakeld voor deze aflevering
Downloads afgerond, maar met fout(en)
Automatisch downloaden afgerond
@@ -248,6 +258,7 @@
- Nog %d download
- Nog %d downloads
+ De dienst wordt afgesloten
Bezig met downloaden van podcastgegevens
Onbekende titel
Feed
@@ -615,6 +626,7 @@
gpodder.net doorzoeken
Inloggen
Inloggen
+ Het wachtwoord en de gegevens zijn onversleuteld!
Account aanmaken
Gebruikersnaam
Wachtwoord
diff --git a/core/src/main/res/values-pl/strings.xml b/core/src/main/res/values-pl/strings.xml
index bada1af58..15821a9b8 100644
--- a/core/src/main/res/values-pl/strings.xml
+++ b/core/src/main/res/values-pl/strings.xml
@@ -18,6 +18,7 @@
Dziennik
Subskrypcje
Lista subskrypcji
+ Anuluj pobieranie
Historia odtwarzania
gpodder.net
gpodder.net login
@@ -27,6 +28,7 @@
Pobrane
Powiadomienia
+ Nie odnaleziono \"%1$s\"
Całkowity czas odtwarzania podcastów:
%1$d z %2$d odcinków rozpoczęto.\n\nOdtworzono %3$s z %4$s.
@@ -54,6 +56,8 @@
Brak
Nie znaleziono kompatybilnych aplikacji
+ Eksportuj szczegółowe logi
+ Szczegółowe logi mogą zawierać wrażliwe dane, takie jak listę twoich subskrypcji
Otwórz w przeglądarce
Kopiuj adres
@@ -71,7 +75,7 @@
Autorzy
Język
URL
- Obraz
+ Okładka
Błąd
Wystąpił błąd:
Wymagane uprawnienie dostępu do pamięci w celu ukończenia tej operacji
@@ -80,6 +84,7 @@
Rozdziały
Czas trwania: %1$s
Opis
+ Opis odcinka
\u0020odcinków
Przetwarzanie
Zamknij
@@ -93,11 +98,13 @@
Wyłączona
Średnia
Silna
+ %1$d równoległych pobierań
Globalnie domyślnie
Zawsze
Nigdy
Wyślij...
Nigdy
+ Gdy nie oznaczone jako ulubione
Kiedy nie są w kolejce
Po odtworzeniu
@@ -118,7 +125,28 @@
- %d zaznaczono
- %d zaznaczono
+
+ - %d odcinek
+ - %d odcinki
+ - %d odcinków
+ - %d odcinków
+
Ładowanie więcej...
+ Powiadomienia odcinka
+ Pokaż powiadomienie gdy nowy odcinek jest udostępniony
+
+ - %2$s ma nowy odcinek
+ - %2$s ma nowe odcinki
+ - %2$s ma nowe odcinki
+ - %2$s ma %1$d nowych odcinków
+
+
+ - Nowy odcinek
+ - Nowe odcinki
+ - Nowe odcinki
+ - Nowe odcinki
+
+ Twoje subskrypcje mają nowe odcinki
Oznacz wszystkie jako odtworzone
Wszystkie odcinki zaznaczono jako odtworzone
@@ -150,6 +178,7 @@
Nie w kolejce
Ma media
Przefiltrowany
+ {fa-exclamation-circle} Ostatnie odświeżanie nie powiodło się. Naciśnij, aby zobaczyć szczegóły
Otwórz Podcast
Proszę czekać aż dane zostaną załadowane
@@ -166,6 +195,12 @@
Usuń
Nie można usunąć pliku. Restart urządzenia może w tym pomóc.
Usuń odcinek
+
+ - %d odcinek wybrano, %d pobrany usunięto
+ - %d odcinki wybrano, %d pobrane usunięto
+ - %d odcinków wybrano, %d pobranych usunięto
+ - %d odcinków wybrano, %d pobranych usunięto
+
Usuń flagę \"nowy\"
Usunięto flagę \"nowy\"
Oznacz jako odtworzone
@@ -220,14 +255,24 @@
Szczegóły
%1$s \n\nAdres pliku:\n%2$s
+ Naciśnij, aby zobaczyć szczegóły
Nie znaleziono urządzenia docelowego
+ Brak wystarczającej ilości wolnego miejsca na twoim urządzeniu.
Błąd danych HTTP
Nieznany błąd
+ Serwer podcastu wysłał uszkodzony plik kanału.
Nieobsługiwany typ kanału
+ Serwer podcastu wysłał adres strony, a nie podcast.
+ Serwer podcastu nie może znaleźć pliku. Mógł zostać usunięty.
Błąd połączenia
+ Nie można znaleźć serwera. Sprawdź czy adres jest wpisany poprawnie i czy jest połączenie z internetem.
Błąd autoryzacji
Błąd rodzaju pliku
+ Serwer podcastu nie odpowiada.
Pobieranie anulowane
+ Połączenie z serwerem zostało zerwane przed ukończeniem pobierania.
+ Pobieranie zostało zablokowane przez inną aplikację na twoim urządzeniu.
+ Nie można ustanowić bezpiecznego połączenia. Może to oznaczać, że inna aplikacja na twoim urządzeniu zablokowała pobieranie, lub coś jest nie tak z certyfikatami serwera.
Pobieranie zatrzymane\nWyłączone Automatyczne pobieranie dla tego elementu
Pobieranie ukończone
Automatyczne pobieranie ukończone
@@ -242,6 +287,7 @@
- %d elementów zostało do pobrania
- %d elementów zostało do pobrania
+ Zamykanie usługi
Pobieranie danych podcastu
Nieznany tytuł
Kanał
@@ -275,6 +321,7 @@
Tryb obraz w obrazie
AntennaPod - Nieznany klawisz: %1$d
Nie znaleziono pliku
+ Element nie zawiera pliku multimedialnego
Zablokuj Kolejkę
Odblokuj Kolejkę
@@ -341,14 +388,24 @@
Elementy zewnętrzne
Przerwy
Sterowanie odtwarzaniem
+ Przypisz przyciski sprzętowe
Szukaj…
Brak wyników
Wyczyść historię
Odtwarzacz
Usuwanie odcinków
+ Odcinki, spełniające warunki do usunięcia jeżeli Automatyczne Pobieranie potrzebuje miejsca na nowe odcinki
Wstrzymaj odtwarzanie po rozłączeniu słuchawek lub Bluetooth
Wznów odtwarzanie kiedy słuchawki zostaną podłączone ponownie
Wznów odtwarzanie po przywróceniu połączenia Bluetooth
+ Przycisk \'do przodu\'
+ Dostosuj przycisk \'do przodu\'
+ Przycisk \'wstecz\'
+ Dostosuj przycisk \'wstecz\'
+ Przewijanie do przodu
+ Przewijanie do tyłu
+ Pomiń odcinek
+ Zrestartuj odcinek
Przeskocz do następnego elementu kolejki po zakończeniu odtwarzania
Usuń odcinek kiedy jego odtwarzanie zostanie zakończone
Automatyczne usuwanie
@@ -369,6 +426,12 @@
Ustaw częstotliwość
Ustaw czas dnia
o %1$s
+
+ - Co godzinę
+ - Co %d godziny
+ - Co %d godzin
+ - Co %d godzin
+
Odtwarzanie ciągłe
Rozłączenie słuchawek lub Bluetooth
Słuchawki podłączone ponownie
@@ -402,6 +465,9 @@
Pamięć podręczna odcinków
Całkowita liczba odcinków zapisanych na urządzeniu. Automatyczne pobieranie zostanie przerwane, jeśli zostanie ona osiągnięta.
Użyj okładek odcinków
+ Użyj okładek konkretnych odcinków na listach, kiedy to możliwe. Odznaczenie spowoduje, że aplikacja zawsze będzie używała okładki kanału.
+ Pokaż pozostały czas
+ Pokazuj pozostały czas odcinka. Odznaczenie spowoduje pokazywanie całkowitej długości odcinka.
Użyj motywu systemowego
Jasny
Ciemny
@@ -454,6 +520,7 @@
Wyłączone
Pamięć podręczna obrazów
Rozmiar przestrzeni na dysku dla pamięci podręcznej obrazów
+ Dokumentacja & Wsparcie
Forum użytkowników
Zgłoś błąd
Otwórz bugtracker
@@ -471,6 +538,8 @@
Chromecast wymagadodatkowych bibliotek, które są zablokowane w tej wersji AntennaPod
Kolejkuj pobrane
Dodaj pobrane odcinki do kolejki
+ Wbudowany odtwarzacz Androida (przestarzały)
+ Odtwarzacz mediów Sonic (przestarzały)
ExoPlayer (rekomendowany)
Zmień na ExoPlayer
Zmieniono na ExoPlayer
@@ -559,6 +628,7 @@
Ustaw czas do wyłączenia
Wyłącz wyłącznik czasowy
+ +%d min
Wyłącznik czasowy
Błąd wpisu, czas musi być liczbą całkowitą
Potrząśnij, aby zresetować
@@ -593,10 +663,21 @@
Szukaj na gpodder.net
Login
Login
+ Hasło i dane nie są zaszyfrowane!
+ Utwórz konto
Nazwa użytkownika
Hasło
+ Gpodder.net to serwis open-source do synchronizacji podcastów, nie powiązany z projektem AntennaPod.
+ Oficjalny serwer gpodder.net
+ Dowolny serwer
+ Nazwa hosta
+ Wybierz serwer
Utwórz nowe urządzenie dla swojego konta na gpodder.net lub wybierz istniejące:
+ Nazwa urządzenia
+ AntennaPod na %1$s
Pole nie może być puste
+ Istniejące urządzenia
+ Utwórz urządzenie
Wybierz
Gratulacje! Twoje konto na gpodder.net jest połączone z urządzeniem. AntennaPod będzie automatycznie synchronizować subskrypcje na urządzeniu z kontem na gpodder.net.
Rozpocznij synchronizację
@@ -651,6 +732,7 @@
Zamień strony
Pozycja: %1$s
Zastosuj
+ Odtwarzaj rozdział
Autoryzacja
Zmień swoją nazwę użytkownika oraz hasło dla tego podcastu i jego odcinków
@@ -785,14 +867,22 @@
Urządzenie odbierające napotkało poważny problem
Błąd podczas odtwarzania, pomijanie...
+ Błędy
+ Powiadomienia
Wymagana akcja
Pokazywane, gdy wymagane jest twoje działanie, na przykład jeśli musisz wpisać hasło.
Pobieranie
Pokazywane podczas aktywnego pobierania.
Teraz odtwarzane
Pozwala na kontrolowanie odtwarzania. To jest główne powiadomienie, które zobaczysz podczas odtwarzania podcastu.
+ Błąd pobierania
+ Pokazywane, gdy wystąpi błąd pobierania lub aktualizacji.
+ Błąd synchronizacji
Pokazywane, gdy synchronizacja z gpodder się nie powiedzie.
+ Automatyczne pobieranie ukończone
Pokazywane, gdy odcinki zostały pobrane automatycznie
+ Nowy odcinek
+ Pokazywane, gdy pojawi się nowy odcinek podcastu, gdzie włączono powiadomienia
Ustawienia widżetu
Dodaj widżet
diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml
index 2cfe826e9..088618c98 100644
--- a/core/src/main/res/values-pt-rBR/strings.xml
+++ b/core/src/main/res/values-pt-rBR/strings.xml
@@ -73,7 +73,6 @@
Autor(es)
Idioma
URL
- Capa
Erro
Um erro ocorreu:
Permissão de armazenamento necessária para essa operação
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
index 0c56ddc1f..3101b77d6 100644
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -75,7 +75,6 @@
Autor(es)
Idioma
URL
- Imagem
Erro
Ocorreu um erro:
Tem que permitir o acesso ao armazenamento para esta operação
@@ -228,11 +227,15 @@
Descarga atual
Detalhes
%1$s \n\Ficheiro URL:\n%2$s
+ Toque para ver detalhes
Cartão SD não encontrado
+ Não existe espaço suficiente no seu aparelho
Erro HTTP
Erro desconhecido
Fonte não suportada
+ O servidor anfitrião do podcast enviou uma página web e não um podcast.
Erro de ligação
+ Não é possível encontrar o servidor. Confirme se endereço está correcto e se tem ligação à Internet.
Erro de autenticação
Erro do tipo de ficheiro
Descarga cancelada
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
index 5a6ba094d..924be8ef1 100644
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -34,11 +34,11 @@
%1$d из %2$d выпусков начато.\n\nПрослушано %3$s из %4$s.
Режим подсчета статистики
Рассчитывать длительность действительного воспроизведения. Повторное воспроизведение засчитывается, а отметка о прослушивании — нет
- Прибавлять все эпизоды, отмеченные как прослушанные
+ Прибавлять также все эпизоды, отмеченные как прослушанные
Замечание: Скорость воспроизведения не учитывается никогда.
Сбросить статистику
Вы уверены, что хотите стереть историю прослушивания?
- Поскольку %s,\n вы играли
+ С%s,\n воспроизведено
Общий размер выпусков на устройстве:
@@ -56,8 +56,8 @@
Ничего
Совместимых приложений не найдено
- Экспортировать подробные логи
- Подробные логи могут содержать конфиденциальные данные, такие как перечень ваших подписок
+ Экспортировать подробные журналы
+ Подробные журналы могут содержать личные сведения, такие как перечень ваших подписок
Открыть в браузере
Скопировать ссылку
@@ -75,7 +75,6 @@
Автор(ы)
Язык
Ссылка
- Обложка
Ошибка
Произошла ошибка:
Для выполнения этой операции нужно разрешить доступ к хранилищу
@@ -92,12 +91,12 @@
Применить к предыдущим выпускам
Новые настройки Автозагрузки будут автоматически применены к новым выпускам. \nХотите ли вы применить их к ранее опубликованным выпускам?
Автоматически удалить выпуск
- Уменьшение громкости
- Уменьшать громкость выпусков этого канала: %1$s
- Выключено
- Слабое
- Сильное
- %1$d одновременных загрузок
+ Приглушение
+ Приглушать выпуски с этого канала: %1$s
+ Нет
+ Слабо
+ Сильно
+ %1$d совместных загрузок
По умолчанию для всех
Всегда
Никогда
@@ -120,9 +119,9 @@
- Выбрано: %d
- - Выбрано: %d
- - Выбрано: %d
- - Выбрано: %d
+ - Выбраны: %d
+ - Выбраны: %d
+ - Выбраны: %d
- %d выпуск
@@ -131,8 +130,8 @@
- %d выпусков
Загружается…
- Уведомление о новом выпуске
- Показывать уведомление при появлении новых выпусков
+ Уведомления о новых выпусках
+ Показывать уведомление при появлении новых выпусков.
- %2$s: новый выпуск
- %2$s: %1$d новых выпуска
@@ -141,8 +140,8 @@
- Новый выпуск
- - Новые выпуски
- - Новые выпуски
+ - Новых выпуска
+ - Новых выпусков
- Новые выпуски
В списке Ваших подписок появились новые выпуски
@@ -177,6 +176,7 @@
Не в очереди
С файлами
Отфильтровано
+ {fa-exclamation-circle} Последнее обновление не удалось. Подробнее...
Открыть подкаст
Подождите, пока загружаются данные
@@ -252,14 +252,24 @@
Загрузка в процессе
Подробнее
%1$s \n\nСсылка на файл:\n%2$s
+ Подробнее...
Устройство хранения не найдено
+ На устройстве не осталось места.
Ошибка данных HTTP
Неизвестная ошибка
+ Сервер подкаста прислал негодный файл канала.
Неподдерживаемый тип канала
+ Сервер подкаста прислал сайт вместо подкаста.
+ Сервер подкаста не может найти запрошенный файл. Возможно он был удалён.
Ошибка соединения
+ Сервер не найден. Проверьте правильность указанного адреса и имеется ли подключение к сети.
Ошибка авторизации
Ошибка типа файла
+ Сервер подкаста отказывает в ответе.
Загрузка отменена
+ Соединение с сервером было оборвано до завершения загрузки.
+ Загрузке препятствует другое приложение на устройстве.
+ Невозможно установить защищённое соединение. Возможно загрузке препятствует другое приложение либо что-то не так с сертификатом сервера.
Загрузка отменена\n Автозагрузка отключена для этого выпуска
Загрузки завершились с ошибкой
Автозагрузка завершена
@@ -274,6 +284,7 @@
- Осталось %d загрузок
- Осталось %d загрузок
+ Сервис завершает работу
Получение данных подкаста
Неизвестное название
Канал
@@ -336,8 +347,8 @@
Плагин не установлен
Чтобы изменять скорость воспроизведения, рекомендуем включить встроенный проигрыватель Sonic.
Включить Sonic
- Пресеты
- %1$.2fx уже сохранен как пресет.
+ Заготовки
+ %1$.2fx такая заготовка уже есть.
Нет выпусков в очереди
Добавьте выпуск, загрузив его, или после долгого нажатия на выпуск выберите «Добавить в очередь».
@@ -380,7 +391,7 @@
Очистить историю
Проигрыватель
Удаление выпусков
- Выпуски, которые должны быть доступны для удаления, если автозагрузке потребуется пространство для новых выпусков
+ Выпуски, подлежащие удалению, если для автозагрузки потребуется место для новых выпусков
Поставить на паузу, когда наушники или Bluetooth отключены
Продолжать воспроизведение после подключения наушников
Возобновить, когда восстановится Bluetooth-соединение
@@ -393,7 +404,7 @@
Пропустить выпуск
Повторить выпуск
После завершения воспроизведения перейти к следующему в очереди
- Удалять выпуск после воспроизведения
+ Удалять выпуск по окончании воспроизведения
Автоматическое удаление
Отмечать выпуски как прослушанные, даже если до завершения остается некоторое время
Отметка «Прослушанное» до окончания
@@ -524,9 +535,9 @@
Для работы Chromecast требуются собственнические библиотеки третьей стороны, которые не включены в данную версию AntennaPod
Добавлять загруженные в очередь
Добавлять загруженные выпуски в очередь
- Встроенный Android плеер (устарело)
- Sonic Media Player (устарело)
- ExoPlayer (рекомендовано)
+ Встроенный Android (устарел)
+ Sonic Media Player (устарел)
+ ExoPlayer (рекомендован)
Переключить на ExoPlayer
Переключено на ExoPlayer.
Пропускать участки тишины
@@ -548,19 +559,19 @@
Убирать удаленные из очереди
Автоматически убирать выпуск из очереди при его удалении.
Фильтр подписок
- Отфильтруйте свои подписки на панели навигации и на экране подписок.
+ Фильтруйте свои подписки на панели навигации и экране подписок.
Ничего
- Подписки отфильтрованы
- Счетчик больше нуля
- Авто загружено
- Не авто загружено
- Постоянно обновляется
- Не постоянно обновляется
+ Подписки отфильтрованы.
+ Ненулевой счётчик подписок
+ С автозагрузкой
+ Без автозагрузки
+ Обновляемые
+ Не обновляемые
О программе
Версия AntennaPod
Участники
- Каждый может сделать свой вклад в улучшение AntennaPod — с помощью кода, перевода или помогая пользователям на форуме
+ Любой может сделать AntennaPod лучше — своим кодом, переводом или помогая пользователям на форуме
Разработчики
Переводчики
Особая благодарность
@@ -647,24 +658,25 @@
Лучшее
Рекомендации
Искать на gpodder.net
- Войти
+ Вход
Войти
- Создать аккаунт
+ Пароль и данные не зашифрованы!
+ Создать учётную запись
Имя пользователя
Пароль
- Gpodder.net - сервис управления подкастами с отрытым исходным кодом независящий от проекта AntennaPod.
+ Gpodder.net — сервис синхронизации подкастов с открытым исходным кодом не связанный с проектом AntennaPod.
Официальный сервер gpodder.net
Свой сервер
- Имя хоста
+ Имя узла
Выберите сервер
- Создайте новое устройство, чтобы использовать ваш аккаунт на gpodder.net или выберите существующее:
+ Создайте новое устройство, в своей учётной записи gpodder.net или выберите имеющееся:
Название устройства
AntennaPod на %1$s
Обязательно заполнить
Существующие устройства
Создать устройство
Выберите
- Поздравляем! Ваш аккаунт на gpodder.net теперь связан с вашим устройством. AntennaPod теперь сможет автоматически синхронизировать ваши подписки с аккаунтом gpodder.net
+ Поздравляем! Ваша учётная запись gpodder.net связана с устройством. AntennaPod будет автоматически синхронизировать Ваши подписки с учётной записью gpodder.net.
Начать синхронизацию
Перейти на главный экран
Ошибка авторизации на gpodder.net
@@ -825,15 +837,15 @@
Только ExoPlayer
Тип
- Хост
+ Узел
Порт
(необязательно)
Проверить
Проверка…
Проверка пройдена
Проверка не пройдена
- Обязательно укажите хост
- Неверный адрес или домен хоста
+ Обязательно укажите узел
+ Неверный адрес или домен узла
Неверный порт
Количество колонок
diff --git a/core/src/main/res/values-sk/strings.xml b/core/src/main/res/values-sk/strings.xml
index 163ea7dac..c34bb4053 100644
--- a/core/src/main/res/values-sk/strings.xml
+++ b/core/src/main/res/values-sk/strings.xml
@@ -74,7 +74,6 @@
Autor(i)
Jazyk
Odkaz
- Obrázok
Chyba
Vyskytla sa chyba:
Pre túto operáciu je potrebné povolenie prístupu k úložisku
diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml
index 51965977f..86d504011 100644
--- a/core/src/main/res/values-sv/strings.xml
+++ b/core/src/main/res/values-sv/strings.xml
@@ -75,7 +75,6 @@
Författare
Språk
URL
- Bild
Fel
Ett fel inträffade:
Lagringtillstånd behövs för denna åtgärd
@@ -133,6 +132,7 @@
- Nya Episoder
- Nya Episoder
+ Dina prenumerationer har nya episoder.
Markera alla som spelade
Markera alla episoder som spelade
@@ -164,6 +164,7 @@
Inte köade
Har media
Filtrerad
+ {fa-exclamation-circle} Senaste uppdateringen misslyckades. Tryck för att visa detaljer.
Öppna podcast
Vänta tills datan laddats
@@ -227,14 +228,24 @@
Nedladdning pågår
Detaljer
%1$s \n\nFil-URL:\n%2$s
+ Tryck för att visa detaljer.
Hittade ingen lagringsenhet
+ Det finns inte tillräckligt med utrymme kvar på enheten.
HTTP data fel
Okänt fel
+ Podcastens server svarade med ett trasigt flöde.
Flödestypen stöds inte
+ Podcastens server svarade med en webbplats, inte en podcast.
+ Podcastens server kunde inte hitta filen. Den kan ha tagits bort.
Anslutningsfel
+ Kunde inte hitta servern. Kontrollera att adressen är korrekt och att nätverksanslutningen fungerar.
Autentiseringsfel
Filtypsfel
+ Podcastens server svarade inte.
Nedladdning avbruten
+ Serveranslutningen förlorades innan nedladdningen var klar.
+ Nedladdningen blockerades av en annan app på enheten.
+ Kunde inte etablera en säker anslutning. Detta kan betyda att en annan app på din enhet har blockerat nedladdningen eller att något är fel på serverns certifikat.
Nedladdning avbruten\nStängde av Automatisk nedladdning för detta föremål
Nedladdningar avslutades med fel
Automatiska nedladdningar klara
@@ -247,6 +258,7 @@
- %d nedladdning kvar
- %d nedladdningar kvar
+ Tjänsten avslutas
Laddar ner podcastdata
Okänd titel
Flöde
@@ -614,6 +626,7 @@
Sök på gpodder.net
Inloggning
Logga in
+ Lösenord och data är inte krypterade!
Skapa konto
Användarnamn
Lösenord
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
index bcaf0a3fb..5a6609b18 100644
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -2,7 +2,7 @@
Abonelikleri güncelle
- Podcasts
+ Podcast\'ler
İstatistikler
Cep yayını ekle
Bölümler
@@ -18,27 +18,29 @@
Günlük
Abonelikler
Abonelik Listesi
+ İndirmeyi iptal et
Çalma geçmişi
gpodder.net
gpodder.net giriş
Bölüm önbelleği dolu
Bölüm önbelleği limitine ulaşıldı. Ayarlardan önbellek limitini arttırabilirsiniz.
Playback
- Downloads
- Notifications
+ İndirilenler
+ Bildirimler
+ \"%1$s\" bulunamadı
- Total time of episodes played:
+ Oynatılan bölümlerin toplam süresi:
%1$d out of %2$d episodes started.\n\nPlayed %3$s out of %4$s.
İstatistik modu
- Calculate duration that was actually played. Playing twice is counted twice, while marking as played is not counted
+ Gerçek oynatılan süreyi hesaplayın. Oynatıldı olarak işaretlemeler sayılmazken, iki kez oynatılan iki kez sayılır
Sum up all episodes marked as played
- Notice: Playback speed is never taken into account.
- Reset statistics data
- This will erase the history of duration played for all episodes. Are you sure you want to proceed?
+ Uyarı: Oynatma hızı asla hesaba katılmaz.
+ İstatistik verilerini sıfırla
+ Bu işlem, tüm bölümler için oynanan süre geçmişini siler. Devam etmek istediğinizden emin misiniz?
Since %s,\nyou played
- Total size of episodes on the device:
+ Cihazdaki bölümlerin toplam boyutu
Münüyü aç
Menüyü kapat
@@ -53,7 +55,9 @@
İndirilen bölümlerin sayısı
Hiçbiri
- No compatible apps found
+ Uyumlu uygulama bulunamadı
+ Ayrıntılı günlükleri dışa aktar
+ Ayrıntılı günlükler, abonelik listeniz gibi hassas bilgiler içerebilir
Tarayıcıda aç
URL\'yi kopyala
@@ -71,7 +75,6 @@
Yazar(lar)
Dil
URL
- Resim
Hata
Bir hata oluştu:
Bu işlem için depolama izni gerekli
@@ -113,6 +116,12 @@
- %d selected
Loading more…
+ Bölüm Bildirimleri
+
+ - Yeni Bölüm
+ - Yeni Bölümler
+
+ Aboneliklerinize ait yeni bölümler var.
Hepsini oynatıldı olarak işaretle
Tüm bölümleri oynatıldı olarak işaretle
@@ -127,16 +136,16 @@
Cepyayın ayarları
Cepyayını yeniden adlandır
Cepyayını kaldır
- Share
- Share…
+ Paylaş
+ Paylaş
Dosyayı paylaş
- Website address
+ Websitesini paylaş
Podcast feed URL
Please confirm that you want to delete the podcast \"%1$s\" and ALL its episodes (including downloaded episodes).
Please confirm that you want to remove the podcast \"%1$s\". The files in the local source folder will not be deleted.
Cepyayını kaldırılıyor
Tüm Cepyayınını yenile
- Multi select
+ Çoklu seçim
Üsttekilerin tümünü seç
Alttakilerin tümünü seç
Oynatılmadı
@@ -144,6 +153,7 @@
Kuyrukta değil
Medya var
Filtrelendi
+ {fa-exclamation-circle} Son Yenileme başarısız oldu. Ayrıntıları görüntülemek için dokunun.
Cep yayını aç
Please wait until the data is loaded
@@ -203,9 +213,12 @@
İndiriliyor
Detaylar
%1$s \n\nFile URL:\n%2$s
+ Ayrıntıları görüntülemek için dokunun.
Depolama aygıtı bulunamadı
+ Cihazınızda yeterli alan kalmadı.
HTTP Veri Hatası
Bilinmeyen Hata
+ Podcast kaynağının sunucusu bozuk bir podcast yayını gönderdi.
Desteklenmeyen Besleme türü
Baplantı hatası
Yetkilendirme hatası
@@ -330,6 +343,9 @@
Kulaklıklar çıkarıldığında veya bluetooth bağlantısı kesildiğinde çalmayı duraklat
Kulaklıklar yeniden bağlandığında çalmaya devam et
Bluetooth yeniden bağlandığında çalmaya devam et
+ İleri Düğmesi
+ Bölümü Atla
+ Bölümü Yeniden Oynat
Çalma tamamlandığında kuyruktaki diğer öğeye geç
Çalma bittiğinde bölümü sil
Otomatik Silme
@@ -760,14 +776,18 @@
Receiver player has encountered a severe error
Error playing media. Skipping…
+ Hatalar
+ Haberler
Action required
Shown if your action is required, for example if you need to enter a password.
Downloading
Shown while currently downloading.
Currently playing
Allows to control playback. This is the main notification you see while playing a podcast.
+ İndirme başarısız
Shown when gpodder synchronization fails.
Shown when episodes have been automatically downloaded.
+ Yeni Bölüm
Widget settings
Create widget
diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml
index 3a5c0910a..e67168111 100644
--- a/core/src/main/res/values-uk/strings.xml
+++ b/core/src/main/res/values-uk/strings.xml
@@ -17,11 +17,13 @@
Журнал
Підписки
Перелік підписок
+ Відмінити завантаження
Історія
gpodder.net
Автентифікуватися на gpodder.net
Кеш епізодів заповнений
Досягнута межа розміру кешу епізодів. Розмір кешу можна збільшити в налаштуваннях.
+ Сповіщення
%1$d з %2$d епізодів почато.\n\nПрослухано %3$s з %4$s.
@@ -31,6 +33,7 @@
Cкинути статистику
Це зітре історію тривалості відтворення всіх епізодів. Ви впевнені, що хочете продовжити?
+ Загальний розмір епізодів на пристрої:
Показати меню
Сховати меню
@@ -62,7 +65,6 @@
Автор(и)
Мова
Посилання
- Зображення
Помилка
Трапилась помілка:
Для цієї операції потрібен дозвіл на доступ до пам’яті
@@ -109,6 +111,7 @@
Налаштування подкасту
Перейменувати подкаст
Видалити подкаст
+ Поділитися
Поділитися файлом
Будь ласка, підтвердіть що ви бажаєте видалити подкаст \"%1$s\" і ВСІ його епізоди (разом з завантаженими).
Видалення подкасту
@@ -622,4 +625,5 @@
Створити віджет
Непрозорість
+ Налаштування успішно оновлено.
diff --git a/core/src/main/res/values-zh-rCN/strings.xml b/core/src/main/res/values-zh-rCN/strings.xml
index 5846db831..c5fd83ffd 100644
--- a/core/src/main/res/values-zh-rCN/strings.xml
+++ b/core/src/main/res/values-zh-rCN/strings.xml
@@ -75,7 +75,6 @@
作者(们)
语言
链接地址
- 图片
错误
出错:
此操作需要存储权限。
@@ -159,6 +158,7 @@
不在播放列表中
包含媒体文件
已过滤的
+ {fa-exclamation-circle} 上次刷新失败了。轻按查看详情
打开播客
请等待数据加载完成
@@ -216,14 +216,24 @@
下载中
详细信息
%1$s \n\nFile URL:\n%2$s
+ 轻按查看详情
没有找到存储设备
+ 你的设备上剩余空间不足
HTTP 数据错误
未知错误
+ 播客主机的服务器发送了一个损坏的播客源。
未提供的订阅类型
+ 播客主机的服务器发送的是一个网站,不是播客。
+ 播客主机的服务器不知道去哪里找到文件。它可能被删除了。
链接错误
+ 找不到服务器。检查地址是否输入正确,以及网络连接是否正常。
认证错误
文件类型错误
+ 播客主机的服务器拒绝响应。
已取消下载
+ 在完成下载之前,服务器连接丢失
+ 下载被你设备上的另一个应用程序阻止了。
+ 无法建立安全连接。这可能意味着你设备上的另一个应用程序阻止了下载,或者服务器证书有问题。
已取消下载\n对该曲目禁用自动下载
下载完成
自动下载完成
@@ -235,6 +245,7 @@
- 剩余%d个下载项
+ 服务关闭
下载播客数据
未知标题
订阅
@@ -599,6 +610,7 @@
搜索 gpodder.net
登录
登录
+ 密码和数据没有加密!
创建账户
用户名
密码
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
index c207455d5..89f19e3d1 100644
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -18,6 +18,7 @@
日誌
訂閱
訂閱列表
+ 取消下載
播放歷史
gpodder.net
登入 gpodder.net
@@ -54,6 +55,8 @@
沒有
找不到相容的 App
+ 匯出詳細記錄
+ 詳細記錄中可能包含您的隱私資訊,例如訂閱列表等等
在瀏覽器中打開
複製網址
@@ -71,7 +74,6 @@
作者
語言
網址
- 圖片
錯誤
發生錯誤:
此操作需要儲存空間權限
@@ -93,11 +95,13 @@
關閉
輕
重
+ 同時一次下載 %1$d 集
預設值
總是
不予下載
發送中…
不予刪除
+ 若未標記為最愛
若未列入待播清單
聽完後
@@ -110,6 +114,15 @@
- 選取了 %d 集
載入更多…
+ 單集通知
+ 當新單集推出時顯示通知訊息
+
+ - %2$s 發表了 %1$d 則新單集
+
+
+ - 新單集
+
+ 您訂閱的 Podcast 推出新單集了。
全部標記為已播放
全部標記為已播放
@@ -141,6 +154,7 @@
未列入待播清單
包含媒體
已過濾
+ {fa-exclamation-circle} 前次更新失敗,點擊查閱詳情。
打開 Podcast
資料載入中,請稍候
@@ -195,9 +209,12 @@
下載中
詳情
%1$s \n\n檔案網址:\n%2$s
+ 點擊查閱詳情。
沒找到儲存空間
+ 您設備的儲存空間不夠了。
HTTP 資料有誤
位置錯誤
+ Podcast 主機傳了錯誤的資料過來。
不支援此來源類型
連接錯誤
驗證失敗
@@ -313,6 +330,7 @@
外部元素
中斷
播放控制
+ 設定硬體按鈕功能
搜尋…
無結果
清除歷史紀錄
@@ -321,6 +339,14 @@
耳機或藍牙斷開連接時暫停播放
當耳機再次連接時繼續播放
當藍牙再次連接時繼續播放
+ 快轉鈕
+ 自訂快轉鈕的功能
+ 倒轉鈕
+ 自訂倒轉鈕的功能
+ 快轉
+ 倒轉
+ 跳過這集
+ 重新播放
當播放完畢時自動跳至待播清單中的下一集
播放完畢後刪除該集
自動刪除
@@ -341,6 +367,9 @@
設定週期
設定每日定時
於 %1$s
+
+ - 每 %d 時
+
連續播放
耳機或藍牙裝置拔除時
接上耳機時繼續播放
@@ -374,6 +403,9 @@
暫存集數
在本機中可以暫存的集數,若達上限則將停止自動下載。
使用單集的封面圖
+ 在單集有專屬封面的情況下使用該封面圖。如果取消,則一律使用 Podcast 的封面圖
+ 顯示剩餘時間
+ 勾選時顯示剩餘播放時間,不勾選時顯示單集的總時間。
依據系統設定
淡色
深色
@@ -426,6 +458,7 @@
停用
圖片快取容量
設定圖片的快取容量
+ 文件與支援資訊
使用者論壇
回報錯誤
開啟錯誤追蹤
@@ -443,6 +476,8 @@
Chromecast 相關支援需要其他第三方的私權軟體,所以在此版 AntennaPod 中停用。
下載後加入待播清單
下載單集以後自動加入待播清單
+ 內建 Android 播放器 (已棄用)
+ Sonic Media Player (已棄用)
ExoPlayer(推薦使用)
切換至 ExoPlayer
已切換至 ExoPlayer
@@ -531,6 +566,7 @@
設定睡眠定時
停用睡眠定時
+ +%d 分鐘
睡眠定時
輸入無效,請輸入數值
晃動手機以重置計時
@@ -556,10 +592,20 @@
搜尋 gpodder.net
登入
登入
+ 密碼與資料都沒有加密!
+ 建立帳號
帳號
密碼
+ Gpodder.net 是開放源碼的 Podcast 同步服務,並非 AntennaPod 專案的一部分。
+ gpodder.net 官方主機
+ 自訂主機
+ 主機名稱
+ 選擇主機
為您的 gpodder.net 帳號建立新設備或選取既有設備:
+ 裝置名稱
標題不能留白
+ 現存裝置
+ 新增裝置
選擇
恭喜,您的 gpodder.net 帳號已經成功連結到當前的設備!AntennaPod 今後將自動與 gpodder.net 同步此設備的訂閱清單。
現在開始同步
@@ -614,6 +660,7 @@
切換不同頁面
播放進度:%1$s
套用
+ 播放章節
驗證
修改此 Podcast 的帳號與密碼。
@@ -748,14 +795,22 @@
Cast 播放器發生錯誤
播放錯誤,跳過此項…
+ 錯誤
+ 新單集到
需要介入
需要您有進一步行動(比方說輸入密碼)時顯示。
下載資訊
下載時顯示
現正播放
允許播放控制。這是您在播放 Podcast 時會看到的主要通知。
+ 下載失敗
+ 當下載或更新出錯時顯示。
+ 同步失敗
在 gpodder 同步發生錯誤時顯示
+ 自動下載完畢
自動下載後顯示
+ 新單集
+ 啟用通知的情形下,有新單集上架時顯示通知訊息
小工具設定
建立小工具
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 5228fd148..6b7ea2be4 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -88,7 +88,7 @@
Author(s)
Language
URL
- Picture
+ Cover
Error
An error occurred:
Storage permission is needed for this operation
@@ -97,6 +97,7 @@
Chapters
Duration: %1$s
Description
+ Shownotes
\u0020episodes
Processing
Close
diff --git a/core/src/play/java/de/danoeh/antennapod/core/cast/CastUtils.java b/core/src/play/java/de/danoeh/antennapod/core/cast/CastUtils.java
index 248f6dc46..e87161d75 100644
--- a/core/src/play/java/de/danoeh/antennapod/core/cast/CastUtils.java
+++ b/core/src/play/java/de/danoeh/antennapod/core/cast/CastUtils.java
@@ -206,6 +206,7 @@ public class CastUtils {
if (!imageList.isEmpty()) {
imageUrl = imageList.get(0).getUrl().toString();
}
+ String notes = metadata.getString(KEY_EPISODE_NOTES);
result = new RemoteMedia(media.getContentId(),
metadata.getString(KEY_EPISODE_IDENTIFIER),
metadata.getString(KEY_FEED_URL),
@@ -216,11 +217,8 @@ public class CastUtils {
imageUrl,
metadata.getString(KEY_FEED_WEBSITE),
media.getContentType(),
- metadata.getDate(MediaMetadata.KEY_RELEASE_DATE).getTime());
- String notes = metadata.getString(KEY_EPISODE_NOTES);
- if (!TextUtils.isEmpty(notes)) {
- ((RemoteMedia) result).setNotes(notes);
- }
+ metadata.getDate(MediaMetadata.KEY_RELEASE_DATE).getTime(),
+ notes);
Log.d(TAG, "Converted MediaInfo into RemoteMedia");
}
if (result.getDuration() == 0 && media.getStreamDuration() > 0) {
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
index b38f8586d..169146c07 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
@@ -11,6 +11,7 @@ import androidx.documentfile.provider.AssetsDocumentFile;
import androidx.documentfile.provider.DocumentFile;
import androidx.test.platform.app.InstrumentationRegistry;
+import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -67,6 +68,7 @@ public class LocalFeedUpdaterTest {
// Initialize environment
context = InstrumentationRegistry.getInstrumentation().getContext();
UserPreferences.init(context);
+ PlaybackPreferences.init(context);
Application app = (Application) context;
ClientConfig.applicationCallbacks = mock(ApplicationCallbacks.class);