From 094a3af8aef1f16e46a184a4079432ec7408cc0f Mon Sep 17 00:00:00 2001 From: trmdi Date: Fri, 22 Sep 2017 15:53:50 +0000 Subject: [PATCH 01/22] Translated using Weblate (Vietnamese) Currently translated at 68.2% (140 of 205 strings) --- app/src/main/res/values-vi/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index af4216e42..3d7166d84 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -5,7 +5,7 @@ Không tìm thấy trình phát. Bạn có muốn cài đặt VLC? Cài đặt Hủy - Mở trong teinhf duyệt + Mở trong trình duyệt Mở trong chế độ popup Chia sẻ Tải về @@ -179,4 +179,8 @@ Ngôn ngữ nội dung ưu tiên Video & Âm thanh Bật lên + Lịch sử + Lịch sử + Danh sách + Không tìm thấy From cb5e37184a165d7f1ad0fde4f37f66586b3c8e79 Mon Sep 17 00:00:00 2001 From: nailyk Date: Fri, 22 Sep 2017 17:35:09 +0000 Subject: [PATCH 02/22] Translated using Weblate (French) Currently translated at 100.0% (205 of 205 strings) --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 87b78f68e..063afe594 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -188,7 +188,7 @@ À propos Licences tierces Impossible de charger la licence - Ouvrir le site web + Ouvrir le site À propos Contributeurs Licences From 4a4b1e0e495a0bfb200c4b339a778380378b2a23 Mon Sep 17 00:00:00 2001 From: Mikas Date: Sat, 23 Sep 2017 21:42:33 +0000 Subject: [PATCH 03/22] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (205 of 205 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b1aa26283..3340d24a6 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -95,7 +95,7 @@ Não foi possível interpretar completamente o site Miniatura do vídeo Isto é uma transmissão ao vivo, a qual ainda não é suportada. - Toque em busca para começar + Toque em pesquisar para começar Arquivo já existe Threads URL inválida ou internet indisponível @@ -233,8 +233,8 @@ abrir em modo popup Nenhum video - %s video - %s videos + %s vídeo + %s vídeos Item excluído From 2c8dd9ce2a2dd5310c9fda32e18360599f118894 Mon Sep 17 00:00:00 2001 From: Jona Abdinghoff Date: Mon, 25 Sep 2017 06:27:38 +0000 Subject: [PATCH 04/22] Translated using Weblate (German) Currently translated at 99.5% (204 of 205 strings) --- app/src/main/res/values-de/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e25dc099e..d863d8114 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -254,4 +254,8 @@ Die meisten Sonderzeichen Element gelöscht - +Fortsetzen beim erneuten fokussieren + Player + Nichts hier außer Grillen + + From efa262480ae7171af448d157b896e9c24aee3b2d Mon Sep 17 00:00:00 2001 From: Anton Shestakov Date: Tue, 26 Sep 2017 10:57:36 +0000 Subject: [PATCH 05/22] Translated using Weblate (Russian) Currently translated at 97.5% (200 of 205 strings) --- app/src/main/res/values-ru/strings.xml | 37 ++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 372ee9435..115f7eaf7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -79,7 +79,7 @@ Ошибка Ваш комментарий (на английском): Невозможно создать папку для загрузки \'%1$s\' - Автоматически воспроизводить при открытии из другого приложения + Воспроизводить автоматически Автоматически воспроизводить видео при вызове NewPipe из другого приложения Контент Видео с возрастными ограничениями. Разрешить подобный контент можно в настройках. @@ -223,4 +223,37 @@ История пуста История очищена - +Плеер + Поведение + История + Плейлист + Отменить + + Нет результатов + Тут только сверчки + + Нет подписчиков + + %s подписчик + %s подписчика + %s подписчиков + + + + Нет просмотров + + %s просмотр + %s просмотра + %s просмотров + + + + Нет видео + + %s видео + %s видео + %s видео + + + + From 60879351a925c1d6671ccbd45fc98c1f50f91b3d Mon Sep 17 00:00:00 2001 From: Coffeemakr Date: Sun, 8 Oct 2017 17:37:02 +0200 Subject: [PATCH 06/22] Code improvement and logging --- .../org/schabi/newpipe/util/StateSaver.java | 93 ++++++++++++++----- 1 file changed, 72 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StateSaver.java b/app/src/main/java/org/schabi/newpipe/util/StateSaver.java index bd268abf7..51dceddf3 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StateSaver.java +++ b/app/src/main/java/org/schabi/newpipe/util/StateSaver.java @@ -21,6 +21,7 @@ package org.schabi.newpipe.util; import android.content.Context; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -29,6 +30,7 @@ import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Log; +import org.schabi.newpipe.BuildConfig; import org.schabi.newpipe.MainActivity; import java.io.File; @@ -110,6 +112,7 @@ public class StateSaver { /** * Try to restore the state from memory and disk, using the {@link StateSaver.WriteRead#readFrom(Queue)} from the writeRead. */ + @Nullable private static SavedState tryToRestore(@NonNull SavedState savedState, @NonNull WriteRead writeRead) { if (MainActivity.DEBUG) { Log.d(TAG, "tryToRestore() called with: savedState = [" + savedState + "], writeRead = [" + writeRead + "]"); @@ -117,7 +120,7 @@ public class StateSaver { FileInputStream fileInputStream = null; try { - Queue savedObjects = stateObjectsHolder.remove(savedState.prefixFileSaved); + Queue savedObjects = stateObjectsHolder.remove(savedState.getPrefixFileSaved()); if (savedObjects != null) { writeRead.readFrom(savedObjects); if (MainActivity.DEBUG) { @@ -126,8 +129,13 @@ public class StateSaver { return savedState; } - File file = new File(savedState.pathFileSaved); - if (!file.exists()) return null; + File file = new File(savedState.getPathFileSaved()); + if (!file.exists()) { + if(MainActivity.DEBUG) { + Log.d(TAG, "Cache file doesn't exist: " + file.getAbsolutePath()); + } + return null; + } fileInputStream = new FileInputStream(file); ObjectInputStream inputStream = new ObjectInputStream(fileInputStream); @@ -139,7 +147,7 @@ public class StateSaver { return savedState; } catch (Exception e) { - e.printStackTrace(); + Log.e(TAG, "Failed to restore state", e); } finally { if (fileInputStream != null) { try { @@ -154,10 +162,17 @@ public class StateSaver { /** * @see #tryToSave(boolean, String, String, WriteRead) */ + @Nullable public static SavedState tryToSave(boolean isChangingConfig, @Nullable SavedState savedState, Bundle outState, WriteRead writeRead) { - String currentSavedPrefix = savedState == null || TextUtils.isEmpty(savedState.prefixFileSaved) - ? System.nanoTime() - writeRead.hashCode() + "" - : savedState.prefixFileSaved; + @NonNull + String currentSavedPrefix; + if (savedState == null || TextUtils.isEmpty(savedState.getPrefixFileSaved())) { + // Generate unique prefix + currentSavedPrefix = System.nanoTime() - writeRead.hashCode() + ""; + } else { + // Reuse prefix + currentSavedPrefix = savedState.getPrefixFileSaved(); + } savedState = tryToSave(isChangingConfig, currentSavedPrefix, writeRead.generateSuffix(), writeRead); if (savedState != null) { @@ -173,22 +188,33 @@ public class StateSaver { * to the file with the name of prefixFileName + suffixFileName, in a cache folder got from the {@link #init(Context)}. *

* It checks if the file already exists and if it does, just return the path, so a good way to save is: - *

  • A fixed prefix for the file - *
  • A changing suffix + *
      + *
    • A fixed prefix for the file
    • + *
    • A changing suffix
    • + *
    + * + * @param isChangingConfig + * @param prefixFileName + * @param suffixFileName + * @param writeRead */ + @Nullable private static SavedState tryToSave(boolean isChangingConfig, final String prefixFileName, String suffixFileName, WriteRead writeRead) { if (MainActivity.DEBUG) { Log.d(TAG, "tryToSave() called with: isChangingConfig = [" + isChangingConfig + "], prefixFileName = [" + prefixFileName + "], suffixFileName = [" + suffixFileName + "], writeRead = [" + writeRead + "]"); } - Queue savedObjects = new LinkedList<>(); + LinkedList savedObjects = new LinkedList<>(); writeRead.writeTo(savedObjects); if (isChangingConfig) { if (savedObjects.size() > 0) { stateObjectsHolder.put(prefixFileName, savedObjects); return new SavedState(prefixFileName, ""); - } else return null; + } else { + if(MainActivity.DEBUG) Log.d(TAG, "Nothing to save"); + return null; + } } FileOutputStream fileOutputStream = null; @@ -197,8 +223,12 @@ public class StateSaver { if (!cacheDir.exists()) throw new RuntimeException("Cache dir does not exist > " + cacheDirPath); cacheDir = new File(cacheDir, CACHE_DIR_NAME); if (!cacheDir.exists()) { - boolean mkdirResult = cacheDir.mkdir(); - if (!mkdirResult) return null; + if(!cacheDir.mkdir()) { + if(BuildConfig.DEBUG) { + Log.e(TAG, "Failed to create cache directory " + cacheDir.getAbsolutePath()); + } + return null; + } } if (TextUtils.isEmpty(suffixFileName)) suffixFileName = ".cache"; @@ -214,7 +244,9 @@ public class StateSaver { return name.contains(prefixFileName); } }); - for (File file1 : files) file1.delete(); + for (File fileToDelete : files) { + fileToDelete.delete(); + } } fileOutputStream = new FileOutputStream(file); @@ -223,7 +255,7 @@ public class StateSaver { return new SavedState(prefixFileName, file.getAbsolutePath()); } catch (Exception e) { - e.printStackTrace(); + Log.e(TAG, "Failed to save state", e); } finally { if (fileOutputStream != null) { try { @@ -241,11 +273,11 @@ public class StateSaver { public static void onDestroy(SavedState savedState) { if (MainActivity.DEBUG) Log.d(TAG, "onDestroy() called with: savedState = [" + savedState + "]"); - if (savedState != null && !TextUtils.isEmpty(savedState.pathFileSaved)) { - stateObjectsHolder.remove(savedState.prefixFileSaved); + if (savedState != null && !TextUtils.isEmpty(savedState.getPathFileSaved())) { + stateObjectsHolder.remove(savedState.getPrefixFileSaved()); try { //noinspection ResultOfMethodCallIgnored - new File(savedState.pathFileSaved).delete(); + new File(savedState.getPathFileSaved()).delete(); } catch (Exception ignored) { } } @@ -271,9 +303,12 @@ public class StateSaver { // Inner //////////////////////////////////////////////////////////////////////////*/ + /** + * Information about the saved state on the disk + */ public static class SavedState implements Parcelable { - public String prefixFileSaved; - public String pathFileSaved; + private final String prefixFileSaved; + private final String pathFileSaved; public SavedState(String prefixFileSaved, String pathFileSaved) { this.prefixFileSaved = prefixFileSaved; @@ -287,7 +322,7 @@ public class StateSaver { @Override public String toString() { - return prefixFileSaved + " > " + pathFileSaved; + return getPrefixFileSaved() + " > " + getPathFileSaved(); } @Override @@ -313,6 +348,22 @@ public class StateSaver { return new SavedState[size]; } }; + + /** + * Get the prefix of the saved file + * @return the file prefix + */ + public String getPrefixFileSaved() { + return prefixFileSaved; + } + + /** + * Get the path to the saved file + * @return the path to the saved file + */ + public String getPathFileSaved() { + return pathFileSaved; + } } From 69302fcbd048bdd0acd46a835458c9aff24517e3 Mon Sep 17 00:00:00 2001 From: Coffeemakr Date: Sun, 8 Oct 2017 17:41:27 +0200 Subject: [PATCH 07/22] Add icepicker proguard rules --- app/proguard-rules.pro | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index d38a631a2..1b2ac6835 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -24,4 +24,14 @@ -dontwarn org.mozilla.javascript.tools.** -dontwarn android.arch.util.paging.CountedDataSource --dontwarn android.arch.persistence.room.paging.LimitOffsetDataSource \ No newline at end of file +-dontwarn android.arch.persistence.room.paging.LimitOffsetDataSource + + +# Rules for icepick. Copy paste from https://github.com/frankiesardo/icepick +-dontwarn icepick.** +-keep class icepick.** { *; } +-keep class **$$Icepick { *; } +-keepclasseswithmembernames class * { + @icepick.* ; +} +-keepnames class * { @icepick.State *;} From 89b11ff71c8d6f820e221eefb6d46985af294465 Mon Sep 17 00:00:00 2001 From: Coffeemakr Date: Sun, 8 Oct 2017 21:04:37 +0200 Subject: [PATCH 08/22] Fail-fast for service id == -1 --- .../subscription/SubscriptionEntity.java | 3 ++- .../fragments/detail/VideoDetailFragment.java | 3 ++- .../fragments/list/BaseListInfoFragment.java | 3 ++- .../fragments/list/search/SearchFragment.java | 3 ++- .../java/org/schabi/newpipe/util/Constants.java | 2 ++ .../org/schabi/newpipe/util/ExtractorHelper.java | 16 ++++++++++++++++ 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java b/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java index 567bec309..12d1764cc 100644 --- a/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java +++ b/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java @@ -7,6 +7,7 @@ import android.arch.persistence.room.Index; import android.arch.persistence.room.PrimaryKey; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; +import org.schabi.newpipe.util.Constants; import static org.schabi.newpipe.database.subscription.SubscriptionEntity.SUBSCRIPTION_SERVICE_ID; import static org.schabi.newpipe.database.subscription.SubscriptionEntity.SUBSCRIPTION_TABLE; @@ -28,7 +29,7 @@ public class SubscriptionEntity { private long uid = 0; @ColumnInfo(name = SUBSCRIPTION_SERVICE_ID) - private int serviceId = -1; + private int serviceId = Constants.NO_SERVICE_ID; @ColumnInfo(name = SUBSCRIPTION_URL) private String url; diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 5f954cad2..4bb0c2cca 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -65,6 +65,7 @@ import org.schabi.newpipe.player.PopupVideoPlayer; import org.schabi.newpipe.player.old.PlayVideoActivity; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.InfoCache; import org.schabi.newpipe.util.ListHelper; @@ -110,7 +111,7 @@ public class VideoDetailFragment extends BaseStateFragment implement private boolean wasRelatedStreamsExpanded = false; @State - protected int serviceId = -1; + protected int serviceId = Constants.NO_SERVICE_ID; @State protected String name; @State diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java index 34fcaf873..4baf323ff 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java @@ -8,6 +8,7 @@ import android.view.View; import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.ListInfo; +import org.schabi.newpipe.util.Constants; import java.util.Queue; @@ -21,7 +22,7 @@ import io.reactivex.schedulers.Schedulers; public abstract class BaseListInfoFragment extends BaseListFragment { @State - protected int serviceId = -1; + protected int serviceId = Constants.NO_SERVICE_ID; @State protected String name; @State diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 93ac00207..db036859e 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -41,6 +41,7 @@ import org.schabi.newpipe.extractor.search.SearchResult; import org.schabi.newpipe.fragments.list.BaseListFragment; import org.schabi.newpipe.history.HistoryListener; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.StateSaver; @@ -86,7 +87,7 @@ public class SearchFragment extends BaseListFragment searchFor(final int serviceId, final String query, final int pageNumber, final String searchLanguage, final SearchEngine.Filter filter) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public SearchResult call() throws Exception { @@ -61,6 +68,7 @@ public final class ExtractorHelper { } public static Single getMoreSearchItems(final int serviceId, final String query, final int nextPageNumber, final String searchLanguage, final SearchEngine.Filter filter) { + checkServiceId(serviceId); return searchFor(serviceId, query, nextPageNumber, searchLanguage, filter) .map(new Function() { @Override @@ -71,6 +79,7 @@ public final class ExtractorHelper { } public static Single> suggestionsFor(final int serviceId, final String query, final String searchLanguage) { + checkServiceId(serviceId); return Single.fromCallable(new Callable>() { @Override public List call() throws Exception { @@ -80,6 +89,7 @@ public final class ExtractorHelper { } public static Single getStreamInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public StreamInfo call() throws Exception { @@ -89,6 +99,7 @@ public final class ExtractorHelper { } public static Single getChannelInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public ChannelInfo call() throws Exception { @@ -98,6 +109,7 @@ public final class ExtractorHelper { } public static Single getMoreChannelItems(final int serviceId, final String url, final String nextStreamsUrl) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public NextItemsResult call() throws Exception { @@ -107,6 +119,7 @@ public final class ExtractorHelper { } public static Single getPlaylistInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public PlaylistInfo call() throws Exception { @@ -116,6 +129,7 @@ public final class ExtractorHelper { } public static Single getMorePlaylistItems(final int serviceId, final String url, final String nextStreamsUrl) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public NextItemsResult call() throws Exception { @@ -133,6 +147,7 @@ public final class ExtractorHelper { * and put the results in the cache. */ private static Single checkCache(boolean forceLoad, int serviceId, String url, Single loadFromNetwork) { + checkServiceId(serviceId); loadFromNetwork = loadFromNetwork.doOnSuccess(new Consumer() { @Override public void accept(@NonNull I i) throws Exception { @@ -157,6 +172,7 @@ public final class ExtractorHelper { * Default implementation uses the {@link InfoCache} to get cached results */ public static Maybe loadFromCache(final int serviceId, final String url) { + checkServiceId(serviceId); return Maybe.defer(new Callable>() { @Override public MaybeSource call() throws Exception { From 994559b39b3e3cc125d79c16cc1c16820958955d Mon Sep 17 00:00:00 2001 From: Coin Date: Tue, 10 Oct 2017 16:05:55 +0000 Subject: [PATCH 09/22] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (206 of 206 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 108 ++++++++++++++++++--- 1 file changed, 93 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 429cbda0d..3f9865c47 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -27,7 +27,7 @@ 顯示「用 Kodi 播放」的選項 預設音訊格式 WebM — 開放格式 - m4a — 更佳畫質 + M4A — 更佳畫質 主題 暗色系 明亮色系 @@ -36,7 +36,7 @@ 下一部影片 顯示下一部和相關的影片 不支援此網址 - 內容語言 + 預設內容語言 影片和音訊 外觀 其他 @@ -62,7 +62,7 @@ 勾選後,部分解析度可能不會有音訊 NewPipe 懸浮視窗模式 背景 - 從其他應用程式開啟時自動播放 + 自動播放 當 NewPipe 被其他應用程式呼叫時自動播放影片 懸浮視窗預設解析度 顯示更高的解析度 @@ -97,14 +97,14 @@ 重新設定大小 錯誤 無法載入所有縮圖 - 無法解析影片 URL 簽名。 - 無法解析網站。 - 無法完全解析網站。 - 內容無法使用。 - 已被 GEMA 阻擋。 - 無法設定下載選單。 + 無法解析影片 URL 簽章 + 無法解析網站 + 無法完全解析網站 + 內容無法使用 + 已被 GEMA 阻擋 + 無法設定下載選單 尚未支援現場直播。 - 無法取得串流。 + 無法取得串流 無法載入圖片 應用程式或 UI 已停止運作 抱歉,這不應該發生的。 @@ -126,7 +126,7 @@ 重試 無法存取儲存空間 使用舊的播放器 - 舊型內建媒體播放器。 + 舊型內建媒體播放器 @@ -135,7 +135,7 @@ 開始 暫停 - 檢視 + 播放 刪除 檢查碼 @@ -151,8 +151,8 @@ NewPipe 下載中 輕觸顯示詳細資訊 請稍候… - 已複製至剪貼簿。 - 請選擇下載資料夾。 + 已複製至剪貼簿 + 請選擇下載資料夾 使用懸浮視窗模式需要此權限 reCAPTCHA 驗證 @@ -162,4 +162,82 @@ 懸浮視窗 現場直播 - + 訂閱 + 已訂閱 + 已取消訂閱頻道 + 無法切換訂閱 + 無法更新訂閱 + + 主選單 + 訂閱項目 + + 有什麼新鮮事 + + 搜尋紀錄 + 在本機儲存搜尋紀錄 + 歷史紀錄 + 記錄觀看過的影片 + 在取得視窗焦點時繼續播放 + 在干擾結束後繼續播放(例如有來電) + 播放器 + 行為 + 歷史紀錄 + 播放清單 + 復原 + + NewPipe 通知 + NewPipe 背景播放與懸浮模式播放器的通知 + + 沒有結果 + 空空如也 + + 無訂閱者 + + %s 位訂閱者 + + + 無觀看次數 + + %s 次觀看 + + + 沒有影片 + + %s 部影片 + + + 下載 + 檔案名稱中允許的字元 + 不符合設定的字元將會被替換為此字串 + 替換為 + + 字母與數字 + 大部分的特殊字元 + + 關於 NewPipe + 設定 + 關於 + 第三方授權 + © %1$s 由 %2$s 使用 %3$s 授權條款發佈 + 無法載入授權條款 + 開啟網站 + 關於 + 貢獻者 + 授權條款 + 一款在 Android 上免費輕巧的 YouTube 前端。 + 在 GitHub 上檢視 + NewPipe 使用的授權條款 + 不管你有什麼點子,翻譯、設計、程式碼整理,或者程式碼撰寫,我們永遠歡迎你來幫忙。完成的越多,NewPipe 也會更好! + 閱讀授權條款 + 貢獻 + + 歷史紀錄 + 已搜尋 + 已觀看 + 歷史紀錄已被停用 + 歷史紀錄 + 沒有歷史紀錄 + 已清除歷史紀錄 + 項目已刪除 + 確定要刪除此項搜尋紀錄嗎? + From b70fd826e721e5bcf0e9341f7efa508ea687c53c Mon Sep 17 00:00:00 2001 From: Tryton Van Meer Date: Sun, 8 Oct 2017 09:23:05 -0400 Subject: [PATCH 10/22] Fix crash when returning to player. When switching apps or locking the phone, destroyPlayer is called which sets audioManager to null. So upon returning to the player and pressing play, the app crashes. So now initPlayer checks if audioManager is null and sets it if needed. --- app/src/main/java/org/schabi/newpipe/player/BasePlayer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 4b0604bb0..f90352fa1 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -178,6 +178,10 @@ public abstract class BasePlayer implements Player.EventListener, AudioManager.O if (DEBUG) Log.d(TAG, "initPlayer() called with: context = [" + context + "]"); initExoPlayerCache(); + if (audioManager == null) { + this.audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE)); + } + AdaptiveTrackSelection.Factory trackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); DefaultTrackSelector defaultTrackSelector = new DefaultTrackSelector(trackSelectionFactory); DefaultLoadControl loadControl = new DefaultLoadControl(); From f55612be406c4685cffa1f8d7672fe2bd9239c09 Mon Sep 17 00:00:00 2001 From: Enol P Date: Fri, 13 Oct 2017 00:29:28 +0000 Subject: [PATCH 11/22] Translated using Weblate (Asturian) Currently translated at 100.0% (206 of 206 strings) --- app/src/main/res/values-b+ast/strings.xml | 168 ++++++++++++++++------ 1 file changed, 125 insertions(+), 43 deletions(-) diff --git a/app/src/main/res/values-b+ast/strings.xml b/app/src/main/res/values-b+ast/strings.xml index 58a13dd09..c3bd768df 100644 --- a/app/src/main/res/values-b+ast/strings.xml +++ b/app/src/main/res/values-b+ast/strings.xml @@ -2,7 +2,7 @@ Calca na gueta pa entamar %1$s visiones - Espublizáu\'l %1$s + Espublizóse\'l %1$s Nun s\'alcontró un reproductor de fluxos. ¿Quies instalar VLC? Instalar Encaboxar @@ -14,15 +14,15 @@ ¿Quixesti dicir %1$s? Compartir con Escoyer restolador - rotación - Usar reproductor de videu esternu - Usar reproductor d\'audiu esternu + voltéu + Usar reproductor esternu de videu + Usar reproductor esternu d\'audiu Camín de descarga de vídeos - Camín nel qu\'atroxar los vídeos baxaos. + Camín nel qu\'atroxar los vídeos baxaos Introducir camín de descarga pa vídeos - Camín de descarga d\'audiu + Camín de descarga p\'audios Camín nel qu\'atroxar los audios baxaos. Introducir camín de descarga pa ficheros d\'audiu @@ -30,11 +30,11 @@ Reproducir con Kodi Nun s\'alcontró Kore. ¿Instalalu? Amosar opción «Reproducir con Kodi» - Amuesa una opción pa reproducir un videu per Kodi. + Amuesa una opción pa reproducir un videu per Kodi Audiu - Formatu d\'audiu por defeutu + Formatu por defeutu d\'audiu WebM — formatu llibre - m4a — calidá meyor + M4A — calidá meyor Tema Escuru Claru @@ -43,15 +43,15 @@ Videu siguiente Amosar vídeos siguientes y asemeyaos URL non sofitada - Llingua de conteníu preferíu + Llingua por defeutu del conteníu Videu y audiu Aspeutu Otru Reproduciendo de fondu Reproducir Conteníu - Amosar conteníu restrinxíu pola edá - El videu ta restrinxíu pola edá. Deshabilita esto diendo primero a axustes. + Amosar conteníu torgáu pola edá + El videu ta torgáu pola edá. Desactiva esto diendo primero a axustes. en direuto Descargues Descargues @@ -60,16 +60,16 @@ Fallu Fallu de rede Nun pudieron cargase toles miniatures - Nun pudo descargase la robla de la url del videu. - Nun pudo analizase\'l sitiu web. - Nun pudo analizase dafechu\'l sitiu web. - Conteníu non disponible. - Bloquiáu por GEMA. - Nun pudo configurase\'l menú de descarga. - Esto ye una tresmisión de direuto pero entá nun ta sofitao. - Nun pudo consiguise tresmisión dala. + Nun pudo descifrase la robla de la URL + Nun pudo analizase\'l sitiu web + Nun pudo analizase dafechu\'l sitiu web + Conteníu non disponible + Bloquiáu por GEMA + Nun pudo configurase\'l menú de descarga + Esto ye una tresmisión de direuto qu\'entá nun se sofita. + Nun pudo consiguise tresmisión dala Perdón, eso nun debió asoceder. - Fallu d\'informe per corréu + Informar per corréu del fallu Perdón, asocedieron dellos fallos. INFORMAR Información: @@ -78,11 +78,11 @@ Detalles: - Miniatura de previsualización de videu - Miniatura de previsualización de videu + Miniatura de previsualización del videu + Miniatura de previsualización del videu Préstames Usar Tor - (Esperimental) Forcia\'l tráficu de descargues pente Tor pa más privacidá (la tresmisión de vídeos entá nun ta sofitao). + (Esperimental) Forcia\'l tráficu de descargues pente Tor pa más privacidá (la tresmisión de vídeos entá nun se sofita). Informa d\'un fallu Informe d\'usuariu @@ -92,11 +92,11 @@ Videu Audiu Retentar - Ñegóse l\'accesu al almacenamientu + Ñegóse\'l permisu d\'accesu al almacenamientu Aniciar Posar - Ver + Reproducir Desaniciar Suma de comprobación @@ -110,23 +110,23 @@ URL malformada o internet non disponible Calca pa detallles Espera, por favor… - Copióse al cartafueyu. - Esbilla un direutoriu de descarga disponible, por favor. + Copióse al cartafueyu + Esbilla una carpeta disponible de descarga, por favor - Auto-reproduz un videu al llamar a NewPipe dende otra aplicación. - Auto-reproducir al llamar dende otra aplicación - Miniatura del xubidor + Auto-reproduz un videu al llamar a NewPipe dende otra aplicación + Auto-reproducción + Miniatura del avatar del xubidor Despréstames NewPipe baxando Nun pudo cargase la imaxe Cascó l\'aplicación/IU - + Lo qu\'asocedió:\\nSolicitú:\\nLlingua del conteníu:\\nServiciu:\\nHora GMT:\\nPaquete:\\nVersión:\\nVersión del SO:\\nRangu global d\'IP: Abrir en ventanu emerxente Mou de ventanu emerxente de NewPipe - Formatu preferíu de videu + Formatu por defeutu de videu Prietu Reproduciendo en ventanu emerxente @@ -134,7 +134,7 @@ Canal Más sero - Deshabilitóse + Desactivóse Usar reproductor vieyu @@ -142,26 +142,26 @@ M Mill MMill - Precísase esti permisu pa -abrir en ventanu emerxente + Precísase esti permisu p\'abrir +\nen ventanu emerxente reCAPTCHA Prueba reCAPTCHA - Prueba reCAPTCHA solicitada + Solicitóse la prueba reCAPTCHA Fondu Ventanu emerxente - Resolución por defeutu de ventanu emerxente + Resolución por defeutu del ventanu emerxente Amosar resoluciones más altes - Namái dellos preseos sofiten vídeos en 2k/4k + Namái dellos preseos sofiten vídeos en 2K/4K Peñera Refrescar Llimpiar - Delles resoluciones NUN tendrán audiu al habilitar esta opción - Tamañu y posición del ventanu emerxente - Recuerda la cabera posición y resolución afitada nel ventanu emerxente + Delles resoluciones NUN tendrán audiu al activar esta opción + Recuerdar tamañu y posición del ventanu emerxente + Recuerda la cabera posición y resolución afitaes nel ventanu emerxente Controles per xestos del reproductor Usa xestos pa controlar el brilléu y volume del reproductor Suxerencies de gueta @@ -170,5 +170,87 @@ abrir en ventanu emerxente Ventanu emerxente Redimensionáu - Compilación vieya del reproductor Mediaframework. + Reproductor vieyu integráu de Mediaframework +Soscribise + Soscribiéstite + Desoscribiéstite de la canal + Nun pue camudase la resolución + Nun pue anovase la soscripción + + Principal + Soscripciones + + Qué hai nuevo + + Historial de gueta + Atroxa de mou llocal les solicitúes de gueta + Historial + Fai un siguimientu de los vídeos vistos + Siguir al ganar el focu + Sigue reproduciendo tres les interrupciones (por exemplu, llamaes de teléfonu) + Reproductor + Comportamientu + Historial + Llistáu de reproducción + La meyor resolución + Desfacer + + Avisu de NewPipe + Avisos pa los reproductores de fondu y en ventanu emerxente de NewPipe + + Ensin resultaos + Equí nun hai más que grillos + + Ensin soscriptores + + %s soscriptor + %s soscriptores + + + Ensin visionaos + + %s visionáu + %s visionaos + + + Nun hai vídeos + + %s videu + %s vídeos + + + Descargues + Caráuteres permitíos nos nomes de ficheros + Los caráuteres non válidos tróquense por esti valor + Troquéu de caráuteres + + Lletres y díxitos + La mayoría de caráuteres especiales + + Tocante a NewPipe + Axustes + Tocante a + Llicencies de terceros + © %1$s por %2$s so la %3$s + Nun pudo cargase la llicencia + Abrir sitiu web + Tocante a + Collaboradores + Llicencies + Un frontal llixeru de YouTube p\'Android. + Ver en GitHub + Llicencia de NewPipe + Si tienes idees, quies traducir, facer cambeos, llimpiar el códigu u otres coses, l\'ayuda siempres s\'agradez. ¡Cuánto más se faiga, más s\'ameyora! + Lleer llicencia + Collaboración + + Historial + Guetao + Visto + L\'historial ta desactiváu + Historial + L\'historial ta baleru + Llimpióse l\'historial + Desanicióse l\'elementu + ¿Quies desaniciar esti elementu del historial de gueta? From cdca0c6325ce7e0e17d6b558570923be47ec8df8 Mon Sep 17 00:00:00 2001 From: Jan-Lk Else Date: Sat, 14 Oct 2017 11:42:00 +0200 Subject: [PATCH 12/22] Updated Gradle wrapper --- gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 54712 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 110 ++++++++++++----------- gradlew.bat | 14 +-- 4 files changed, 64 insertions(+), 63 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..ed88a042a287c140a32e1639edfc91b2a233da8c 100644 GIT binary patch delta 48653 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%0Alk0k!JB4fW=&r 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 S;6}etWU|->aui)l+@d^*iTu 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 aA}~dPb^B!s1H%ISv4EZ^v8ufN>;C}Z7qY1U diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f3ed0a0af..74bb77845 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Tue Mar 07 14:05:42 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip diff --git a/gradlew b/gradlew index 91a7e269e..cccdd3d51 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,47 +6,6 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -61,9 +20,49 @@ while [ -h "$PRG" ] ; do fi done SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- +cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" -cd "$SAVED" >&- +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index aec99730b..e95643d6a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line From 35b4110a7ac92eafe6fe7939313f723585767344 Mon Sep 17 00:00:00 2001 From: TheAssassin Date: Sun, 15 Oct 2017 18:42:49 +0200 Subject: [PATCH 13/22] Fix half finished paragraph --- .github/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index be8a0ca80..d983a6f71 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -26,7 +26,7 @@ Do not report crashes in the GitHub issue tracker. NewPipe has an automated cras * Stick to NewPipe's style conventions (well, just look the other code and then do it the same way :)) * Do not bring non-free software (e.g., binary blobs) into the project. Also, make sure you do not introduce Google libraries. * Stick to [F-Droid contribution guidelines](https://f-droid.org/wiki/page/Inclusion_Policy) -* Make changes on a separate branch, not on the master branch. This is commonly known as *feature branch workflow*. You may then send your +* Make changes on a separate branch, not on the master branch. This is commonly known as *feature branch workflow*. You may then send your changes as a pull request on GitHub. Patches to the email address mentioned in this document might not be considered, GitHub is the primary platform. * When submitting changes, you confirm that your code is licensed under the terms of the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.html). * Please test (compile and run) your code before you submit changes! Ideally, provide test feedback in the PR description. Untested code will **not** be merged! * Try to figure out yourself why builds on our CI fail. From b7fe001b13637b20fcdd60e9c016d5543a3c1ce4 Mon Sep 17 00:00:00 2001 From: Bruno Guerreiro Date: Sun, 15 Oct 2017 17:10:03 +0000 Subject: [PATCH 14/22] Translated using Weblate (Portuguese) Currently translated at 100.0% (206 of 206 strings) --- app/src/main/res/values-pt/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 8fa2cf0a0..4fec8b4d6 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -255,4 +255,5 @@ o modo “popup“ O histórico está vazio Histórico eliminado Objeto eliminado +Deseja apagar este item do histórico de pesquisa? From 79c5c3cc57022a23fff57e6600d07fa5f0770f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 16 Oct 2017 11:49:53 +0000 Subject: [PATCH 15/22] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.5% (205 of 206 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 02fa7cacf..ae4d6e10e 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -253,4 +253,5 @@ Historikken er tom Historikk tømt Element slettet +Ønsker du å slette dette elementet fra søkehistorikken? From 3d47e63d6f296bb4e1a003e01d850e572b06eef0 Mon Sep 17 00:00:00 2001 From: developerchan1 Date: Tue, 17 Oct 2017 09:56:09 +0000 Subject: [PATCH 16/22] Translated using Weblate (Indonesian) Currently translated at 81.0% (167 of 206 strings) --- app/src/main/res/values-id/strings.xml | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 39084cecb..bac01e17f 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -23,7 +23,7 @@ Lokasi untuk menyimpan audio yang diunduh Masukkan lokasi unduhan berkas audio - Putar otomatis ketika dipanggil dari aplikasi lain + Putar otomatis Otomatis memutar video ketika NewPipe dijalankan dari aplikasi lain Resolusi baku Putar dengan Kodi @@ -33,7 +33,7 @@ Audio Format audio baku WebM — format bebas - m4a — kualitas lebih baik + M4A — kualitas lebih baik Tema Gelap Terang @@ -61,15 +61,15 @@ Laporan galat Galat - Tidak bisa mengurai situs web. - Sama sekali tidak bisa mengurai situs web. - Konten tidak tersedia. - Diblokir oleh GEMA. - Tidak bisa menyiapkan menu unduhan. - Ini adalah SIARAN LANGSUNG. Fitur ini belum didukung. + Tidak dapat mengurai situs web + Sama sekali tidak dapat mengurai situs web + Konten tidak tersedia + Diblokir oleh GEMA + Tidak bisa menyiapkan menu unduhan + Ini adalah SIARAN LANGSUNG, yang mana ini belum didukung. Tidak bisa memuat gambar Maaf, hal tersebut seharusnya tidak terjadi. - Lapor galat via surel + Lapor galat via surat elektronik Maaf, telah terjadi galat. LAPOR Info: @@ -92,7 +92,7 @@ Video Audio Ulangi - Izin untuk mengakses penyimpanan ditolak + Izin akses penyimpanan ditolak Hapus Tonton @@ -117,7 +117,7 @@ Tidak ditemukan pemutar stream. Apakah anda ingin memasang VLC? Tidak bisa mendekrip tanda tangan URL video. App/UI rusak - Tidak bisa mendapatkan stream apapun. + Tidak bisa mendapatkan stream apapun Apa:\\nPermintaan:\\nBahasa Konten:\\nLayanan:\\nWaktu GMT:\\nPaket:\\nVersi:\\nVersi OS:\\nIP: Laporan pengguna @@ -145,11 +145,11 @@ Izin ini dibutuhkan untuk membuka di mode popup - Mode Popup NewPipe + Mode popup NewPipe Memutar dalam mode popup Gunakan pemutar lama - Versi lama pemutar Mediaframework. + Versi lama pemutar Mediaframework Dinonaktifkan Pilihan format video @@ -166,7 +166,7 @@ membuka di mode popup Filter Beberapa resolusi TIDAK akan memiliki suara ketika opsi ini diaktifkan Ingat ukuran dan posisi sembulan - Ingat ukuran terakhir dan pengaturan posisi sembulan + Ingat ukuran terakhir dan pengaturan posisi popup Sembulan Ubah ukuran @@ -212,7 +212,7 @@ membuka di mode popup Utama Cari riwayat Simpan pencarian secara lokal - Riwayat tontonan + Riwayat Notifikasi NewPipe Riwayat Riwayat dinonaktifkan From d765364915cae22f69a349aa45273c70fb785148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Marques?= Date: Tue, 17 Oct 2017 12:41:44 +0000 Subject: [PATCH 17/22] Translated using Weblate (Portuguese) Currently translated at 100.0% (206 of 206 strings) --- app/src/main/res/values-pt/strings.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4fec8b4d6..bb040c28f 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -61,7 +61,7 @@ Erro Incapaz de carregar todas as miniaturas Incapaz de decodificar a assinatura do vídeo - Incapaz de processar o sítio da web + Incapaz de processar o site Conteúdo não disponível Bloqueado pela GEMA @@ -69,7 +69,7 @@ Restringir conteúdo por idade Vídeo com restrição de idade. É possível permitir este material através das Definições. - Não foi possível processar o sítio da web + Não foi possível processar totalmente o site Não foi possível configurar o menu de transferências Esta é uma EMISSÃO EM DIRETO, as quais ainda não são suportadas. Não foi possível obter a emissão @@ -116,7 +116,7 @@ Toque para detalhes Por favor aguarde… Copiado para a área de transferência - Por favor selecione um diretório disponível para download + Por favor selecione a pasta para as descargas OK Processos @@ -207,16 +207,16 @@ o modo “popup“ Armazenar termos de pesquisa localmente Histórico Armazenar histórico de vídeos assistidos - Retomar reprodução ao ganhar foco + Retomar ao ganhar foco Continuar reprodução após interrupções (ex. chamadas) - Reprodutor de vídeo + Reprodutor Comportamento Histórico Lista de Reprodução Desfazer Notificação do NewPipe - Notificações do NewPipe em Segundo Plano e Reprodutores de Vídeo em Popup + Notificações do NewPipe e para reprodutores pop-up Sem resultados Aqui não há nada para ver @@ -242,18 +242,18 @@ o modo “popup“ Download Caracteres permitidos em nomes de ficheiros Caracteres inválidos são substituídos por este valor - Caracter de substituição + Carácter de substituição Letras e dígitos - Caracteres mais especiais + Caracteres especiais Histórico - Procurados - Visualizado + Pesquisado + Visto Histórico está desativado Histórico O histórico está vazio Histórico eliminado - Objeto eliminado + Item apagado Deseja apagar este item do histórico de pesquisa? From 227001ec32302bb11f1d647a2dd2804094e3eeac Mon Sep 17 00:00:00 2001 From: Anton Shestakov Date: Tue, 17 Oct 2017 09:02:14 +0000 Subject: [PATCH 18/22] Translated using Weblate (Russian) Currently translated at 99.0% (204 of 206 strings) --- app/src/main/res/values-ru/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4424781f8..e60ec9917 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -257,4 +257,5 @@ Элемент удалён +Удалить этот элемент из истории поиска? From 0155454526708cce7c6348a1d916ae9e6cdceeba Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Wed, 18 Oct 2017 11:44:24 +0200 Subject: [PATCH 19/22] moved on to version v0.10.1 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2f1dd4005..5d718ea0e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 15 targetSdkVersion 26 - versionCode 38 - versionName "0.10.0" + versionCode 39 + versionName "0.10.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true From ea863b0c24dad3d1be20de6d214b5c44b04c2748 Mon Sep 17 00:00:00 2001 From: Joona Mattila Date: Thu, 19 Oct 2017 20:34:36 +0000 Subject: [PATCH 20/22] Added translation using Weblate (Finnish) --- app/src/main/res/values-fi/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-fi/strings.xml diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-fi/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From b73677fa5e9ac61abe98ee261597ae207e73155f Mon Sep 17 00:00:00 2001 From: Joona Mattila Date: Thu, 19 Oct 2017 23:29:38 +0000 Subject: [PATCH 21/22] Translated using Weblate (Finnish) Currently translated at 98.0% (202 of 206 strings) --- app/src/main/res/values-fi/strings.xml | 239 ++++++++++++++++++++++++- 1 file changed, 237 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index a6b3daec9..33b4a6cd5 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1,2 +1,237 @@ - - \ No newline at end of file + +Napauta hakua aloittaaksesi + %1$s näyttökertaa + Julkaistu %1$s + Ei löytynyt suoratoisto soitinta. Haluatko asentaa VLC:n? + Asenna + Peruuta + Avaa selaimessa + Avaa ponnahdusikkunassa + Jaa + Lataa + Haku + Asetukset + Tarkoititko: %1$s ? + Jaa + Valitse selain + kierto + Käytä ulkoista videotoistinta + Joillain resoluutioilla EI ole ääntä, kun tämä on valittuna + Käytä ulkoista äänitoistinta + NewPipe ponnahdusikkuna + Tilaa + Tilattu + Kanavan tilaus peruttu + Ei pystytty vaihtamaan tilausta + Ei pystytty päivittämään tilausta + + Päävalikko + Tilaukset + + Uusimmat + + Taustatoisto + Ponnahdusikkuna + + Videon latauksen sijainti + Sijainti ladatuille videoille + Aseta sijainti minne videot tallennetaan + + Audio latauksen sijainti + Sijainti ladatuille audiotiedostoille + Aseta sijainti minne audiotiedostot tallennetaan + + Automaattitoisto + Toistaa automaattisesti videon, kun NewPipe sovellusta kutsutaan toisesta sovelluksesta + Oletusresoluutio + Ponnahdusikkunan oletusresoluutio + Näytä korkeampia resoluutioita + Vain jotkin laitteet tukevat 2K/4K videotoistoa + Toista Kodi:ssa + Kore sovellusta ei löytynyt. Asennetaanko se? + Näytä \"Toista Kodi:ssa\" vaihtoehto + Näyttää painikkeen, jolla voi toistaa videon Kodi media center:llä + Audio + Oletus audioformaatti + Oletus videoformaatti + WebM — vapaa formaatti + M4A — parempi laatu + Teema + Kirkas + Tumma + Musta + Muista ponnahdusikkunan koko ja sijainti + Muista viimeisin ponnahdusikkunan koko ja sijainti + Soittimen eleohjaus + Käytä eleitä ohjataksesi kirkkautta ja äänentasoa + Hakuehdotukset + Näytä ehdotuksia hakiessa + Hakuhistoria + Tallentaa hakutietokannan paikallisesti + Historia + Pidä muistissa katsotut videot + Jatka toistoa keskeytysten jälkeen (esim. puhelut) + Lataa + Seuraava video + Näytä seuraava ja samankaltaisia videoita + URL ei tueta + Oletus-sisällon kieli + Toistin + Käyttäytyminen + Video & Audio + Historia + Ponnahdusikkuna + Ulkoasu + Muu + Toistaa taustalla + Toistaa ponnahdusikkunassa + Toista + Sisältö + Näytä ikärajoitettua sisältöä + Ikärajoitettu video. Ikärajoituksen voi sallia asetuksista. + live + Lataukset + Lataukset + Virheraportti + Kaikki + Kanava + Soittolista + Kyllä + Myöhemmin + Poistettu käytöstä + Suodata + Päivitä + Pyyhi + Muutetaan kokoa + Paras resoluutio + Peru + + NewPipe Ilmoitus + Ilmoitukset Newpipe taustasoitolle ja ponnahdusikkunalle + + Virhe + Verkkovirhe + Ei pystytty lataamaan kaikkia esikatselukuvia + Ei pystytty purkamaan salausta videon URL allekirjoitukselle + Ei pystytty jäsentämään websivua + Ei pystytty jäsentämään websivua kokonaan + Sisältö ei ole saatavilla + Estetty GEMA + Ei pystytty asettamaan latausvalikkoa + Tämä on LIVE LÄHETYS, mitä ei vielä tueta. + Ei saatu mitään suoratoistoa + Kuvan lataus epäonnistui + Sovellus/UI kaatui + Pahoittelut, noin ei olisi pitänyt käydä. + Raportoi virhe sähköpostin kautta + Pahoittelit, joitain virheitä tapahtui. + RAPORTTI + Mitä tapahtui: + Sinun viesti (Englanniksi): + Yksityiskohdat: + + + Videon esikatselukuva + Videon esikatselukuva + Jakajan avatar esikatselukuva + Tykkäykset + Ei-tykkäykset + Käytä Tor + (Kokeellinen) Pakota latausliikenne Tor:n kautta saadaksesi parempaa yksityisyyttä (videoiden suoratoistoa ei vielä tueta). + Raportoi virhe + Käyttäjäraportti + Ei tuloksia + Tyhjää täynnä + + Ei voida luoda lataushakemistoa \'%1$s\' + Luotiin lataushakemisto \'%1$s\' + + Video + Audio + Toista uudelleen + Oikeus tallennustilan hallintaan evätty + Käytä vanhaa toistinta + Käytä vanhaa sisäänrakennettua Mediaframework toistinta + + t. + Milj. + Bilj. + + Ei tilaajia + + %s tilaaja + %s tilaajia + + + Ei katselukertoja + + %s katselukerta + %s katselukertoja + + + Ei videoita + + %s video + %s videoita + + + Aloita + Keskeytä + Toista + Poista + Tarkistus-suma + + Uusi tehtävä + OK + + Tiedostonimi + Säikeet + Virhe + Serveriä ei tueta + Tiedosto on jo olemassa + Epämuodostunut URL tai Internet-yhteys ei ole saatavilla + NewPipe Lataus käynnissä + Napauta nähdäksesi lisää + Odota… + Kopioitu leikepöydälle + Valitse saatavilla oleva latauskansio + Tämä käyttöoikeus tarvitaan ponnahdusikkunan käytölle + + reCAPTCHA + reCAPTCHA Haaste + reCAPTCHA Haaste pyydetty + + Lataus + Sallittuja merkkejä tiedostonimissä + Epäkelvot merkit korvataan tällä arvolla + Korvaus merkki + + Kirjaimia ja numeroita + Suurin osa erikoismerkeistä + + Tietoja NewPipe + Asetukset + Tietoja + Kolmannen osapuolen Lisenssit + Ei voitu ladata lisenssiä + Avaa websivu + Tietoja + Hyväntekijät + Lisenssit + Vapaa kevyt YouTube frontend Android:lle. + Näytä GitHub:ssa + NewPipe:n Lisenssi + Olkoon sinulla ideoita; käännöksistä, design muutoksista, koodin siivoamisesta tai raskaista koodimuutoksista—apu on aina tervetullutta. Mitä enemmän saadaan tehtyä sen paremmaksi se tulee! + Lue lisenssi + Lahjoitus + + Historia + Haettu + Katsottu + Historia on poistettu käytöstä + Historia + Historia on tyhjä + Historia pyyhitty + Poistettu + Haluatko poistaa tämän hakuhistoriasta? + From 7b56aaad5364bb49773b384248cc114b2bf3be27 Mon Sep 17 00:00:00 2001 From: Coin Date: Sat, 21 Oct 2017 07:24:41 +0000 Subject: [PATCH 22/22] Translated using Weblate (Chinese (Hong Kong)) Currently translated at 68.9% (142 of 206 strings) --- app/src/main/res/values-zh-rHK/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index c68b7f293..5c536a72a 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -23,7 +23,7 @@ 聲音 預設聲音檔案格式 WebM — 開放格式 - m4a — 更佳畫質 + M4A — 更佳畫質 主題 黑暗 明亮 @@ -32,7 +32,7 @@ 下一部影片 顯示下一部及相關的影片 不支援此網址 - 喜好的內容語言 + 預設內容語言 影片及聲音 外觀 其他 @@ -59,7 +59,7 @@ 已建立下載路徑「%1$s」 內容被 GEMA 封鎖。 按一下搜尋按鈕以開始操作 - 其他應用程式要求播放時,自動遵從指令 + 自動撥放 當其他應用程式要求播放影片時,NewPipe 將會自動播放 內容 顯示已設年齡限制的影片