1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-01-14 02:32:40 +00:00

Compare commits

...

81 Commits

Author SHA1 Message Date
Christian Schabesberger
aa06e3490d Merge branch 'master' of github.com:theScrabi/NewPipe 2016-01-08 22:22:55 +01:00
Christian Schabesberger
ece889b36b moved on to 0.7.3 2016-01-08 22:22:39 +01:00
Christian Schabesberger
9848f19ce6 Merge github.com:k3b/NewPipe into k3bMaster 2016-01-08 22:04:42 +01:00
Weblate
e59b087057 Merge remote-tracking branch 'origin/master' 2016-01-08 22:00:27 +01:00
Greg
5b451d1ac7 Translated using Weblate (Spanish)
Currently translated at 64.2% (36 of 56 strings)
2016-01-08 22:00:27 +01:00
Greg
f050c05b3c Translated using Weblate (Russian)
Currently translated at 98.2% (55 of 56 strings)
2016-01-08 22:00:27 +01:00
Sérgio Marques
06b8edefbf Translated using Weblate (Portuguese)
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 22:00:26 +01:00
Greg
f3a2a28398 Translated using Weblate (German)
Currently translated at 91.0% (51 of 56 strings)
2016-01-08 22:00:26 +01:00
Greg
9b0a1fc2ec Translated using Weblate (English)
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 22:00:26 +01:00
riotism
c87ab234eb Translated using Weblate (Chinese (Taiwan))
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 22:00:25 +01:00
riotism
68468756a8 Translated using Weblate (Chinese (Hong Kong))
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 22:00:24 +01:00
riotism
9016df0195 Translated using Weblate (Chinese (China))
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 22:00:24 +01:00
Christian Schabesberger
7acece9705 Merge pull request #145 from 42SK/master
Fixed #143
2016-01-08 22:00:21 +01:00
red
d1896c23c0 Translated using Weblate (French)
Currently translated at 100.0% (56 of 56 strings)
2016-01-08 14:04:29 +01:00
riotism
dae19f03e0 Translated using Weblate (Chinese (China))
Currently translated at 100.0% (56 of 56 strings)
2016-01-07 23:07:42 +01:00
riotism
9dafccf0f7 Translated using Weblate (Chinese (China))
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-01-07 22:46:44 +01:00
riotism
5f270c41ae Translated using Weblate (Chinese (Taiwan))
Currently translated at 100.0% (56 of 56 strings)
2016-01-07 22:46:12 +01:00
riotism
f9f80e9003 Translated using Weblate (Chinese (Taiwan))
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-01-07 22:08:02 +01:00
riotism
c5063d4269 Translated using Weblate (Chinese (Hong Kong))
Currently translated at 100.0% (56 of 56 strings)
2016-01-07 22:06:57 +01:00
riotism
ccbe18ec1c Translated using Weblate (Chinese (Hong Kong))
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-01-07 21:21:58 +01:00
k3b
321a8a8b25 Translated using Weblate (German)
Currently translated at 91.0% (51 of 56 strings)
2016-01-07 20:20:57 +01:00
k3b
77a9560376 #143 #44 #42 #22: Fixed some download problems with invalid directories or filenames. Added user Feedback. Different settings for audio and video download dir. 2016-01-07 14:32:16 +01:00
k3b
058a039a82 #143 #44 #42 #22: Fixed some download problems with invalid directories or filenames. Added user Feedback. Different settings for audio and video download dir. 2016-01-07 14:22:55 +01:00
naofum
7c744703e4 Translated using Weblate (Japanese)
Currently translated at 100.0% (56 of 56 strings)
2016-01-07 14:15:56 +01:00
42SK
a934cbb085 Fixed #143 2016-01-07 13:28:17 +01:00
Sérgio Marques
cf4158c0d0 Translated using Weblate (Portuguese)
Currently translated at 100.0% (56 of 56 strings)
2016-01-07 00:48:13 +01:00
M2ck
dc56eab9b6 Translated using Weblate (French)
Currently translated at 100.0% (56 of 56 strings)
2016-01-06 16:47:54 +01:00
Weblate
37d1f59132 Merge remote-tracking branch 'origin/master' 2016-01-06 15:13:03 +01:00
Christian Schabesberger
ab0ce55411 merge unitTesting 2016-01-06 15:13:55 +01:00
Matej U
c1d66596d1 Translated using Weblate (Slovenian)
Currently translated at 100.0% (56 of 56 strings)
2016-01-06 15:13:03 +01:00
Mladen Pejaković
cbfccdf0d3 Translated using Weblate (Serbian)
Currently translated at 100.0% (56 of 56 strings)
2016-01-06 15:13:02 +01:00
Christian Schabesberger
9362037177 remove theme option since it's not yet working 2016-01-06 15:00:33 +01:00
Matej U
e25c93bae2 Translated using Weblate (Slovenian)
Currently translated at 100.0% (56 of 56 strings)
2016-01-06 09:28:10 +01:00
Mladen Pejaković
367c434010 Translated using Weblate (Serbian)
Currently translated at 100.0% (56 of 56 strings)
2016-01-05 23:54:30 +01:00
chschtsch
02d8463e15 rename resource 2016-01-06 00:02:10 +03:00
Christian Schabesberger
9d5a1d5c43 removed unnececeary comment 2016-01-05 21:54:40 +01:00
Christian Schabesberger
c8d94f541f resolved merge conflict 2016-01-05 21:50:25 +01:00
Christian Schabesberger
27d06eaa6b removed hardcoded string, and add licece to some files. 2016-01-05 21:41:55 +01:00
Christian Schabesberger
7f32857e00 buxfix 2016-01-05 21:23:16 +01:00
chschtsch
2f060f0f52 merging with eb0df2b 2016-01-05 23:16:50 +03:00
chschtsch
f89d405226 merging with eb0df2b 2016-01-05 23:13:52 +03:00
chschtsch
fd4459e570 Merge branch 'master' of github.com:theScrabi/NewPipe 2016-01-05 23:12:22 +03:00
Christian Schabesberger
eb0df2b101 set download path on startup 2016-01-05 21:11:15 +01:00
chschtsch
6c178cfb7e add back missing like button margin 2016-01-05 23:09:15 +03:00
chschtsch
8ced68430d update resources names to match naming convention & cleanup & start working on themes 2016-01-05 22:56:40 +03:00
Aitor Beriain
0aade598ff Translated using Weblate (Basque)
Currently translated at 100.0% (53 of 53 strings)
2016-01-04 20:02:01 +01:00
Aitor Beriain
95949fd1ab Translated using Weblate (Basque)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-01-04 19:35:11 +01:00
naofum
1a56382112 Translated using Weblate (Japanese)
Currently translated at 100.0% (53 of 53 strings)
2016-01-04 11:51:32 +01:00
Adam Howard
d610e4b19b minor code tweaks to BackgroundPlayer 2016-01-04 01:51:24 +00:00
Adam Howard
fc44d9e36e Merge branch 'master' of github.com:theScrabi/NewPipe 2016-01-04 01:15:33 +00:00
Adam Howard
c07686576a possible fix for expandedView bug in BackgroundPlayer 2016-01-04 01:15:13 +00:00
Weblate
c2400aea4d Merge remote-tracking branch 'origin/master' 2016-01-04 00:11:51 +01:00
Benedikt Geißler
fb4bf0dde4 Translated using Weblate (German)
Currently translated at 98.1% (52 of 53 strings)
2016-01-04 00:11:51 +01:00
Christian Schabesberger
e4f638d1ce Merge branch 'master' of github.com:theScrabi/NewPipe 2016-01-04 00:11:00 +01:00
Christian Schabesberger
5c492c01a1 adjusted orbot support and moved on to 0.7.2 2016-01-04 00:10:51 +01:00
M2ck
f451e11f82 Translated using Weblate (French)
Currently translated at 100.0% (53 of 53 strings)
2016-01-03 20:55:44 +01:00
Adam Howard
95b73f35f7 Merge branch 'master' of github.com:theScrabi/NewPipe 2016-01-03 19:44:13 +00:00
Adam Howard
58147e9e12 removed commented code in BackgroundPlayer 2016-01-03 19:44:04 +00:00
Christian Schabesberger
a8830e2ede preference screen previews set values 2016-01-03 19:55:04 +01:00
Mladen Pejaković
9804bb95cc Translated using Weblate (Serbian)
Currently translated at 100.0% (53 of 53 strings)
2016-01-03 19:12:16 +01:00
Christian Schabesberger
0da1aef763 Merge pull request #136 from eighthave/tor-support-for-all-except-streaming
Tor support for all except streaming
2016-01-03 17:40:02 +01:00
M2ck
0a334804a3 Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2016-01-03 16:56:51 +01:00
naofum
94d2f03e9b Translated using Weblate (Japanese)
Currently translated at 100.0% (51 of 51 strings)
2016-01-03 10:31:40 +01:00
Hans-Christoph Steiner
9127f7f0c2 make progress notification for Tor downloader (closes #39) 2016-01-03 00:04:55 +01:00
Hans-Christoph Steiner
0bb0226bc2 download files via Tor when Tor is enabled
DownloadManager does not let you set its proxy or change how it connects to
the internet.  So we have to make a custom one, unfortunately.  This is a
very basic downloader with none of the special sauce that makes the
built-in DownloadManager handy.
2016-01-02 22:47:21 +01:00
Hans-Christoph Steiner
b3a1a5dcc2 Android provides global vars for the actual download directories 2016-01-02 21:53:48 +01:00
Hans-Christoph Steiner
984dd1cc25 checking on "Use Tor" when Orbot is not installed starts install
If the user turns on "Use Tor" and they are missing Orbot, bring them to
the screen to install Tor.
2016-01-02 21:21:34 +01:00
Hans-Christoph Steiner
5663e543a4 whenever an Activity resumes and tor is enabled, request it start
This makes sure that Orbot is running when the user expects it to be. If
NewPipe is configured to use Tor, then going to a NewPipe screen should
ensure Tor is running.
2016-01-02 21:21:34 +01:00
Hans-Christoph Steiner
d3879a0398 setup Tor at app start, and config immediately when pref is changed
This adds an Application subclass to get the onCreate() method, which is
called once at the first start up of the app, before any Activity starts.
Tor is configured there to ensure it is setup before anything happens.

This also moves the "Use Tor" pref listener to a more appropriate place.
2016-01-02 21:21:34 +01:00
Hans-Christoph Steiner
6bd2468d44 if Orbot is installed, then default to using Tor
If the user has not changed the "Use Tor" preference, then the default
should be to use Tor if Orbot is installed. The user can still override it
by going an unchecking "Use Tor".
2016-01-02 21:21:34 +01:00
Hans-Christoph Steiner
e63d43151b add a title plus summary to "Use Tor" preference 2016-01-02 21:21:33 +01:00
Hans-Christoph Steiner
0265da4ae6 use HttpsURLConnections since youtube.com always uses HTTPS
This helps enforce that the connection is encrypted. If for whatever reason
an unencrypted connection is created, an Exception will be thrown.
2016-01-02 21:21:28 +01:00
GDR!
ef255d12ae Test tor code 2016-01-02 20:22:05 +01:00
Matej U
eeb612f9a2 Translated using Weblate (Slovenian)
Currently translated at 100.0% (51 of 51 strings)
2016-01-02 19:48:51 +01:00
Mladen Pejaković
dfcb4edb81 Translated using Weblate (Serbian)
Currently translated at 100.0% (51 of 51 strings)
2016-01-02 18:04:01 +01:00
Christian Schabesberger
d90162d06f ugly workaround for GEMA test failing 2016-01-01 15:43:06 +01:00
Christian Schabesberger
97c924341c inital YoutubeExtractor test 2016-01-01 15:26:03 +01:00
Christian Schabesberger
cd3f405bff slightly improved YoutubeSearchEngineTest 2015-12-29 21:41:10 +01:00
Christian Schabesberger
7cfdca7a81 remove failing test again 2015-12-29 21:28:27 +01:00
Christian Schabesberger
216063dba8 test if CI failes on failing test 2015-12-29 21:16:18 +01:00
Christian Schabesberger
b647bacd72 add testcase for YoutubeSearchEngine 2015-12-29 21:05:02 +01:00
58 changed files with 2022 additions and 849 deletions

View File

@@ -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!

View File

@@ -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

View File

@@ -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'
}

