From 89a3cc8f08b638126d3ef2194443141871f0df32 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 26 Nov 2024 23:16:47 +0100 Subject: [PATCH] Support plurals for strings reported on Weblate (#7521) --- .../actionbutton/DownloadActionButton.java | 4 ++-- ui/i18n/src/main/res/values/strings.xml | 23 +++++++++++++++---- .../feed/FeedStatisticsFragment.java | 13 +++++++---- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java index 4a3545f21..5413d6369 100644 --- a/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java +++ b/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java @@ -57,8 +57,8 @@ public class DownloadActionButton extends ItemActionButton { long timeSinceBypass = System.currentTimeMillis() / 1000 - bypassCellularNetworkWarningTimer; boolean shouldBypass = timeSinceBypass < TIMEOUT_NETWORK_WARN_SECONDS; if (shouldBypass && bypassCellularNetworkType == BYPASS_TYPE_NOW) { - Toast.makeText(context, context.getString( - R.string.mobile_download_notice, TIMEOUT_NETWORK_WARN_SECONDS / 60), Toast.LENGTH_LONG).show(); + Toast.makeText(context, context.getResources().getQuantityString(R.plurals.mobile_download_notice, + TIMEOUT_NETWORK_WARN_SECONDS / 60, TIMEOUT_NETWORK_WARN_SECONDS / 60), Toast.LENGTH_LONG).show(); } if (NetworkUtils.isEpisodeDownloadAllowed() || shouldBypass) { DownloadServiceInterface.get().downloadNow(context, item, bypassCellularNetworkType == BYPASS_TYPE_NOW); diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml index b88cb13b8..6ce7b5d26 100644 --- a/ui/i18n/src/main/res/values/strings.xml +++ b/ui/i18n/src/main/res/values/strings.xml @@ -321,7 +321,10 @@ Your VPN app pretends to be a mobile network (metered connection). Downloading over mobile data connection is disabled in the settings. If you want this problem to be fixed, contact the creators of your VPN app. Download later Download anyway - Downloading over mobile data connection for the next %d minutes + + Downloading over mobile data connection for the next %d minute + Downloading over mobile data connection for the next %d minutes + Confirm mobile streaming Streaming over mobile data connection is disabled in the settings. Tap to stream anyway. Always @@ -737,10 +740,20 @@ Keep updated Include this podcast when (auto-)refreshing all podcasts Auto download is disabled in the main AntennaPod settings - started - total - played - downloaded + + started + started + + + total + total + + + downloaded + downloaded + + total + played space taken release schedule next episode (estimate) diff --git a/ui/statistics/src/main/java/de/danoeh/antennapod/ui/statistics/feed/FeedStatisticsFragment.java b/ui/statistics/src/main/java/de/danoeh/antennapod/ui/statistics/feed/FeedStatisticsFragment.java index 08e70b643..16bf06ed5 100644 --- a/ui/statistics/src/main/java/de/danoeh/antennapod/ui/statistics/feed/FeedStatisticsFragment.java +++ b/ui/statistics/src/main/java/de/danoeh/antennapod/ui/statistics/feed/FeedStatisticsFragment.java @@ -153,21 +153,24 @@ public class FeedStatisticsFragment extends Fragment { StatisticsItem s = p.first; viewBinding.episodesStarted.mainLabel.setText(getResources() .getQuantityString(R.plurals.num_episodes, (int) s.episodesStarted, s.episodesStarted)); - viewBinding.episodesStarted.subtitleLabel.setText(R.string.statistics_episodes_started); + viewBinding.episodesStarted.subtitleLabel.setText(getResources() + .getQuantityString(R.plurals.statistics_episodes_started, (int) s.episodesStarted)); viewBinding.episodesTotal.mainLabel.setText(getResources() .getQuantityString(R.plurals.num_episodes, (int) s.episodes, s.episodes)); - viewBinding.episodesTotal.subtitleLabel.setText(R.string.statistics_episodes_total); + viewBinding.episodesTotal.subtitleLabel.setText(getResources() + .getQuantityString(R.plurals.statistics_episodes_total, (int) s.episodes)); viewBinding.playbackTime.mainLabel.setText(Converter.shortLocalizedDuration(getContext(), s.timePlayed)); - viewBinding.playbackTime.subtitleLabel.setText(R.string.statistics_episodes_played); + viewBinding.playbackTime.subtitleLabel.setText(R.string.statistics_time_played); viewBinding.durationTotal.mainLabel.setText(Converter.shortLocalizedDuration(getContext(), s.time)); - viewBinding.durationTotal.subtitleLabel.setText(R.string.statistics_episodes_total); + viewBinding.durationTotal.subtitleLabel.setText(R.string.statistics_time_total); viewBinding.episodesDownloaded.mainLabel.setText(getResources() .getQuantityString(R.plurals.num_episodes, (int) s.episodesDownloadCount, s.episodesDownloadCount)); - viewBinding.episodesDownloaded.subtitleLabel.setText(R.string.statistics_episodes_downloaded); + viewBinding.episodesDownloaded.subtitleLabel.setText(getResources() + .getQuantityString(R.plurals.statistics_episodes_downloaded, (int) s.episodesDownloadCount)); viewBinding.spaceDownloaded.mainLabel.setText(Formatter.formatShortFileSize(getContext(), s.totalDownloadSize)); viewBinding.spaceDownloaded.subtitleLabel.setText(R.string.statistics_episodes_space);