1
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-09-20 11:20:52 +02:00

Compare commits

...

22 Commits

Author SHA1 Message Date
Christian Schabesberger
1bef7fbbf3 Merge branch 'master' of github.com:theScrabi/NewPipe 2016-03-25 19:08:12 +01:00
Christian Schabesberger
381f054daf Merge branch 'Start-screen-hint' of git://github.com/Ashanmaril/NewPipe into Ashanmaril-Start-screen-hint 2016-03-25 19:05:56 +01:00
Christian Schabesberger
c05d9303a9 fixed download location 2016-03-25 19:01:22 +01:00
Weblate
cca72a9e4e Merge remote-tracking branch 'origin/master' 2016-03-25 18:58:08 +01:00
Oleksandr Los
d4463e5f30 Translated using Weblate (Ukrainian)
Currently translated at 71.0% (76 of 107 strings)
2016-03-25 18:58:08 +01:00
Ibrahim Derraz
92155e2154 Translated using Weblate (French)
Currently translated at 65.4% (70 of 107 strings)
2016-03-25 18:58:07 +01:00
Christian Schabesberger
287fd0bf1e Merge branch 'master' of github.com:theScrabi/NewPipe 2016-03-25 13:57:19 +01:00
Christian Schabesberger
9e910d5501 fixed commons-lang problem & moved on to 0.7.8 2016-03-25 13:56:24 +01:00
YFdyh000
ff54b4d0c9 Translated using Weblate (Simplified Chinese)
Currently translated at 100.0% (107 of 107 strings)
2016-03-25 06:45:09 +01:00
Oleksandr Los
af0b841bc3 Translated using Weblate (Ukrainian)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-03-24 22:57:17 +01:00
Matej U
665ea85613 Translated using Weblate (Slovenian)
Currently translated at 100.0% (107 of 107 strings)
2016-03-24 21:45:10 +01:00
Benedikt Freisen
de635392c6 Translated using Weblate (German)
Currently translated at 100.0% (107 of 107 strings)
2016-03-23 12:44:33 +01:00
YFdyh000
7814cca3d5 Translated using Weblate (Simplified Chinese)
Currently translated at 100.0% (107 of 107 strings)
2016-03-23 06:12:36 +01:00
Hayden
6c7204eae0 Show/hide message 2016-03-22 20:05:43 -06:00
Hayden
834d647011 Merge remote-tracking branch 'github/Start-screen-hint' into Start-screen-hint
# Conflicts:
#	app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java
2016-03-22 19:59:26 -06:00
Hayden
d872263b55 Got rid of imageview from testing 2016-03-22 19:55:00 -06:00
Hayden
4f8e4ca0ad Got rid of useless Toast from testing 2016-03-22 19:53:55 -06:00
Hayden
2abc9d0210 Text hint to start a search 2016-03-22 19:39:31 -06:00
Matej U
36fb942ce6 Translated using Weblate (Slovenian)
Currently translated at 100.0% (107 of 107 strings)
2016-03-22 19:10:20 +01:00
Tomáš Martykán
56476b35e3 Translated using Weblate (Czech)
Currently translated at 66.3% (71 of 107 strings)
2016-03-21 18:44:27 +01:00
hydroid7
38b3835891 Translated using Weblate (Hungarian)
Currently translated at 58.8% (63 of 107 strings)
2016-03-20 12:44:38 +01:00
naofum
ccf5be116a Translated using Weblate (Japanese)
Currently translated at 100.0% (107 of 107 strings)
2016-03-14 13:04:00 +01:00
20 changed files with 258 additions and 46 deletions

View File