View File

@@ -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());
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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"

View File

@@ -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);
}
})

View 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;
}
}

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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")

View File

@@ -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);

View 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);
}
}

View File

@@ -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";

View File

@@ -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();

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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);
}
/**

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -1,4 +1,4 @@
package org.schabi.newpipe;
package org.schabi.newpipe.services;
/**
* Created by Adam Howard on 08/11/15.

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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 &amp; 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 &amp; 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>

View File

@@ -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&#8230;</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>

View 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 &#8212; formatu askea</string>
<string name="m4a_description">m4a &#8212; 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>

View File

@@ -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 &#8212; قالبی آزاد</string>
<string name="m4a_description">m4a &#8212; کیفیت بهتر</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>

View File

@@ -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 &amp; 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 &amp; 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>

View File

@@ -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>

View File

@@ -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 &#8212; szabad formátum</string>
<string name="m4a_description">m4a &#8212; 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>

View File

@@ -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 &amp; 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 &#8212; formato libero</string>
<string name="m4a_description">m4a &#8212; 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 &amp; 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>

View File

@@ -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>

View File

@@ -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">비디오 &amp; 오디오</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 &#8212; 무료 자유 포맷입니다</string>
<string name="m4a_description">m4a &#8212; 보다 나은 품질</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">비디오 &amp; 오디오</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>

View File

@@ -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 &amp; 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 &#8212; open formaat</string>
<string name="m4a_description">m4a &#8212; 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 &amp; 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>

View File

@@ -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 &amp; 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 &#8212; otwarty format</string>
<string name="m4a_description">m4a &#8212; 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 &amp; 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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View 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>

View 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>

View 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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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&amp;fdid=org.videolan.vlc</string>
<string name="fdroid_vlc_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=vlc&amp;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&amp;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&amp;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 &amp; 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 &amp; 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>

View File

@@ -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>

View 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>

View File

@@ -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>