mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2026-01-14 02:32:40 +00:00
Compare commits
81 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa06e3490d | ||
|
|
ece889b36b | ||
|
|
9848f19ce6 | ||
|
|
e59b087057 | ||
|
|
5b451d1ac7 | ||
|
|
f050c05b3c | ||
|
|
06b8edefbf | ||
|
|
f3a2a28398 | ||
|
|
9b0a1fc2ec | ||
|
|
c87ab234eb | ||
|
|
68468756a8 | ||
|
|
9016df0195 | ||
|
|
7acece9705 | ||
|
|
d1896c23c0 | ||
|
|
dae19f03e0 | ||
|
|
9dafccf0f7 | ||
|
|
5f270c41ae | ||
|
|
f9f80e9003 | ||
|
|
c5063d4269 | ||
|
|
ccbe18ec1c | ||
|
|
321a8a8b25 | ||
|
|
77a9560376 | ||
|
|
058a039a82 | ||
|
|
7c744703e4 | ||
|
|
a934cbb085 | ||
|
|
cf4158c0d0 | ||
|
|
dc56eab9b6 | ||
|
|
37d1f59132 | ||
|
|
ab0ce55411 | ||
|
|
c1d66596d1 | ||
|
|
cbfccdf0d3 | ||
|
|
9362037177 | ||
|
|
e25c93bae2 | ||
|
|
367c434010 | ||
|
|
02d8463e15 | ||
|
|
9d5a1d5c43 | ||
|
|
c8d94f541f | ||
|
|
27d06eaa6b | ||
|
|
7f32857e00 | ||
|
|
2f060f0f52 | ||
|
|
f89d405226 | ||
|
|
fd4459e570 | ||
|
|
eb0df2b101 | ||
|
|
6c178cfb7e | ||
|
|
8ced68430d | ||
|
|
0aade598ff | ||
|
|
95949fd1ab | ||
|
|
1a56382112 | ||
|
|
d610e4b19b | ||
|
|
fc44d9e36e | ||
|
|
c07686576a | ||
|
|
c2400aea4d | ||
|
|
fb4bf0dde4 | ||
|
|
e4f638d1ce | ||
|
|
5c492c01a1 | ||
|
|
f451e11f82 | ||
|
|
95b73f35f7 | ||
|
|
58147e9e12 | ||
|
|
a8830e2ede | ||
|
|
9804bb95cc | ||
|
|
0da1aef763 | ||
|
|
0a334804a3 | ||
|
|
94d2f03e9b | ||
|
|
9127f7f0c2 | ||
|
|
0bb0226bc2 | ||
|
|
b3a1a5dcc2 | ||
|
|
984dd1cc25 | ||
|
|
5663e543a4 | ||
|
|
d3879a0398 | ||
|
|
6bd2468d44 | ||
|
|
e63d43151b | ||
|
|
0265da4ae6 | ||
|
|
ef255d12ae | ||
|
|
eeb612f9a2 | ||
|
|
dfcb4edb81 | ||
|
|
d90162d06f | ||
|
|
97c924341c | ||
|
|
cd3f405bff | ||
|
|
7cfdca7a81 | ||
|
|
216063dba8 | ||
|
|
b647bacd72 |
@@ -1,11 +1,11 @@
|
||||
#Contributing
|
||||
#Contribution
|
||||
|
||||
This document contains guidelines on making contributions to NewPipe.
|
||||
|
||||
## Programming
|
||||
|
||||
* Follow the [Google Style Guidelines](https://google.github.io/styleguide/javaguide.html)
|
||||
* Make a new feature on a seperate branch, not on the master branch
|
||||
* Make a new feature on a separate branch, not on the master branch
|
||||
* Make a [pull request](https://github.com/theScrabi/NewPipe/pulls) if you're done with your changes
|
||||
* When submitting changes, you agree that your code will be GPLv3 licensed
|
||||
|
||||
@@ -16,7 +16,7 @@ This document contains guidelines on making contributions to NewPipe.
|
||||
compatibility with all git tools
|
||||
* [This guide](http://chris.beams.io/posts/git-commit/) goes more in depth on what makes a good commit message
|
||||
|
||||
## Translating
|
||||
## Translation
|
||||
|
||||
* NewPipe can be translated on [weblate](https://hosted.weblate.org/projects/newpipe/strings/)
|
||||
|
||||
@@ -30,4 +30,4 @@ This document contains guidelines on making contributions to NewPipe.
|
||||
## Communication
|
||||
|
||||
* For the time being, [Slack](http://invite.chschtsch.ml/) is being used for project communication
|
||||
* Feel free to post suggestions, changes ideas etc!
|
||||
* Feel free to post suggestions, changes, ideas etc!
|
||||
|
||||
@@ -36,6 +36,7 @@ NewPipe does not use any Google framework libraries, or the YouTube API. It only
|
||||
* Open a video in Kodi
|
||||
* Show Next/Related videos
|
||||
* Search YouTube in a specific language
|
||||
* Orbot/Tor support (no streaming yet)
|
||||
|
||||
### Coming Features
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ android {
|
||||
applicationId "org.schabi.newpipe"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 23
|
||||
versionCode 10
|
||||
versionName "0.7.1"
|
||||
versionCode 12
|
||||
versionName "0.7.3"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
@@ -17,7 +17,7 @@ android {
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
lintOptions {
|
||||
checkReleaseBuilds false
|
||||
// Or, if you prefer, you can continue to check for errors in release builds,
|
||||
@@ -35,4 +35,5 @@ dependencies {
|
||||
compile 'com.android.support:recyclerview-v7:23.1.1'
|
||||
compile 'org.jsoup:jsoup:1.8.3'
|
||||
compile 'org.mozilla:rhino:1.7.7'
|
||||
compile 'info.guardianproject.netcipher:netcipher:1.2'
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package org.schabi.newpipe.services.youtube;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
import org.schabi.newpipe.VideoPreviewInfo;
|
||||
import org.schabi.newpipe.services.SearchEngine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by the-scrabi on 29.12.15.
|
||||
*
|
||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||
* YoutubeSearchEngineTest.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class YoutubeSearchEngineTest extends AndroidTestCase {
|
||||
private SearchEngine.Result result;
|
||||
private ArrayList<String> suggestionReply;
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception{
|
||||
super.setUp();
|
||||
SearchEngine engine = new YoutubeSearchEngine();
|
||||
result = engine.search("https://www.youtube.com/results?search_query=bla", 0, "de");
|
||||
suggestionReply = engine.suggestionList("hello");
|
||||
}
|
||||
|
||||
public void testIfNoErrorOccur() {
|
||||
assertEquals(result.errorMessage, "");
|
||||
}
|
||||
|
||||
public void testIfListIsNotEmpty() {
|
||||
assertEquals(result.resultList.size() > 0, true);
|
||||
}
|
||||
|
||||
public void testItemsHaveTitle() {
|
||||
for(VideoPreviewInfo i : result.resultList) {
|
||||
assertEquals(i.title.isEmpty(), false);
|
||||
}
|
||||
}
|
||||
|
||||
public void testItemsHaveUploader() {
|
||||
for(VideoPreviewInfo i : result.resultList) {
|
||||
assertEquals(i.uploader.isEmpty(), false);
|
||||
}
|
||||
}
|
||||
|
||||
public void testItemsHaveRightDuration() {
|
||||
for(VideoPreviewInfo i : result.resultList) {
|
||||
assertTrue(i.duration, i.duration.contains(":"));
|
||||
}
|
||||
}
|
||||
|
||||
public void testItemsHaveRightThumbnail() {
|
||||
for (VideoPreviewInfo i : result.resultList) {
|
||||
assertTrue(i.thumbnail_url, i.thumbnail_url.contains("https://"));
|
||||
}
|
||||
}
|
||||
|
||||
public void testItemsHaveRightVideoUrl() {
|
||||
for (VideoPreviewInfo i : result.resultList) {
|
||||
assertTrue(i.webpage_url, i.webpage_url.contains("https://"));
|
||||
}
|
||||
}
|
||||
|
||||
public void testIfSuggestionsAreReplied() {
|
||||
assertEquals(suggestionReply.size() > 0, true);
|
||||
}
|
||||
|
||||
public void testIfSuggestionsAreValid() {
|
||||
for(String s : suggestionReply) {
|
||||
assertTrue(s, !s.isEmpty());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package org.schabi.newpipe.services.youtube;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
import android.util.Log;
|
||||
|
||||
import org.schabi.newpipe.services.VideoInfo;
|
||||
|
||||
/**
|
||||
* Created by the-scrabi on 30.12.15.
|
||||
*
|
||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||
* YoutubeVideoExtractorDefault.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class YoutubeVideoExtractorDefaultTest extends AndroidTestCase {
|
||||
private YoutubeVideoExtractor extractor;
|
||||
|
||||
public void setUp() {
|
||||
extractor = new YoutubeVideoExtractor("https://www.youtube.com/watch?v=FmG385_uUys");
|
||||
}
|
||||
|
||||
public void testGetErrorCode() {
|
||||
assertEquals(extractor.getErrorCode(), VideoInfo.NO_ERROR);
|
||||
}
|
||||
|
||||
public void testGetErrorMessage() {
|
||||
assertEquals(extractor.getErrorMessage(), "");
|
||||
}
|
||||
|
||||
public void testGetTimeStamp() {
|
||||
assertTrue(Integer.toString(extractor.getTimeStamp()),
|
||||
extractor.getTimeStamp() >= 0);
|
||||
}
|
||||
|
||||
public void testGetTitle() {
|
||||
assertTrue(!extractor.getTitle().isEmpty());
|
||||
}
|
||||
|
||||
public void testGetDescription() {
|
||||
assertTrue(extractor.getDescription() != null);
|
||||
}
|
||||
|
||||
public void testGetUploader() {
|
||||
assertTrue(!extractor.getUploader().isEmpty());
|
||||
}
|
||||
|
||||
public void testGetLength() {
|
||||
assertTrue(extractor.getLength() > 0);
|
||||
}
|
||||
|
||||
public void testGetViews() {
|
||||
assertTrue(extractor.getLength() > 0);
|
||||
}
|
||||
|
||||
public void testGetUploadDate() {
|
||||
assertTrue(extractor.getUploadDate().length() > 0);
|
||||
}
|
||||
|
||||
public void testGetThumbnailUrl() {
|
||||
assertTrue(extractor.getThumbnailUrl(),
|
||||
extractor.getThumbnailUrl().contains("https://"));
|
||||
}
|
||||
|
||||
public void testGetUploaderThumbnailUrl() {
|
||||
assertTrue(extractor.getUploaderThumbnailUrl(),
|
||||
extractor.getUploaderThumbnailUrl().contains("https://"));
|
||||
}
|
||||
|
||||
public void testGetAudioStreams() {
|
||||
for(VideoInfo.AudioStream s : extractor.getAudioStreams()) {
|
||||
assertTrue(s.url,
|
||||
s.url.contains("https://"));
|
||||
assertTrue(s.bandwidth > 0);
|
||||
assertTrue(s.samplingRate > 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetVideoStreams() {
|
||||
for(VideoInfo.VideoStream s : extractor.getVideoStreams()) {
|
||||
assertTrue(s.url,
|
||||
s.url.contains("https://"));
|
||||
assertTrue(s.resolution.length() > 0);
|
||||
assertTrue(Integer.toString(s.format),
|
||||
0 <= s.format && s.format <= 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.schabi.newpipe.services.youtube;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
import org.schabi.newpipe.services.VideoInfo;
|
||||
|
||||
/**
|
||||
* Created by the-scrabi on 30.12.15.
|
||||
*
|
||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||
* YoutubeVideoExtractorGema.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
// This class only works in Germany.
|
||||
public class YoutubeVideoExtractorGemaTest extends AndroidTestCase {
|
||||
|
||||
// Deaktivate this Test Case bevore uploading it githup, otherwise CI will fail.
|
||||
private static final boolean testActive = false;
|
||||
|
||||
|
||||
private YoutubeVideoExtractor extractor;
|
||||
|
||||
public void setUp() {
|
||||
if(testActive) {
|
||||
extractor = new YoutubeVideoExtractor("https://www.youtube.com/watch?v=3O1_3zBUKM8");
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetErrorCode() {
|
||||
if(testActive) {
|
||||
assertEquals(extractor.getErrorCode(), VideoInfo.ERROR_BLOCKED_BY_GEMA);
|
||||
} else {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetErrorMessage() {
|
||||
if(testActive) {
|
||||
assertTrue(extractor.getErrorMessage(),
|
||||
extractor.getErrorMessage().contains("GEMA"));
|
||||
} else {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<application
|
||||
android:name=".App"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:logo="@mipmap/ic_launcher"
|
||||
@@ -83,7 +84,7 @@
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".SettingsActivity"
|
||||
android:label="@string/title_activity_settings" >
|
||||
android:label="@string/settings_activity_title" >
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".PanicResponderActivity"
|
||||
|
||||
@@ -16,6 +16,7 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import org.schabi.newpipe.services.MediaFormat;
|
||||
import org.schabi.newpipe.services.VideoInfo;
|
||||
|
||||
/**
|
||||
@@ -98,8 +99,8 @@ class ActionBarHandler {
|
||||
defaultPreferences = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||
String[] itemArray = new String[videoStreams.length];
|
||||
String defaultResolution = defaultPreferences
|
||||
.getString(activity.getString(R.string.defaultResolutionPreference),
|
||||
activity.getString(R.string.defaultResolutionListItem));
|
||||
.getString(activity.getString(R.string.default_resolution_key),
|
||||
activity.getString(R.string.default_resolution_value));
|
||||
int defaultResolutionPos = 0;
|
||||
|
||||
for(int i = 0; i < videoStreams.length; i++) {
|
||||
@@ -123,7 +124,7 @@ class ActionBarHandler {
|
||||
// set audioStream
|
||||
audioStream = null;
|
||||
String preferedFormat = defaultPreferences
|
||||
.getString(activity.getString(R.string.defaultAudioFormatPreference), "webm");
|
||||
.getString(activity.getString(R.string.default_audio_format_key), "webm");
|
||||
if(preferedFormat.equals("webm")) {
|
||||
for(VideoInfo.AudioStream s : audioStreams) {
|
||||
if(s.format == MediaFormat.WEBMA.id) {
|
||||
@@ -157,7 +158,7 @@ class ActionBarHandler {
|
||||
MenuItem castItem = menu.findItem(R.id.action_play_with_kodi);
|
||||
|
||||
castItem.setVisible(defaultPreferences
|
||||
.getBoolean(activity.getString(R.string.showPlayWithKodiPreference), false));
|
||||
.getBoolean(activity.getString(R.string.show_play_with_kodi_key), false));
|
||||
}
|
||||
|
||||
public boolean onItemSelected(MenuItem item) {
|
||||
@@ -169,7 +170,7 @@ class ActionBarHandler {
|
||||
intent.setAction(Intent.ACTION_SEND);
|
||||
intent.putExtra(Intent.EXTRA_TEXT, websiteUrl);
|
||||
intent.setType("text/plain");
|
||||
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.shareDialogTitle)));
|
||||
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.share_dialog_title)));
|
||||
return true;
|
||||
}
|
||||
case R.id.menu_item_openInBrowser: {
|
||||
@@ -209,7 +210,7 @@ class ActionBarHandler {
|
||||
// ----------- THE MAGIC MOMENT ---------------
|
||||
if(!videoTitle.isEmpty()) {
|
||||
if (PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
.getBoolean(activity.getString(R.string.useExternalVideoPlayer), false)) {
|
||||
.getBoolean(activity.getString(R.string.use_external_video_player_key), false)) {
|
||||
|
||||
// External Player
|
||||
Intent intent = new Intent();
|
||||
@@ -225,13 +226,13 @@ class ActionBarHandler {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
builder.setMessage(R.string.noPlayerFound)
|
||||
.setPositiveButton(R.string.installStreamPlayer, new DialogInterface.OnClickListener() {
|
||||
builder.setMessage(R.string.no_player_found)
|
||||
.setPositiveButton(R.string.install, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroidVLCurl)));
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroid_vlc_url)));
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
})
|
||||
@@ -283,7 +284,7 @@ class ActionBarHandler {
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(websiteUrl));
|
||||
|
||||
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.chooseBrowser)));
|
||||
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.choose_browser)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,13 +298,13 @@ class ActionBarHandler {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
builder.setMessage(R.string.koreNotFound)
|
||||
.setPositiveButton(R.string.installeKore, new DialogInterface.OnClickListener() {
|
||||
builder.setMessage(R.string.kore_not_found)
|
||||
.setPositiveButton(R.string.install, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroidKoreUrl)));
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroid_kore_url)));
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
})
|
||||
@@ -321,7 +322,7 @@ class ActionBarHandler {
|
||||
public void playAudio() {
|
||||
|
||||
boolean externalAudioPlayer = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
.getBoolean(activity.getString(R.string.useExternalAudioPlayer), false);
|
||||
.getBoolean(activity.getString(R.string.use_external_audio_player_key), false);
|
||||
Intent intent;
|
||||
|
||||
if (!externalAudioPlayer && android.os.Build.VERSION.SDK_INT >= 18) {
|
||||
@@ -355,13 +356,13 @@ class ActionBarHandler {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
builder.setMessage(R.string.noPlayerFound)
|
||||
.setPositiveButton(R.string.installStreamPlayer, new DialogInterface.OnClickListener() {
|
||||
builder.setMessage(R.string.no_player_found)
|
||||
.setPositiveButton(R.string.install, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroidVLCurl)));
|
||||
intent.setData(Uri.parse(activity.getString(R.string.fdroid_vlc_url)));
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
})
|
||||
|
||||
71
app/src/main/java/org/schabi/newpipe/App.java
Normal file
71
app/src/main/java/org/schabi/newpipe/App.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package org.schabi.newpipe;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
|
||||
/**
|
||||
* Copyright (C) Hans-Christoph Steiner 2016 <hans@eds.org>
|
||||
* App.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class App extends Application {
|
||||
|
||||
private static boolean useTor;
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if(prefs.getBoolean(getString(R.string.use_tor_key), false)) {
|
||||
OrbotHelper.requestStartTor(this);
|
||||
configureTor(true);
|
||||
} else {
|
||||
configureTor(false);
|
||||
}
|
||||
|
||||
// DO NOT REMOVE THIS FUNCTION!!!
|
||||
// Otherwise downloadPathPreference has invalid value.
|
||||
SettingsActivity.initSettings(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the proxy settings based on whether Tor should be enabled or not.
|
||||
*/
|
||||
static void configureTor(boolean enabled) {
|
||||
useTor = enabled;
|
||||
if (useTor) {
|
||||
NetCipher.useTor();
|
||||
} else {
|
||||
NetCipher.setProxy(null);
|
||||
}
|
||||
}
|
||||
|
||||
static void checkStartTor(Context context) {
|
||||
if (useTor) {
|
||||
OrbotHelper.requestStartTor(context);
|
||||
}
|
||||
}
|
||||
|
||||
static boolean isUsingTor() {
|
||||
return useTor;
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
}
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Toast.makeText(this, R.string.backgroundPlayerStartPlayingToast,
|
||||
Toast.makeText(this, R.string.background_player_playing_toast,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
|
||||
String source = intent.getDataString();
|
||||
@@ -135,9 +135,6 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
//so calling the blocking prepare() method should be ok
|
||||
mediaPlayer.prepare();
|
||||
|
||||
//alternatively:
|
||||
//mediaPlayer.setOnPreparedListener(this);
|
||||
//mediaPlayer.prepareAsync(); //prepare async to not block main thread
|
||||
} catch (IOException ioe) {
|
||||
ioe.printStackTrace();
|
||||
Log.e(TAG, "video source:" + source);
|
||||
@@ -179,15 +176,6 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
|
||||
Notification note = buildNotification();
|
||||
|
||||
Intent openDetailView = new Intent(getApplicationContext(),
|
||||
VideoItemDetailActivity.class);
|
||||
openDetailView.putExtra(VideoItemDetailFragment.STREAMING_SERVICE, serviceId);
|
||||
openDetailView.putExtra(VideoItemDetailFragment.VIDEO_URL, webUrl);
|
||||
openDetailView.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
note.contentIntent = PendingIntent.getActivity(getApplicationContext(),
|
||||
noteID, openDetailView,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
|
||||
startForeground(noteID, note);
|
||||
|
||||
//currently decommissioned progressbar looping update code - works, but doesn't fit inside
|
||||
@@ -207,6 +195,7 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
}*/
|
||||
}
|
||||
|
||||
/**Handles button presses from the notification. */
|
||||
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
@@ -217,7 +206,7 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
mediaPlayer.pause();
|
||||
}
|
||||
else {
|
||||
//reacquire CPU lock after releasing it on pause
|
||||
//reacquire CPU lock after auto-releasing it on pause
|
||||
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
|
||||
mediaPlayer.start();
|
||||
}
|
||||
@@ -231,8 +220,9 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
};
|
||||
|
||||
private void afterPlayCleanup() {
|
||||
//noteBuilder.setProgress(0, 0, false);
|
||||
//remove progress bar
|
||||
//noteBuilder.setProgress(0, 0, false);
|
||||
|
||||
//remove notification
|
||||
noteMgr.cancel(noteID);
|
||||
unregisterReceiver(broadcastReceiver);
|
||||
@@ -241,7 +231,7 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
|
||||
//release wifilock
|
||||
wifiLock.release();
|
||||
//remove foreground status of service; make us killable
|
||||
//remove foreground status of service; make BackgroundPlayer killable
|
||||
stopForeground(true);
|
||||
|
||||
stopSelf();
|
||||
@@ -273,6 +263,13 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
(R.drawable.ic_pause_white_24dp, "Pause", playPI).build();
|
||||
*/
|
||||
|
||||
//build intent to return to video, on tapping notification
|
||||
Intent openDetailView = new Intent(getApplicationContext(),
|
||||
VideoItemDetailActivity.class);
|
||||
openDetailView.putExtra(VideoItemDetailFragment.STREAMING_SERVICE, serviceId);
|
||||
openDetailView.putExtra(VideoItemDetailFragment.VIDEO_URL, webUrl);
|
||||
openDetailView.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
noteBuilder
|
||||
.setOngoing(true)
|
||||
.setDeleteIntent(stopPI)
|
||||
@@ -281,17 +278,22 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
.setSmallIcon(R.drawable.ic_play_circle_filled_white_24dp)
|
||||
.setTicker(
|
||||
String.format(res.getString(
|
||||
R.string.backgroundPlayerTickerText), title));
|
||||
R.string.background_player_time_text), title))
|
||||
.setContentIntent(PendingIntent.getActivity(getApplicationContext(),
|
||||
noteID, openDetailView,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT));
|
||||
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT < 21) {
|
||||
|
||||
NotificationCompat.Action playButton = new NotificationCompat.Action.Builder
|
||||
(R.drawable.ic_play_arrow_white_48dp,
|
||||
res.getString(R.string.play), playPI).build();
|
||||
res.getString(R.string.play_btn_text), playPI).build();
|
||||
|
||||
noteBuilder
|
||||
.setContentTitle(title)
|
||||
//really? Id like to put something more helpful here.
|
||||
//was more of a placeholder than anything else. -medavox
|
||||
//.setContentText("NewPipe is playing in the background")
|
||||
.setContentText(channelName)
|
||||
//.setAutoCancel(!mediaPlayer.isPlaying())
|
||||
@@ -303,6 +305,9 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
//.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||
//.setLargeIcon(cover)
|
||||
|
||||
//is wrapping this in an SDK version check really necessary,
|
||||
// if we're using NotificationCompat?
|
||||
// the compat libraries should handle this, right? -medavox
|
||||
if (android.os.Build.VERSION.SDK_INT >= 16)
|
||||
noteBuilder.setPriority(Notification.PRIORITY_LOW);
|
||||
|
||||
@@ -324,8 +329,10 @@ public class BackgroundPlayer extends Service /*implements MediaPlayer.OnPrepare
|
||||
view.setOnClickPendingIntent(R.id.backgroundStop, stopPI);
|
||||
view.setOnClickPendingIntent(R.id.backgroundPlayPause, playPI);
|
||||
|
||||
//possibly found the expandedView problem,
|
||||
//but can't test it as I don't have a 5.0 device. -medavox
|
||||
RemoteViews expandedView =
|
||||
new RemoteViews(BuildConfig.APPLICATION_ID, R.layout.player_notification);
|
||||
new RemoteViews(BuildConfig.APPLICATION_ID, R.layout.player_notification_expanded);
|
||||
expandedView.setImageViewBitmap(R.id.backgroundCover, videoThumbnail);
|
||||
expandedView.setTextViewText(R.id.backgroundSongName, title);
|
||||
expandedView.setTextViewText(R.id.backgroundArtist, channelName);
|
||||
|
||||
@@ -1,20 +1,29 @@
|
||||
package org.schabi.newpipe;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.app.DownloadManager;
|
||||
import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 21.09.15.
|
||||
@@ -51,9 +60,11 @@ public class DownloadDialog extends DialogFragment {
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
arguments = getArguments();
|
||||
super.onCreateDialog(savedInstanceState);
|
||||
if(ContextCompat.checkSelfPermission(this.getContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED)
|
||||
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setTitle(R.string.downloadDialogTitle)
|
||||
.setItems(R.array.downloadOptions, new DialogInterface.OnClickListener() {
|
||||
builder.setTitle(R.string.download_dialog_title)
|
||||
.setItems(R.array.download_options, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Context context = getActivity();
|
||||
@@ -61,45 +72,83 @@ public class DownloadDialog extends DialogFragment {
|
||||
String suffix = "";
|
||||
String title = arguments.getString(TITLE);
|
||||
String url = "";
|
||||
String downloadFolder = "Download";
|
||||
File downloadDir = NewPipeSettings.getDownloadFolder();
|
||||
switch(which) {
|
||||
case 0: // Video
|
||||
suffix = arguments.getString(FILE_SUFFIX_VIDEO);
|
||||
url = arguments.getString(VIDEO_URL);
|
||||
downloadFolder = "Movies";
|
||||
downloadDir = NewPipeSettings.getVideoDownloadFolder(context);
|
||||
break;
|
||||
case 1:
|
||||
suffix = arguments.getString(FILE_SUFFIX_AUDIO);
|
||||
url = arguments.getString(AUDIO_URL);
|
||||
downloadFolder = "Music";
|
||||
downloadDir = NewPipeSettings.getAudioDownloadFolder(context);
|
||||
break;
|
||||
default:
|
||||
Log.d(TAG, "lolz");
|
||||
}
|
||||
//to avoid hard-coded string like "/storage/emulated/0/Movies"
|
||||
String downloadPath = prefs.getString(getString(R.string.downloadPathPreference),
|
||||
Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + downloadFolder);
|
||||
final File dir = new File(downloadPath);
|
||||
if(!dir.exists()) {
|
||||
boolean mkdir = dir.mkdir(); //attempt to create directory
|
||||
if(!mkdir && !dir.isDirectory()) {
|
||||
Log.e(TAG, "Cant' create directory named " + dir.toString());
|
||||
//TODO notify user "download directory should be changed" ?
|
||||
if(!downloadDir.exists()) {
|
||||
//attempt to create directory
|
||||
boolean mkdir = downloadDir.mkdirs();
|
||||
if(!mkdir && !downloadDir.isDirectory()) {
|
||||
String message = context.getString(R.string.err_dir_create,downloadDir.toString());
|
||||
Log.e(TAG, message);
|
||||
Toast.makeText(context,message , Toast.LENGTH_LONG).show();
|
||||
|
||||
return;
|
||||
}
|
||||
String message = context.getString(R.string.info_dir_created,downloadDir.toString());
|
||||
Log.e(TAG, message);
|
||||
Toast.makeText(context,message , Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
File saveFilePath = new File(downloadDir,createFileName(title) + suffix);
|
||||
|
||||
long id = 0;
|
||||
if (App.isUsingTor()) {
|
||||
// if using Tor, do not use DownloadManager because the proxy cannot be set
|
||||
Downloader.downloadFile(getContext(), url, saveFilePath, title);
|
||||
} else {
|
||||
DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
|
||||
DownloadManager.Request request = new DownloadManager.Request(
|
||||
Uri.parse(url));
|
||||
request.setDestinationUri(Uri.fromFile(saveFilePath));
|
||||
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
||||
|
||||
request.setTitle(title);
|
||||
request.setDescription("'" + url +
|
||||
"' => '" + saveFilePath + "'");
|
||||
request.allowScanningByMediaScanner();
|
||||
|
||||
try {
|
||||
id = dm.enqueue(request);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
|
||||
DownloadManager.Request request = new DownloadManager.Request(
|
||||
Uri.parse(url));
|
||||
request.setDestinationUri(Uri.fromFile(new File(dir + "/" + title + suffix)));
|
||||
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
||||
try {
|
||||
dm.enqueue(request);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Log.i(TAG,"Started downloading '" + url +
|
||||
"' => '" + saveFilePath + "' #" + id);
|
||||
}
|
||||
});
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
/**
|
||||
* #143 #44 #42 #22: make shure that the filename does not contain illegal chars.
|
||||
* This should fix some of the "cannot download" problems.
|
||||
* */
|
||||
private String createFileName(String fName) {
|
||||
// from http://eng-przemelek.blogspot.de/2009/07/how-to-create-valid-file-name.html
|
||||
|
||||
List<String> forbiddenCharsPatterns = new ArrayList<String> ();
|
||||
forbiddenCharsPatterns.add("[:]+"); // Mac OS, but it looks that also Windows XP
|
||||
forbiddenCharsPatterns.add("[\\*\"/\\\\\\[\\]\\:\\;\\|\\=\\,]+"); // Windows
|
||||
forbiddenCharsPatterns.add("[^\\w\\d\\.]+"); // last chance... only latin letters and digits
|
||||
String nameToTest = fName;
|
||||
for (String pattern : forbiddenCharsPatterns) {
|
||||
nameToTest = nameToTest.replaceAll(pattern, "_");
|
||||
}
|
||||
return nameToTest;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,31 @@
|
||||
package org.schabi.newpipe;
|
||||
|
||||
|
||||
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 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;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 14.08.15.
|
||||
*
|
||||
@@ -27,10 +46,32 @@ import java.net.UnknownHostException;
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class Downloader {
|
||||
|
||||
public class Downloader extends AsyncTask<Void, Integer, Void> {
|
||||
public static final String TAG = "Downloader";
|
||||
private static final String USER_AGENT = "Mozilla/5.0";
|
||||
|
||||
private NotificationManager nm;
|
||||
private NotificationCompat.Builder builder;
|
||||
private int notifyId = 0x1234;
|
||||
private int fileSize = 0xffffffff;
|
||||
|
||||
private final Context context;
|
||||
private final String fileURL;
|
||||
private final File saveFilePath;
|
||||
private final String title;
|
||||
|
||||
private final String debugContext;
|
||||
|
||||
public Downloader(Context context, String fileURL, File saveFilePath, String title) {
|
||||
this.context = context;
|
||||
this.fileURL = fileURL;
|
||||
this.saveFilePath = saveFilePath;
|
||||
this.title = title;
|
||||
|
||||
this.debugContext = "'" + fileURL +
|
||||
"' => '" + saveFilePath + "'";
|
||||
}
|
||||
|
||||
/**Download the text file at the supplied URL as in download(String),
|
||||
* but set the HTTP header field "Accept-Language" to the supplied string.
|
||||
* @param siteUrl the URL of the text file to return the contents of
|
||||
@@ -40,7 +81,7 @@ public class Downloader {
|
||||
String ret = "";
|
||||
try {
|
||||
URL url = new URL(siteUrl);
|
||||
HttpURLConnection con = (HttpURLConnection) url.openConnection();
|
||||
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
|
||||
con.setRequestProperty("Accept-Language", language);
|
||||
ret = dl(con);
|
||||
}
|
||||
@@ -49,8 +90,9 @@ public class Downloader {
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**Common functionality between download(String url) and download(String url, String language)*/
|
||||
private static String dl(HttpURLConnection con) throws IOException {
|
||||
private static String dl(HttpsURLConnection con) throws IOException {
|
||||
StringBuilder response = new StringBuilder();
|
||||
|
||||
try {
|
||||
@@ -84,7 +126,7 @@ public class Downloader {
|
||||
|
||||
try {
|
||||
URL url = new URL(siteUrl);
|
||||
HttpURLConnection con = (HttpURLConnection) url.openConnection();
|
||||
HttpsURLConnection con = NetCipher.getHttpsURLConnection(url);
|
||||
ret = dl(con);
|
||||
}
|
||||
catch(Exception e) {
|
||||
@@ -93,4 +135,102 @@ public class Downloader {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Downloads a file from a URL in the background using an {@link AsyncTask}.
|
||||
*
|
||||
* @param fileURL HTTP URL of the file to be downloaded
|
||||
* @param saveFilePath path of the directory to save the file
|
||||
* @param title
|
||||
* @throws IOException
|
||||
*/
|
||||
public static void downloadFile(final Context context, final String fileURL, final File saveFilePath, String title) {
|
||||
new Downloader(context, fileURL, saveFilePath, title).execute();
|
||||
}
|
||||
|
||||
/** AsyncTask impl: executed in gui thread */
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
Drawable icon = context.getResources().getDrawable(R.mipmap.ic_launcher);
|
||||
builder = new NotificationCompat.Builder(context)
|
||||
.setSmallIcon(android.R.drawable.stat_sys_download)
|
||||
.setLargeIcon(((BitmapDrawable) icon).getBitmap())
|
||||
.setContentTitle(saveFilePath.getName())
|
||||
.setContentText(saveFilePath.getAbsolutePath())
|
||||
.setProgress(fileSize, 0, false);
|
||||
nm.notify(notifyId, builder.build());
|
||||
}
|
||||
|
||||
/** AsyncTask impl: executed in background thread does the download */
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
HttpsURLConnection con = null;
|
||||
InputStream inputStream = null;
|
||||
FileOutputStream outputStream = null;
|
||||
try {
|
||||
con = NetCipher.getHttpsURLConnection(fileURL);
|
||||
int responseCode = con.getResponseCode();
|
||||
|
||||
// always check HTTP response code first
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
fileSize = con.getContentLength();
|
||||
inputStream = new BufferedInputStream(con.getInputStream());
|
||||
outputStream = new FileOutputStream(saveFilePath);
|
||||
|
||||
int bufferSize = 8192;
|
||||
int downloaded = 0;
|
||||
|
||||
int bytesRead = -1;
|
||||
byte[] buffer = new byte[bufferSize];
|
||||
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
||||
outputStream.write(buffer, 0, bytesRead);
|
||||
downloaded += bytesRead;
|
||||
if (downloaded % 50000 < bufferSize) {
|
||||
publishProgress(downloaded);
|
||||
}
|
||||
}
|
||||
|
||||
publishProgress(bufferSize);
|
||||
|
||||
} else {
|
||||
Log.i(TAG, "No file to download. Server replied HTTP code: " + responseCode);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "No file to download. Server replied HTTP code: ", e);
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (outputStream != null) {
|
||||
outputStream.close();
|
||||
outputStream = null;
|
||||
}
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
inputStream = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (con != null) {
|
||||
con.disconnect();
|
||||
con = null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onProgressUpdate(Integer... progress) {
|
||||
builder.setProgress(fileSize, progress[0], false);
|
||||
nm.notify(notifyId, builder.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
nm.cancel(notifyId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,24 @@ import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
/**
|
||||
* Copyright (C) Hans-Christoph Steiner 2016 <hans@eds.org>
|
||||
* ExitActivity.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class ExitActivity extends Activity {
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.schabi.newpipe;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
@@ -15,6 +14,22 @@ import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by chschtsch on 12/29/15.
|
||||
*
|
||||
* Copyright (C) Gregory Arkhipov 2015
|
||||
* Localization.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class Localization {
|
||||
@@ -22,7 +37,8 @@ public class Localization {
|
||||
public static Locale getPreferredLocale(Context context) {
|
||||
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
String languageCode = sp.getString(String.valueOf(R.string.searchLanguage), "en");
|
||||
String languageCode = sp.getString(String.valueOf(R.string.search_language_key),
|
||||
context.getString(R.string.default_language_value));
|
||||
|
||||
if(languageCode.length() == 2) {
|
||||
return new Locale(languageCode);
|
||||
@@ -39,7 +55,7 @@ public class Localization {
|
||||
Locale locale = getPreferredLocale(context);
|
||||
|
||||
Resources res = context.getResources();
|
||||
String viewsString = res.getString(R.string.viewCountText);
|
||||
String viewsString = res.getString(R.string.view_count_text);
|
||||
|
||||
NumberFormat nf = NumberFormat.getInstance(locale);
|
||||
String formattedViewCount = nf.format(viewCount);
|
||||
@@ -69,7 +85,7 @@ public class Localization {
|
||||
|
||||
public static String localizeDate(String date, Context context) {
|
||||
Resources res = context.getResources();
|
||||
String dateString = res.getString(R.string.uploadDateText);
|
||||
String dateString = res.getString(R.string.upload_date_text);
|
||||
|
||||
String formattedDate = formatDate(date, context);
|
||||
return String.format(dateString, formattedDate);
|
||||
|
||||
72
app/src/main/java/org/schabi/newpipe/NewPipeSettings.java
Normal file
72
app/src/main/java/org/schabi/newpipe/NewPipeSettings.java
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* Created by k3b on 07.01.2016.
|
||||
*
|
||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||
* NewPipeSettings.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe;
|
||||
|
||||
import android.content.Context;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Helper for global settings
|
||||
*/
|
||||
public class NewPipeSettings {
|
||||
public static void initSettings(Context context) {
|
||||
PreferenceManager.setDefaultValues(context, R.xml.settings, false);
|
||||
getVideoDownloadFolder(context);
|
||||
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);
|
||||
}
|
||||
|
||||
public static File getAudioDownloadFolder(Context context) {
|
||||
return getFolder(context, R.string.download_path_audio_key, Environment.DIRECTORY_MUSIC);
|
||||
}
|
||||
|
||||
private static File getFolder(Context context, int keyID, String defaultDirectoryName) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final String key = context.getString(keyID);
|
||||
String downloadPath = prefs.getString(key, null);
|
||||
if ((downloadPath != null) && (!downloadPath.isEmpty())) return new File(downloadPath.trim());
|
||||
|
||||
final File folder = getFolder(defaultDirectoryName);
|
||||
SharedPreferences.Editor spEditor = prefs.edit();
|
||||
spEditor.putString(key
|
||||
, new File(folder,"NewPipe").getAbsolutePath());
|
||||
spEditor.apply();
|
||||
return folder;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private static File getFolder(String defaultDirectoryName) {
|
||||
return new File(Environment.getExternalStorageDirectory(),defaultDirectoryName);
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,24 @@ import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
/**
|
||||
* Copyright (C) Hans-Christoph Steiner 2016 <hans@eds.org>
|
||||
* PanicResponderActivity.java is part of NewPipe.
|
||||
*
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class PanicResponderActivity extends Activity {
|
||||
|
||||
public static final String PANIC_TRIGGER_ACTION = "info.guardianproject.panic.action.TRIGGER";
|
||||
|
||||
@@ -187,6 +187,18 @@ public class PlayVideoActivity extends AppCompatActivity {
|
||||
videoView.pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
App.checkStartTor(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
prefs = getPreferences(Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
@@ -199,7 +211,7 @@ public class PlayVideoActivity extends AppCompatActivity {
|
||||
intent.setAction(Intent.ACTION_SEND);
|
||||
intent.putExtra(Intent.EXTRA_TEXT, videoUrl);
|
||||
intent.setType("text/plain");
|
||||
startActivity(Intent.createChooser(intent, getString(R.string.shareDialogTitle)));
|
||||
startActivity(Intent.createChooser(intent, getString(R.string.share_dialog_title)));
|
||||
break;
|
||||
case R.id.menu_item_screen_rotation:
|
||||
toggleOrientation();
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
package org.schabi.newpipe;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.LayoutRes;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.ActionBar;
|
||||
@@ -13,6 +22,8 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 31.08.15.
|
||||
*
|
||||
@@ -33,8 +44,9 @@ import android.view.ViewGroup;
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public class SettingsActivity extends PreferenceActivity {
|
||||
public class SettingsActivity extends PreferenceActivity {
|
||||
|
||||
private static final int REQUEST_INSTALL_ORBOT = 0x1234;
|
||||
private AppCompatDelegate mDelegate = null;
|
||||
|
||||
@Override
|
||||
@@ -51,12 +63,108 @@ public class SettingsActivity extends PreferenceActivity {
|
||||
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends PreferenceFragment {
|
||||
public static class SettingsFragment extends PreferenceFragment{
|
||||
SharedPreferences.OnSharedPreferenceChangeListener prefListener;
|
||||
|
||||
// get keys
|
||||
String DEFAULT_RESOLUTION_PREFERENCE;
|
||||
String DEFAULT_AUDIO_FORMAT_PREFERENCE;
|
||||
String SEARCH_LANGUAGE_PREFERENCE;
|
||||
String DOWNLOAD_PATH_PREFERENCE;
|
||||
String DOWNLOAD_PATH_AUDIO_PREFERENCE;
|
||||
String USE_TOR_KEY;
|
||||
|
||||
private ListPreference defaultResolutionPreference;
|
||||
private ListPreference defaultAudioFormatPreference;
|
||||
private ListPreference searchLanguagePreference;
|
||||
private EditTextPreference downloadPathPreference;
|
||||
private EditTextPreference downloadPathAudioPreference;
|
||||
private CheckBoxPreference useTorCheckBox;
|
||||
private SharedPreferences defaultPreferences;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.settings_screen);
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
|
||||
final Activity activity = getActivity();
|
||||
|
||||
defaultPreferences = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||
|
||||
// get keys
|
||||
DEFAULT_RESOLUTION_PREFERENCE =getString(R.string.default_resolution_key);
|
||||
DEFAULT_AUDIO_FORMAT_PREFERENCE =getString(R.string.default_audio_format_key);
|
||||
SEARCH_LANGUAGE_PREFERENCE =getString(R.string.search_language_key);
|
||||
DOWNLOAD_PATH_PREFERENCE = getString(R.string.download_path_key);
|
||||
DOWNLOAD_PATH_AUDIO_PREFERENCE = getString(R.string.download_path_audio_key);
|
||||
USE_TOR_KEY = getString(R.string.use_tor_key);
|
||||
|
||||
// get pref objects
|
||||
defaultResolutionPreference =
|
||||
(ListPreference) findPreference(DEFAULT_RESOLUTION_PREFERENCE);
|
||||
defaultAudioFormatPreference =
|
||||
(ListPreference) findPreference(DEFAULT_AUDIO_FORMAT_PREFERENCE);
|
||||
searchLanguagePreference =
|
||||
(ListPreference) findPreference(SEARCH_LANGUAGE_PREFERENCE);
|
||||
downloadPathPreference =
|
||||
(EditTextPreference) findPreference(DOWNLOAD_PATH_PREFERENCE);
|
||||
downloadPathAudioPreference =
|
||||
(EditTextPreference) findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE);
|
||||
useTorCheckBox = (CheckBoxPreference) findPreference(USE_TOR_KEY);
|
||||
|
||||
prefListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
|
||||
String key) {
|
||||
Activity a = getActivity();
|
||||
updateSummary();
|
||||
|
||||
if (defaultPreferences.getBoolean(USE_TOR_KEY, false)) {
|
||||
if (OrbotHelper.isOrbotInstalled(a)) {
|
||||
App.configureTor(true);
|
||||
OrbotHelper.requestStartTor(a);
|
||||
} else {
|
||||
Intent intent = OrbotHelper.getOrbotInstallIntent(a);
|
||||
a.startActivityForResult(intent, REQUEST_INSTALL_ORBOT);
|
||||
}
|
||||
} else {
|
||||
App.configureTor(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
defaultPreferences.registerOnSharedPreferenceChangeListener(prefListener);
|
||||
|
||||
updateSummary();
|
||||
}
|
||||
|
||||
// This is used to show the status of some preference in the description
|
||||
private void updateSummary() {
|
||||
defaultResolutionPreference.setSummary(
|
||||
defaultPreferences.getString(DEFAULT_RESOLUTION_PREFERENCE,
|
||||
getString(R.string.default_resolution_value)));
|
||||
defaultAudioFormatPreference.setSummary(
|
||||
defaultPreferences.getString(DEFAULT_AUDIO_FORMAT_PREFERENCE,
|
||||
getString(R.string.default_audio_format_value)));
|
||||
searchLanguagePreference.setSummary(
|
||||
defaultPreferences.getString(SEARCH_LANGUAGE_PREFERENCE,
|
||||
getString(R.string.default_language_value)));
|
||||
downloadPathPreference.setSummary(
|
||||
defaultPreferences.getString(DOWNLOAD_PATH_PREFERENCE,
|
||||
getString(R.string.download_path_summary)));
|
||||
downloadPathAudioPreference.setSummary(
|
||||
defaultPreferences.getString(DOWNLOAD_PATH_AUDIO_PREFERENCE,
|
||||
getString(R.string.download_path_audio_summary)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// try to start tor regardless of resultCode since clicking back after
|
||||
// installing the app does not necessarily return RESULT_OK
|
||||
App.configureTor(requestCode == REQUEST_INSTALL_ORBOT
|
||||
&& OrbotHelper.requestStartTor(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -144,4 +252,8 @@ public class SettingsActivity extends PreferenceActivity {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void initSettings(Context context) {
|
||||
NewPipeSettings.initSettings(context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
if(currentStreamingService == -1) {
|
||||
Toast.makeText(this, R.string.urlNotSupportedText, Toast.LENGTH_LONG)
|
||||
Toast.makeText(this, R.string.url_not_supported_toast, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
//arguments.putString(VideoItemDetailFragment.VIDEO_URL,
|
||||
@@ -89,7 +89,7 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
||||
|
||||
arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY,
|
||||
PreferenceManager.getDefaultSharedPreferences(this)
|
||||
.getBoolean(getString(R.string.autoPlayThroughIntent), false));
|
||||
.getBoolean(getString(R.string.autoplay_through_intent_key), false));
|
||||
} else {
|
||||
videoUrl = getIntent().getStringExtra(VideoItemDetailFragment.VIDEO_URL);
|
||||
currentStreamingService = getIntent().getIntExtra(VideoItemDetailFragment.STREAMING_SERVICE, -1);
|
||||
@@ -113,6 +113,12 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
||||
.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
App.checkStartTor(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
outState.putString(VideoItemDetailFragment.VIDEO_URL, videoUrl);
|
||||
|
||||
@@ -302,7 +302,7 @@ public class VideoItemDetailFragment extends Fragment {
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(activity.getString(R.string.c3sUrl)));
|
||||
intent.setData(Uri.parse(activity.getString(R.string.c3s_url)));
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
});
|
||||
@@ -345,7 +345,7 @@ public class VideoItemDetailFragment extends Fragment {
|
||||
super.onCreate(savedInstanceState);
|
||||
activity = (AppCompatActivity) getActivity();
|
||||
showNextVideoItem = PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getBoolean(activity.getString(R.string.showNextVideo), true);
|
||||
.getBoolean(activity.getString(R.string.show_next_video_key), true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -172,7 +172,13 @@ public class VideoItemListActivity extends AppCompatActivity
|
||||
}
|
||||
}
|
||||
|
||||
PreferenceManager.setDefaultValues(this, R.xml.settings_screen, false);
|
||||
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
App.checkStartTor(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -66,6 +66,9 @@ public class VideoItemListFragment extends ListFragment {
|
||||
|
||||
private View footer;
|
||||
|
||||
// used to suppress request for loading a new page while another page is already loading.
|
||||
private boolean loadingNextPage = true;
|
||||
|
||||
private class ResultRunnable implements Runnable {
|
||||
private final SearchEngine.Result result;
|
||||
private final int requestId;
|
||||
@@ -76,6 +79,9 @@ public class VideoItemListFragment extends ListFragment {
|
||||
@Override
|
||||
public void run() {
|
||||
updateListOnResult(result, requestId);
|
||||
if (android.os.Build.VERSION.SDK_INT >= 19) {
|
||||
getListView().removeFooterView(footer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +90,7 @@ public class VideoItemListFragment extends ListFragment {
|
||||
private final String query;
|
||||
private final int page;
|
||||
final Handler h = new Handler();
|
||||
private volatile boolean run = true;
|
||||
private volatile boolean runs = true;
|
||||
private final int requestId;
|
||||
public SearchRunnable(SearchEngine engine, String query, int page, int requestId) {
|
||||
this.engine = engine;
|
||||
@@ -93,17 +99,18 @@ public class VideoItemListFragment extends ListFragment {
|
||||
this.requestId = requestId;
|
||||
}
|
||||
void terminate() {
|
||||
run = false;
|
||||
runs = false;
|
||||
}
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
String searchLanguageKey = getContext().getString(R.string.searchLanguage);
|
||||
String searchLanguage = sp.getString(searchLanguageKey, "en");
|
||||
String searchLanguageKey = getContext().getString(R.string.search_language_key);
|
||||
String searchLanguage = sp.getString(searchLanguageKey,
|
||||
getString(R.string.default_language_value));
|
||||
SearchEngine.Result result = engine.search(query, page, searchLanguage);
|
||||
Log.i(TAG, "language code passed:\""+searchLanguage+"\"");
|
||||
if(run) {
|
||||
if(runs) {
|
||||
h.post(new ResultRunnable(result, requestId));
|
||||
}
|
||||
} catch(Exception e) {
|
||||
@@ -111,19 +118,11 @@ public class VideoItemListFragment extends ListFragment {
|
||||
h.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Toast.makeText(getActivity(), "Network Error", Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(getActivity(), getString(R.string.network_error),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (android.os.Build.VERSION.SDK_INT >= 19) {
|
||||
getListView().removeFooterView(footer);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,8 +202,9 @@ public class VideoItemListFragment extends ListFragment {
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
loadingNextPage = true;
|
||||
lastPage++;
|
||||
Log.d(TAG, getString(R.string.searchPage) + Integer.toString(lastPage));
|
||||
Log.d(TAG, getString(R.string.search_page) + Integer.toString(lastPage));
|
||||
startSearch(query, lastPage);
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ public class VideoItemListFragment extends ListFragment {
|
||||
Toast.makeText(getActivity(), result.errorMessage, Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
if (!result.suggestion.isEmpty()) {
|
||||
Toast.makeText(getActivity(), getString(R.string.didYouMean) + result.suggestion + " ?",
|
||||
Toast.makeText(getActivity(), getString(R.string.did_you_mean) + result.suggestion + " ?",
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
updateList(result.resultList);
|
||||
@@ -248,6 +248,8 @@ public class VideoItemListFragment extends ListFragment {
|
||||
Log.w(TAG, "Trying to set value while activity doesn't exist anymore.");
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
loadingNextPage = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +299,8 @@ public class VideoItemListFragment extends ListFragment {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
list = getListView();
|
||||
videoListAdapter = new VideoListAdapter(getActivity(), this);
|
||||
footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.paginate_footer, null, false);
|
||||
footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
|
||||
.inflate(R.layout.paginate_footer, null, false);
|
||||
|
||||
|
||||
setListAdapter(videoListAdapter);
|
||||
@@ -318,13 +321,15 @@ public class VideoItemListFragment extends ListFragment {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
||||
public void onScroll(AbsListView view, int firstVisibleItem,
|
||||
int visibleItemCount, int totalItemCount) {
|
||||
if (mode != PRESENT_VIDEOS_MODE
|
||||
&& list.getChildAt(0) != null
|
||||
&& list.getLastVisiblePosition() == list.getAdapter().getCount() - 1
|
||||
&& list.getChildAt(list.getChildCount() - 1).getBottom() <= list.getHeight()) {
|
||||
long time = System.currentTimeMillis();
|
||||
if ((time - lastScrollDate) > 200) {
|
||||
if ((time - lastScrollDate) > 200
|
||||
&& !loadingNextPage) {
|
||||
lastScrollDate = time;
|
||||
getListView().addFooterView(footer);
|
||||
nextPage();
|
||||
|
||||
@@ -99,7 +99,7 @@ class VideoListAdapter extends BaseAdapter {
|
||||
convertView = viewCreator.getViewFromVideoInfoItem(convertView, parent, videoList.get(position), context);
|
||||
|
||||
if(listView.isItemChecked(position)) {
|
||||
convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.primaryColorYoutube));
|
||||
convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.light_youtube_primary_color));
|
||||
} else {
|
||||
convertView.setBackgroundColor(0);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe;
|
||||
package org.schabi.newpipe.services;
|
||||
|
||||
/**
|
||||
* Created by Adam Howard on 08/11/15.
|
||||
@@ -106,20 +106,23 @@ public abstract class VideoExtractor {
|
||||
return videoInfo;
|
||||
}
|
||||
|
||||
//todo: add licence field
|
||||
public abstract int getErrorCode();
|
||||
public abstract String getErrorMessage();
|
||||
|
||||
protected abstract int getErrorCode();
|
||||
protected abstract String getErrorMessage();
|
||||
protected abstract String getVideoUrl(String videoId);
|
||||
protected abstract String getVideoId(String siteUrl);
|
||||
protected abstract int getTimeStamp();
|
||||
protected abstract String getTitle();
|
||||
protected abstract String getDescription();
|
||||
protected abstract String getUploader();
|
||||
protected abstract int getLength();
|
||||
protected abstract long getViews();
|
||||
protected abstract String getUploadDate();
|
||||
protected abstract String getThumbnailUrl();
|
||||
protected abstract String getUploaderThumbnailUrl();
|
||||
protected abstract VideoInfo.AudioStream[] getAudioStreams();
|
||||
protected abstract VideoInfo.VideoStream[] getVideoStreams();
|
||||
//todo: remove these functions, or make them static, otherwise its useles, to have them here
|
||||
public abstract String getVideoUrl(String videoId);
|
||||
public abstract String getVideoId(String siteUrl);
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
public abstract int getTimeStamp();
|
||||
public abstract String getTitle();
|
||||
public abstract String getDescription();
|
||||
public abstract String getUploader();
|
||||
public abstract int getLength();
|
||||
public abstract long getViews();
|
||||
public abstract String getUploadDate();
|
||||
public abstract String getThumbnailUrl();
|
||||
public abstract String getUploaderThumbnailUrl();
|
||||
public abstract VideoInfo.AudioStream[] getAudioStreams();
|
||||
public abstract VideoInfo.VideoStream[] getVideoStreams();
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.mozilla.javascript.Function;
|
||||
import org.mozilla.javascript.ScriptableObject;
|
||||
import org.schabi.newpipe.Downloader;
|
||||
import org.schabi.newpipe.services.VideoExtractor;
|
||||
import org.schabi.newpipe.MediaFormat;
|
||||
import org.schabi.newpipe.services.MediaFormat;
|
||||
import org.schabi.newpipe.services.VideoInfo;
|
||||
import org.schabi.newpipe.VideoPreviewInfo;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
android:id="@+id/videoitem_detail">
|
||||
|
||||
<ImageView android:id="@+id/detailThumbnailView"
|
||||
android:contentDescription="@string/detailThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_thumbnail_view_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
@@ -51,7 +51,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
app:backgroundTint="@color/primaryColorYoutube"
|
||||
app:backgroundTint="@color/light_youtube_primary_color"
|
||||
android:src="@drawable/ic_play_arrow_black"
|
||||
android:layout_margin="@dimen/video_item_detail_play_fab_margin"/>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/video_item_detail_info_text_padding"
|
||||
android:layout_below="@id/detailVideoThumbnailWindowLayout"
|
||||
android:background="@color/background_gray">
|
||||
android:background="@color/light_background_color">
|
||||
|
||||
<TextView android:id="@+id/detailVideoTitleView"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -82,7 +82,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailUploaderThumbnailView"
|
||||
android:contentDescription="@string/detailUploaderThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_height="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_below="@id/detailVideoTitleView"
|
||||
@@ -123,7 +123,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsDownImgView"
|
||||
android:contentDescription="@string/detailThumbsDownImgViewDescription"
|
||||
android:contentDescription="@string/detail_dislikes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
@@ -144,7 +144,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsUpImgView"
|
||||
android:contentDescription="@string/detailThumbsUpImgViewDescription"
|
||||
android:contentDescription="@string/detail_likes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
@@ -186,7 +186,7 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:textSize="@dimen/video_item_detail_next_text_size"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/nextVideoTitle"
|
||||
android:text="@string/next_video_title"
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<RelativeLayout android:id="@+id/detailNextVidButtonAndContentLayout"
|
||||
@@ -210,7 +210,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/detailNextVidButtonAndContentLayout"
|
||||
android:textSize="@dimen/video_item_detail_similar_text_size"
|
||||
android:text="@string/showSimilarVideosButtonText"/>
|
||||
android:text="@string/similar_videos_btn_text"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
android:id="@+id/videoitem_detail">
|
||||
|
||||
<ImageView android:id="@+id/detailThumbnailView"
|
||||
android:contentDescription="@string/detailThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_thumbnail_view_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
@@ -44,7 +44,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:indeterminate="true"
|
||||
android:indeterminateTint="@color/primaryColorYoutube"
|
||||
android:indeterminateTint="@color/light_youtube_primary_color"
|
||||
android:indeterminateTintMode="src_in"/>
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
@@ -53,7 +53,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
app:backgroundTint="@color/primaryColorYoutube"
|
||||
app:backgroundTint="@color/light_youtube_primary_color"
|
||||
android:src="@drawable/ic_play_arrow_black"
|
||||
android:layout_margin="@dimen/video_item_detail_play_fab_margin"/>
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/video_item_detail_info_text_padding"
|
||||
android:layout_below="@id/detailVideoThumbnailWindowLayout"
|
||||
android:background="@color/background_gray">
|
||||
android:background="@color/light_background_color">
|
||||
|
||||
<TextView android:id="@+id/detailVideoTitleView"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -84,7 +84,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailUploaderThumbnailView"
|
||||
android:contentDescription="@string/detailUploaderThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_height="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_below="@id/detailVideoTitleView"
|
||||
@@ -125,7 +125,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsDownImgView"
|
||||
android:contentDescription="@string/detailThumbsDownImgViewDescription"
|
||||
android:contentDescription="@string/detail_dislikes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
@@ -146,7 +146,7 @@
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsUpImgView"
|
||||
android:contentDescription="@string/detailThumbsUpImgViewDescription"
|
||||
android:contentDescription="@string/detail_likes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
@@ -188,7 +188,7 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:textSize="@dimen/video_item_detail_next_text_size"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/nextVideoTitle"
|
||||
android:text="@string/next_video_title"
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<RelativeLayout android:id="@+id/detailNextVidButtonAndContentLayout"
|
||||
@@ -212,7 +212,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/detailNextVidButtonAndContentLayout"
|
||||
android:textSize="@dimen/video_item_detail_similar_text_size"
|
||||
android:text="@string/showSimilarVideosButtonText"/>
|
||||
android:text="@string/similar_videos_btn_text"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<ImageView android:id="@+id/detailThumbnailView"
|
||||
android:contentDescription="@string/detailThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_thumbnail_view_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="fitCenter"
|
||||
@@ -51,7 +51,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
app:backgroundTint="@color/primaryColorYoutube"
|
||||
app:backgroundTint="@color/light_youtube_primary_color"
|
||||
android:src="@drawable/ic_play_arrow_black"
|
||||
android:layout_margin="@dimen/video_item_detail_play_fab_margin"/>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/video_item_detail_info_text_padding"
|
||||
android:layout_below="@id/detailVideoThumbnailWindowLayout"
|
||||
android:background="@color/background_gray">
|
||||
android:background="@color/light_background_color">
|
||||
|
||||
<TextView android:id="@+id/detailVideoTitleView"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -81,7 +81,7 @@
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||
|
||||
<ImageView android:id="@+id/detailUploaderThumbnailView"
|
||||
android:contentDescription="@string/detailUploaderThumbnailViewDescription"
|
||||
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_height="@dimen/video_item_detail_uploader_image_size"
|
||||
android:layout_below="@id/detailVideoTitleView"
|
||||
@@ -118,12 +118,13 @@
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsDownImgView"
|
||||
android:contentDescription="@string/detailThumbsDownImgViewDescription"
|
||||
android:contentDescription="@string/detail_dislikes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
android:layout_toLeftOf="@id/detailThumbsDownCountView"
|
||||
android:layout_toStartOf="@id/detailThumbsDownCountView"
|
||||
android:layout_marginLeft="@dimen/video_item_detail_like_margin"
|
||||
android:src="@drawable/thumbs_down" />
|
||||
|
||||
<TextView android:id="@+id/detailThumbsUpCountView"
|
||||
@@ -136,7 +137,7 @@
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"/>
|
||||
|
||||
<ImageView android:id="@+id/detailThumbsUpImgView"
|
||||
android:contentDescription="@string/detailThumbsUpImgViewDescription"
|
||||
android:contentDescription="@string/detail_likes_img_view_description"
|
||||
android:layout_width="@dimen/video_item_detail_like_image_width"
|
||||
android:layout_height="@dimen/video_item_detail_like_image_height"
|
||||
android:layout_below="@id/detailViewCountView"
|
||||
@@ -175,7 +176,7 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:textSize="@dimen/video_item_detail_next_text_size"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/nextVideoTitle"
|
||||
android:text="@string/next_video_title"
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<RelativeLayout android:id="@+id/detailNextVidButtonAndContentLayout"
|
||||
@@ -199,7 +200,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/detailNextVidButtonAndContentLayout"
|
||||
android:textSize="@dimen/video_item_detail_similar_text_size"
|
||||
android:text="@string/showSimilarVideosButtonText"/>
|
||||
android:text="@string/similar_videos_btn_text"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
tools:ignore="RtlHardcoded">
|
||||
|
||||
<ImageView android:id="@+id/itemThumbnailView"
|
||||
android:contentDescription="@string/itemThumbnailViewDescription"
|
||||
android:contentDescription="@string/list_thumbnail_view_description"
|
||||
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
|
||||
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
|
||||
android:scaleType="centerCrop"
|
||||
@@ -56,8 +56,8 @@
|
||||
android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textSize="@dimen/video_item_search_duration_text_size"
|
||||
android:background="@color/durationBackground"
|
||||
android:textColor="@color/durationText"/>
|
||||
android:background="@color/duration_dackground_color"
|
||||
android:textColor="@color/duration_text_color"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item android:id="@+id/menu_item_screen_rotation"
|
||||
android:title="@string/screenRotation"
|
||||
android:title="@string/screen_rotation"
|
||||
app:showAsAction="always"
|
||||
android:icon="@drawable/ic_screen_rotation_white"/>
|
||||
</menu>
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item android:id="@+id/menu_item_play_audio"
|
||||
android:title="@string/playAudio"
|
||||
android:title="@string/play_audio"
|
||||
app:showAsAction="ifRoom"
|
||||
android:icon="@drawable/ic_headset_black" />
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
android:icon="@drawable/ic_share_black"/>
|
||||
|
||||
<item android:id="@+id/action_play_with_kodi"
|
||||
android:title="@string/playWithKodiTitle"
|
||||
android:title="@string/play_with_kodi_title"
|
||||
app:showAsAction="ifRoom"
|
||||
android:icon="@drawable/ic_cast_black"/>
|
||||
|
||||
|
||||
@@ -1,53 +1,62 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s Aufrufe</string>
|
||||
<string name="uploadDateText">Hochgeladen am %1$s</string>
|
||||
<string name="noPlayerFound">Keinen Streamplayer gefunden. Vielleicht möchtest du einen installieren.</string>
|
||||
<string name="installStreamPlayer">Jetzt installieren</string>
|
||||
<string name="view_count_text">%1$s Aufrufe</string>
|
||||
<string name="upload_date_text">Hochgeladen am %1$s</string>
|
||||
<string name="no_player_found">Keinen Streamplayer gefunden. Möchtest du VLC installieren?</string>
|
||||
<string name="install">Jetzt installieren</string>
|
||||
<string name="cancel">Abbrechen</string>
|
||||
<string name="open_in_browser">In Browser öffnen</string>
|
||||
<string name="share">Teilen</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="search">Suchen</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
<string name="didYouMean">Meintest du: </string>
|
||||
<string name="searchPage">Suchseite: </string>
|
||||
<string name="shareDialogTitle">Teilen mit:</string>
|
||||
<string name="chooseBrowser">Browser:</string>
|
||||
<string name="screenRotation">Rotation</string>
|
||||
<string name="title_activity_settings">Einstellungen</string>
|
||||
<string name="did_you_mean">Meintest du: </string>
|
||||
<string name="search_page">Suchseite: </string>
|
||||
<string name="share_dialog_title">Teilen mit:</string>
|
||||
<string name="choose_browser">Browser:</string>
|
||||
<string name="screen_rotation">Rotation</string>
|
||||
<string name="settings_activity_title">Einstellungen</string>
|
||||
<string name="useExternalPlayerTitle">Externen Player benutzen</string>
|
||||
<string name="downloadLocation">Downloadverzeichnis</string>
|
||||
<string name="downloadLocationSummary">Verzeichnis in dem heruntergeladene Videos gespeichert werden.</string>
|
||||
<string name="downloadLocationDialogTitle">Download Verzeichnis eingeben</string>
|
||||
<string name="autoPlayThroughIntentTitle">Automatisches Abspielen durch Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Startet ein Video automatisch wenn es von einer anderen App aufgerufen wurde.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Standard Auflösung</string>
|
||||
<string name="playWithKodiTitle">Mit Kodi abspielen</string>
|
||||
<string name="koreNotFound">Kore app wurde nicht gefunden. Kore wird benötigt, um Videos mit Kodi wieder zu geben.</string>
|
||||
<string name="download_path_title">Downloadverzeichnis</string>
|
||||
<string name="download_path_summary">Verzeichnis in dem heruntergeladene Videos gespeichert werden.</string>
|
||||
<string name="download_path_dialog_title">Download Verzeichnis eingeben</string>
|
||||
<string name="autoplay_through_intent_title">Automatisches Abspielen durch Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Startet ein Video automatisch wenn es von einer anderen App aufgerufen wurde.</string>
|
||||
<string name="default_resolution_title">Standard Auflösung</string>
|
||||
<string name="play_with_kodi_title">Mit Kodi abspielen</string>
|
||||
<string name="kore_not_found">Kore app wurde nicht gefunden. Kore wird benötigt, um Videos mit Kodi wieder zu geben.</string>
|
||||
<string name="installeKore">Kore installieren</string>
|
||||
<string name="showPlayWithKodiTitle">Zeige \"Mit Kodi abspielen\" Option</string>
|
||||
<string name="showPlayWithKodiSummary">Zeigt eine Option an, über die man Videos mit dem Kodi Mediacenter abspielen kann.</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Bevorzugtes Audio Format</string>
|
||||
<string name="webMAudioDescription">WebM - freies Format</string>
|
||||
<string name="m4aAudioDescription">m4a - bessere Qualität</string>
|
||||
<string name="downloadDialogTitle">Herunterladen</string>
|
||||
<string name="show_play_with_kodi_title">Zeige \"Mit Kodi abspielen\" Option</string>
|
||||
<string name="show_play_with_kodi_summary">Zeigt eine Option an, über die man Videos mit dem Kodi Mediacenter abspielen kann.</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Bevorzugtes Audio Format</string>
|
||||
<string name="webm_description">WebM — freies Format</string>
|
||||
<string name="m4a_description">m4a — bessere Qualität</string>
|
||||
<string name="download_dialog_title">Herunterladen</string>
|
||||
<string-array name="downloadOptions">
|
||||
<item>Video</item>
|
||||
<item>Audio</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">Nächstes Video</string>
|
||||
<string name="showNextAndSimilarTitle">Zeige nächstes und ähnliche Videos</string>
|
||||
<string name="urlNotSupportedText">URL wird nicht unterstützt.</string>
|
||||
<string name="showSimilarVideosButtonText">Ähnliche Videos</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">VIDEO & AUDIO</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFO</string>
|
||||
<string name="settingsCategoryEtcTitle">ETC</string>
|
||||
<string name="searchLanguageTitle">Bevorzugte Sprache</string>
|
||||
<string name="itemThumbnailViewDescription">Video-Vorschau-Bild</string>
|
||||
<string name="detailThumbnailViewDescription">Video-Vorschau-Bild</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Nutzerbild</string>
|
||||
<string name="detailThumbsDownImgViewDescription">gefällt nicht</string>
|
||||
<string name="detailThumbsUpImgViewDescription">gefällt</string>
|
||||
</resources>
|
||||
<string name="next_video_title">Nächstes Video</string>
|
||||
<string name="show_next_and_similar_title">Zeige nächstes und ähnliche Videos</string>
|
||||
<string name="url_not_supported_toast">URL wird nicht unterstützt.</string>
|
||||
<string name="similar_videos_btn_text">Ähnliche Videos</string>
|
||||
<string name="settings_category_video_audio_title">Video & Audio</string>
|
||||
<string name="search_language_title">Bevorzugte Sprache des Inhalts</string>
|
||||
<string name="list_thumbnail_view_description">Video-Vorschau-Bild</string>
|
||||
<string name="detail_thumbnail_view_description">Video-Vorschau-Bild</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Nutzerbild</string>
|
||||
<string name="detail_dislikes_img_view_description">Gefällt nicht</string>
|
||||
<string name="detail_likes_img_view_description">Gefällt</string>
|
||||
<string name="loading">Lade</string>
|
||||
<string name="use_external_video_player_title">Benutze externen Videoabspieler</string>
|
||||
<string name="use_external_audio_player_title">Benutze externen Audioabspieler</string>
|
||||
<string name="background_player_playing_toast">Spiele im Hintergrund ab</string>
|
||||
<string name="play_btn_text">Abspielen</string>
|
||||
|
||||
<string name="use_tor_title">Benutze TOR</string>
|
||||
<string name="use_tor_summary">Erzwinge das Herunterladen durch TOR für verbesserte Privatsphäre (Videostream noch nicht unterstützt)</string>
|
||||
<string name="background_player_name">NewPipe Hintergrundwiedergabe</string>
|
||||
<string name="network_error">Netzwerk Fehler</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -1,39 +1,41 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s visitas</string>
|
||||
<string name="uploadDateText">Subido el %1$s</string>
|
||||
<string name="noPlayerFound">No se ha encontrado ningún reproductor de vídeo. Quizás quieras instalar alguno.</string>
|
||||
<string name="installStreamPlayer">Instalarlo</string>
|
||||
<string name="view_count_text">%1$s visitas</string>
|
||||
<string name="upload_date_text">Subido el %1$s</string>
|
||||
<string name="no_player_found">No se ha encontrado ningún reproductor de vídeo. Quizás quieras instalar alguno.</string>
|
||||
<string name="install">Instalarlo</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="open_in_browser">Abrir en el navegador</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="download">Descargar</string>
|
||||
<string name="search">Buscar</string>
|
||||
<string name="settings">Ajustes</string>
|
||||
<string name="didYouMean">"¿Querías decir?: "</string>
|
||||
<string name="searchPage">Buscar página: </string>
|
||||
<string name="shareDialogTitle">Compartir con:</string>
|
||||
<string name="chooseBrowser">Selecciona navegador:</string>
|
||||
<string name="screenRotation">rotación</string>
|
||||
<string name="title_activity_settings">Ajustes</string>
|
||||
<string name="did_you_mean">"¿Querías decir?: "</string>
|
||||
<string name="search_page">Buscar página: </string>
|
||||
<string name="share_dialog_title">Compartir con:</string>
|
||||
<string name="choose_browser">Selecciona navegador:</string>
|
||||
<string name="screen_rotation">rotación</string>
|
||||
<string name="settings_activity_title">Ajustes</string>
|
||||
<string name="useExternalPlayerTitle">Usar reproductor externo</string>
|
||||
<string name="downloadLocation">Descargar en…</string>
|
||||
<string name="downloadLocationSummary">Ruta donde guardar los vídeos descargados.</string>
|
||||
<string name="downloadLocationDialogTitle">Localización del directorio de descargas</string>
|
||||
<string name="autoPlayThroughIntentTitle">Reproducción automática</string>
|
||||
<string name="autoPlayThroughIntentSummary">Reproducir los vídeos automaticamente cuando se llama desde otra aplicación.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Resolución por defecto</string>
|
||||
<string name="playWithKodiTitle">Reproducir con Kodi</string>
|
||||
<string name="koreNotFound">Aplicación Kore no encontrada. Kore es necesario para reproducir vídeos con Kodi media center.</string>
|
||||
<string name="download_path_title">Descargar en…</string>
|
||||
<string name="download_path_summary">Ruta donde guardar los vídeos descargados.</string>
|
||||
<string name="download_path_dialog_title">Localización del directorio de descargas</string>
|
||||
<string name="autoplay_through_intent_title">Reproducción automática</string>
|
||||
<string name="autoplay_through_intent_summary">Reproducir los vídeos automaticamente cuando se llama desde otra aplicación.</string>
|
||||
<string name="default_resolution_title">Resolución por defecto</string>
|
||||
<string name="play_with_kodi_title">Reproducir con Kodi</string>
|
||||
<string name="kore_not_found">Aplicación Kore no encontrada. Kore es necesario para reproducir vídeos con Kodi media center.</string>
|
||||
<string name="installeKore">Instalar Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Mostrar la opción \"Reproducir con Kodi\"</string>
|
||||
<string name="showPlayWithKodiSummary">Muestra una opción para reproducir el vídeo con Kodi media center.</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Formato de audio por defecto</string>
|
||||
<string name="webMAudioDescription">WebM - formato libre</string>
|
||||
<string name="m4aAudioDescription">m4a - mejor calidad</string>
|
||||
<string name="downloadDialogTitle">Descargar</string>
|
||||
<string name="nextVideoTitle">Siguiente vídeo</string>
|
||||
<string name="urlNotSupportedText">URL no soportada.</string>
|
||||
<string name="showSimilarVideosButtonText">Vídeos similares</string>
|
||||
</resources>
|
||||
<string name="show_play_with_kodi_title">Mostrar la opción \"Reproducir con Kodi\"</string>
|
||||
<string name="show_play_with_kodi_summary">Muestra una opción para reproducir el vídeo con Kodi media center.</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Formato de audio por defecto</string>
|
||||
<string name="webm_description">WebM — formato libre</string>
|
||||
<string name="m4a_description">m4a — mejor calidad</string>
|
||||
<string name="download_dialog_title">Descargar</string>
|
||||
<string name="next_video_title">Siguiente vídeo</string>
|
||||
<string name="url_not_supported_toast">URL no soportada.</string>
|
||||
<string name="similar_videos_btn_text">Vídeos similares</string>
|
||||
<string name="background_player_name">Reproductor de fondo NewPipe</string>
|
||||
<string name="loading">Cargando</string>
|
||||
</resources>
|
||||
|
||||
54
app/src/main/res/values-eu/strings.xml
Normal file
54
app/src/main/res/values-eu/strings.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="view_count_text">%1$s ikustaldi</string>
|
||||
<string name="upload_date_text">Argitaratze-data: %1$s</string>
|
||||
<string name="install">Instalatu</string>
|
||||
<string name="cancel">Utzi</string>
|
||||
<string name="open_in_browser">Nabigatzailean ireki</string>
|
||||
<string name="share">Partekatu</string>
|
||||
<string name="loading">Kargatzen</string>
|
||||
<string name="download">Deskargatu</string>
|
||||
<string name="search">Bilatu</string>
|
||||
<string name="settings">Ezarpenak</string>
|
||||
<string name="share_dialog_title">Partekatu honekin:</string>
|
||||
<string name="choose_browser">Nabigatzailea aukeratu:</string>
|
||||
<string name="screen_rotation">biratzea</string>
|
||||
<string name="settings_activity_title">Ezarpenak</string>
|
||||
<string name="download_path_title">Deskargatzeko kokapena</string>
|
||||
<string name="download_path_summary">Deskargatutako bideoak gordetzeko lekua.</string>
|
||||
<string name="download_path_dialog_title">Sar ezazu deskargatzeko lekua</string>
|
||||
<string name="default_resolution_title">Lehenetsitako bereizmena</string>
|
||||
<string name="play_with_kodi_title">Kodirekin erreproduzitu</string>
|
||||
<string name="kore_not_found">Kore aplikazioa ez da aurkitu. Kore beharrezkoa da Kodi multimedia zentroarekin bideoak erreproduzitzeko.</string>
|
||||
<string name="installeKore">Kore instalatu</string>
|
||||
<string name="show_play_with_kodi_title">\"Kodirekin erreproduzitu\" aukera erakutsi</string>
|
||||
<string name="show_play_with_kodi_summary">Kodi multimedia zentroarekin bideoa erreproduzitzeko aukera erakusten du.</string>
|
||||
<string name="play_audio">Audioa</string>
|
||||
<string name="default_audio_format_title">Audio formatu lehenetsia</string>
|
||||
<string name="webm_description">WebM — formatu askea</string>
|
||||
<string name="m4a_description">m4a — kalitate hobea</string>
|
||||
<string name="download_dialog_title">Deskargatu</string>
|
||||
<string name="next_video_title">Hurrengo bideoa</string>
|
||||
<string name="show_next_and_similar_title">Hurrengo bideoa eta antzekoak erakutsi</string>
|
||||
<string name="url_not_supported_toast">URLa ez da onartzen.</string>
|
||||
<string name="similar_videos_btn_text">Antzeko bideoak</string>
|
||||
<string name="search_language_title">Edukiaren hizkuntz lehenetsia</string>
|
||||
<string name="settings_category_video_audio_title">Bideoa eta Audioa</string>
|
||||
<string name="play_btn_text">Erreproduzitu</string>
|
||||
|
||||
<string name="list_thumbnail_view_description">Bideoaren aurreikuspen argazkitxoa</string>
|
||||
<string name="detail_thumbnail_view_description">Bideoaren aurreikuspen argazkitxoa</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Igotzailearen argazkitxoa</string>
|
||||
<string name="detail_dislikes_img_view_description">Ez dute gustoko</string>
|
||||
<string name="detail_likes_img_view_description">Gustoko dute</string>
|
||||
<string name="use_tor_title">Tor erabili</string>
|
||||
<string name="use_tor_summary">Trafikoa Tor bidez deskargatzea behartzen du pribatutasuna hobetzeko (jario bideoak ez daude oraindik onartuta)</string>
|
||||
<string name="background_player_name">NewPipe atzeko planoko erreproduzitzailea</string>
|
||||
<string name="no_player_found">Jario erreproduzitzailerik ez da aurkitu. Agian bat instalatu nahi dezakezu.</string>
|
||||
<string name="did_you_mean">"Hau esan nahi al zenuen: "</string>
|
||||
<string name="search_page">"Orrialdea bilatu: "</string>
|
||||
<string name="use_external_video_player_title">Kanpoko bideo erreproduzitzailea erabili</string>
|
||||
<string name="use_external_audio_player_title">Kanpoko audio erreproduzitzailea erabili</string>
|
||||
<string name="autoplay_through_intent_title">Intent bidez automatikoki erreproduzitu</string>
|
||||
<string name="autoplay_through_intent_summary">Bideoa automatikoki hasten du beste aplikazio batetik deitu denean.</string>
|
||||
<string name="background_player_playing_toast">Atzeko planoan erreproduzitzen</string>
|
||||
</resources>
|
||||
@@ -1,42 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s نماها</string>
|
||||
<string name="uploadDateText">بارگذاریشده در: %1$s</string>
|
||||
<string name="noPlayerFound">هیچ پخشکنندهی جریانی یافت نشد. ممکن است بخواهید یکی نصب کنید.</string>
|
||||
<string name="installStreamPlayer">نصب کنید</string>
|
||||
<string name="view_count_text">%1$s نماها</string>
|
||||
<string name="upload_date_text">بارگذاریشده در: %1$s</string>
|
||||
<string name="no_player_found">هیچ پخشکنندهی جریانی یافت نشد. ممکن است بخواهید یکی نصب کنید.</string>
|
||||
<string name="install">نصب کنید</string>
|
||||
<string name="cancel">انصراف</string>
|
||||
<string name="open_in_browser">بازکردن در مرورگر</string>
|
||||
<string name="share">همرسانی</string>
|
||||
<string name="download">بارگیری</string>
|
||||
<string name="search">جستجو</string>
|
||||
<string name="settings">تنظیمات</string>
|
||||
<string name="didYouMean">منظورتان این است: </string>
|
||||
<string name="searchPage">صفحهی جستجو: </string>
|
||||
<string name="shareDialogTitle">همرسانی با:</string>
|
||||
<string name="chooseBrowser">مرورگر را برگزینید:</string>
|
||||
<string name="screenRotation">چرخش</string>
|
||||
<string name="title_activity_settings">تنظیمات</string>
|
||||
<string name="did_you_mean">منظورتان این است: </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="useExternalPlayerTitle">استفاده از پخشکنندهی خارجی</string>
|
||||
<string name="downloadLocation">محل بارگیری</string>
|
||||
<string name="downloadLocationSummary">مسیری که ویدئوهای دریافت شده در آن ذخیره میشوند.</string>
|
||||
<string name="downloadLocationDialogTitle">مسیر دریافت را وارد کنید</string>
|
||||
<string name="autoPlayThroughIntentTitle">پخش خودکار از Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">ویدئو هنگامی که از برنامهی دیگری فراخوانده شد خودکار پخش میشود.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">وضوح پیشفرض</string>
|
||||
<string name="playWithKodiTitle">پخش با Kodi</string>
|
||||
<string name="koreNotFound">برنامهی Kore نصب نیست. برای پخش کردن ویدئوها با مرکز رسانهی Kodi، به Kore نیاز دارید.</string>
|
||||
<string name="download_path_title">محل بارگیری</string>
|
||||
<string name="download_path_summary">مسیری که ویدئوهای دریافت شده در آن ذخیره میشوند.</string>
|
||||
<string name="download_path_dialog_title">مسیر دریافت را وارد کنید</string>
|
||||
<string name="autoplay_through_intent_title">پخش خودکار از Intent</string>
|
||||
<string name="autoplay_through_intent_summary">ویدئو هنگامی که از برنامهی دیگری فراخوانده شد خودکار پخش میشود.</string>
|
||||
<string name="default_resolution_title">وضوح پیشفرض</string>
|
||||
<string name="play_with_kodi_title">پخش با Kodi</string>
|
||||
<string name="kore_not_found">برنامهی Kore نصب نیست. برای پخش کردن ویدئوها با مرکز رسانهی Kodi، به Kore نیاز دارید.</string>
|
||||
<string name="installeKore">نصب Kore</string>
|
||||
<string name="showPlayWithKodiTitle">نمایش گزینهی «پخش با Kodi»</string>
|
||||
<string name="showPlayWithKodiSummary">گزینهای برای پخش کردن ویدئو با مرکز رسانهی Kodi نشان میدهد.</string>
|
||||
<string name="playAudio">صدا</string>
|
||||
<string name="defaultAudioFormatTitle">قالب پیشفرض صدا</string>
|
||||
<string name="webMAudioDescription">WebM - قالبی آزاد</string>
|
||||
<string name="m4aAudioDescription">m4a - کیفیت بهتر</string>
|
||||
<string name="downloadDialogTitle">دریافت</string>
|
||||
<string name="show_play_with_kodi_title">نمایش گزینهی «پخش با Kodi»</string>
|
||||
<string name="show_play_with_kodi_summary">گزینهای برای پخش کردن ویدئو با مرکز رسانهی Kodi نشان میدهد.</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="download_dialog_title">دریافت</string>
|
||||
<string-array name="downloadOptions">
|
||||
<item>ویدئو</item>
|
||||
<item>صدا</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">ویدئوی بعدی</string>
|
||||
<string name="urlNotSupportedText">پیوند پشتیبانی نمیشود.</string>
|
||||
<string name="next_video_title">ویدئوی بعدی</string>
|
||||
<string name="url_not_supported_toast">پیوند پشتیبانی نمیشود.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,53 +1,65 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="autoPlayThroughIntentSummary">Démarrer automatiquement la vidéo si elle a été appelée depuis une autre application.</string>
|
||||
<string name="autoplay_through_intent_summary">Lire automatiquement une vidéo si elle a été appelée depuis une autre application</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<string name="chooseBrowser">Choisir un navigateur :</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Résolution par défaut</string>
|
||||
<string name="didYouMean">"S\'agirait-il de : "</string>
|
||||
<string name="choose_browser">Choisir un navigateur :</string>
|
||||
<string name="default_resolution_title">Résolution par défaut</string>
|
||||
<string name="did_you_mean">"S\'agirait-il de : "</string>
|
||||
<string name="download">Télécharger</string>
|
||||
<string name="downloadLocation">Emplacement des téléchargements</string>
|
||||
<string name="downloadLocationDialogTitle">Entrez l\'emplacement du téléchargement</string>
|
||||
<string name="downloadLocationSummary">Emplacement des vidéos téléchargées.</string>
|
||||
<string name="installStreamPlayer">Installer</string>
|
||||
<string name="download_path_title">Emplacement des téléchargements</string>
|
||||
<string name="download_path_dialog_title">Entrez l\'emplacement du téléchargement</string>
|
||||
<string name="download_path_summary">Chemin des vidéos téléchargées</string>
|
||||
<string name="install">Installer</string>
|
||||
<string name="installeKore">Installer Kore</string>
|
||||
<string name="koreNotFound">L\'application Kore est introuvable. Kore est nécessaire afin de lire des vidéos dans Kodi media center.</string>
|
||||
<string name="noPlayerFound">Aucun lecteur de streaming détecté. Vous devriez en installer un.</string>
|
||||
<string name="kore_not_found">L\'application Kore est introuvable. Installer Kore ?</string>
|
||||
<string name="no_player_found">Aucun lecteur streaming trouvé. Installer VLC ?</string>
|
||||
<string name="open_in_browser">Ouvrir dans le navigateur</string>
|
||||
<string name="autoPlayThroughIntentTitle">Lecture automatique via Intent</string>
|
||||
<string name="playWithKodiTitle">Lire avec Kodi</string>
|
||||
<string name="screenRotation">rotation</string>
|
||||
<string name="autoplay_through_intent_title">Lecture automatique via Intent</string>
|
||||
<string name="play_with_kodi_title">Lire avec Kodi</string>
|
||||
<string name="screen_rotation">rotation</string>
|
||||
<string name="search">Rechercher</string>
|
||||
<string name="searchPage">"Rechercher dans la page : "</string>
|
||||
<string name="search_page">"Rechercher dans la page : "</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="share">Partager</string>
|
||||
<string name="shareDialogTitle">Partager avec :</string>
|
||||
<string name="showPlayWithKodiSummary">Afficher une option pour lire la vidéo avec Kodi media center.</string>
|
||||
<string name="showPlayWithKodiTitle">Afficher l\'option \"Lire avec Kodi\"</string>
|
||||
<string name="title_activity_settings">Paramètres</string>
|
||||
<string name="uploadDateText">Mise en ligne le %1$s</string>
|
||||
<string name="share_dialog_title">Partager avec :</string>
|
||||
<string name="show_play_with_kodi_summary">Afficher une option pour lire la vidéo via Kodi media center</string>
|
||||
<string name="show_play_with_kodi_title">Afficher l\'option \"Lire avec Kodi\"</string>
|
||||
<string name="settings_activity_title">Paramètres</string>
|
||||
<string name="upload_date_text">Mise en ligne le %1$s</string>
|
||||
<string name="useExternalPlayerTitle">Utiliser un lecteur externe</string>
|
||||
<string name="viewCountText">%1$s vues</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Format audio par défaut</string>
|
||||
<string name="webMAudioDescription">WebM- format libre</string>
|
||||
<string name="m4aAudioDescription">m4a - meilleur qualité</string>
|
||||
<string name="downloadDialogTitle">Télécharger</string>
|
||||
<string name="nextVideoTitle">Vidéo suivante</string>
|
||||
<string name="showNextAndSimilarTitle">Afficher les vidéos suivantes et similaires</string>
|
||||
<string name="urlNotSupportedText">URL non supportée.</string>
|
||||
<string name="showSimilarVideosButtonText">Vidéos similaires</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">VIDÉO & AUDIO</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFORMATION</string>
|
||||
<string name="settingsCategoryEtcTitle">DIVERS</string>
|
||||
<string name="view_count_text">%1$s vues</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Format audio par défaut</string>
|
||||
<string name="webm_description">WebM — format libre</string>
|
||||
<string name="m4a_description">m4a — meilleure qualité</string>
|
||||
<string name="download_dialog_title">Télécharger</string>
|
||||
<string name="next_video_title">Vidéo suivante</string>
|
||||
<string name="show_next_and_similar_title">Afficher les vidéos suivantes et similaires</string>
|
||||
<string name="url_not_supported_toast">URL non supportée</string>
|
||||
<string name="similar_videos_btn_text">Vidéos similaires</string>
|
||||
<string name="settings_category_video_audio_title">Vidéo & Audio</string>
|
||||
<string name="settings_category_other_title">Divers</string>
|
||||
|
||||
<string name="list_thumbnail_view_description">Miniature d\'aperçu vidéo</string>
|
||||
<string name="detail_thumbnail_view_description">Miniature d\'aperçu vidéo</string>
|
||||
<string name="detail_dislikes_img_view_description">Je n\'aime pas</string>
|
||||
<string name="detail_likes_img_view_description">J\'aime</string>
|
||||
<string name="search_language_title">Langue du contenu</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Avatar de l\'utilisateur</string>
|
||||
<string name="use_external_video_player_title">Utiliser un lecteur vidéo externe</string>
|
||||
<string name="use_external_audio_player_title">Utiliser un lecteur audio externe</string>
|
||||
<string name="background_player_playing_toast">Lecture en arrière-plan</string>
|
||||
<string name="background_player_name">Lecteur en arrière-plan NewPipe</string>
|
||||
<string name="loading">Chargement</string>
|
||||
<string name="play_btn_text">Lecture</string>
|
||||
|
||||
<string name="use_tor_title">Utiliser Tor</string>
|
||||
<string name="use_tor_summary">Forcer le trafic de téléchargement via Tor pour plus de confidentialité (vidéos streaming non supporté)</string>
|
||||
<string name="theme_title">Thème</string>
|
||||
<string name="dark_theme_title">Sombre</string>
|
||||
<string name="light_theme_title">Clair</string>
|
||||
|
||||
<string name="settings_category_appearance_title">Apparence</string>
|
||||
<string name="network_error">Erreur réseau</string>
|
||||
|
||||
<string name="itemThumbnailViewDescription">Miniature d\'aperçu vidéo</string>
|
||||
<string name="detailThumbnailViewDescription">Miniature d\'aperçu vidéo</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Je n\'aime pas</string>
|
||||
<string name="detailThumbsUpImgViewDescription">J\'aime</string>
|
||||
<string name="searchLanguageTitle">Langue du contenu</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Avatar de l\'utilisateur</string>
|
||||
<string name="useExternalVideoPlayerTitle">Utiliser un lecteur vidéo externe</string>
|
||||
<string name="useExternalAudioPlayerTitle">Utiliser un lecteur audio externe</string>
|
||||
<string name="backgroundPlayerStartPlayingToast">Lecture en arrière-plan</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="viewCountText">%1$s צפיות</string>
|
||||
<string name="uploadDateText">הועלה בתאריך %1$s</string>
|
||||
<resources><string name="view_count_text">%1$s צפיות</string>
|
||||
<string name="upload_date_text">הועלה בתאריך %1$s</string>
|
||||
<string name="share">שתף</string>
|
||||
<string name="search">חפש</string>
|
||||
<string name="nextVideoTitle">הבא</string>
|
||||
<string name="next_video_title">הבא</string>
|
||||
<string name="download">הורדה</string>
|
||||
<string name="settings">הגדרות</string>
|
||||
<string name="title_activity_settings">הגדרות</string>
|
||||
<string name="settings_activity_title">הגדרות</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s megtekintés</string>
|
||||
<string name="uploadDateText">Feltöltve: %1$s</string>
|
||||
<string name="noPlayerFound">Nem található lejátszó. Telepítsen egyet!</string>
|
||||
<string name="installStreamPlayer">Telepítsen egyet</string>
|
||||
<string name="view_count_text">%1$s megtekintés</string>
|
||||
<string name="upload_date_text">Feltöltve: %1$s</string>
|
||||
<string name="no_player_found">Nem található lejátszó. Telepítsen egyet!</string>
|
||||
<string name="install">Telepítsen egyet</string>
|
||||
<string name="cancel">Mégse</string>
|
||||
<string name="open_in_browser">Megnyitás böngészőben</string>
|
||||
<string name="share">Megosztás</string>
|
||||
<string name="download">Letöltés</string>
|
||||
<string name="search">Keresés</string>
|
||||
<string name="settings">Beállítások</string>
|
||||
<string name="didYouMean">Erre gondolt: </string>
|
||||
<string name="searchPage">Keresési lap: </string>
|
||||
<string name="shareDialogTitle">Megosztás ezzel:</string>
|
||||
<string name="chooseBrowser">Válasszon böngészőt:</string>
|
||||
<string name="screenRotation">forgatás</string>
|
||||
<string name="title_activity_settings">Beállítások</string>
|
||||
<string name="did_you_mean">Erre gondolt: </string>
|
||||
<string name="search_page">Keresési lap: </string>
|
||||
<string name="share_dialog_title">Megosztás ezzel:</string>
|
||||
<string name="choose_browser">Válasszon böngészőt:</string>
|
||||
<string name="screen_rotation">forgatás</string>
|
||||
<string name="settings_activity_title">Beállítások</string>
|
||||
<string name="useExternalPlayerTitle">Külső lejátszó használata</string>
|
||||
<string name="downloadLocation">Letöltések helye</string>
|
||||
<string name="downloadLocationSummary">Útvonal a letöltött videók tárolásához</string>
|
||||
<string name="downloadLocationDialogTitle">Adja meg a letöltési útvonalat</string>
|
||||
<string name="autoPlayThroughIntentTitle">Automatikus lejátszás Intent-en keresztül</string>
|
||||
<string name="autoPlayThroughIntentSummary">Automatikusan elindítja a videót, ha az külső alkalmazásból volt hívva</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Alapértelmezett felbontás</string>
|
||||
<string name="playWithKodiTitle">Lejátszás Kodi-val</string>
|
||||
<string name="koreNotFound">A Kore alkalmazás nem található. A Kore szükséges a videók Kodi médiaközponttal való lejátszásához.</string>
|
||||
<string name="download_path_title">Letöltések helye</string>
|
||||
<string name="download_path_summary">Útvonal a letöltött videók tárolásához</string>
|
||||
<string name="download_path_dialog_title">Adja meg a letöltési útvonalat</string>
|
||||
<string name="autoplay_through_intent_title">Automatikus lejátszás Intent-en keresztül</string>
|
||||
<string name="autoplay_through_intent_summary">Automatikusan elindítja a videót, ha az külső alkalmazásból volt hívva</string>
|
||||
<string name="default_resolution_title">Alapértelmezett felbontás</string>
|
||||
<string name="play_with_kodi_title">Lejátszás Kodi-val</string>
|
||||
<string name="kore_not_found">A Kore alkalmazás nem található. A Kore szükséges a videók Kodi médiaközponttal való lejátszásához.</string>
|
||||
<string name="installeKore">Kore telepítése</string>
|
||||
<string name="showPlayWithKodiTitle">\"Lejátszás Kodi-val\" opció mutatása</string>
|
||||
<string name="showPlayWithKodiSummary">Mutat egy opciót a videók Kodi médiaközponttal való lejátszására</string>
|
||||
<string name="playAudio">Hang</string>
|
||||
<string name="defaultAudioFormatTitle">Alapértelmezett hang formátum</string>
|
||||
<string name="webMAudioDescription">WebM - szabad formátum</string>
|
||||
<string name="m4aAudioDescription">m4a - jobb minőség</string>
|
||||
<string name="downloadDialogTitle">Letöltés</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="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>
|
||||
<string name="m4a_description">m4a — jobb minőség</string>
|
||||
<string name="download_dialog_title">Letöltés</string>
|
||||
<string-array name="downloadOptions">
|
||||
<item>Videó</item>
|
||||
<item>Hang</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">Következő videó</string>
|
||||
<string name="urlNotSupportedText">A webcím nem támogatott.</string>
|
||||
<string name="showSimilarVideosButtonText">Hasonló videók</string>
|
||||
</resources>
|
||||
<string name="next_video_title">Következő videó</string>
|
||||
<string name="url_not_supported_toast">A webcím nem támogatott.</string>
|
||||
<string name="similar_videos_btn_text">Hasonló videók</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="viewCountText">%1$s visite</string>
|
||||
<string name="uploadDateText">Caricato in %1$s</string>
|
||||
<string name="noPlayerFound">Nessun riproduttore trovato. Dovresti installarne uno.</string>
|
||||
<string name="installStreamPlayer">Installa</string>
|
||||
<resources><string name="view_count_text">%1$s visite</string>
|
||||
<string name="upload_date_text">Caricato in %1$s</string>
|
||||
<string name="no_player_found">Nessun riproduttore trovato. Dovresti installarne uno.</string>
|
||||
<string name="install">Installa</string>
|
||||
<string name="cancel">Cancella</string>
|
||||
<string name="open_in_browser">Apri nel browser</string>
|
||||
<string name="share">Condividi</string>
|
||||
<string name="download">Scarica</string>
|
||||
<string name="search">Cerca</string>
|
||||
<string name="settings">Impostazioni</string>
|
||||
<string name="didYouMean">"Intendevi: "</string>
|
||||
<string name="searchPage">"Cerca pagina: "</string>
|
||||
<string name="shareDialogTitle">Condividi con:</string>
|
||||
<string name="chooseBrowser">Scegli browser:</string>
|
||||
<string name="screenRotation">rotazione</string>
|
||||
<string name="title_activity_settings">Impostazioni</string>
|
||||
<string name="did_you_mean">"Intendevi: "</string>
|
||||
<string name="search_page">"Cerca pagina: "</string>
|
||||
<string name="share_dialog_title">Condividi con:</string>
|
||||
<string name="choose_browser">Scegli browser:</string>
|
||||
<string name="screen_rotation">rotazione</string>
|
||||
<string name="settings_activity_title">Impostazioni</string>
|
||||
<string name="useExternalPlayerTitle">Usa un riproduttore video esterno</string>
|
||||
<string name="downloadLocation">Cartella di download</string>
|
||||
<string name="downloadLocationSummary">Percorso dove memorizzare i video scaricati.</string>
|
||||
<string name="downloadLocationDialogTitle">Inserisci il percorso di download</string>
|
||||
<string name="autoPlayThroughIntentTitle">Auto riproduzione attraverso internet</string>
|
||||
<string name="autoPlayThroughIntentSummary">Avvia automaticamente un video quando è stato chiamato da un\'altra applicazione.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Risoluzione predefinita</string>
|
||||
<string name="playWithKodiTitle">Riproduci con Kodi</string>
|
||||
<string name="koreNotFound">Kore app non trovata. Kore è richiesto per riprodurre video con Kodi media center.</string>
|
||||
<string name="download_path_title">Cartella di download</string>
|
||||
<string name="download_path_summary">Percorso dove memorizzare i video scaricati.</string>
|
||||
<string name="download_path_dialog_title">Inserisci il percorso di download</string>
|
||||
<string name="autoplay_through_intent_title">Auto riproduzione attraverso internet</string>
|
||||
<string name="autoplay_through_intent_summary">Avvia automaticamente un video quando è stato chiamato da un\'altra applicazione.</string>
|
||||
<string name="default_resolution_title">Risoluzione predefinita</string>
|
||||
<string name="play_with_kodi_title">Riproduci con Kodi</string>
|
||||
<string name="kore_not_found">Kore app non trovata. Kore è richiesto per riprodurre video con Kodi media center.</string>
|
||||
<string name="installeKore">Installa Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Mostra l\'opzione \"Riproduci con Kodi\"</string>
|
||||
<string name="showPlayWithKodiSummary">Mostra un opzione per riprodurre un video attraverso Kodi media center.</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Formato audio predefinito</string>
|
||||
<string name="webMAudioDescription">WedM - formato libero</string>
|
||||
<string name="m4aAudioDescription">m4a - qualità migliore</string>
|
||||
<string name="downloadDialogTitle">Scarica</string>
|
||||
<string name="nextVideoTitle">Prossimo video</string>
|
||||
<string name="showNextAndSimilarTitle">Mostra i video successivi e simili</string>
|
||||
<string name="urlNotSupportedText">URL non supportato.</string>
|
||||
<string name="showSimilarVideosButtonText">Video simili</string>
|
||||
<string name="searchLanguageTitle">Lingua preferita dei contenuti</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">VIDEO & AUDIO</string>
|
||||
<string name="show_play_with_kodi_title">Mostra l\'opzione \"Riproduci con Kodi\"</string>
|
||||
<string name="show_play_with_kodi_summary">Mostra un opzione per riprodurre un video attraverso Kodi media center.</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Formato audio predefinito</string>
|
||||
<string name="webm_description">WedM — formato libero</string>
|
||||
<string name="m4a_description">m4a — qualità migliore</string>
|
||||
<string name="download_dialog_title">Scarica</string>
|
||||
<string name="next_video_title">Prossimo video</string>
|
||||
<string name="show_next_and_similar_title">Mostra i video successivi e simili</string>
|
||||
<string name="url_not_supported_toast">URL non supportato.</string>
|
||||
<string name="similar_videos_btn_text">Video simili</string>
|
||||
<string name="search_language_title">Lingua preferita dei contenuti</string>
|
||||
<string name="settings_category_video_audio_title">VIDEO & AUDIO</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFO</string>
|
||||
<string name="settingsCategoryEtcTitle">ETC</string>
|
||||
|
||||
<string name="itemThumbnailViewDescription">Anteprima video</string>
|
||||
<string name="detailThumbnailViewDescription">Anteprima video</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Miniatura caricata</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Non mi piace</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Mi piace</string>
|
||||
<string name="list_thumbnail_view_description">Anteprima video</string>
|
||||
<string name="detail_thumbnail_view_description">Anteprima video</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Miniatura caricata</string>
|
||||
<string name="detail_dislikes_img_view_description">Non mi piace</string>
|
||||
<string name="detail_likes_img_view_description">Mi piace</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,53 +1,65 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="uploadDateText">"アップロード: "%1$s</string>
|
||||
<string name="noPlayerFound">StreamPlayer が見つかりませんでした。インストールが必要になるかもしれません。</string>
|
||||
<string name="installStreamPlayer">インストール</string>
|
||||
<string name="upload_date_text">"アップロード: "%1$s</string>
|
||||
<string name="no_player_found">StreamPlayer が見つかりませんでした。インストールが必要になるかもしれません。</string>
|
||||
<string name="install">インストール</string>
|
||||
<string name="cancel">取り消し</string>
|
||||
<string name="open_in_browser">ブラウザーで開く</string>
|
||||
<string name="share">共有</string>
|
||||
<string name="download">ダウンロード</string>
|
||||
<string name="search">検索</string>
|
||||
<string name="settings">設定</string>
|
||||
<string name="didYouMean">"この意味ですか: "</string>
|
||||
<string name="searchPage">"検索ページ: "</string>
|
||||
<string name="shareDialogTitle">…共有:</string>
|
||||
<string name="chooseBrowser">ブラウザーを選択:</string>
|
||||
<string name="screenRotation">回転</string>
|
||||
<string name="title_activity_settings">設定</string>
|
||||
<string name="did_you_mean">"この意味ですか: "</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="useExternalPlayerTitle">外部プレーヤーを使用する</string>
|
||||
<string name="downloadLocation">ダウンロードする場所</string>
|
||||
<string name="downloadLocationSummary">ダウンロードした動画を保存する場所のパス。</string>
|
||||
<string name="downloadLocationDialogTitle">ダウンロードのパスを入力してください。</string>
|
||||
<string name="autoPlayThroughIntentTitle">インテントで自動再生</string>
|
||||
<string name="autoPlayThroughIntentSummary">他のアプリケーションから呼び出されたとき、自動的に動画再生を開始します。</string>
|
||||
<string name="defaultResolutionPreferenceTitle">基本の解像度</string>
|
||||
<string name="playWithKodiTitle">Kodi で再生</string>
|
||||
<string name="koreNotFound">Kore アプリが見つかりません。 Kodi メディアセンターで動画を再生するには、 Kore が必要です。</string>
|
||||
<string name="download_path_title">ダウンロードする場所</string>
|
||||
<string name="download_path_summary">ダウンロードした動画を保存する場所のパス。</string>
|
||||
<string name="download_path_dialog_title">ダウンロードのパスを入力してください。</string>
|
||||
<string name="autoplay_through_intent_title">インテントで自動再生</string>
|
||||
<string name="autoplay_through_intent_summary">他のアプリケーションから呼び出されたとき、自動的に動画再生を開始します。</string>
|
||||
<string name="default_resolution_title">基本の解像度</string>
|
||||
<string name="play_with_kodi_title">Kodi で再生</string>
|
||||
<string name="kore_not_found">Kore アプリが見つかりません。 Kodi メディアセンターで動画を再生するには、 Kore が必要です。</string>
|
||||
<string name="installeKore">Kore をインストール</string>
|
||||
<string name="showPlayWithKodiTitle">\"Kodi で再生\" 設定を表示</string>
|
||||
<string name="showPlayWithKodiSummary">Kodi メディアセンター経由で動画を再生するための設定を表示します.</string>
|
||||
<string name="playAudio">オーディオ</string>
|
||||
<string name="defaultAudioFormatTitle">基本のオーディオフォーマット</string>
|
||||
<string name="webMAudioDescription">.WebM - フリーフォーマット</string>
|
||||
<string name="m4aAudioDescription">.m4a - より良い品質</string>
|
||||
<string name="downloadDialogTitle">ダウンロード</string>
|
||||
<string name="nextVideoTitle">次の動画</string>
|
||||
<string name="showNextAndSimilarTitle">次の同様の動画を表示します。</string>
|
||||
<string name="urlNotSupportedText">URL は使用できません。</string>
|
||||
<string name="showSimilarVideosButtonText">同様の動画</string>
|
||||
<string name="searchLanguageTitle">優先される言語</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">動画とオーディオ</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">情報</string>
|
||||
<string name="settingsCategoryEtcTitle">その他</string>
|
||||
<string name="viewCountText">%1$s ビュー</string>
|
||||
<string name="itemThumbnailViewDescription">ビデオ プレビュー サムネイル</string>
|
||||
<string name="detailThumbnailViewDescription">ビデオ プレビュー サムネイル</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">アップローダー サムネイル</string>
|
||||
<string name="detailThumbsDownImgViewDescription">残念だね</string>
|
||||
<string name="detailThumbsUpImgViewDescription">いいね</string>
|
||||
<string name="useExternalVideoPlayerTitle">外部ビデオ プレイヤーを使用する</string>
|
||||
<string name="useExternalAudioPlayerTitle">外部オーディオ プレイヤーを使用する</string>
|
||||
<string name="backgroundPlayerStartPlayingToast">バックグラウンドで再生しています</string>
|
||||
<string name="show_play_with_kodi_title">\"Kodi で再生\" 設定を表示</string>
|
||||
<string name="show_play_with_kodi_summary">Kodi メディアセンター経由で動画を再生するための設定を表示します.</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="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="view_count_text">%1$s ビュー</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_dislikes_img_view_description">残念だね</string>
|
||||
<string name="detail_likes_img_view_description">いいね</string>
|
||||
<string name="use_external_video_player_title">外部ビデオ プレイヤーを使用する</string>
|
||||
<string name="use_external_audio_player_title">外部オーディオ プレイヤーを使用する</string>
|
||||
<string name="background_player_playing_toast">バックグラウンドで再生しています</string>
|
||||
|
||||
<string name="background_player_name">NewPipe バックグラウンド プレーヤー</string>
|
||||
<string name="loading">読み込み中</string>
|
||||
<string name="play_btn_text">再生</string>
|
||||
|
||||
<string name="use_tor_title">Tor を使用する</string>
|
||||
<string name="use_tor_summary">強制的に Tor を経由したプライバシーを高めたトラフィックでダウンロードします (ビデオのストリーミングはまだサポートされていません)</string>
|
||||
<string name="theme_title">テーマ</string>
|
||||
<string name="dark_theme_title">ダーク</string>
|
||||
<string name="light_theme_title">ライト</string>
|
||||
|
||||
<string name="settings_category_appearance_title">外観</string>
|
||||
<string name="settings_category_other_title">その他</string>
|
||||
<string name="network_error">ネットワーク エラー</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="viewCountText">시청 횟수 %1$s</string>
|
||||
<string name="uploadDateText">%1$s에 업로드됨</string>
|
||||
<string name="noPlayerFound">스트리밍 플레이어가 발견되지 않았습니다. 플레이어를 설치하시기 바랍니다.</string>
|
||||
<string name="installStreamPlayer">설치</string>
|
||||
<resources><string name="view_count_text">시청 횟수 %1$s</string>
|
||||
<string name="upload_date_text">%1$s에 업로드됨</string>
|
||||
<string name="no_player_found">스트리밍 플레이어가 발견되지 않았습니다. 플레이어를 설치하시기 바랍니다.</string>
|
||||
<string name="install">설치</string>
|
||||
<string name="cancel">취소</string>
|
||||
<string name="open_in_browser">브라우저에서 열기</string>
|
||||
<string name="share">공유</string>
|
||||
<string name="download">다운로드</string>
|
||||
<string name="search">검색</string>
|
||||
<string name="settings">설정</string>
|
||||
<string name="didYouMean">"혹시 이것을 검색하셨습니까? "</string>
|
||||
<string name="searchPage">"검색 페이지: "</string>
|
||||
<string name="shareDialogTitle">다음으로 공유:</string>
|
||||
<string name="chooseBrowser">브라우저 선택:</string>
|
||||
<string name="screenRotation">회전</string>
|
||||
<string name="title_activity_settings">설정</string>
|
||||
<string name="did_you_mean">"혹시 이것을 검색하셨습니까? "</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="useExternalPlayerTitle">외부 플레이어 사용</string>
|
||||
<string name="downloadLocation">다운로드 위치</string>
|
||||
<string name="downloadLocationSummary">다운로드된 비디오가 저장될 경로를 선택하세요.</string>
|
||||
<string name="downloadLocationDialogTitle">다운로드 경로 입력</string>
|
||||
<string name="autoPlayThroughIntentTitle">인텐트로 경유할 경우 자동 재생</string>
|
||||
<string name="autoPlayThroughIntentSummary">다른 앱으로부터 호출되었을 경우에 비디오를 자동으로 재생합니다.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">기본 해상도</string>
|
||||
<string name="playWithKodiTitle">Kodi로 재생</string>
|
||||
<string name="koreNotFound">Kore 앱이 발견되지 않았습니다. Kodi media center로 비디오를 재생하려면 Kore가 필요합니다.</string>
|
||||
<string name="download_path_title">다운로드 위치</string>
|
||||
<string name="download_path_summary">다운로드된 비디오가 저장될 경로를 선택하세요.</string>
|
||||
<string name="download_path_dialog_title">다운로드 경로 입력</string>
|
||||
<string name="autoplay_through_intent_title">인텐트로 경유할 경우 자동 재생</string>
|
||||
<string name="autoplay_through_intent_summary">다른 앱으로부터 호출되었을 경우에 비디오를 자동으로 재생합니다.</string>
|
||||
<string name="default_resolution_title">기본 해상도</string>
|
||||
<string name="play_with_kodi_title">Kodi로 재생</string>
|
||||
<string name="kore_not_found">Kore 앱이 발견되지 않았습니다. Kodi media center로 비디오를 재생하려면 Kore가 필요합니다.</string>
|
||||
<string name="installeKore">Kore 설치</string>
|
||||
<string name="showPlayWithKodiTitle">\"Kodi로 재생\" 옵션 표시</string>
|
||||
<string name="showPlayWithKodiSummary">비디오를 Kodi media center를 사용해 재생하는 옵션을 표시합니다.</string>
|
||||
<string name="playAudio">오디오</string>
|
||||
<string name="defaultAudioFormatTitle">기본 오디오 포맷</string>
|
||||
<string name="webMAudioDescription">WebM - 무료 자유 포맷입니다</string>
|
||||
<string name="m4aAudioDescription">m4a - 보다 나은 품질</string>
|
||||
<string name="downloadDialogTitle">다운로드</string>
|
||||
<string name="nextVideoTitle">다음 비디오</string>
|
||||
<string name="showNextAndSimilarTitle">다음 및 유사한 비디오 표시</string>
|
||||
<string name="urlNotSupportedText">지원하지 않는 URL 입니다.</string>
|
||||
<string name="showSimilarVideosButtonText">유사한 비디오</string>
|
||||
<string name="searchLanguageTitle">선호하는 컨텐츠 언어</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">비디오 & 오디오</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="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="settingsCategoryVideoInfoTittle">정보</string>
|
||||
<string name="settingsCategoryEtcTitle">기타</string>
|
||||
|
||||
<string name="itemThumbnailViewDescription">비디오 미리보기 썸네일</string>
|
||||
<string name="detailThumbnailViewDescription">비디오 미리보기 썸네일</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">업로더 썸네일</string>
|
||||
<string name="detailThumbsDownImgViewDescription">싫어요</string>
|
||||
<string name="detailThumbsUpImgViewDescription">좋아요</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_dislikes_img_view_description">싫어요</string>
|
||||
<string name="detail_likes_img_view_description">좋아요</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,51 +1,49 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s keer bekeken</string>
|
||||
<string name="uploadDateText">Geüpload op %1$s</string>
|
||||
<string name="noPlayerFound">Geen speler met streaming ondersteuning gevonden. Misschien wil je er een installeren.</string>
|
||||
<string name="installStreamPlayer">Installeer speler</string>
|
||||
<string name="view_count_text">%1$s keer bekeken</string>
|
||||
<string name="upload_date_text">Geüpload op %1$s</string>
|
||||
<string name="no_player_found">Geen speler met streaming ondersteuning gevonden. Misschien wil je er een installeren.</string>
|
||||
<string name="install">Installeer speler</string>
|
||||
<string name="cancel">Annuleer</string>
|
||||
<string name="open_in_browser">Open in browser</string>
|
||||
<string name="share">Deel</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="search">Zoek</string>
|
||||
<string name="settings">Instellingen</string>
|
||||
<string name="didYouMean">Bedoelde je: </string>
|
||||
<string name="searchPage">Zoekpagina: </string>
|
||||
<string name="shareDialogTitle">Deel met:</string>
|
||||
<string name="chooseBrowser">Kies browser:</string>
|
||||
<string name="screenRotation">rotatie</string>
|
||||
<string name="title_activity_settings">Instellingen</string>
|
||||
<string name="did_you_mean">Bedoelde je: </string>
|
||||
<string name="search_page">Zoekpagina: </string>
|
||||
<string name="share_dialog_title">Deel met:</string>
|
||||
<string name="choose_browser">Kies browser:</string>
|
||||
<string name="screen_rotation">rotatie</string>
|
||||
<string name="settings_activity_title">Instellingen</string>
|
||||
<string name="useExternalPlayerTitle">Gebruik externe speler</string>
|
||||
<string name="downloadLocation">Downloadlocatie</string>
|
||||
<string name="downloadLocationSummary">Locatie om gedownloadde videos in op te slaan.</string>
|
||||
<string name="downloadLocationDialogTitle">Voer downloadlocatie is</string>
|
||||
<string name="autoPlayThroughIntentTitle">Speel automatisch via Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Speel een video automatisch af indien geopend vanuit een andere app.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Standaardresolutie</string>
|
||||
<string name="playWithKodiTitle">Speel af met Kodi</string>
|
||||
<string name="koreNotFound">Kore app niet gevonden. Kore is nodig om videos op Kodi af te spelen.</string>
|
||||
<string name="download_path_title">Downloadlocatie</string>
|
||||
<string name="download_path_summary">Locatie om gedownloadde videos in op te slaan.</string>
|
||||
<string name="download_path_dialog_title">Voer downloadlocatie is</string>
|
||||
<string name="autoplay_through_intent_title">Speel automatisch via Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Speel een video automatisch af indien geopend vanuit een andere app.</string>
|
||||
<string name="default_resolution_title">Standaardresolutie</string>
|
||||
<string name="play_with_kodi_title">Speel af met Kodi</string>
|
||||
<string name="kore_not_found">Kore app niet gevonden. Kore is nodig om videos op Kodi af te spelen.</string>
|
||||
<string name="installeKore">Installeer Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Toon \"Speel af met Kodi\" optie</string>
|
||||
<string name="showPlayWithKodiSummary">Toont een optie om een video op een Kodi media center af te spelen.</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Standaard audio formaat</string>
|
||||
<string name="webMAudioDescription">Webam - open formaat</string>
|
||||
<string name="m4aAudioDescription">m4a - betere kwaliteit</string>
|
||||
<string name="downloadDialogTitle">Download</string>
|
||||
<string name="nextVideoTitle">Volgende video</string>
|
||||
<string name="urlNotSupportedText">URL wordt niet ondersteund.</string>
|
||||
<string name="showSimilarVideosButtonText">Vergelijkbare videos</string>
|
||||
<string name="showNextAndSimilarTitle">Laat volgende en vergelijkbare videos zien</string>
|
||||
<string name="searchLanguageTitle">Voorkeurs content taal</string>
|
||||
<string name="useExternalVideoPlayerTitle">Gebruik externe videospeler</string>
|
||||
<string name="useExternalAudioPlayerTitle">Gebruik externe audiospeler</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">VIDEO & GELUID</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFO</string>
|
||||
<string name="settingsCategoryEtcTitle">ETC.</string>
|
||||
<string name="show_play_with_kodi_title">Toon \"Speel af met Kodi\" optie</string>
|
||||
<string name="show_play_with_kodi_summary">Toont een optie om een video op een Kodi media center af te spelen.</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Standaard audio formaat</string>
|
||||
<string name="webm_description">WebM — open formaat</string>
|
||||
<string name="m4a_description">m4a — betere kwaliteit</string>
|
||||
<string name="download_dialog_title">Download</string>
|
||||
<string name="next_video_title">Volgende video</string>
|
||||
<string name="url_not_supported_toast">URL wordt niet ondersteund.</string>
|
||||
<string name="similar_videos_btn_text">Vergelijkbare videos</string>
|
||||
<string name="show_next_and_similar_title">Laat volgende en vergelijkbare videos zien</string>
|
||||
<string name="search_language_title">Voorkeurs content taal</string>
|
||||
<string name="use_external_video_player_title">Gebruik externe videospeler</string>
|
||||
<string name="use_external_audio_player_title">Gebruik externe audiospeler</string>
|
||||
<string name="settings_category_video_audio_title">Video & Geluid</string>
|
||||
|
||||
<string name="itemThumbnailViewDescription">Videovoorbeeld thumbnail</string>
|
||||
<string name="detailThumbnailViewDescription">Videovoorbeeld thumbnail</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Uploader miniatuur</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Dislikes</string>
|
||||
<string name="list_thumbnail_view_description">Videovoorbeeld thumbnail</string>
|
||||
<string name="detail_thumbnail_view_description">Videovoorbeeld thumbnail</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Uploader miniatuur</string>
|
||||
<string name="detail_dislikes_img_view_description">Dislikes</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,51 +1,50 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="noPlayerFound">Nie znaleziono odtwarzacza strumieniowego.</string>
|
||||
<string name="installStreamPlayer">Zainstaluj</string>
|
||||
<string name="no_player_found">Nie znaleziono odtwarzacza strumieniowego.</string>
|
||||
<string name="install">Zainstaluj</string>
|
||||
<string name="cancel">Anuluj</string>
|
||||
<string name="open_in_browser">Otwórz w przeglądarce</string>
|
||||
<string name="share">Udostępnij</string>
|
||||
<string name="download">Pobierz</string>
|
||||
<string name="search">Szukaj</string>
|
||||
<string name="settings">Ustawienia</string>
|
||||
<string name="didYouMean">"Czy chodziło Ci o: "</string>
|
||||
<string name="shareDialogTitle">Udostępnij za pośrednictwem:</string>
|
||||
<string name="chooseBrowser">Wybierz przeglądarkę:</string>
|
||||
<string name="screenRotation">obrót</string>
|
||||
<string name="title_activity_settings">Ustawienia</string>
|
||||
<string name="did_you_mean">"Czy chodziło Ci o: "</string>
|
||||
<string name="share_dialog_title">Udostępnij za pośrednictwem:</string>
|
||||
<string name="choose_browser">Wybierz przeglądarkę:</string>
|
||||
<string name="screen_rotation">obrót</string>
|
||||
<string name="settings_activity_title">Ustawienia</string>
|
||||
<string name="useExternalPlayerTitle">Użyj zewnętrznego odtwarzacza</string>
|
||||
<string name="downloadLocation">Miejsce zapisu pobieranych plików</string>
|
||||
<string name="downloadLocationSummary">Ścieżka folderu do zapisywania pobieranego wideo.</string>
|
||||
<string name="downloadLocationDialogTitle">Wprowadź ścieżkę folderu dla pobieranych plików</string>
|
||||
<string name="autoPlayThroughIntentTitle">Automatycznie odtwarzaj przez Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Automatycznie odtwarza wideo po wywołaniu z innej aplikacji.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Domyślna rozdzielczość</string>
|
||||
<string name="playWithKodiTitle">Odtwarzaj za pośrednictwem Kodi</string>
|
||||
<string name="koreNotFound">Aplikacja Kore nie została znaleziona. Wymagana jest do odtwarzania w Kodi.</string>
|
||||
<string name="download_path_title">Miejsce zapisu pobieranych plików</string>
|
||||
<string name="download_path_summary">Ścieżka folderu do zapisywania pobieranego wideo.</string>
|
||||
<string name="download_path_dialog_title">Wprowadź ścieżkę folderu dla pobieranych plików</string>
|
||||
<string name="autoplay_through_intent_title">Automatycznie odtwarzaj przez Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Automatycznie odtwarza wideo po wywołaniu z innej aplikacji.</string>
|
||||
<string name="default_resolution_title">Domyślna rozdzielczość</string>
|
||||
<string name="play_with_kodi_title">Odtwarzaj za pośrednictwem Kodi</string>
|
||||
<string name="kore_not_found">Aplikacja Kore nie została znaleziona. Wymagana jest do odtwarzania w Kodi.</string>
|
||||
<string name="installeKore">Zainstaluj Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Wyświetlaj opcję \"Odtwarzaj za pośrednictwem Kodi\"</string>
|
||||
<string name="showPlayWithKodiSummary">Wyświetla opcję do odtwarzania wideo przez aplikację Kodi.</string>
|
||||
<string name="playAudio">Dźwięk</string>
|
||||
<string name="defaultAudioFormatTitle">Domyślny format dźwięku</string>
|
||||
<string name="webMAudioDescription">WebM - otwarty format</string>
|
||||
<string name="m4aAudioDescription">m4a - lepsza jakość</string>
|
||||
<string name="downloadDialogTitle">Pobierz</string>
|
||||
<string name="nextVideoTitle">Następne wideo</string>
|
||||
<string name="showNextAndSimilarTitle">Wyświetl następne i podobne wideo</string>
|
||||
<string name="urlNotSupportedText">Niewspierany URL.</string>
|
||||
<string name="showSimilarVideosButtonText">Podobne wideo</string>
|
||||
<string name="searchLanguageTitle">Preferowany język zawartości</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">WIDEO & DŹWIĘK</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFO</string>
|
||||
<string name="settingsCategoryEtcTitle">INNE</string>
|
||||
<string name="searchPage">"Szukaj strony: "</string>
|
||||
<string name="viewCountText">%1$s wyświetleń</string>
|
||||
<string name="uploadDateText">Opublikowany %1$s</string>
|
||||
<string name="itemThumbnailViewDescription">Miniaturka podglądowa wideo</string>
|
||||
<string name="detailThumbnailViewDescription">Miniaturka podglądowa wideo</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Miniaturka wysyłającego</string>
|
||||
<string name="detailThumbsDownImgViewDescription">łapek w dół</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Polubień</string>
|
||||
<string name="useExternalVideoPlayerTitle">Użyj zewnętrznego odtwarzacza wideo</string>
|
||||
<string name="useExternalAudioPlayerTitle">Użyj zewnętrznego odtwarzacza audio</string>
|
||||
</resources>
|
||||
<string name="show_play_with_kodi_title">Wyświetlaj opcję \"Odtwarzaj za pośrednictwem Kodi\"</string>
|
||||
<string name="show_play_with_kodi_summary">Wyświetla opcję do odtwarzania wideo przez aplikację Kodi.</string>
|
||||
<string name="play_audio">Dźwięk</string>
|
||||
<string name="default_audio_format_title">Domyślny format dźwięku</string>
|
||||
<string name="webm_description">WebM — otwarty format</string>
|
||||
<string name="m4a_description">m4a — lepsza jakość</string>
|
||||
<string name="download_dialog_title">Pobierz</string>
|
||||
<string name="next_video_title">Następne wideo</string>
|
||||
<string name="show_next_and_similar_title">Wyświetl następne i podobne wideo</string>
|
||||
<string name="url_not_supported_toast">Niewspierany URL.</string>
|
||||
<string name="similar_videos_btn_text">Podobne wideo</string>
|
||||
<string name="search_language_title">Preferowany język zawartości</string>
|
||||
<string name="settings_category_video_audio_title">Wideo & Dźwięk</string>
|
||||
|
||||
<string name="search_page">"Szukaj strony: "</string>
|
||||
<string name="view_count_text">%1$s wyświetleń</string>
|
||||
<string name="upload_date_text">Opublikowany %1$s</string>
|
||||
<string name="list_thumbnail_view_description">Miniaturka podglądowa wideo</string>
|
||||
<string name="detail_thumbnail_view_description">Miniaturka podglądowa wideo</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Miniaturka wysyłającego</string>
|
||||
<string name="detail_dislikes_img_view_description">łapek w dół</string>
|
||||
<string name="detail_likes_img_view_description">Polubień</string>
|
||||
<string name="use_external_video_player_title">Użyj zewnętrznego odtwarzacza wideo</string>
|
||||
<string name="use_external_audio_player_title">Użyj zewnętrznego odtwarzacza audio</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,50 +1,64 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="viewCountText">%1$s visualizações</string>
|
||||
<string name="uploadDateText">Carregado em %1$s</string>
|
||||
<string name="noPlayerFound">Reprodutor não disponível. Deve instalar um reprodutor.</string>
|
||||
<string name="installStreamPlayer">Instalar</string>
|
||||
<resources><string name="view_count_text">%1$s visualizações</string>
|
||||
<string name="upload_date_text">Carregado em %1$s</string>
|
||||
<string name="no_player_found">Reprodutor não disponível. Instalar o VLC?</string>
|
||||
<string name="install">Instalar</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="open_in_browser">Abrir no navegador</string>
|
||||
<string name="share">Partilhar</string>
|
||||
<string name="download">Descarregar</string>
|
||||
<string name="search">Pesquisar</string>
|
||||
<string name="settings">Definições</string>
|
||||
<string name="didYouMean">"Será que queria dizer: "</string>
|
||||
<string name="searchPage">"Página de pesquisa: "</string>
|
||||
<string name="shareDialogTitle">Partilhar com:</string>
|
||||
<string name="chooseBrowser">Escolher navegador:</string>
|
||||
<string name="screenRotation">rotação</string>
|
||||
<string name="title_activity_settings">Definições</string>
|
||||
<string name="useExternalVideoPlayerTitle">Utilizar reprodutor de vídeo externo</string>
|
||||
<string name="useExternalAudioPlayerTitle">Utilizar reprodutor de áudio externo</string>
|
||||
<string name="downloadLocation">Local para a descarga</string>
|
||||
<string name="downloadLocationSummary">Local para guardar os vídeos descarregados.</string>
|
||||
<string name="downloadLocationDialogTitle">Digite o caminho</string>
|
||||
<string name="autoPlayThroughIntentTitle">Reproduzir via Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Iniciar automaticamente o vídeo se for invocado por outra aplicação.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Resolução padrão</string>
|
||||
<string name="playWithKodiTitle">Reproduzir com Kodi</string>
|
||||
<string name="koreNotFound">Aplicação não encontrada. Necessita do Kore para reproduzir vídeos no Kodi.</string>
|
||||
<string name="did_you_mean">"Será que queria dizer: "</string>
|
||||
<string name="search_page">"Página de pesquisa: "</string>
|
||||
<string name="share_dialog_title">Partilhar com:</string>
|
||||
<string name="choose_browser">Escolher navegador:</string>
|
||||
<string name="screen_rotation">rotação</string>
|
||||
<string name="settings_activity_title">Definições</string>
|
||||
<string name="use_external_video_player_title">Utilizar reprodutor de vídeo externo</string>
|
||||
<string name="use_external_audio_player_title">Utilizar reprodutor de áudio externo</string>
|
||||
<string name="download_path_title">Local para a descarga</string>
|
||||
<string name="download_path_summary">Local para guardar os vídeos descarregados</string>
|
||||
<string name="download_path_dialog_title">Digite o caminho</string>
|
||||
<string name="autoplay_through_intent_title">Reproduzir via Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Iniciar automaticamente o vídeo se for invocado por outra aplicação</string>
|
||||
<string name="default_resolution_title">Resolução padrão</string>
|
||||
<string name="play_with_kodi_title">Reproduzir com Kodi</string>
|
||||
<string name="kore_not_found">Aplicação não encontrada. Instalar o Kore?</string>
|
||||
<string name="installeKore">Instalar o Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Mostrar opção \"Reproduzir com Kodi\"</string>
|
||||
<string name="showPlayWithKodiSummary">Mostra uma opção para reproduzir o vídeo com o Kodi.</string>
|
||||
<string name="playAudio">Áudio</string>
|
||||
<string name="defaultAudioFormatTitle">Formato áudio padrão</string>
|
||||
<string name="webMAudioDescription">WebM - formato livre</string>
|
||||
<string name="m4aAudioDescription">m4a - melhor qualidade</string>
|
||||
<string name="downloadDialogTitle">Descarregar</string>
|
||||
<string name="nextVideoTitle">Vídeo seguinte</string>
|
||||
<string name="showNextAndSimilarTitle">Mostrar vídeos seguintes e similares</string>
|
||||
<string name="urlNotSupportedText">URL não suportado.</string>
|
||||
<string name="showSimilarVideosButtonText">Vídeos similares</string>
|
||||
<string name="searchLanguageTitle">Idioma preferencial do conteúdo</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">Vídeo e áudio</string>
|
||||
<string name="show_play_with_kodi_title">Mostrar opção \"Reproduzir com Kodi\"</string>
|
||||
<string name="show_play_with_kodi_summary">Mostra uma opção para reproduzir o vídeo com o Kodi</string>
|
||||
<string name="play_audio">Áudio</string>
|
||||
<string name="default_audio_format_title">Formato áudio padrão</string>
|
||||
<string name="webm_description">WebM — formato livre</string>
|
||||
<string name="m4a_description">m4a — melhor qualidade</string>
|
||||
<string name="download_dialog_title">Descarregar</string>
|
||||
<string name="next_video_title">Vídeo seguinte</string>
|
||||
<string name="show_next_and_similar_title">Mostrar vídeos seguintes e similares</string>
|
||||
<string name="url_not_supported_toast">URL não suportado</string>
|
||||
<string name="similar_videos_btn_text">Vídeos similares</string>
|
||||
<string name="search_language_title">Idioma preferencial do conteúdo</string>
|
||||
<string name="settings_category_video_audio_title">Vídeo e áudio</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">Informações</string>
|
||||
<string name="settingsCategoryEtcTitle">Outras</string>
|
||||
|
||||
<string name="itemThumbnailViewDescription">Miniatura de vídeos</string>
|
||||
<string name="detailThumbnailViewDescription">Miniatura de vídeos</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Carregador de miniaturas</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Não gosto</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Gosto</string>
|
||||
<string name="list_thumbnail_view_description">Miniatura de vídeos</string>
|
||||
<string name="detail_thumbnail_view_description">Miniatura de vídeos</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Carregador de miniaturas</string>
|
||||
<string name="detail_dislikes_img_view_description">Não gosto</string>
|
||||
<string name="detail_likes_img_view_description">Gosto</string>
|
||||
<string name="background_player_name">Reprodutor de fundo NewPipe</string>
|
||||
<string name="loading">A carregar</string>
|
||||
<string name="theme_title">Tema</string>
|
||||
<string name="dark_theme_title">Escuro</string>
|
||||
<string name="light_theme_title">Claro</string>
|
||||
|
||||
<string name="settings_category_appearance_title">Aparência</string>
|
||||
<string name="settings_category_other_title">Outra</string>
|
||||
<string name="background_player_playing_toast">A reproduzir em segundo plano</string>
|
||||
<string name="play_btn_text">Reproduzir</string>
|
||||
<string name="network_error">Erro de rede</string>
|
||||
|
||||
<string name="use_tor_title">Utilizar Tor</string>
|
||||
<string name="use_tor_summary">Utilizar a rede Tor para ter mais privacidade (ainda não é suportada a transmissão de vídeos)</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,57 +1,67 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s просмотров</string>
|
||||
<string name="uploadDateText">Опубликовано %1$s</string>
|
||||
<string name="noPlayerFound">Ни одного потокового проигрывателя не было найдено. Установить?</string>
|
||||
<string name="installStreamPlayer">Установить</string>
|
||||
<string name="view_count_text">%1$s просмотров</string>
|
||||
<string name="upload_date_text">Опубликовано %1$s</string>
|
||||
<string name="no_player_found">Ни одного потокового проигрывателя не было найдено. Установить?</string>
|
||||
<string name="install">Установить</string>
|
||||
<string name="cancel">Отмена</string>
|
||||
<string name="open_in_browser">Открыть в браузере</string>
|
||||
<string name="share">Поделиться</string>
|
||||
<string name="download">Скачать</string>
|
||||
<string name="search">Найти</string>
|
||||
<string name="settings">Настройки</string>
|
||||
<string name="didYouMean">Возможно, вы имели в виду: </string>
|
||||
<string name="searchPage">Страница поиска: </string>
|
||||
<string name="shareDialogTitle">Поделиться с помощью:</string>
|
||||
<string name="chooseBrowser">Выбрать браузер:</string>
|
||||
<string name="screenRotation">поворот</string>
|
||||
<string name="title_activity_settings">Настройки</string>
|
||||
<string name="did_you_mean">Возможно, вы имели в виду: </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="useExternalPlayerTitle">Использовать внешний проигрыватель</string>
|
||||
<string name="downloadLocation">Место для загрузок</string>
|
||||
<string name="downloadLocationSummary">Папка для хранения загруженных файлов.</string>
|
||||
<string name="downloadLocationDialogTitle">Введите путь к папке для загрузок</string>
|
||||
<string name="autoPlayThroughIntentTitle">Автопроигрывание через интернет</string>
|
||||
<string name="autoPlayThroughIntentSummary">Автоматически воспроизводить видео когда оно открыто через другое приложение.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Разрешение по-умолчанию</string>
|
||||
<string name="playWithKodiTitle">Воспроизвести с помощью Kodi</string>
|
||||
<string name="koreNotFound">Приложение Kore не наидено. Чтобы проигрывать видео через Kodi media center, нужен Kore.</string>
|
||||
<string name="download_path_title">Место для загрузок</string>
|
||||
<string name="download_path_summary">Папка для хранения загруженных файлов</string>
|
||||
<string name="download_path_dialog_title">Введите путь к папке для загрузок</string>
|
||||
<string name="autoplay_through_intent_title">Автопроигрывание через интернет</string>
|
||||
<string name="autoplay_through_intent_summary">Автоматически воспроизводить видео, открытое через другое приложение</string>
|
||||
<string name="default_resolution_title">Разрешение по-умолчанию</string>
|
||||
<string name="play_with_kodi_title">Воспроизвести с помощью Kodi</string>
|
||||
<string name="kore_not_found">Приложение Kore не наидено. Установить Kore?</string>
|
||||
<string name="installeKore">Установить Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Показывать опцию \"Воспроизвести с помощью Kodi\"</string>
|
||||
<string name="showPlayWithKodiSummary">Показать опцию воспроизведения видео через Kodi media center.</string>
|
||||
<string name="playAudio">Аудио</string>
|
||||
<string name="defaultAudioFormatTitle">Формат аудио по-умолчанию</string>
|
||||
<string name="webMAudioDescription">WebM - свободный формат</string>
|
||||
<string name="m4aAudioDescription">m4a - лучшее качество</string>
|
||||
<string name="downloadDialogTitle">Скачать</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="download_dialog_title">Скачать</string>
|
||||
<string-array name="downloadOptions">
|
||||
<item>Видео</item>
|
||||
<item>Аудио</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">Следующее видео</string>
|
||||
<string name="urlNotSupportedText">URL не поддерживается.</string>
|
||||
<string name="showSimilarVideosButtonText">Похожие видео</string>
|
||||
<string name="showNextAndSimilarTitle">Показывать следующее и предложенные видео</string>
|
||||
<string name="searchLanguageTitle">Предпочитаемый язык контента</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">ВИДЕО И АУДИО</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">ИНФОРМАЦИЯ</string>
|
||||
<string name="settingsCategoryEtcTitle">ПРОЧЕЕ</string>
|
||||
<string name="next_video_title">Следующее видео</string>
|
||||
<string name="url_not_supported_toast">URL не поддерживается</string>
|
||||
<string name="similar_videos_btn_text">Похожие видео</string>
|
||||
<string name="show_next_and_similar_title">Показывать следующее и предложенные видео</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="itemThumbnailViewDescription">Миниатюра видео-превью</string>
|
||||
<string name="detailThumbnailViewDescription">Миниатюра видео-превью</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Миниатюра аватара пользователся</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Дислайки</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Лайки</string>
|
||||
<string name="useExternalVideoPlayerTitle">Использовать внешний проигрыватель для видео</string>
|
||||
<string name="useExternalAudioPlayerTitle">Использовать внешний проигрыватель для аудио</string>
|
||||
<string name="backgroundPlayerStartPlayingToast">Проигрывание в фоновом режиме</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_dislikes_img_view_description">Дислайки</string>
|
||||
<string name="detail_likes_img_view_description">Лайки</string>
|
||||
<string name="use_external_video_player_title">Использовать внешний проигрыватель для видео</string>
|
||||
<string name="use_external_audio_player_title">Использовать внешний проигрыватель для аудио</string>
|
||||
<string name="background_player_playing_toast">Проигрывание в фоновом режиме</string>
|
||||
<string name="background_player_name">Фоновый проигрыватель NewPipe</string>
|
||||
<string name="loading">Загрузка</string>
|
||||
<string name="theme_title">Тема</string>
|
||||
<string name="dark_theme_title">Темная</string>
|
||||
<string name="light_theme_title">Светлая</string>
|
||||
|
||||
<string name="play_btn_text">Воспроизвести</string>
|
||||
<string name="network_error">Ошибка сети</string>
|
||||
|
||||
<string name="use_tor_title">Использовать Tor</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,50 +1,64 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="viewCountText">%1$s pogledov</string>
|
||||
<string name="uploadDateText">Poslano %1$s</string>
|
||||
<string name="noPlayerFound">Predvajalnika pretoka ni mogoče najti. Tak program lahko namestite ločeno.</string>
|
||||
<string name="installStreamPlayer">Namesti</string>
|
||||
<resources><string name="view_count_text">%1$s pogledov</string>
|
||||
<string name="upload_date_text">Poslano %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>
|
||||
<string name="open_in_browser">Odpri v brskalniku</string>
|
||||
<string name="share">Omogoči souporabo</string>
|
||||
<string name="download">Prejmi</string>
|
||||
<string name="search">Poišči</string>
|
||||
<string name="settings">Nastavitve</string>
|
||||
<string name="didYouMean">"Ste mislili vpisati: "</string>
|
||||
<string name="searchPage">"Stran iskanja: "</string>
|
||||
<string name="shareDialogTitle">Omogoči souporabo z:</string>
|
||||
<string name="chooseBrowser">Izbor brskalnika:</string>
|
||||
<string name="screenRotation">usmerjenost</string>
|
||||
<string name="title_activity_settings">Nastavitve</string>
|
||||
<string name="useExternalVideoPlayerTitle">Uporabi zunanji predvajalnik videa</string>
|
||||
<string name="useExternalAudioPlayerTitle">Uporabi zunanji predvajalnik zvoka</string>
|
||||
<string name="downloadLocation">Mapa za prejem</string>
|
||||
<string name="downloadLocationSummary">Pot do mape za prejem datotek.</string>
|
||||
<string name="downloadLocationDialogTitle">Vpis poti za prejem</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Privzeta ločljivost</string>
|
||||
<string name="playWithKodiTitle">Predvajaj s Kodi</string>
|
||||
<string name="koreNotFound">Programa Kore ni mogoče najti. Program omogoča predvajanje video posnetkov prek predstavnega središča Kodi.</string>
|
||||
<string name="did_you_mean">"Ste mislili vpisati: "</string>
|
||||
<string name="search_page">"Stran iskanja: "</string>
|
||||
<string name="share_dialog_title">Omogoči souporabo z:</string>
|
||||
<string name="choose_browser">Izbor brskalnika:</string>
|
||||
<string name="screen_rotation">usmerjenost</string>
|
||||
<string name="settings_activity_title">Nastavitve</string>
|
||||
<string name="use_external_video_player_title">Uporabi zunanji predvajalnik videa</string>
|
||||
<string name="use_external_audio_player_title">Uporabi zunanji predvajalnik zvoka</string>
|
||||
<string name="download_path_title">Mapa za prejem</string>
|
||||
<string name="download_path_summary">Pot do mape za prejem datotek</string>
|
||||
<string name="download_path_dialog_title">Vpis poti za prejem</string>
|
||||
<string name="default_resolution_title">Privzeta ločljivost</string>
|
||||
<string name="play_with_kodi_title">Predvajaj s Kodi</string>
|
||||
<string name="kore_not_found">Programa Kore ni mogoče najti. Ali želite program namestiti?</string>
|
||||
<string name="installeKore">Namesti program Kore</string>
|
||||
<string name="showPlayWithKodiTitle">Pokaži možnost \"Predvajaj s Kodi\"</string>
|
||||
<string name="defaultAudioFormatTitle">Privzet zapis zvoka</string>
|
||||
<string name="playAudio">Zvok</string>
|
||||
<string name="webMAudioDescription">WebM - prost zapis</string>
|
||||
<string name="m4aAudioDescription">m4a - višja kakovost posnetkov</string>
|
||||
<string name="downloadDialogTitle">Prejem</string>
|
||||
<string name="nextVideoTitle">Naslednji video</string>
|
||||
<string name="showNextAndSimilarTitle">Pokaži naslednji video in podobne posnetke</string>
|
||||
<string name="urlNotSupportedText">Zapis naslova URL ni podprt.</string>
|
||||
<string name="showSimilarVideosButtonText">Podobni posnetki</string>
|
||||
<string name="searchLanguageTitle">Prednostni jezik vsebine</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">Video in Zvok</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">Podrobnosti</string>
|
||||
<string name="itemThumbnailViewDescription">Sličica predogleda videa</string>
|
||||
<string name="detailThumbnailViewDescription">Sličica predogleda videa</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Sličica pošiljalnika</string>
|
||||
<string name="autoPlayThroughIntentTitle">Samodejno predvajaj prek vmesnika Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Začne samodejno predvajanje videa, ko je zagnan prek drugega programa.</string>
|
||||
<string name="showPlayWithKodiSummary">Pokaže možnost predvajanja videa preko predstavnega središča Kodi.</string>
|
||||
<string name="show_play_with_kodi_title">Pokaži možnost \"Predvajaj s Kodi\"</string>
|
||||
<string name="default_audio_format_title">Privzet zapis zvoka</string>
|
||||
<string name="play_audio">Zvok</string>
|
||||
<string name="webm_description">WebM — prost zapis</string>
|
||||
<string name="m4a_description">m4a — višja kakovost posnetkov</string>
|
||||
<string name="download_dialog_title">Prejem</string>
|
||||
<string name="next_video_title">Naslednji video</string>
|
||||
<string name="show_next_and_similar_title">Pokaži naslednji video in podobne posnetke</string>
|
||||
<string name="url_not_supported_toast">Zapis naslova URL ni podprt.</string>
|
||||
<string name="similar_videos_btn_text">Podobni posnetki</string>
|
||||
<string name="search_language_title">Prednostni jezik vsebine</string>
|
||||
<string name="settings_category_video_audio_title">Video in Zvok</string>
|
||||
<string name="list_thumbnail_view_description">Sličica predogleda videa</string>
|
||||
<string name="detail_thumbnail_view_description">Sličica predogleda videa</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Sličica pošiljalnika</string>
|
||||
<string name="autoplay_through_intent_title">Samodejno predvajaj prek vmesnika Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Začne samodejno predvajanje videa, ko je zagnan prek drugega programa.</string>
|
||||
<string name="show_play_with_kodi_summary">Pokaže možnost predvajanja videa preko predstavnega središča Kodi.</string>
|
||||
<string name="settingsCategoryEtcTitle">Drugo</string>
|
||||
|
||||
<string name="detailThumbsUpImgViewDescription">Všeč mi je</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Ni mi všeč</string>
|
||||
</resources>
|
||||
<string name="detail_likes_img_view_description">Všeč mi je</string>
|
||||
<string name="detail_dislikes_img_view_description">Ni mi všeč</string>
|
||||
<string name="background_player_name">Ozadnji predvajalnik NewPipe</string>
|
||||
<string name="loading">Nalaganje ...</string>
|
||||
<string name="background_player_playing_toast">Predvajanje v ozadju</string>
|
||||
<string name="play_btn_text">Predvajaj</string>
|
||||
|
||||
<string name="theme_title">Tema</string>
|
||||
<string name="dark_theme_title">Temna</string>
|
||||
<string name="light_theme_title">Svetla</string>
|
||||
|
||||
<string name="settings_category_appearance_title">Videz</string>
|
||||
<string name="settings_category_other_title">Drugo</string>
|
||||
<string name="network_error">Omrežna napaka</string>
|
||||
|
||||
<string name="use_tor_title">Uporabi Tor</string>
|
||||
<string name="use_tor_summary">Vsili prenos prejema preko sistema Tor za povečanje zasebnosti (pretakanje videa ni še podprto)</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,57 +1,69 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="viewCountText">%1$s приказа</string>
|
||||
<string name="uploadDateText">"Отпремљен "%1$s</string>
|
||||
<string name="noPlayerFound">Нема плејера токова. Можда желите да га инсталирате.</string>
|
||||
<string name="installStreamPlayer">Инсталирај</string>
|
||||
<string name="view_count_text">%1$s приказа</string>
|
||||
<string name="upload_date_text">"Отпремљен "%1$s</string>
|
||||
<string name="no_player_found">Нема плејера токова. Инсталирати ВЛЦ?</string>
|
||||
<string name="install">Инсталирај</string>
|
||||
<string name="cancel">Одустани</string>
|
||||
<string name="open_in_browser">Отвори у прегледачу</string>
|
||||
<string name="share">Дели</string>
|
||||
<string name="download">Преузми</string>
|
||||
<string name="search">Тражи</string>
|
||||
<string name="settings">Поставке</string>
|
||||
<string name="didYouMean">Да ли сте мислили: </string>
|
||||
<string name="searchPage">Страница претраге: </string>
|
||||
<string name="shareDialogTitle">Подели помоћу:</string>
|
||||
<string name="chooseBrowser">Отвори помоћу:</string>
|
||||
<string name="screenRotation">ротација</string>
|
||||
<string name="title_activity_settings">Поставке</string>
|
||||
<string name="did_you_mean">Да ли сте мислили: </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="useExternalPlayerTitle">Користи спољашњи плејер</string>
|
||||
<string name="downloadLocation">Одредиште преузимања</string>
|
||||
<string name="downloadLocationSummary">Путања за упис преузетих видеа.</string>
|
||||
<string name="downloadLocationDialogTitle">Унесите путању за преузимања</string>
|
||||
<string name="autoPlayThroughIntentTitle">Аутопуштање преко Интента</string>
|
||||
<string name="autoPlayThroughIntentSummary">Аутоматски почиње пушта видео по позиву из друге апликације.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Подразумевана резолуција</string>
|
||||
<string name="playWithKodiTitle">Пусти помоћу Кодија</string>
|
||||
<string name="koreNotFound">Апликација Кор није нађена. Кор (Kore) је потребан да бисте пуштали видее у Коди медија центру.</string>
|
||||
<string name="download_path_title">Одредиште преузимања</string>
|
||||
<string name="download_path_summary">Путања за упис преузетих видеа</string>
|
||||
<string name="download_path_dialog_title">Унесите путању за преузимања</string>
|
||||
<string name="autoplay_through_intent_title">Аутопуштање преко Интента</string>
|
||||
<string name="autoplay_through_intent_summary">Аутоматско пуштање видеа по позиву из друге апликације</string>
|
||||
<string name="default_resolution_title">Подразумевана резолуција</string>
|
||||
<string name="play_with_kodi_title">Пусти помоћу Кодија</string>
|
||||
<string name="kore_not_found">Апликација Кор (Kore) није нађена. Инсталирати Кор?</string>
|
||||
<string name="installeKore">Инсталирај Кор</string>
|
||||
<string name="showPlayWithKodiTitle">Прикажи „Пусти помоћу Кодија“</string>
|
||||
<string name="showPlayWithKodiSummary">Приказ опције за пуштање видеа у Коди медија центру.</string>
|
||||
<string name="playAudio">Аудио</string>
|
||||
<string name="defaultAudioFormatTitle">Подразумевани формат звука</string>
|
||||
<string name="webMAudioDescription">WebM - слободни формат</string>
|
||||
<string name="m4aAudioDescription">m4a - бољи квалитет</string>
|
||||
<string name="downloadDialogTitle">Преузми</string>
|
||||
<string name="show_play_with_kodi_title">Прикажи „Пусти помоћу Кодија“</string>
|
||||
<string name="show_play_with_kodi_summary">Приказ опције за пуштање видеа у Коди медија центру</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="download_dialog_title">Преузми</string>
|
||||
<string-array name="downloadOptions">
|
||||
<item>Видео</item>
|
||||
<item>Аудио</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">Следећи видео</string>
|
||||
<string name="urlNotSupportedText">УРЛ није подржан.</string>
|
||||
<string name="showNextAndSimilarTitle">Прикажи следећи и слични видео</string>
|
||||
<string name="showSimilarVideosButtonText">Слични видео</string>
|
||||
<string name="searchLanguageTitle">Пожељни језик садржаја</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">ВИДЕО И АУДИО</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">ПОДАЦИ</string>
|
||||
<string name="settingsCategoryEtcTitle">ОСТАЛО</string>
|
||||
<string name="itemThumbnailViewDescription">Сличица видео прегледа</string>
|
||||
<string name="detailThumbnailViewDescription">Сличица видео прегледа</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Сличица отпремаоца</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Несвиђања</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Свиђања</string>
|
||||
<string name="useExternalVideoPlayerTitle">Користи спољашњи видео плејер</string>
|
||||
<string name="useExternalAudioPlayerTitle">Користи спољашњи аудио плејер</string>
|
||||
<string name="backgroundPlayerStartPlayingToast">Пуштам у позадини</string>
|
||||
<string name="next_video_title">Следећи видео</string>
|
||||
<string name="url_not_supported_toast">УРЛ није подржан</string>
|
||||
<string name="show_next_and_similar_title">Прикажи следећи и слични видео</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_other_title">Остало</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_dislikes_img_view_description">Несвиђања</string>
|
||||
<string name="detail_likes_img_view_description">Свиђања</string>
|
||||
<string name="use_external_video_player_title">Користи спољашњи видео плејер</string>
|
||||
<string name="use_external_audio_player_title">Користи спољашњи аудио плејер</string>
|
||||
<string name="background_player_playing_toast">Пуштам у позадини</string>
|
||||
|
||||
<string name="background_player_name">Позадински плејер за Јутјуб цев</string>
|
||||
<string name="loading">Учитавам</string>
|
||||
<string name="play_btn_text">Пусти</string>
|
||||
|
||||
<string name="use_tor_title">Користи Тор</string>
|
||||
<string name="use_tor_summary">Принудно преусмерење саобраћаја кроз Тор за доданту приватност (токови још нису подржани)</string>
|
||||
<string name="theme_title">Тема</string>
|
||||
<string name="dark_theme_title">Тамна</string>
|
||||
<string name="light_theme_title">Светла</string>
|
||||
|
||||
<string name="settings_category_appearance_title">Изглед</string>
|
||||
<string name="network_error">Грешка мреже</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light">
|
||||
<item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item>
|
||||
<item name="actionBarStyle">@style/NewPipeActionbarTheme</item>
|
||||
<item name="android:colorPrimary">@color/primaryColorYoutube</item>
|
||||
<item name="android:colorPrimaryDark">@color/primaryColorDarkYoutube</item>
|
||||
<item name="colorAccent">@color/accentColorYoutube</item>
|
||||
<item name="android:colorAccent">@color/accentColorYoutube</item>
|
||||
<item name="android:windowBackground">@color/background_gray</item>
|
||||
<item name="android:colorPrimary">@color/light_youtube_primary_color</item>
|
||||
<item name="android:colorPrimaryDark">@color/light_youtube_dark_color</item>
|
||||
<item name="colorAccent">@color/light_youtube_accent_color</item>
|
||||
<item name="android:colorAccent">@color/light_youtube_accent_color</item>
|
||||
<item name="android:windowBackground">@color/light_background_color</item>
|
||||
</style>
|
||||
|
||||
<style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" >
|
||||
<item name="android:displayOptions">showHome</item>
|
||||
<item name="displayOptions">showHome</item>
|
||||
<item name="android:background">@color/primaryColorYoutube</item>
|
||||
<item name="background">@color/primaryColorYoutube</item>
|
||||
<item name="android:background">@color/light_youtube_primary_color</item>
|
||||
<item name="background">@color/light_youtube_primary_color</item>
|
||||
</style>
|
||||
|
||||
<style name="VideoPlayerTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
@@ -23,15 +23,15 @@
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
<item name="android:actionBarStyle">@style/VideoPlayerActionBarTheme</item>
|
||||
<item name="actionBarStyle">@style/VideoPlayerActionBarTheme</item>
|
||||
<item name="colorAccent">@color/primaryColorYoutube</item>
|
||||
<item name="android:colorAccent">@color/primaryColorYoutube</item>
|
||||
<item name="colorAccent">@color/light_youtube_primary_color</item>
|
||||
<item name="android:colorAccent">@color/light_youtube_primary_color</item>
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="VideoPlayerActionBarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse" >
|
||||
<item name="android:displayOptions">showHome</item>
|
||||
<item name="displayOptions">showHome</item>
|
||||
<item name="android:background">@color/dark_overlay</item>
|
||||
<item name="background">@color/dark_overlay</item>
|
||||
<item name="android:background">@color/video_overlay_color</item>
|
||||
<item name="background">@color/video_overlay_color</item>
|
||||
</style>
|
||||
</resources>
|
||||
60
app/src/main/res/values-zh-rCN/strings.xml
Normal file
60
app/src/main/res/values-zh-rCN/strings.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?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">"您是不是要找: "</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_summary">存放已下载视频的路径</string>
|
||||
<string name="download_path_dialog_title">输入下载路径</string>
|
||||
<string name="autoplay_through_intent_title">刻意自动播放</string>
|
||||
<string name="autoplay_through_intent_summary">当另一个程式发出要求时自动播放视频</string>
|
||||
<string name="default_resolution_title">默认分辨率</string>
|
||||
<string name="play_with_kodi_title">用 Kodi 播放</string>
|
||||
<string name="kore_not_found">找不到 Kore 应用程式,您要安装 Kore 吗?</string>
|
||||
<string name="show_play_with_kodi_title">显示 “用 Kodi 播放” 的选项</string>
|
||||
<string name="show_play_with_kodi_summary">显示以 Kodi 媒体中心播放视频的选项</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">不支援此网址</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="network_error">网络错误</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="use_tor_title">使用 Tor</string>
|
||||
<string name="use_tor_summary">强迫下载流量通过 Tor 加强隐私(暂时不支援串流视频)</string>
|
||||
</resources>
|
||||
60
app/src/main/res/values-zh-rHK/strings.xml
Normal file
60
app/src/main/res/values-zh-rHK/strings.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="install">安裝</string>
|
||||
<string name="cancel">取消</string>
|
||||
<string name="upload_date_text">於 %1$s 發佈</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">"您是不是要查: "</string>
|
||||
<string name="search_page">"搜尋頁面: "</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_summary">存放已下載影片的路徑</string>
|
||||
<string name="download_path_dialog_title">輸入下載路徑</string>
|
||||
<string name="autoplay_through_intent_title">刻意自動播放</string>
|
||||
<string name="autoplay_through_intent_summary">當另一個程式發出要求時自動播放影片</string>
|
||||
<string name="default_resolution_title">預設解析度</string>
|
||||
<string name="play_with_kodi_title">用 Kodi 播放</string>
|
||||
<string name="kore_not_found">找不到 Kore 應用程式,您要安裝 Kore 嗎?</string>
|
||||
<string name="show_play_with_kodi_title">顯示「用 Kodi 播放」的選項</string>
|
||||
<string name="show_play_with_kodi_summary">顯示以 Kodi 媒體中心播放影片的選項</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">不支援此網址</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="network_error">網絡故障</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="use_tor_title">使用 Tor</string>
|
||||
<string name="use_tor_summary">強迫下載流量通過 Tor 加強私隱 (暫時不支援串流影片)</string>
|
||||
<string name="background_player_name">NewPipe 背景播放器</string>
|
||||
<string name="view_count_text">觀看次數:%1$s</string>
|
||||
<string name="no_player_found">找不到任何串流播放器,您要安裝 VLC 嗎?</string>
|
||||
<string name="open_in_browser">在瀏覽器開啟</string>
|
||||
<string name="share_dialog_title">分享影片:</string>
|
||||
</resources>
|
||||
60
app/src/main/res/values-zh-rTW/strings.xml
Normal file
60
app/src/main/res/values-zh-rTW/strings.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?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">"您是不是要查: "</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_summary">存放已下載影片的路徑</string>
|
||||
<string name="download_path_dialog_title">輸入下載路徑</string>
|
||||
<string name="autoplay_through_intent_title">刻意自動播放</string>
|
||||
<string name="autoplay_through_intent_summary">當另一個程式發出要求時自動播放影片</string>
|
||||
<string name="default_resolution_title">預設解析度</string>
|
||||
<string name="play_with_kodi_title">用 Kodi 播放</string>
|
||||
<string name="show_play_with_kodi_summary">顯示以 Kodi 媒體中心播放影片的選項</string>
|
||||
<string name="play_audio">聲音</string>
|
||||
<string name="kore_not_found">找不到 Kore 應用程式,您要安裝 Kore 嗎?</string>
|
||||
<string name="show_play_with_kodi_title">顯示「用 Kodi 播放」的選項</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">不支援此網址</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="network_error">網絡錯誤</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="use_tor_title">使用 Tor</string>
|
||||
<string name="use_tor_summary">強迫下載流量通過 Tor 以加強隱私 (暫時不支援串流影片)</string>
|
||||
</resources>
|
||||
@@ -1,11 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="primaryColorYoutube">#cd322e</color>
|
||||
<color name="primaryColorDarkYoutube">#bc211d</color>
|
||||
<color name="accentColorYoutube">#000</color>
|
||||
<color name="durationBackground">#a000</color>
|
||||
<color name="durationText">#efff</color>
|
||||
<color name="dark_overlay">#6000</color>
|
||||
<color name="background_gray">#EEEEEE</color>
|
||||
<!-- Light Theme -->
|
||||
<color name="light_background_color">#EEEEEE</color>
|
||||
<color name="light_youtube_primary_color">#CD322E</color>
|
||||
<color name="light_youtube_dark_color">#BC211D</color>
|
||||
<color name="light_youtube_accent_color">#000000</color>
|
||||
|
||||
<!-- Dark Theme -->
|
||||
<color name="dark_background_color">#222222</color>
|
||||
<color name="dark_youtube_primary_color">#CD322E</color>
|
||||
<color name="dark_youtube_dark_color">#BC211D</color>
|
||||
<color name="dark_youtube_accent_color">#FFFFFF</color>
|
||||
|
||||
<!-- Miscellaneous -->
|
||||
<color name="duration_dackground_color">#AA000000</color>
|
||||
<color name="duration_text_color">#EEFFFFFF</color>
|
||||
<color name="video_overlay_color">#66000000</color>
|
||||
<color name="background_notification_color">#323232</color>
|
||||
</resources>
|
||||
@@ -1,38 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Categories -->
|
||||
<string name="settingsCategoryVideoAudio">settings_categoery_video_audio</string>
|
||||
<string name="settingsCategoryVideoInfo">settings_category_video_info</string>
|
||||
<string name="settingsCategoryEtc">settings_category_etc</string>
|
||||
<string name="settings_category_video_audio">settings_category_video_audio</string>
|
||||
<string name="settings_category_appearance">settings_category_appearance</string>
|
||||
<string name="settings_category_other">settings_category_other</string>
|
||||
<!-- Key values -->
|
||||
<string name="downloadPathPreference">download_path_preference</string>
|
||||
<string name="useExternalVideoPlayer">use_external_video_player</string>
|
||||
<string name="useExternalAudioPlayer">use_external_audio_player</string>
|
||||
<string name="autoPlayThroughIntent">autoplay_through_intent</string>
|
||||
<string name="defaultResolutionPreference">default_resolution_preference</string>
|
||||
<string-array name="resolutionList">
|
||||
<string name="download_path_key">download_path</string>
|
||||
<string name="download_path_audio_key">download_path_audio</string>
|
||||
<string name="use_external_video_player_key">use_external_video_player</string>
|
||||
<string name="use_external_audio_player_key">use_external_audio_player</string>
|
||||
<string name="autoplay_through_intent_key">autoplay_through_intent</string>
|
||||
|
||||
<string name="default_resolution_key">default_resolution_preference</string>
|
||||
<string name="default_resolution_value">360p</string>
|
||||
<string-array name="resolution_list">
|
||||
<item>720p</item>
|
||||
<item>360p</item>
|
||||
<item>240p</item>
|
||||
<item>144p</item>
|
||||
</string-array>
|
||||
<string name="defaultResolutionListItem">360p</string>
|
||||
<string name="showPlayWithKodiPreference">show_play_with_kodi_preference</string>
|
||||
<string name="defaultAudioFormatPreference">default_audio_format</string>
|
||||
<string-array name="audioFormatDescriptionList">
|
||||
<item>@string/webMAudioDescription</item>
|
||||
<item>@string/m4aAudioDescription</item>
|
||||
|
||||
<string name="show_play_with_kodi_key">show_play_with_kodi</string>
|
||||
|
||||
<string name="theme_key">theme</string>
|
||||
<string name="default_theme_value">0</string>
|
||||
<string-array name="theme_description_list">
|
||||
<item>@string/dark_theme_title</item>
|
||||
<item>@string/light_theme_title</item>
|
||||
</string-array>
|
||||
<string-array name="audioFormatList">
|
||||
<string-array name="theme_list">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
</string-array>
|
||||
|
||||
<string name="default_audio_format_key">default_audio_format</string>
|
||||
<string name="default_audio_format_value">m4a</string>
|
||||
<string-array name="audio_format_description_list">
|
||||
<item>@string/webm_description</item>
|
||||
<item>@string/m4a_description</item>
|
||||
</string-array>
|
||||
<string-array name="audio_format_list">
|
||||
<item>webm</item>
|
||||
<item>m4a</item>
|
||||
</string-array>
|
||||
<string name="defaultAudioFormat">m4a</string>
|
||||
<string name="showNextVideo">show_next_video</string>
|
||||
<string name="searchLanguage">search_language</string>
|
||||
|
||||
<string name="show_next_video_key">show_next_video</string>
|
||||
<string name="default_language_value">en</string>
|
||||
<string name="search_language_key">search_language</string>
|
||||
<!-- TODO: scrape these programmatically, then store in a local cache -->
|
||||
<!-- alternatively, load these from some local android data store -->
|
||||
<string-array name='languageCodes'>
|
||||
<string-array name="language_codes">
|
||||
<item>af</item>
|
||||
<item>az</item>
|
||||
<item>id</item>
|
||||
@@ -111,7 +128,7 @@
|
||||
<item>ja</item>
|
||||
<item>ko</item>
|
||||
</string-array>
|
||||
<string-array name='languageNames'>
|
||||
<string-array name="language_names">
|
||||
<item>Afrikaans</item>
|
||||
<item>Azərbaycan</item>
|
||||
<item>Bahasa Indonesia</item>
|
||||
@@ -190,4 +207,5 @@
|
||||
<item>日本語</item>
|
||||
<item>한국어</item>
|
||||
</string-array>
|
||||
<string name="use_tor_key">use_tor</string>
|
||||
</resources>
|
||||
@@ -3,64 +3,79 @@
|
||||
<string name="app_name" translatable="false">NewPipe</string>
|
||||
<string name="background_player_name">NewPipe Background Player</string>
|
||||
<string name="title_videoitem_detail" translatable="false">NewPipe</string>
|
||||
<string name="viewCountText">%1$s views</string>
|
||||
<string name="uploadDateText">Uploaded on %1$s</string>
|
||||
<string name="noPlayerFound">No stream player found. You may want to install one.</string>
|
||||
<string name="installStreamPlayer">Install</string>
|
||||
<string name="view_count_text">%1$s views</string>
|
||||
<string name="upload_date_text">Uploaded on %1$s</string>
|
||||
<string name="no_player_found">No stream player found. Install VLC?</string>
|
||||
<string name="install">Install</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="fdroidVLCurl" translatable="false">https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc</string>
|
||||
<string name="fdroid_vlc_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc</string>
|
||||
<string name="open_in_browser">Open in browser</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="loading">Loading</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="search">Search</string>
|
||||
<string name="settings">Settings</string>
|
||||
<string name="didYouMean">Did you mean: </string>
|
||||
<string name="searchPage">Search page: </string>
|
||||
<string name="shareDialogTitle">Share with:</string>
|
||||
<string name="chooseBrowser">Choose browser:</string>
|
||||
<string name="screenRotation">rotation</string>
|
||||
<string name="title_activity_settings">Settings</string>
|
||||
<string name="useExternalVideoPlayerTitle">Use external video player</string>
|
||||
<string name="useExternalAudioPlayerTitle">Use external audio player</string>
|
||||
<string name="downloadLocation">Download location</string>
|
||||
<string name="downloadLocationSummary">Path to store downloaded videos in.</string>
|
||||
<string name="downloadLocationDialogTitle">Enter download path</string>
|
||||
<string name="autoPlayThroughIntentTitle">Autoplay through Intent</string>
|
||||
<string name="autoPlayThroughIntentSummary">Automatically starts a video when it was called from another app.</string>
|
||||
<string name="defaultResolutionPreferenceTitle">Default Resolution</string>
|
||||
<string name="playWithKodiTitle">Play with Kodi</string>
|
||||
<string name="koreNotFound">Kore app not found. Kore is needed to play videos with Kodi media center.</string>
|
||||
<string name="installeKore">Install Kore</string>
|
||||
<string name="fdroidKoreUrl" translatable="false">https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore</string>
|
||||
<string name="showPlayWithKodiTitle">Show \"Play with Kodi\" option</string>
|
||||
<string name="showPlayWithKodiSummary">Displays an option to play a video via Kodi media center.</string>
|
||||
<string name="playAudio">Audio</string>
|
||||
<string name="defaultAudioFormatTitle">Default audio format</string>
|
||||
<string name="webMAudioDescription">WebM - free format</string>
|
||||
<string name="m4aAudioDescription">m4a - better quality</string>
|
||||
<string name="downloadDialogTitle">Download</string>
|
||||
<string-array name="downloadOptions">
|
||||
<string name="did_you_mean">Did you mean: </string>
|
||||
<string name="search_page">Search page: </string>
|
||||
<string name="share_dialog_title">Share with:</string>
|
||||
<string name="choose_browser">Choose browser:</string>
|
||||
<string name="screen_rotation">rotation</string>
|
||||
<string name="settings_activity_title">Settings</string>
|
||||
<string name="use_external_video_player_title">Use external video player</string>
|
||||
<string name="use_external_audio_player_title">Use external audio player</string>
|
||||
|
||||
<string name="download_path_title">Download path video</string>
|
||||
<string name="download_path_summary">Path to store downloaded videos in</string>
|
||||
<string name="download_path_dialog_title">Enter download path for videos</string>
|
||||
|
||||
<string name="download_path_audio_title">Download path audio</string>
|
||||
<string name="download_path_audio_summary">Path to store downloaded audio in</string>
|
||||
<string name="download_path_audio_dialog_title">Enter download path for audios</string>
|
||||
|
||||
<string name="autoplay_through_intent_title">Autoplay through Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Automatically play a video when it\'s called from another app</string>
|
||||
<string name="default_resolution_title">Default Resolution</string>
|
||||
<string name="play_with_kodi_title">Play with Kodi</string>
|
||||
<string name="kore_not_found">Kore app not found. Install Kore?</string>
|
||||
<string name="fdroid_kore_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore</string>
|
||||
<string name="show_play_with_kodi_title">Show \"Play with Kodi\" option</string>
|
||||
<string name="show_play_with_kodi_summary">Display an option to play a video via Kodi media center</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Default audio format</string>
|
||||
<string name="webm_description">WebM — free format</string>
|
||||
<string name="m4a_description">m4a — better quality</string>
|
||||
<string name="theme_title">Theme</string>
|
||||
<string name="dark_theme_title">Dark</string>
|
||||
<string name="light_theme_title">Light</string>
|
||||
|
||||
<string name="download_dialog_title">Download</string>
|
||||
<string-array name="download_options">
|
||||
<item>Video</item>
|
||||
<item>Audio</item>
|
||||
</string-array>
|
||||
<string name="nextVideoTitle">Next video</string>
|
||||
<string name="showNextAndSimilarTitle">Show next and similar videos</string>
|
||||
<string name="urlNotSupportedText">URL not supported.</string>
|
||||
<string name="showSimilarVideosButtonText">Similar videos</string>
|
||||
<string name="searchLanguageTitle">Preferable content language</string>
|
||||
<string name="settingsCategoryVideoAudioTitle">VIDEO & AUDIO</string>
|
||||
<string name="settingsCategoryVideoInfoTittle">INFO</string>
|
||||
<string name="settingsCategoryEtcTitle">ETC</string>
|
||||
<string name="backgroundPlayerTickerText" translatable="false">%1$s - NewPipe</string>
|
||||
<string name="backgroundPlayerStartPlayingToast">Playing in background</string>
|
||||
<string name="c3sUrl" translatable="false">https://www.c3s.cc/</string>
|
||||
<string name="play">Play</string>
|
||||
<string name="next_video_title">Next video</string>
|
||||
<string name="show_next_and_similar_title">Show next and similar videos</string>
|
||||
<string name="url_not_supported_toast">URL not supported</string>
|
||||
<string name="similar_videos_btn_text">Similar videos</string>
|
||||
<string name="search_language_title">Preferable content language</string>
|
||||
<string name="settings_category_video_audio_title">Video & Audio</string>
|
||||
<string name="settings_category_appearance_title">Appearance</string>
|
||||
<string name="settings_category_other_title">Other</string>
|
||||
<string name="background_player_time_text" translatable="false">%1$s - NewPipe</string>
|
||||
<string name="background_player_playing_toast">Playing in background</string>
|
||||
<string name="c3s_url" translatable="false">https://www.c3s.cc/</string>
|
||||
<string name="play_btn_text">Play</string>
|
||||
<string name="network_error">Network error</string>
|
||||
|
||||
<!-- Content descriptions (for better accessibility) -->
|
||||
<string name="itemThumbnailViewDescription">Video preview thumbnail</string>
|
||||
<string name="detailThumbnailViewDescription">Video preview thumbnail</string>
|
||||
<string name="detailUploaderThumbnailViewDescription">Uploader thumbnail</string>
|
||||
<string name="detailThumbsDownImgViewDescription">Dislikes</string>
|
||||
<string name="detailThumbsUpImgViewDescription">Likes</string>
|
||||
<string name="list_thumbnail_view_description">Video preview thumbnail</string>
|
||||
<string name="detail_thumbnail_view_description">Video preview thumbnail</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Uploader\'s userpic thumbnail</string>
|
||||
<string name="detail_likes_img_view_description">Likes</string>
|
||||
<string name="detail_dislikes_img_view_description">Dislikes</string>
|
||||
<string name="use_tor_title">Use Tor</string>
|
||||
<string name="use_tor_summary">Force download traffic through Tor for increased privacy (streaming videos not yet supported)</string>
|
||||
|
||||
<string name="err_dir_create">Cannot create download directory \'%1$s\'</string>
|
||||
<string name="info_dir_created">Created download directory \'%1$s\'</string>
|
||||
</resources>
|
||||
|
||||
@@ -3,17 +3,17 @@
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light">
|
||||
<item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item>
|
||||
<item name="actionBarStyle">@style/NewPipeActionbarTheme</item>
|
||||
<item name="colorPrimary">@color/primaryColorYoutube</item>
|
||||
<item name="colorPrimaryDark">@color/primaryColorDarkYoutube</item>
|
||||
<item name="colorAccent">@color/accentColorYoutube</item>
|
||||
<item name="android:windowBackground">@color/background_gray</item>
|
||||
<item name="colorPrimary">@color/light_youtube_primary_color</item>
|
||||
<item name="colorPrimaryDark">@color/light_youtube_dark_color</item>
|
||||
<item name="colorAccent">@color/light_youtube_accent_color</item>
|
||||
<item name="android:windowBackground">@color/light_background_color</item>
|
||||
</style>
|
||||
|
||||
<style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" >
|
||||
<item name="android:displayOptions">showHome</item>
|
||||
<item name="displayOptions">showHome</item>
|
||||
<item name="android:background">@color/primaryColorYoutube</item>
|
||||
<item name="background">@color/primaryColorYoutube</item>
|
||||
<item name="android:background">@color/light_youtube_primary_color</item>
|
||||
<item name="background">@color/light_youtube_primary_color</item>
|
||||
</style>
|
||||
|
||||
<style name="VideoPlayerTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
@@ -22,14 +22,14 @@
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
<item name="android:actionBarStyle">@style/VideoPlayerActionBarTheme</item>
|
||||
<item name="actionBarStyle">@style/VideoPlayerActionBarTheme</item>
|
||||
<item name="colorAccent">@color/primaryColorYoutube</item>
|
||||
<item name="colorAccent">@color/light_youtube_primary_color</item>
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="VideoPlayerActionBarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse" >
|
||||
<item name="android:displayOptions">showHome</item>
|
||||
<item name="displayOptions">showHome</item>
|
||||
<item name="android:background">@color/dark_overlay</item>
|
||||
<item name="background">@color/dark_overlay</item>
|
||||
<item name="android:background">@color/video_overlay_color</item>
|
||||
<item name="background">@color/video_overlay_color</item>
|
||||
</style>
|
||||
</resources>
|
||||
103
app/src/main/res/xml/settings.xml
Normal file
103
app/src/main/res/xml/settings.xml
Normal file
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/settings_activity_title"
|
||||
android:key="general_preferences">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="@string/settings_category_video_audio"
|
||||
android:title="@string/settings_category_video_audio_title"
|
||||
android:textAllCaps="true">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/use_external_video_player_key"
|
||||
android:title="@string/use_external_video_player_title"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/use_external_audio_player_key"
|
||||
android:title="@string/use_external_audio_player_title"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/default_resolution_key"
|
||||
android:title="@string/default_resolution_title"
|
||||
android:entries="@array/resolution_list"
|
||||
android:entryValues="@array/resolution_list"
|
||||
android:defaultValue="@string/default_resolution_value"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/default_audio_format_key"
|
||||
android:title="@string/default_audio_format_title"
|
||||
android:summary="%s"
|
||||
android:entries="@array/audio_format_description_list"
|
||||
android:entryValues="@array/audio_format_list"
|
||||
android:defaultValue="@string/default_audio_format_value"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="@string/settings_category_appearance"
|
||||
android:title="@string/settings_category_appearance_title"
|
||||
android:textAllCaps="true">
|
||||
|
||||
<!-- Not yet working.
|
||||
<ListPreference
|
||||
android:key="@string/theme_key"
|
||||
android:title="@string/theme_title"
|
||||
android:summary="%s"
|
||||
android:entries="@array/theme_description_list"
|
||||
android:entryValues="@array/theme_list"
|
||||
android:defaultValue="@string/default_theme_value"/>
|
||||
-->
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/show_play_with_kodi_key"
|
||||
android:title="@string/show_play_with_kodi_title"
|
||||
android:summary="@string/show_play_with_kodi_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/show_next_video_key"
|
||||
android:title="@string/show_next_and_similar_title"
|
||||
android:defaultValue="true" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="@string/settings_category_other"
|
||||
android:title="@string/settings_category_other_title"
|
||||
android:textAllCaps="true">
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/search_language_key"
|
||||
android:title="@string/search_language_title"
|
||||
android:summary="%s"
|
||||
android:entries="@array/language_names"
|
||||
android:entryValues="@array/language_codes"
|
||||
android:defaultValue="@string/default_language_value" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="@string/download_path_key"
|
||||
android:title="@string/download_path_title"
|
||||
android:summary="@string/download_path_summary"
|
||||
android:dialogTitle="@string/download_path_dialog_title" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="@string/download_path_audio_key"
|
||||
android:title="@string/download_path_audio_title"
|
||||
android:summary="@string/download_path_audio_summary"
|
||||
android:dialogTitle="@string/download_path_audio_dialog_title" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/autoplay_through_intent_key"
|
||||
android:title="@string/autoplay_through_intent_title"
|
||||
android:summary="@string/autoplay_through_intent_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/use_tor_key"
|
||||
android:title="@string/use_tor_title"
|
||||
android:summary="@string/use_tor_summary"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/title_activity_settings"
|
||||
android:key="general_preferences">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="@string/settingsCategoryVideoAudio"
|
||||
android:title="@string/settingsCategoryVideoAudioTitle">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/useExternalVideoPlayer"
|
||||
android:title="@string/useExternalVideoPlayerTitle"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/useExternalAudioPlayer"
|
||||
android:title="@string/useExternalAudioPlayerTitle"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/defaultResolutionPreference"
|
||||
android:title="@string/defaultResolutionPreferenceTitle"
|
||||
android:entries="@array/resolutionList"
|
||||
android:entryValues="@array/resolutionList"
|
||||
android:defaultValue="@string/defaultResolutionListItem"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/defaultAudioFormatPreference"
|
||||
android:title="@string/defaultAudioFormatTitle"
|
||||
android:entries="@array/audioFormatDescriptionList"
|
||||
android:entryValues="@array/audioFormatList"
|
||||
android:defaultValue="@string/defaultAudioFormat"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="@string/settingsCategoryVideoInfo"
|
||||
android:title="@string/settingsCategoryVideoInfoTittle">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/showPlayWithKodiPreference"
|
||||
android:title="@string/showPlayWithKodiTitle"
|
||||
android:summary="@string/showPlayWithKodiSummary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/searchLanguage"
|
||||
android:title="@string/searchLanguageTitle"
|
||||
android:entries="@array/languageNames"
|
||||
android:entryValues="@array/languageCodes"
|
||||
android:defaultValue="en" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/showNextVideo"
|
||||
android:title="@string/showNextAndSimilarTitle"
|
||||
android:defaultValue="true" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="@string/settingsCategoryEtc"
|
||||
android:title="@string/settingsCategoryEtcTitle">
|
||||
|
||||
<EditTextPreference
|
||||
android:key="@string/downloadPathPreference"
|
||||
android:title="@string/downloadLocation"
|
||||
android:summary="@string/downloadLocationSummary"
|
||||
android:dialogTitle="@string/downloadLocationDialogTitle" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/autoPlayThroughIntent"
|
||||
android:title="@string/autoPlayThroughIntentTitle"
|
||||
android:summary="@string/autoPlayThroughIntentSummary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user