@@ -8,8 +8,8 @@ android {
applicationId "org.schabi.newpipe"
minSdkVersion 15
targetSdkVersion 23
versionCode 16
versionName "0.7.7"
versionCode 17
versionName "0.7.8"
}
buildTypes {
release {
@@ -42,6 +42,5 @@ dependencies {
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.github.nirhart:parallaxscroll:1.0'
compile 'org.apache.directory.studio:org.apache.commons.lang:2.6'
compile 'com.google.android.exoplayer:exoplayer:r1.5.5'
}

View File

@@ -57,7 +57,7 @@ public class App extends Application {
/**
* Set the proxy settings based on whether Tor should be enabled or not.
*/
static void configureTor(boolean enabled) {
public static void configureTor(boolean enabled) {
useTor = enabled;
if (useTor) {
NetCipher.useTor();
@@ -66,13 +66,13 @@ public class App extends Application {
}
}
static void checkStartTor(Context context) {
public static void checkStartTor(Context context) {
if (useTor) {
OrbotHelper.requestStartTor(context);
}
}
static boolean isUsingTor() {
public static boolean isUsingTor() {
return useTor;
}
}

View File

@@ -7,7 +7,6 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.design.widget.Snackbar;
@@ -23,13 +22,13 @@ import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.schabi.newpipe.extractor.Parser;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -237,12 +236,19 @@ public class ErrorActivity extends AppCompatActivity {
return false;
}
private static String getStackTrace(final Throwable throwable) {
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw, true);
throwable.printStackTrace(pw);
return sw.getBuffer().toString();
}
private String formErrorText(List<Exception> el) {
String text = "";
if(el != null) {
for (Exception e : el) {
text += "-------------------------------------\n"
+ ExceptionUtils.getStackTrace(e);
+ getStackTrace(e);
}
}
text += "-------------------------------------";
@@ -299,7 +305,7 @@ public class ErrorActivity extends AppCompatActivity {
JSONArray exceptionArray = new JSONArray();
if(errorList != null) {
for (Exception e : errorList) {
exceptionArray.put(ExceptionUtils.getStackTrace(e));
exceptionArray.put(getStackTrace(e));
}
}

View File

@@ -25,7 +25,6 @@ import android.content.SharedPreferences;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.util.Log;
import java.io.File;
@@ -43,10 +42,6 @@ public class NewPipeSettings {
getAudioDownloadFolder(context);
}
public static File getDownloadFolder() {
return getFolder(Environment.DIRECTORY_DOWNLOADS);
}
public static File getVideoDownloadFolder(Context context) {
return getFolder(context, R.string.download_path_key, Environment.DIRECTORY_MOVIES);
}

View File

@@ -48,6 +48,7 @@ import java.util.ArrayList;
import java.util.Vector;
import org.schabi.newpipe.download.DownloadDialog;
import org.schabi.newpipe.extractor.AudioStream;
import org.schabi.newpipe.extractor.MediaFormat;
import org.schabi.newpipe.extractor.ParsingException;

View File

@@ -102,6 +102,8 @@ public class VideoItemListActivity extends AppCompatActivity
} catch(Exception e) {
e.printStackTrace();
}
View bg = findViewById(R.id.mainBG);
bg.setVisibility(View.GONE);
return true;
}
@@ -200,6 +202,9 @@ public class VideoItemListActivity extends AppCompatActivity
setContentView(R.layout.activity_videoitem_list);
StreamingService streamingService = null;
View bg = findViewById(R.id.mainBG);
bg.setVisibility(View.VISIBLE);
try {
//------ todo: remove this line when multiservice support is implemented ------
currentStreamingServiceId = ServiceList.getIdOfService("Youtube");

View File

@@ -1,4 +1,4 @@
package org.schabi.newpipe;
package org.schabi.newpipe.download;
import android.Manifest;
import android.app.Dialog;
@@ -16,6 +16,10 @@ import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.widget.Toast;
import org.schabi.newpipe.App;
import org.schabi.newpipe.NewPipeSettings;
import org.schabi.newpipe.R;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -71,7 +75,8 @@ public class DownloadDialog extends DialogFragment {
case 0: // Video
download(arguments.getString(VIDEO_URL),
title,
arguments.getString(FILE_SUFFIX_VIDEO), context);
arguments.getString(FILE_SUFFIX_VIDEO),
NewPipeSettings.getVideoDownloadFolder(context),context);
break;
default:
Log.d(TAG, "lolz");
@@ -89,7 +94,8 @@ public class DownloadDialog extends DialogFragment {
case 0: // Audio
download(arguments.getString(AUDIO_URL),
title,
arguments.getString(FILE_SUFFIX_AUDIO), context);
arguments.getString(FILE_SUFFIX_AUDIO),
NewPipeSettings.getAudioDownloadFolder(context),context);
break;
default:
Log.d(TAG, "lolz");
@@ -107,12 +113,14 @@ public class DownloadDialog extends DialogFragment {
case 0: // Video
download(arguments.getString(VIDEO_URL),
title,
arguments.getString(FILE_SUFFIX_VIDEO), context);
arguments.getString(FILE_SUFFIX_VIDEO),
NewPipeSettings.getVideoDownloadFolder(context), context);
break;
case 1:
download(arguments.getString(AUDIO_URL),
title,
arguments.getString(FILE_SUFFIX_AUDIO), context);
arguments.getString(FILE_SUFFIX_AUDIO),
NewPipeSettings.getAudioDownloadFolder(context), context);
break;
default:
Log.d(TAG, "lolz");
@@ -141,8 +149,8 @@ public class DownloadDialog extends DialogFragment {
return nameToTest;
}
private void download(String url, String title, String fileSuffix, Context context) {
File downloadDir = NewPipeSettings.getDownloadFolder();
private void download(String url, String title,
String fileSuffix, File downloadDir, Context context) {
if(!downloadDir.exists()) {
//attempt to create directory
@@ -162,6 +170,8 @@ public class DownloadDialog extends DialogFragment {
File saveFilePath = new File(downloadDir,createFileName(title) + fileSuffix);
long id = 0;
if (App.isUsingTor()) {
// if using Tor, do not use DownloadManager because the proxy cannot be set
FileDownloader.downloadFile(getContext(), url, saveFilePath, title);

View File

@@ -1,26 +1,21 @@
package org.schabi.newpipe;
package org.schabi.newpipe.download;
import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import org.schabi.newpipe.R;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.UnknownHostException;
import javax.net.ssl.HttpsURLConnection;
@@ -46,6 +41,8 @@ import info.guardianproject.netcipher.NetCipher;
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/
// TODO: FOR HEVEN SAKE !!! DO NOT SIMPLY USE ASYNCTASK. MAKE THIS A PROPER SERVICE !!!
public class FileDownloader extends AsyncTask<Void, Integer, Void> {
public static final String TAG = "FileDownloader";
@@ -165,5 +162,4 @@ public class FileDownloader extends AsyncTask<Void, Integer, Void> {
super.onPostExecute(aVoid);
nm.cancel(notifyId);
}
}

View File

@@ -28,6 +28,8 @@
android:focusable="false"
tools:ignore="InconsistentLayout" />
<include layout="@layout/main_bg" />
<fragment android:id="@+id/videoitem_list"
android:name="org.schabi.newpipe.VideoItemListFragment"
android:layout_width="match_parent"

View File

@@ -1,8 +1,11 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_bg" />
<fragment
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/videoitem_list"

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainBG"
tools:context=".VideoItemDetailActivity"
tools:showIn="@layout/activity_videoitem_list">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/app_name"
android:textSize="40sp"
android:fontFamily="sans-serif-condensed"
android:layout_marginTop="30dp"
android:id="@+id/mainBGTitle"
android:layout_gravity="center_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/main_bg_subtitle"
android:id="@+id/mainBGSubtitle"
android:layout_gravity="center_horizontal" />
</LinearLayout>

View File

@@ -9,7 +9,7 @@
<string name="download">Stáhnout</string>
<string name="search">Vyhledat</string>
<string name="settings">Nastavení</string>
<string name="did_you_mean">"Měli jste na mysli: "</string>
<string name="did_you_mean">Měli jste na mysli: %1$s?</string>
<string name="search_page">"Vyhledat stránku: "</string>
<string name="share_dialog_title">Sdílet s:</string>
<string name="choose_browser">Vybrat prohlížeč:</string>
@@ -72,4 +72,12 @@
<string name="err_dir_create">Nebylo možné vytvořit složku pro stažené soubory \'%1$s\'</string>
<string name="info_dir_created">Vytvořena složka pro stažené soubory \'%1$s\'</string>
</resources>
<string name="autoplay_by_calling_app_title">Automaticky přehrávat při otevření z jiné aplikace.</string>
<string name="autoplay_by_calling_app_summary">Automaticky přehrát video, když je NewPipe otevřen z jiné aplikace.</string>
<string name="content">Obsah</string>
<string name="show_age_restricted_content_title">Zobrazovat věkově omezený obsah</string>
<string name="video_is_age_restricted">Toto video je věkově omezeno. Povolte věkově omezená video v nastavení.</string>
<string name="duration_live">živě</string>
<string name="light_parsing_error">Nemůžu kompletně parsovat web.</string>
</resources>

View File

@@ -125,4 +125,6 @@
<string name="report_error">Einen Fehler melden</string>
<string name="user_report">Anwenderbericht</string>
<string name="duration_live">live</string>
</resources>

View File

@@ -73,4 +73,14 @@
<string name="content_not_available">Contenu non disponible.</string>
<string name="blocked_by_gema">Bloqué par GEMA.</string>
<string name="error_snackbar_message">Désolé, des erreurs se sont produites</string>
<string name="content">Contenu</string>
<string name="show_age_restricted_content_title">Afficher le contenu restreint</string>
<string name="duration_live">En direct</string>
<string name="could_not_load_thumbnails">Impossible de charger toutes les miniatures</string>
<string name="youtube_signature_decryption_error">Erreur lors du décryptage du lien</string>
<string name="light_parsing_error">Erreur lors de la récupération des informations</string>
<string name="live_streams_not_supported">Il s\'agit un direct. Non supporté pour le moment.</string>
<string name="sorry_string">Désolé, ça devrait pas arriver</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="view_count_text">%1$s megtekintés</string>
<string name="upload_date_text">Feltöltve: %1$s</string>
@@ -27,7 +27,7 @@
<string name="kore_not_found">A Kore alkalmazás nem található. Feltelepíti a Kore lejátszót?</string>
<string name="installeKore">Kore telepítése</string>
<string name="show_play_with_kodi_title">\"Lejátszás Kodi-val\" opció mutatása</string>
<string name="show_play_with_kodi_summary">Mutat egy opciót a videók Kodi médiaközponttal való lejátszására</string>
<string name="show_play_with_kodi_summary">Mutat egy opciót a videók Kodi médiaközponttal való lejátszására.</string>
<string name="play_audio">Hang</string>
<string name="default_audio_format_title">Alapértelmezett hang formátum</string>
<string name="webm_description">WebM — szabad formátum</string>
@@ -72,4 +72,10 @@
<string name="detail_uploader_thumbnail_view_description">Fetöltő profilképe</string>
<string name="err_dir_create">Nem lehet létrehozni a letöltés mappát \'%1$s\'</string>
<string name="info_dir_created">Letöltés mappa létrehozása \'%1$s\'</string>
</resources>
<string name="content">Tartalom</string>
<string name="show_age_restricted_content_title">Mutassa korhatáros tartalmat is</string>
<string name="general_error">Hiba</string>
<string name="content_not_available">A tartalom nem elérhetö.</string>
<string name="blocked_by_gema">A GEMA által blokkolva.</string>
<string name="live_streams_not_supported">Ez egy élö közvetités. Még nem támogatva.</string>
</resources>

View File

@@ -124,4 +124,6 @@
<string name="report_error">エラーを報告</string>
<string name="user_report">ユーザー報告</string>
<string name="duration_live">ライブ</string>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources><string name="view_count_text">%1$s pogledov</string>
<string name="upload_date_text">Poslano %1$s</string>
<string name="upload_date_text">Objavljeno %1$s</string>
<string name="no_player_found">Predvajalnika pretoka ni mogoče najti. Ali želite namestiti program VLC?</string>
<string name="install">Namesti</string>
<string name="cancel">Prekliči</string>
@@ -123,4 +123,6 @@
<string name="report_error">Pošlji poročilo o napaki</string>
<string name="user_report">Poročilo uporabnika</string>
<string name="duration_live">v živo</string>
</resources>

View File

@@ -0,0 +1,83 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources><string name="background_player_name">Фоновий програвач NewPipe</string>
<string name="view_count_text">%1$s переглядів</string>
<string name="upload_date_text">Завантажений %1$s</string>
<string name="no_player_found">Потоковий програвач не знайдено. Встановити VLC?</string>
<string name="install">Встановити</string>
<string name="cancel">Скасувати</string>
<string name="open_in_browser">Відкрити в браузері</string>
<string name="share">Поділитись</string>
<string name="loading">Завантаження</string>
<string name="download">Завантажити</string>
<string name="search">Пошук</string>
<string name="settings">Налаштування</string>
<string name="did_you_mean">Ви мали на увазі: %1$s ?</string>
<string name="search_page">"Пошукова сторінка: "</string>
<string name="share_dialog_title">Поділитись з:</string>
<string name="choose_browser">Виберіть браузер:</string>
<string name="screen_rotation">обертання</string>
<string name="settings_activity_title">Налаштування</string>
<string name="use_external_video_player_title">Використовувати зовнішній відео програвач</string>
<string name="use_external_audio_player_title">Використовувати зовнішній аудіо програвач</string>
<string name="download_path_title">Шлях для завантаження відео</string>
<string name="download_path_dialog_title">Вкажіть шлях для завантаження відео</string>
<string name="download_path_audio_dialog_title">Вкажіть шлях для завантаження аудіо файлів.</string>
<string name="download_path_summary">Шлях де будуть зберігатись завантажені відео.</string>
<string name="download_path_audio_title">Шлях для завантаження аудіо</string>
<string name="download_path_audio_summary">Шлях де будуть зберігатись завантажені аудіо файли.</string>
<string name="autoplay_by_calling_app_title">Автоматично відтворювати при виклику з іншого додатку.</string>
<string name="autoplay_by_calling_app_summary">Автоматично відтворювати відео коли NewPipe викликано з іншого додатку.</string>
<string name="default_resolution_title">Роздільна здатність за замовчуванням</string>
<string name="play_with_kodi_title">Відтворювати за допомогою Kodi</string>
<string name="kore_not_found">Додаток Kore не знайдено. Встановити?</string>
<string name="show_play_with_kodi_title">Показувати опцію \"Програвати за допомогою Kodi\"</string>
<string name="show_play_with_kodi_summary">Показувати опцію відтворення відео за допомогою Kodi media center.</string>
<string name="play_audio">Аудіо</string>
<string name="default_audio_format_title">Аудіо формат за замовчуванням</string>
<string name="webm_description">WebM — вільний формат</string>
<string name="m4a_description">m4a — краща якість</string>
<string name="theme_title">Тема</string>
<string name="dark_theme_title">Темна</string>
<string name="light_theme_title">Світла</string>
<string name="download_dialog_title">Завантажити</string>
<string name="next_video_title">Наступне відео</string>
<string name="show_next_and_similar_title">Показувати наступні та схожі відео</string>
<string name="url_not_supported_toast">URL не підтримується</string>
<string name="similar_videos_btn_text">Схожі відео</string>
<string name="search_language_title">Мова контенту</string>
<string name="settings_category_video_audio_title">Відео та Аудіо</string>
<string name="settings_category_appearance_title">Зовнішній вигляд</string>
<string name="settings_category_other_title">Інше</string>
<string name="background_player_playing_toast">Відтворення у фоновому режимі</string>
<string name="play_btn_text">Відтворити</string>
<string name="storage_permission_denied">В доступі відмовлено</string>
<string name="use_exoplayer_title">Використовувати ExoPlayer</string>
<string name="use_exoplayer_summary">Експериментальний</string>
<string name="content">Контент</string>
<string name="show_age_restricted_content_title">Показувати контент з віковим обмеженням</string>
<string name="video_is_age_restricted">Відео має вікові обмеження. Спершу активуйте опцію для відображення таких відео в налаштуваннях.</string>
<string name="duration_live">наживо</string>
<string name="general_error">Помилка</string>
<string name="network_error">Помилка мережі</string>
<string name="could_not_load_thumbnails">Не вдалося завантажити всі ескізи</string>
<string name="youtube_signature_decryption_error">Не вдалося розшифрувати підпис url відео.</string>
<string name="parsing_error">Не вдалося проаналізувати веб-сайт.</string>
<string name="light_parsing_error">Не вдалося повністю проаналізувати веб-сайт.</string>
<string name="content_not_available">Контент не доступний.</string>
<string name="blocked_by_gema">Заблоковано GEMA.</string>
<string name="could_not_setup_download_menu">Не вдалося налаштувати меню завантаження.</string>
<string name="live_streams_not_supported">Це пряма трансляція. Це ще не підтримується.</string>
<string name="could_not_get_stream">Не вдалося отримати ніякий потік.</string>
<string name="sorry_string">Шкода, цього не повинно було статися.</string>
<string name="error_report_button_text">Звіт про помилку за допомогою пошти</string>
<string name="error_snackbar_message">На жаль сталася помилка.</string>
<string name="error_snackbar_action">ЗВІТУВАТИ</string>
<string name="what_device_headline">Інформація:</string>
<string name="what_happened_headline">Що сталося:</string>
<string name="info_labels">Що:\\nЗапит:\\nМова контенту:\\nСервіс:\\nЧас GMT:\\nВерсія:\\nВерсія ОС:\\nДіапазон IP:</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<resources><string name="background_player_name">NewPipe 背景播放器</string>
<string name="view_count_text">%1$s 次观看</string>
<string name="upload_date_text">于 %1$s 发布</string>
@@ -46,21 +46,73 @@
<string name="settings_category_video_audio_title">视频和音频</string>
<string name="settings_category_appearance_title">外观</string>
<string name="settings_category_other_title">其他</string>
<string name="background_player_playing_toast">背景播放</string>
<string name="background_player_playing_toast">后台播放</string>
<string name="play_btn_text">播放</string>
<string name="network_error">网络错误</string>
<string name="list_thumbnail_view_description">视频预览缩图</string>
<string name="detail_thumbnail_view_description">视频预览缩图</string>
<string name="list_thumbnail_view_description">视频预览缩图</string>
<string name="detail_thumbnail_view_description">视频预览缩图</string>
<string name="detail_uploader_thumbnail_view_description">上传者的头像缩图</string>
<string name="detail_likes_img_view_description"></string>
<string name="detail_dislikes_img_view_description"></string>
<string name="detail_likes_img_view_description">喜欢</string>
<string name="detail_dislikes_img_view_description">不喜欢</string>
<string name="use_tor_title">使用 Tor</string>
<string name="use_tor_summary">强迫下载流量通过 Tor 加强隐私(暂不支援流视频)</string>
<string name="use_tor_summary">(实验性)强制下载流量使用 Tor 加强隐私(暂不支援流媒体视频)</string>
<string name="download_path_audio_title">音频下载路径</string>
<string name="download_path_audio_summary">存放已下载音频的路径。</string>
<string name="download_path_audio_dialog_title">输入音频的下载路径。</string>
<string name="err_dir_create">未能建立下载路径 “%1$s”</string>
<string name="info_dir_created">已建立下载路径 “%1$s”</string>
</resources>
<string name="content">内容</string>
<string name="show_age_restricted_content_title">显示年龄限制内容</string>
<string name="video_is_age_restricted">视频有年龄限制。请先在设置中启用年龄限制视频。</string>
<string name="general_error">错误</string>
<string name="could_not_load_thumbnails">无法加载所有缩略图</string>
<string name="youtube_signature_decryption_error">无法解密视频网址签名。</string>
<string name="parsing_error">无法解析网站。</string>
<string name="light_parsing_error">无法解析网站完成。</string>
<string name="content_not_available">内容不可用。</string>
<string name="blocked_by_gema">已被 GEMA 屏蔽。</string>
<string name="could_not_setup_download_menu">无法设置下载菜单。</string>
<string name="live_streams_not_supported">这是一个在线流媒体。这尚不支持。</string>
<string name="could_not_get_stream">无法获取任何流媒体。</string>
<string name="sorry_string">抱歉,这不应该发生。</string>
<string name="error_report_button_text">使用邮件报告错误</string>
<string name="error_snackbar_message">抱歉,发生一些错误。</string>
<string name="error_snackbar_action">报告</string>
<string name="what_device_headline">信息:</string>
<string name="what_happened_headline">发生什么:</string>
<string name="info_searched_lbl">搜索:</string>
<string name="info_requested_stream_lbl">已请求流:</string>
<string name="your_comment">您的注释(英文):</string>
<string name="error_details_headline">详细信息:</string>
<string name="info_labels">什么:\\n请求\\n内容语言\\n服务\\nGMT 时间:\\n版本\\nOS 版本:\\nGlob. IP 范围:</string>
<string name="report_error">报告错误</string>
<string name="user_report">用户报告</string>
<string name="enable_background_audio">在后台播放</string>
<string name="video">视频</string>
<string name="audio">音频</string>
<string name="text">文本</string>
<string name="logging">日志记录</string>
<string name="logging_normal">正常</string>
<string name="logging_verbose">详细</string>
<string name="retry">重试</string>
<string name="off">[关]</string>
<string name="error_drm_not_supported">已保护内容在 API 级别低于 18 时不支持</string>
<string name="error_drm_unsupported_scheme">此设备不支持 DRM 模式</string>
<string name="error_drm_unknown">发生未知 DRM 错误</string>
<string xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" name="error_no_decoder">此设备未提供一个 <xliff:g id="mime_type">%1$s</xliff:g> 的解码器</string>
<string xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" name="error_no_secure_decoder">此设备未提供一个 <xliff:g id="mime_type">%1$s</xliff:g> 的安全解码器</string>
<string name="error_querying_decoders">无法查询设备解码器</string>
<string xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" name="error_instantiating_decoder">无法实例化解码器 <xliff:g id="decoder_name">%1$s</xliff:g></string>
<string name="storage_permission_denied">访问存储的权限被拒绝</string>
<string name="use_exoplayer_summary">实验性</string>
<string name="use_exoplayer_title">使用 ExoPlayer</string>
<string name="autoplay_by_calling_app_title">另一应用调用时自动播放。</string>
<string name="autoplay_by_calling_app_summary">NewPipe 是被另一应用调用时自动开始播放视频。</string>
<string name="duration_live">直播</string>
</resources>

View File

@@ -1,6 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" translatable="false">NewPipe</string>
<string name="main_bg_subtitle">Tap search to get started</string>
<string name="background_player_name">NewPipe Background Player</string>
<string name="title_videoitem_detail" translatable="false">NewPipe</string>
<string name="view_count_text">%1$s views</string>