Merge remote-tracking branch 'origin/master' into fast_actions_detail_view

This commit is contained in:
David Luhmer 2020-05-03 15:04:29 +02:00
commit 7cf0805288
118 changed files with 1518 additions and 423 deletions

41
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,41 @@
name: Android CI
on: [push, pull_request]
jobs:
validation:
name: Validate Gradle Wrapper
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gradle/wrapper-validation-action@v1
test:
name: Run Unit Tests
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Unit tests
run: bash ./gradlew test --stacktrace
apk:
name: Generate APK
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build debug APK
run: bash ./gradlew assembleDev --stacktrace
- name: Upload APK
uses: actions/upload-artifact@v1
with:
name: app-dev-debug
path: News-Android-App/build/outputs/apk/dev/debug/News-Android-App-dev-debug.apk

View file

@ -1,3 +1,43 @@
0.9.9.36
---------------------
- Reduce min-api level to 17
0.9.9.35
---------------------
- Fix Single-Sign On related Issues
- Bug fix - <a href="https://github.com/nextcloud/news-android/issues/769">#769 - Nextcloud API not responding</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/issues/830">#830 - Only ask for Location permission if auto theme enabled</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/issues/786">#786 - Error loading xml resource in Android 4.4</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/pull/833">#833 - fix tables are too wide</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/issues/821">#821 - "Add feed"-icon is misaligned</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/pull/827">#821 - Text in drawer not bold, except of "add new feed" and "settings" (thanks @tobiasKaminsky)</a>
0.9.9.34 / 0.9.9.33
---------------------
- Fix F-Droid build issues
0.9.9.32
---------------------
- Fix bug that items containing "image/jpeg" as enclosure, are interpreted as podcasts
- Fix app crash when changing server settings
- Improve opml import / export
0.9.9.31
---------------------
- Feature - <a href="https://github.com/nextcloud/news-android/issues/787">#787 - Display profile avatar in the sidenav</a>
- Feature - <a href="https://github.com/nextcloud/news-android/issues/788">#788 - Move settings menu to sidenav as last entry (thanks @emasty)</a>
- Feature - <a href="https://github.com/nextcloud/news-android/issues/789">#789 - Add a new feed should be in sidenav (thanks @emasty)</a>
- Feature - <a href="https://github.com/nextcloud/news-android/issues/804">#804 - Support Android 10 System DayNight Modes (thanks @wbrawner)</a>
- Feature - <a href="https://github.com/nextcloud/news-android/pull/811">#811 - Android Auto Support (including Voice Control)</a>
- Feature - <a href="https://github.com/nextcloud/news-android/pull/810">#810 - Automatically add debug information when reporting github issue through the app</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/pull/807">#807 - Fixed open article in browser call (thanks @emasty)</a>
- Bug fix - <a href="https://github.com/nextcloud/news-android/pull/806">#806 - Update app icon background layer (thanks @stefan-niedermann)</a>
0.9.9.28 / 0.9.9.29 / 0.9.9.30
---------------------
- Retry rejected review by google due to new android auto support
@ -15,7 +55,7 @@
0.9.9.26
---------------------
- Fix - <a href="https://github.com/owncloud/News-Android-App/issues/726">#726 Add new feed fails</a>
- Fix - <a href="https://github.com/owncloud/News-Android-App/issues/744">#744 Fix issues when adding feeds (Thanks @Unpublished)</a>
- Fix - <a href="https://github.com/owncloud/News-Android-App/issues/744">#744 Fix issues when adding feeds (thanks @Unpublished)</a>
- Feature - <a href="https://github.com/owncloud/News-Android-App/issues/747">#747 Add option to share article when using chrome-custom-tabs</a>
- Fix - Reset database when account is stored
- Fix - Workaround for app-crashes due to widget problems

View file

@ -42,7 +42,6 @@ android {
debug {
shrinkResources false
minifyEnabled false
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFiles 'proguard-test.pro'
pseudoLocalesEnabled true
@ -50,7 +49,6 @@ android {
release {
shrinkResources true
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFiles 'proguard-test.pro'
//signingConfig signingConfigs.debug
@ -70,6 +68,11 @@ android {
extra {
dimension "default"
}
// Used for continous integration, e.g. to test built .apk-files from pull requests
dev {
dimension "default"
applicationIdSuffix ".dev"
}
}
lintOptions {
@ -115,44 +118,45 @@ repositories {
jcenter()
maven { url "https://jitpack.io" }
maven { url 'https://guardian.github.com/maven/repo-releases' } //needed for com.gu:option:1.3 in Android-DirectoryChooser
maven { url "https://dl.bintray.com/lukaville/maven" } //Needed for com.nbsp:library:1.02 in Material File Picker
maven { url "https://dl.bintray.com/lukaville/maven" } //Needed for com.nbsp:library:1.8 in Material File Picker
}
final DAGGER_VERSION = '2.22.1'
final OKHTTP_VERSION = '3.12.2'
final MOCKITO_VERSION = '2.27.0'
final RETROFIT_VERSION = '2.5.0'
final DAGGER_VERSION = '2.26'
final BUTTERKNIFE_VERSION = '10.2.1'
final ESPRESSO_VERSION = '3.2.0'
final OKHTTP_VERSION = '3.12.10'
final MOCKITO_VERSION = '3.3.1'
final RETROFIT_VERSION = '2.6.4'
dependencies {
// core android studio module
//compile project(':core')
// compile project(':core')
// You must install or update the Google Repository through the SDK manager to use this dependency.
// The Google Repository (separate from the corresponding library) can be found in the Extras category.
// implementation 'com.google.android.gms:play-services:4.2.42'
//implementation project(':Android-SingleSignOn')
//implementation project(path: ':MaterialShowcaseView:library', configuration: 'default')
implementation 'com.github.nextcloud:Android-SingleSignOn:0.5.0-rc1'
// implementation project(':Android-SingleSignOn')
// implementation project(path: ':MaterialShowcaseView:library', configuration: 'default')
implementation 'com.github.nextcloud:Android-SingleSignOn:0.5.0'
implementation 'com.github.David-Development:MaterialShowcaseView:bf6afa225d'
// https://mvnrepository.com/artifact/androidx.legacy/legacy-support-v4
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation "androidx.core:core:1.2.0-alpha01"
implementation "androidx.appcompat:appcompat:1.1.0-alpha05"
implementation "androidx.preference:preference:1.1.0-alpha05"
implementation "androidx.core:core:1.2.0"
implementation 'androidx.annotation:annotation:1.1.0'
implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.preference:preference:1.1.0"
// https://mvnrepository.com/artifact/com.google.android.material/material
implementation "com.google.android.material:material:1.1.0-alpha06"
implementation "com.google.android.material:material:1.2.0-alpha05"
//implementation "com.google.android.material:material:1.0.0"
implementation "androidx.palette:palette:1.0.0"
implementation "androidx.recyclerview:recyclerview:1.1.0-alpha05"
implementation "androidx.browser:browser:1.0.0"
implementation "androidx.recyclerview:recyclerview:1.1.0"
implementation "androidx.browser:browser:1.2.0"
implementation "androidx.cardview:cardview:1.0.0"
//implementation 'de.mrmaffen:holocircularprogressbar:1.0.1'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.jakewharton:butterknife:10.1.0'
implementation 'com.google.code.gson:gson:2.8.6'
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
annotationProcessor "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
implementation 'com.sothree.slidinguppanel:library:3.2.1'
@ -164,7 +168,7 @@ dependencies {
//implementation 'org.freemarker:freemarker:2.3.23' //Required for DAO generation
//implementation 'org.apache.commons:commons-lang3:3.4'
implementation 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0'
implementation 'org.jsoup:jsoup:1.11.3'
implementation 'org.jsoup:jsoup:1.13.1'
implementation ('net.rdrei.android.dirchooser:library:3.0@aar') {
exclude group: 'com.google.auto.value', module: 'auto-value'
transitive = true
@ -173,10 +177,10 @@ dependencies {
implementation "com.google.dagger:dagger:${DAGGER_VERSION}"
annotationProcessor "com.google.dagger:dagger-compiler:${DAGGER_VERSION}"
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
implementation 'io.reactivex.rxjava2:rxjava:2.1.4'
implementation 'io.reactivex.rxjava2:rxjava:2.2.18'
implementation "com.squareup.retrofit2:adapter-rxjava2:$RETROFIT_VERSION"
implementation "com.squareup.retrofit2:retrofit:$RETROFIT_VERSION"
@ -184,12 +188,12 @@ dependencies {
implementation "com.squareup.okhttp3:okhttp:${OKHTTP_VERSION}"
implementation "com.squareup.okhttp3:logging-interceptor:${OKHTTP_VERSION}"
implementation 'com.nbsp:library:1.02' // MaterialFilePicker
implementation 'com.nbsp:library:1.8' // MaterialFilePicker
//extraImplementation 'com.github.tommus:youtube-android-player-api:1.2.2'
testImplementation 'junit:junit:4.12'
testImplementation 'junit:junit:4.13'
testImplementation("org.mockito:mockito-core:$MOCKITO_VERSION") {
exclude group: 'org.hamcrest'
}
@ -212,30 +216,30 @@ dependencies {
//androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
//androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
testImplementation 'org.robolectric:robolectric:4.2.1'
testImplementation 'org.robolectric:robolectric:4.3.1'
// Core library
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:core:1.2.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'
// Assertions
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.ext:truth:1.1.0'
androidTestImplementation 'com.google.truth:truth:0.42'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:truth:1.2.0'
androidTestImplementation 'com.google.truth:truth:1.0.1'
// Espresso dependencies
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.1'
androidTestImplementation 'androidx.test.espresso.idling:idling-concurrent:3.1.1'
androidTestImplementation "androidx.test.espresso:espresso-core:$ESPRESSO_VERSION"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$ESPRESSO_VERSION"
androidTestImplementation "androidx.test.espresso:espresso-intents:$ESPRESSO_VERSION"
androidTestImplementation "androidx.test.espresso:espresso-accessibility:$ESPRESSO_VERSION"
androidTestImplementation "androidx.test.espresso:espresso-web:$ESPRESSO_VERSION"
androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$ESPRESSO_VERSION"
// https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator
androidTestUtil 'androidx.test:orchestrator:1.1.1'
androidTestUtil 'androidx.test:orchestrator:1.2.0'
// The following Espresso dependency can be either "implementation"
// or "androidTestImplementation", depending on whether you want the

View file

@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
<uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18"/>
<uses-sdk tools:overrideLibrary="android_libs.ub_uiautomator"/>
<application>
<!-- You don't need to include android:required="false" if your app's minSdkVersion is 28 or higher. -->

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="872.78925"
android:viewportHeight="872.78925">
<group
android:translateX="21.81973"
android:translateY="21.81973">
<group
android:translateX="20.728745"
android:translateY="20.728745">
<group
android:translateX="137.84616"
android:translateY="137.84616">
<path
android:fillColor="#ffffff"
android:pathData="M100.929,89C94.32,89 89,94.32 89,100.929v23.857c0,6.608 5.32,11.929 11.929,11.929h310.143c6.608,0 11.929,-5.32 11.929,-11.929L423,100.929C423,94.32 417.68,89 411.071,89L100.929,89zM100.929,184.429C94.32,184.429 89,189.749 89,196.357v23.857c0,6.608 5.32,11.929 11.929,11.929h214.714c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,184.429zM100.929,279.857C94.32,279.857 89,285.177 89,291.786v23.857c0,6.608 5.32,11.929 11.929,11.929h286.286c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,279.857zM100.929,375.286C94.32,375.286 89,380.606 89,387.214v23.857C89,417.68 94.32,423 100.929,423L244.071,423C250.68,423 256,417.68 256,411.071v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,375.286z" />
</group>
</group>
</group>
<group
android:scaleX="2.6"
android:scaleY="3"
android:translateX="440"
android:translateY="520">
<path
android:fillColor="#ffffff"
android:pathData="M11.908125 40h11.4c4.44 0 7.24 -1.04 9.2 -3.4 2.32 -2.72 3.56 -6.68 3.56 -11.2 0 -4.48 -1.24 -8.44 -3.56 -11.2 -1.96 -2.36 -4.72 -3.36 -9.2 -3.36h-11.4zm6 -5V15.84h5.4c4.52 0 6.76 3.16 6.76 9.6 0 6.4 -2.24 9.56 -6.76 9.56z" />
<path
android:fillColor="#ffffff"
android:pathData="M46.894375 27.44h13.96v-5h-13.96v-6.6h15.08v-5h-21.08V40h21.8v-5h-15.8z" />
<path
android:fillColor="#ffffff"
android:pathData="M80.333125 40l10 -29.16h-6.04l-6.36 21.96 -6.48 -21.96h-6.04l9.84 29.16z" />
</group>
</vector>

View file

@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="de.luhmer.owncloudnewsreader"
android:installLocation="internalOnly"
android:versionCode="146"
android:versionName="0.9.9.30">
android:versionCode="152"
android:versionName="0.9.9.36">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />

View file

@ -118,8 +118,10 @@ a {
}
#content table {
width:100% !important;
/* table-layout: fixed; */
width: 100% !important;
/* https://www.w3schools.com/cssref/pr_tab_table-layout.asp */
table-layout: fixed !important;
}
#header {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -17,6 +17,7 @@ public class Constants {
protected static final int MIN_NEXTCLOUD_FILES_APP_VERSION_CODE = 30030052;
public static final String USER_INFO_STRING = "USER_INFO";
protected static boolean isNextCloud(SharedPreferences prefs) {
int[] version = extractVersionNumberFromString(prefs.getString(Constants.NEWS_WEB_VERSION_NUMBER_STRING, ""));

View file

@ -1,12 +1,15 @@
package de.luhmer.owncloudnewsreader;
import android.Manifest;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.util.Xml;
@ -19,6 +22,7 @@ import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.nbsp.materialfilepicker.MaterialFilePicker;
import com.nbsp.materialfilepicker.ui.FilePickerActivity;
import org.json.JSONException;
@ -35,6 +39,8 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -45,6 +51,9 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
@ -53,7 +62,6 @@ import de.luhmer.owncloudnewsreader.database.model.Feed;
import de.luhmer.owncloudnewsreader.database.model.Folder;
import de.luhmer.owncloudnewsreader.di.ApiProvider;
import de.luhmer.owncloudnewsreader.helper.AsyncTaskHelper;
import de.luhmer.owncloudnewsreader.helper.NewsFileUtils;
import de.luhmer.owncloudnewsreader.helper.OpmlXmlParser;
import de.luhmer.owncloudnewsreader.helper.ThemeChooser;
import de.luhmer.owncloudnewsreader.helper.URLConnectionReader;
@ -67,6 +75,9 @@ public class NewFeedActivity extends AppCompatActivity {
private static final String TAG = NewFeedActivity.class.getCanonicalName();
public final static String ADD_NEW_SUCCESS = "success";
private static final int PERMISSIONS_REQUEST_READ_CODE = 0;
private static final int PERMISSIONS_REQUEST_WRITE_CODE = 1;
private final static int REQUEST_CODE_OPML_IMPORT = 2;
// UI references.
protected @BindView(R.id.et_feed_url) EditText mFeedUrlView;
@ -147,18 +158,57 @@ public class NewFeedActivity extends AppCompatActivity {
@OnClick(R.id.btn_import_opml)
public void importOpml() {
Intent intentFilePicker = new Intent(this, FilePickerActivity.class);
startActivityForResult(intentFilePicker, 1);
String permission = Manifest.permission.READ_EXTERNAL_STORAGE;
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) {
Toast.makeText(this, "Allow external storage reading", Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{permission}, PERMISSIONS_REQUEST_READ_CODE);
}
} else {
openFilePicker();
}
}
private void openFilePicker() {
new MaterialFilePicker()
.withActivity(this)
.withRequestCode(REQUEST_CODE_OPML_IMPORT)
//.withFilter(Pattern.compile(".*\\.opml$")) // Filtering files and directories by file name using regexp
.withFilterDirectories(true) // Set directories filterable (false by default)
.withHiddenFiles(true) // Show hidden files and folders
.start();
}
@OnClick(R.id.btn_export_opml)
public void exportOpml() {
String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) {
Toast.makeText(this, "Allow external storage writing", Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{permission}, PERMISSIONS_REQUEST_WRITE_CODE);
}
} else {
exportOpmlFile();
}
}
private void exportOpmlFile() {
String xml = OpmlXmlParser.GenerateOPML(this);
String path = NewsFileUtils.getCacheDirPath(this) + "/../subscriptions.opml";
//String path = NewsFileUtils.getCacheDirPath(this) + "/subscriptions.opml";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String filename = "subscriptions-" + format.format(new Date()) + ".opml";
File path = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), filename);
try {
FileOutputStream fos = new FileOutputStream(new File(path));
FileOutputStream fos = new FileOutputStream(path);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos);
outputStreamWriter.write(xml);
outputStreamWriter.close();
@ -180,7 +230,7 @@ public class NewFeedActivity extends AppCompatActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE_OPML_IMPORT && resultCode == RESULT_OK) {
String filePath = data.getStringExtra(FilePickerActivity.RESULT_FILE_PATH);
AsyncTaskHelper.StartAsyncTask(new ImportOpmlSubscriptionsTask(filePath, NewFeedActivity.this));
@ -216,7 +266,7 @@ public class NewFeedActivity extends AppCompatActivity {
String opmlContent;
try {
if(mUrlToFile.startsWith("http")) {//http[s]
opmlContent = URLConnectionReader.getText(mUrlToFile.toString());
opmlContent = URLConnectionReader.getText(mUrlToFile);
} else {
opmlContent = getStringFromFile(mUrlToFile);
}
@ -232,12 +282,9 @@ public class NewFeedActivity extends AppCompatActivity {
final HashMap<String, Long> existingFolders = new HashMap<>();
mApi.getAPI().folders().blockingSubscribe(new Consumer<List<Folder>>() {
@Override
public void accept(@io.reactivex.annotations.NonNull List<Folder> folders) throws Exception {
for(Folder folder : folders) {
existingFolders.put(folder.getLabel(), folder.getId());
}
mApi.getAPI().folders().blockingSubscribe(folders -> {
for(Folder folder : folders) {
existingFolders.put(folder.getLabel(), folder.getId());
}
});

View file

@ -402,7 +402,12 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
resumeVideoPlayersOnCurrentPage();
progressIndicator.setProgress(position + 1);
getSupportActionBar().setTitle(rssItems.get(position).getTitle());
if(rssItems.get(position).getFeed() != null) {
// Try getting the feed title and use it for the action bar title
getSupportActionBar().setTitle(rssItems.get(position).getFeed().getFeedTitle());
} else {
getSupportActionBar().setTitle(rssItems.get(position).getTitle());
}
RssItem rssItem = rssItems.get(position);
if(!rssItem.getRead_temp()) {
@ -450,8 +455,9 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
PodcastItem podcastItem = DatabaseConnectionOrm.ParsePodcastItemFromRssItem(this, rssItem);
boolean podcastAvailable = !"".equals(podcastItem.link);
if(menuItem_PlayPodcast != null)
menuItem_PlayPodcast.setVisible(podcastAvailable);
if(menuItem_PlayPodcast != null) {
menuItem_PlayPodcast.setVisible(podcastAvailable);
}
if(isStarred && menuItem_Starred != null) {
@ -617,7 +623,9 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
*/
private void startTTS(int currentPosition) {
RssItem rssItem = rssItems.get(currentPosition);
TTSItem ttsItem = new TTSItem(rssItem.getId(), rssItem.getAuthor(), rssItem.getTitle(), rssItem.getTitle() + "\n\n " + Html.fromHtml(rssItem.getBody()).toString(), rssItem.getFeed().getFaviconUrl());
String text = rssItem.getTitle() + "\n\n " + Html.fromHtml(rssItem.getBody()).toString();
// Log.d(TAG, text);
TTSItem ttsItem = new TTSItem(rssItem.getId(), rssItem.getAuthor(), rssItem.getTitle(), text, rssItem.getFeed().getFaviconUrl());
openMediaItem(ttsItem);
}

View file

@ -189,7 +189,7 @@ public class NewsReaderDetailFragment extends Fragment {
}
protected void setData(Long idFeed, Long idFolder, String title, boolean updateListView) {
Log.v(TAG, "Creating new itstance");
Log.v(TAG, "Creating new instance");
this.idFeed = idFeed;
this.idFolder = idFolder;

View file

@ -271,8 +271,14 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
}
if (ActivityCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{ACCESS_FINE_LOCATION}, REQUEST_CODE_PERMISSION_LOCATION);
// In case automatic theme selection based on time is selected, check if location permission
// for twilight manager is given.. otherwise request it
if(ThemeChooser.isAutoThemeSelectionEnabled() && ActivityCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
this,
new String[]{ ACCESS_FINE_LOCATION },
REQUEST_CODE_PERMISSION_LOCATION
);
}
}
@ -766,8 +772,8 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
}
}
private static final int RESULT_SETTINGS = 15642;
private static final int RESULT_ADD_NEW_FEED = 15643;
public static final int RESULT_SETTINGS = 15642;
public static final int RESULT_ADD_NEW_FEED = 15643;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
@ -781,28 +787,10 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
return true;
break;
case R.id.action_settings:
Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent, RESULT_SETTINGS);
return true;
case R.id.menu_update:
startSync();
break;
case R.id.action_login:
startLoginActivity();
break;
case R.id.action_add_new_feed:
if(mApi.getAPI() != null) {
Intent newFeedIntent = new Intent(this, NewFeedActivity.class);
startActivityForResult(newFeedIntent, RESULT_ADD_NEW_FEED);
} else {
startLoginActivity();
}
break;
case R.id.menu_StartImageCaching:
final DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
@ -944,20 +932,24 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
}
if(requestCode == RESULT_SETTINGS) {
//Update settings of image Loader
mApi.initApi(new NextcloudAPI.ApiConnectedListener() {
@Override
public void onConnected() {
ensureCorrectTheme(data);
}
@Override
public void onError(Exception ex) {
ensureCorrectTheme(data);
ex.printStackTrace();
}
});
// Extra is set if user entered/modified server settings
if (data == null || data.getBooleanExtra(SettingsActivity.PREF_SERVER_SETTINGS,false)) {
resetUiAndStartSync();
} else {
//Update settings of image Loader
mApi.initApi(new NextcloudAPI.ApiConnectedListener() {
@Override
public void onConnected() {
ensureCorrectTheme(data);
}
@Override
public void onError(Exception ex) {
ensureCorrectTheme(data);
ex.printStackTrace();
}
});
}
} else if(requestCode == RESULT_ADD_NEW_FEED) {
if(data != null) {
boolean val = data.getBooleanExtra(NewFeedActivity.ADD_NEW_SUCCESS, false);
@ -1007,7 +999,6 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
builder.setTitle(getString(R.string.permission_req_location_twilight_title))
.setMessage(getString(R.string.permission_req_location_twilight_text))
.setPositiveButton(android.R.string.ok, (dialog, id) -> {
//ActivityCompat.requestPermissions(this, new String[]{ACCESS_COARSE_LOCATION}, 1349);
ActivityCompat.requestPermissions(this, new String[]{ACCESS_FINE_LOCATION}, REQUEST_CODE_PERMISSION_LOCATION);
})
.setNegativeButton(android.R.string.cancel, (dialog, id) -> {})

View file

@ -22,8 +22,10 @@
package de.luhmer.owncloudnewsreader;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
@ -38,6 +40,14 @@ import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import com.google.android.material.navigation.NavigationView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.io.ByteArrayInputStream;
@ -49,8 +59,6 @@ import java.io.Serializable;
import javax.inject.Inject;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import butterknife.BindView;
import butterknife.ButterKnife;
import de.luhmer.owncloudnewsreader.ListView.SubscriptionExpandableListAdapter;
@ -59,7 +67,6 @@ import de.luhmer.owncloudnewsreader.di.ApiProvider;
import de.luhmer.owncloudnewsreader.interfaces.ExpListTextClicked;
import de.luhmer.owncloudnewsreader.model.AbstractItem;
import de.luhmer.owncloudnewsreader.model.ConcreteFeedItem;
import de.luhmer.owncloudnewsreader.model.FolderSubscribtionItem;
import de.luhmer.owncloudnewsreader.model.UserInfo;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -68,6 +75,9 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView;
import static de.luhmer.owncloudnewsreader.Constants.USER_INFO_STRING;
import static de.luhmer.owncloudnewsreader.LoginDialogActivity.RESULT_LOGIN;
/**
* A list fragment representing a list of NewsReader. This fragment also
* supports tablet devices by allowing list items to be given an 'activated'
@ -180,6 +190,8 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
lvAdapter.notifyDataSetChanged();
reloadAdapter();
bindNavigationMenu(view, inflater);
return view;
}
@ -210,6 +222,52 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
}
}
/**
* Cares about settings items in news list drawer.
* - Binds settings, shown at bottom of drawer
* - Inflates NavigationView which is set as footerview of ListView
* Currently used to show item "add newsfeed" at bottom of list.
*
* @param parent content view of drawer
* @param inflater inflater provided to fragment
*/
private void bindNavigationMenu(View parent, LayoutInflater inflater) {
// Bind settings menu at bottom of drawer
NavigationView navigationView = parent.findViewById(R.id.navigationMenu);
navigationView.setNavigationItemSelectedListener(item -> {
switch(item.getItemId()) {
case R.id.drawer_settings:
Intent intent = new Intent(getContext(), SettingsActivity.class);
getActivity().startActivityForResult(intent, NewsReaderListActivity.RESULT_SETTINGS);
return true;
default:
return false;
}
});
// Create NavigationView to show as footer of ListView
View footerView = inflater.inflate(R.layout.fragment_newsreader_list_footer, null, false);
ExpandableListView list = parent.findViewById(R.id.expandableListView);
NavigationView footerNavigation = footerView.findViewById(R.id.listfooterMenu);
footerNavigation.setNavigationItemSelectedListener(item -> {
switch(item.getItemId()) {
case R.id.action_add_new_feed:
if(mApi.getAPI() != null) {
Intent newFeedIntent = new Intent(getContext(), NewFeedActivity.class);
getActivity().startActivityForResult(newFeedIntent, NewsReaderListActivity.RESULT_ADD_NEW_FEED);
} else {
Intent loginIntent = new Intent(getContext(), LoginDialogActivity.class);
getActivity().startActivityForResult(loginIntent, RESULT_LOGIN);
}
return true;
default:
return false;
}
});
list.addFooterView(footerView);
}
private ExpListTextClicked expListTextClickedListener = new ExpListTextClicked() {
@Override
@ -266,10 +324,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
};
public ExpandableListView getListView() {
return eListView;
}
@ -286,8 +340,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
.show();
}
private static final String USER_INFO_STRING = "USER_INFO";
public void startAsyncTaskGetUserInfo() {
mApi.getAPI().user()
.subscribeOn(Schedulers.newThread())
@ -342,10 +394,10 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
}
String mUsername = mPrefs.getString(SettingsActivity.EDT_USERNAME_STRING, null);
String mOc_root_path = mPrefs.getString(SettingsActivity.EDT_OWNCLOUDROOTPATH_STRING, null);
mOc_root_path = mOc_root_path.replace("http://", "").replace("https://", ""); //Remove http:// or https://
String mOc_root_path_without_protocol = mOc_root_path.replace("http://", "").replace("https://", ""); //Remove http:// or https://
userTextView.setText(mUsername);
urlTextView.setText(mOc_root_path);
urlTextView.setText(mOc_root_path_without_protocol);
String uInfo = mPrefs.getString(USER_INFO_STRING, null);
if(uInfo == null)
@ -355,7 +407,17 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
UserInfo userInfo = (UserInfo) fromString(uInfo);
if (userInfo.displayName != null)
userTextView.setText(userInfo.displayName);
final int placeHolder = R.mipmap.ic_launcher;
DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
.displayer(new CircleBitmapDisplayer())
.showImageOnLoading(placeHolder)
.showImageForEmptyUri(placeHolder)
.showImageOnFail(placeHolder)
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
String avatarUrl = mOc_root_path + "/index.php/avatar/" + Uri.encode(userInfo.userId) + "/64";
ImageLoader.getInstance().displayImage(avatarUrl, this.headerLogo, displayImageOptions);
if (userInfo.avatar != null) {
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, r.getDisplayMetrics());

View file

@ -27,6 +27,7 @@ import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.MenuItem;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
@ -34,6 +35,8 @@ import javax.inject.Inject;
import de.luhmer.owncloudnewsreader.helper.ThemeChooser;
import static de.luhmer.owncloudnewsreader.LoginDialogActivity.RESULT_LOGIN;
/**
* A {@link PreferenceActivity} that presents a set of application settings. On
* handset devices, settings are presented as a single list. On tablets,
@ -76,6 +79,7 @@ public class SettingsActivity extends AppCompatActivity {
//public static final String CB_ENABLE_PODCASTS_STRING = "cb_enablePodcasts";
public static final String PREF_SERVER_SETTINGS = "pref_server_settings";
public static final String PREF_SYNC_SETTINGS = "pref_sync_settings";
public static final String SP_APP_THEME = "sp_app_theme";
@ -95,6 +99,7 @@ public class SettingsActivity extends AppCompatActivity {
public static final String SP_SWIPE_LEFT_ACTION_DEFAULT = "2";
public static final String CB_VERSION = "cb_version";
public static final String CB_REPORT_ISSUE = "cb_reportIssue";
protected @Inject SharedPreferences mPrefs;
@ -152,6 +157,28 @@ public class SettingsActivity extends AppCompatActivity {
setResult(RESULT_OK,intent);
}
/**
* Used to notify Activity, that server settings were touched by user.
*
* If server settings were touched, a result is provided by intent with corresponding request code.
* No notify the calling activity that server settings were touched, a new extra is put to
* response intent: PREF_SERVER_SETTINGS is set to true.
*
* Result has to be handled by receiving activity.
*
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOGIN) {
Intent intent = getIntent().putExtra(PREF_SERVER_SETTINGS, true);
setResult(RESULT_OK, intent);
}
}
//@Override
public boolean onIsMultiPane() {

View file

@ -7,6 +7,9 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Settings;
@ -20,6 +23,12 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.TwoStatePreference;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
@ -29,17 +38,23 @@ import de.luhmer.owncloudnewsreader.helper.NewsFileUtils;
import de.luhmer.owncloudnewsreader.helper.PostDelayHandler;
import static android.app.Activity.RESULT_OK;
import static de.luhmer.owncloudnewsreader.Constants.USER_INFO_STRING;
import static de.luhmer.owncloudnewsreader.LoginDialogActivity.RESULT_LOGIN;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_MARK_AS_READ_WHILE_SCROLLING_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_NAVIGATE_WITH_VOLUME_BUTTONS_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_OLED_MODE;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_REPORT_ISSUE;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_SHOWONLYUNREAD_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_SHOW_NOTIFICATION_NEW_ARTICLES_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_SKIP_DETAILVIEW_AND_OPEN_BROWSER_DIRECTLY_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_SYNCONSTARTUP_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.CB_VERSION;
import static de.luhmer.owncloudnewsreader.SettingsActivity.EDT_CLEAR_CACHE;
import static de.luhmer.owncloudnewsreader.SettingsActivity.EDT_OWNCLOUDROOTPATH_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.EDT_PASSWORD_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.EDT_USERNAME_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.LV_CACHE_IMAGES_OFFLINE_STRING;
import static de.luhmer.owncloudnewsreader.SettingsActivity.PREF_SERVER_SETTINGS;
import static de.luhmer.owncloudnewsreader.SettingsActivity.PREF_SYNC_SETTINGS;
import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_APP_THEME;
import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_DISPLAY_BROWSER;
@ -249,12 +264,16 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private void bindDataSyncPreferences(final PreferenceFragmentCompat prefFrag)
{
String[] authorities = { "de.luhmer.owncloudnewsreader" };
Intent intentSyncSettings = new Intent(Settings.ACTION_SYNC_SETTINGS);
intentSyncSettings.putExtra(Settings.EXTRA_AUTHORITIES, authorities);
// String[] authorities = { "de.luhmer.owncloudnewsreader" };
// Intent intentSyncSettings = new Intent(Settings.ACTION_SYNC_SETTINGS);
// intentSyncSettings.putExtra(Settings.EXTRA_AUTHORITIES, authorities);
// String[] authorities = { "de.luhmer.owncloudnewsreader" };
// Intent intentSyncSettings = new Intent(Settings.ACTION_SYNC_SETTINGS);
// intentSyncSettings.putExtra(Settings.EXTRA_AUTHORITIES, authorities);
Intent intentSyncSettings = new Intent(getActivity(), SyncIntervalSelectorActivity.class);
prefFrag.findPreference(PREF_SYNC_SETTINGS).setIntent(intentSyncSettings);
//bindPreferenceSummaryToValue(prefFrag.findPreference(SP_MAX_ITEMS_SYNC));
Preference clearCachePref = prefFrag.findPreference(EDT_CLEAR_CACHE);
bindPreferenceSummaryToValue(prefFrag.findPreference(LV_CACHE_IMAGES_OFFLINE_STRING));
@ -262,10 +281,17 @@ public class SettingsFragment extends PreferenceFragmentCompat {
clearCachePref.setOnPreferenceClickListener(preference -> {
mPrefs.edit().remove("USER_INFO").apply();
mPrefs.edit().remove(USER_INFO_STRING).apply();
checkForUnsycedChangesInDatabaseAndResetDatabase(prefFrag.getActivity());
return true;
});
Preference serverSettings = prefFrag.findPreference(PREF_SERVER_SETTINGS);
serverSettings.setOnPreferenceClickListener(preference -> {
Intent loginIntent = new Intent(getActivity(), LoginDialogActivity.class);
getActivity().startActivityForResult(loginIntent, RESULT_LOGIN);
return true;
});
}
@ -278,12 +304,17 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private void bindAboutPreferences(final PreferenceFragmentCompat prefFrag) {
prefFrag.findPreference(CB_VERSION).setSummary(version);
Preference changelogPreference = prefFrag.findPreference(CB_VERSION);
changelogPreference.setOnPreferenceClickListener(preference -> {
DialogFragment dialog = new VersionInfoDialogFragment();
dialog.show(prefFrag.getActivity().getFragmentManager(), "VersionChangelogDialogFragment");
return true;
});
findPreference(CB_REPORT_ISSUE).setOnPreferenceClickListener(preference -> {
openBugReport();
return true;
});
}
@ -322,6 +353,50 @@ public class SettingsFragment extends PreferenceFragmentCompat {
}
}
private void openBugReport() {
String title = "";
String body = "";
String debugInfo = "Please describe your bug here...\n\n---\n";
try {
PackageInfo pInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
debugInfo += "\nApp Version: " + pInfo.versionName;
debugInfo += "\nApp Version Code: " + pInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
debugInfo += "\n\n---\n";
debugInfo += "\nSSO enabled: " + mPrefs.getBoolean(SettingsActivity.SW_USE_SINGLE_SIGN_ON, false);
debugInfo += "\n\n---\n";
debugInfo += "\nOS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")";
debugInfo += "\nOS API Level: " + android.os.Build.VERSION.SDK_INT;
debugInfo += "\nDevice: " + android.os.Build.DEVICE;
debugInfo += "\nModel (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")";
debugInfo += "\n\n---\n\n";
List<String> excludedSettings = Arrays.asList(EDT_USERNAME_STRING, EDT_PASSWORD_STRING, EDT_OWNCLOUDROOTPATH_STRING, Constants.LAST_UPDATE_NEW_ITEMS_COUNT_STRING, USER_INFO_STRING);
Map<String, ?> allEntries = mPrefs.getAll();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
String key =entry.getKey();
if(!excludedSettings.contains(key)) {
debugInfo += entry + "\n";
}
}
try {
body = URLEncoder.encode(debugInfo,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/nextcloud/news-android/issues/new?title=" + title + "&body=" + body));
startActivity(browserIntent);
}
public static class ResetDatabaseAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog pd;

View file

@ -75,9 +75,8 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
// automatically StartYoutubePlayer clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
} else if(id == R.id.action_save) {
if(id == R.id.action_save) {
int checkedPosition = mFragment.lvItems.getCheckedItemPosition();
Integer minutes = Integer.parseInt(items_values[checkedPosition]);
@ -97,13 +96,11 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
public static void setAccountSyncInterval(Context context, SharedPreferences mPrefs) {
int minutes = mPrefs.getInt(SYNC_INTERVAL_IN_MINUTES_STRING, 0);
if(minutes != 0) {
long SYNC_INTERVAL = minutes * SECONDS_PER_MINUTE;
AccountManager mAccountManager = AccountManager.get(context);
Account[] accounts = mAccountManager.getAccountsByType(AccountGeneral.ACCOUNT_TYPE);
for (Account account : accounts) {
AccountManager mAccountManager = AccountManager.get(context);
Account[] accounts = mAccountManager.getAccountsByType(AccountGeneral.ACCOUNT_TYPE);
for (Account account : accounts) {
if (minutes != 0) {
long SYNC_INTERVAL = minutes * SECONDS_PER_MINUTE;
ContentResolver.setSyncAutomatically(account, AccountGeneral.ACCOUNT_TYPE, true);
Bundle bundle = new Bundle();
@ -112,6 +109,9 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
AccountGeneral.ACCOUNT_TYPE,
bundle,
SYNC_INTERVAL);
} else {
ContentResolver.setSyncAutomatically(account, AccountGeneral.ACCOUNT_TYPE, false);
}
}
}

View file

@ -4,7 +4,7 @@ import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Typeface;
import android.preference.PreferenceManager;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
@ -19,6 +19,11 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
@ -27,9 +32,6 @@ import org.greenrobot.eventbus.Subscribe;
import java.util.List;
import java.util.regex.Pattern;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import de.luhmer.owncloudnewsreader.R;
@ -145,11 +147,12 @@ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickL
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
Drawable feedIcon = VectorDrawableCompat.create(itemView.getResources(), R.drawable.feed_icon, null) ;
displayImageOptionsThumbnail = new DisplayImageOptions.Builder()
.displayer(new SquareRoundedBitmapDisplayer(30))
.showImageOnLoading(R.drawable.feed_icon)
.showImageForEmptyUri(R.drawable.feed_icon)
.showImageOnFail(R.drawable.feed_icon)
.showImageOnLoading(feedIcon)
.showImageForEmptyUri(feedIcon)
.showImageOnFail(feedIcon)
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
@ -318,7 +321,8 @@ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickL
if (DatabaseConnectionOrm.ALLOWED_PODCASTS_TYPES.contains(rssItem.getEnclosureMime())) {
imgViewThumbnail.setVisibility(View.VISIBLE);
//imgViewThumbnail.setColorFilter(Color.parseColor("#d8d8d8"));
imgViewThumbnail.setImageDrawable(ContextCompat.getDrawable(itemView.getContext(), R.drawable.feed_icon));
Drawable feedIcon = VectorDrawableCompat.create(itemView.getResources(), R.drawable.feed_icon, null) ;
imgViewThumbnail.setImageDrawable(feedIcon);
} else {
imgViewThumbnail.setVisibility(GONE);
}

View file

@ -481,6 +481,12 @@ public class DatabaseConnectionOrm {
podcastItem.mimeType = rssItem.getEnclosureMime();
podcastItem.favIcon = feed.getFaviconUrl();
if("image/jpeg".equals(podcastItem.mimeType)) {
// We don't want to accidentally think that enclosed images are podcasts
podcastItem.link = "";
podcastItem.mimeType = "";
}
podcastItem.isVideoPodcast = Arrays.asList(DatabaseConnectionOrm.VIDEO_FORMATS).contains(podcastItem.mimeType);
File file = new File(PodcastDownloadService.getUrlToPodcastFile(context, podcastItem.link, false));

View file

@ -39,6 +39,7 @@ public class ApiProvider {
protected final SharedPreferences mPrefs;
protected Context context;
protected API mApi;
private NextcloudAPI mNextcloudSsoApi;
public ApiProvider(MemorizingTrustManager mtm, SharedPreferences sp, Context context) {
@ -55,6 +56,12 @@ public class ApiProvider {
}
public void initApi(@NonNull NextcloudAPI.ApiConnectedListener apiConnectedListener) {
if(mNextcloudSsoApi != null) {
// Destroy previous Service Connection if we need to reconnect (e.g. login again)
mNextcloudSsoApi.stop();
mNextcloudSsoApi = null;
}
boolean useSSO = mPrefs.getBoolean(SettingsActivity.SW_USE_SINGLE_SIGN_ON, false);
if(useSSO) {
OkHttpClient client = new OkHttpClient.Builder().build();
@ -93,8 +100,8 @@ public class ApiProvider {
protected void initSsoApi(final NextcloudAPI.ApiConnectedListener callback) {
try {
SingleSignOnAccount ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(context);
NextcloudAPI nextcloudAPI = new NextcloudAPI(context, ssoAccount, GsonConfig.GetGson(), callback);
mApi = new NextcloudRetrofitApiBuilder(nextcloudAPI, API.mApiEndpoint).create(API.class);
mNextcloudSsoApi = new NextcloudAPI(context, ssoAccount, GsonConfig.GetGson(), callback);
mApi = new NextcloudRetrofitApiBuilder(mNextcloudSsoApi, API.mApiEndpoint).create(API.class);
} catch (SSOException e) {
callback.onError(e);
}

View file

@ -1,6 +1,7 @@
package de.luhmer.owncloudnewsreader.helper;
import android.content.Context;
import android.util.Log;
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
@ -21,6 +22,8 @@ import de.luhmer.owncloudnewsreader.database.model.Folder;
*/
public class OpmlXmlParser {
private static final String TAG = OpmlXmlParser.class.getCanonicalName();
//Create XML
public static String GenerateOPML(Context context) {
XmlSerializer serializer = Xml.newSerializer();
@ -65,6 +68,9 @@ public class OpmlXmlParser {
serializer.endTag("", "body");
serializer.endTag("", "opml");
serializer.endDocument();
Log.d(TAG, writer.toString());
return writer.toString();
} catch (Exception e) {
throw new RuntimeException(e);

View file

@ -25,6 +25,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
import android.util.Log;
import androidx.appcompat.app.AppCompatDelegate;
@ -50,33 +51,36 @@ public class ThemeChooser {
private ThemeChooser() { }
public static void chooseTheme(Activity act) {
int defaultNightMode;
switch(getSelectedThemeFromPreferences(false)) {
case 0: // Auto (Light / Dark)
Log.v(TAG, "Auto (Light / Dark)");
act.setTheme(R.style.AppTheme);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_TIME);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
defaultNightMode = AppCompatDelegate.MODE_NIGHT_AUTO_TIME;
} else { // Android 10+ (Q) supports a system-wide dark mode
defaultNightMode = AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
}
mSelectedTheme = THEME.LIGHT;
break;
case 1: // Light Theme
Log.v(TAG, "Light");
act.setTheme(R.style.AppTheme);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
defaultNightMode = AppCompatDelegate.MODE_NIGHT_NO;
mSelectedTheme = THEME.LIGHT;
break;
case 2: // Dark Theme
Log.v(TAG, "Dark");
act.setTheme(R.style.AppTheme);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
defaultNightMode = AppCompatDelegate.MODE_NIGHT_YES;
mSelectedTheme = THEME.DARK;
break;
default:
// This should never happen - just in case.. use the light theme..
Log.v(TAG, "Default");
act.setTheme(R.style.AppTheme);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_TIME);
defaultNightMode = AppCompatDelegate.MODE_NIGHT_AUTO_TIME;
mSelectedTheme = THEME.LIGHT;
break;
}
act.setTheme(R.style.AppTheme);
AppCompatDelegate.setDefaultNightMode(defaultNightMode);
}
public static void afterOnCreate(Activity act) {
@ -103,6 +107,15 @@ public class ThemeChooser {
*/
}
/**
* Returns true if automatic theme selection based on Twilight Manager is enabled.
* Otherwise it'll return false
*/
public static boolean isAutoThemeSelectionEnabled() {
int selectedTheme = getSelectedThemeFromPreferences(false);
return selectedTheme == 0; // 0 => Auto (Light / Dark)
}
// Check if the currently loaded theme is different from the one set in the settings, or if OLED mode changed
public static boolean themeRequiresRestartOfUI() {
boolean themeChanged = !mSelectedThemeFromPreferences.equals(getSelectedThemeFromPreferences(true));

View file

@ -10,21 +10,22 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.support.v4.media.MediaBrowserCompat;
import androidx.media.MediaBrowserServiceCompat;
import android.support.v4.media.MediaDescriptionCompat;
import android.support.v4.media.MediaMetadataCompat;
import androidx.media.session.MediaButtonReceiver;
import android.support.v4.media.session.MediaSessionCompat;
import android.support.v4.media.session.PlaybackStateCompat;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.media.MediaBrowserServiceCompat;
import androidx.media.session.MediaButtonReceiver;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -478,11 +479,13 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
}
else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) {
// Pause playback
mSession.getController().getTransportControls().pause();
} else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) {
// Lower the volume, keep playing
} else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
// Your app has been granted audio focus again
// Raise volume to normal, restart playback if necessary
mSession.getController().getTransportControls().play();
}
};
@ -611,9 +614,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
RssItem rssItem = dbConn.getRssItemById(podcastId);
PodcastItem podcastItem = ParsePodcastItemFromRssItem(PodcastPlaybackService.this, rssItem);
Intent intent = new Intent(PodcastPlaybackService.this, PodcastPlaybackService.class);
intent.putExtra(PodcastPlaybackService.MEDIA_ITEM, podcastItem);
startService(intent);
startPlayingPodcastItem(podcastItem);
}
super.onPlayFromMediaId(mediaId, extras);
@ -634,7 +635,36 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
@Override
public void onPlayFromSearch(String query, Bundle extras) {
Log.d(TAG, "onPlayFromSearch() called with: query = [" + query + "], extras = [" + extras + "]");
// TODO Implement this
// In case the user just says "Play music"
if(TextUtils.isEmpty(query)) {
List<PodcastItem> audioPodcasts = getAllPodcastItems();
// If there are any audio podcasts
if(audioPodcasts.size() > 0) {
PodcastItem podcastItem = audioPodcasts.get(0);
startPlayingPodcastItem(podcastItem);
}
} else {
// User is actually searching for something..
List<PodcastItem> audioPodcasts = getAllPodcastItems();
if(audioPodcasts.size() > 0) {
boolean foundMatching = false;
for(PodcastItem pi : audioPodcasts) {
if(pi.title.contains(query)) {
startPlayingPodcastItem(pi);
foundMatching = true;
break;
}
}
// in case we didn't find a matching podcast.. palay a random one
if(!foundMatching) {
PodcastItem podcastItem = audioPodcasts.get(0);
startPlayingPodcastItem(podcastItem);
}
}
}
super.onPlayFromSearch(query, extras);
}
@ -666,12 +696,40 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
@Override
public void onSkipToNext() {
Log.d(TAG, "onSkipToNext() called");
MediaItem currentlyPlayingPodcast = getCurrentlyPlayingPodcast();
List<PodcastItem> podcastItems = getAllPodcastItems();
for(int i = 0; i < podcastItems.size(); i++) {
PodcastItem podcastItem = podcastItems.get(i);
if(podcastItem.itemId == currentlyPlayingPodcast.itemId) {
if(i+1 < podcastItems.size()) {
startPlayingPodcastItem(podcastItems.get(i+1));
}
break;
}
}
super.onSkipToNext();
}
@Override
public void onSkipToPrevious() {
Log.d(TAG, "onSkipToPrevious() called");
MediaItem currentlyPlayingPodcast = getCurrentlyPlayingPodcast();
List<PodcastItem> podcastItems = getAllPodcastItems();
for(int i = 0; i < podcastItems.size(); i++) {
PodcastItem podcastItem = podcastItems.get(i);
if(podcastItem.itemId == currentlyPlayingPodcast.itemId) {
if(i > 0) {
startPlayingPodcastItem(podcastItems.get(i-1));
}
break;
}
}
super.onSkipToPrevious();
}
@ -700,6 +758,25 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
}
}
private void startPlayingPodcastItem(PodcastItem podcastItem) {
Intent intent = new Intent(PodcastPlaybackService.this, PodcastPlaybackService.class);
intent.putExtra(PodcastPlaybackService.MEDIA_ITEM, podcastItem);
startService(intent);
}
private List<PodcastItem> getAllPodcastItems() {
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(PodcastPlaybackService.this);
List<PodcastItem> audioPodcasts= new ArrayList<>();
for(PodcastFeedItem podcastFeed : dbConn.getListOfFeedsWithAudioPodcasts()) {
long id = podcastFeed.mFeed.getId();
for(PodcastItem podcastItem : dbConn.getListOfAudioPodcastsForFeed(PodcastPlaybackService.this, id)) {
audioPodcasts.add(podcastItem);
}
}
return audioPodcasts;
}
private void initMediaSessions() {
//String packageName = PodcastNotificationToggle.class.getPackage().getName();

View file

@ -48,7 +48,7 @@ public class OkHttpSSLClient {
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.MINUTES)
.addInterceptor(new AuthorizationInterceptor(baseUrl, Credentials.basic(username, password, Util.UTF_8)))
.addInterceptor(new AuthorizationInterceptor(baseUrl, Credentials.basic(username, password)))
.addInterceptor(interceptor);
// register MemorizingTrustManager for HTTPS

View file

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#3A3A3A"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>

View file

@ -1,74 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<vector
android:height="108dp"
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:viewportHeight="108"
android:viewportWidth="108"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#008577"
android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
android:height="108dp"
android:autoMirrored="true"
android:viewportWidth="1344"
android:viewportHeight="1344">
<path
android:fillType="evenOdd"
android:pathData="M0,0h1344v1344h-1344z"
android:strokeLineJoin="round">
<aapt:attr name="android:fillColor">
<gradient
android:endX="1344"
android:endY="1.2959057E-4"
android:startX="163.34073"
android:startY="1344"
android:type="linear">
<item
android:color="#FF0082C9"
android:offset="0" />
<item
android:color="#FF1CAFFF"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
</vector>

View file

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#3A3A3A"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>

View file

@ -0,0 +1,12 @@
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/menuSeparator" />
</shape>
</item>
<item android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/app_drawer_feed_list_background_color" />
</shape>
</item>
</layer-list>

View file

@ -1,4 +1,5 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
@ -69,6 +70,17 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:layout_below="@+id/header_view" />
android:layout_below="@+id/header_view"
android:layout_above="@id/navigationMenu"
/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigationMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/navigationview_bg"
android:layout_alignParentBottom="true"
app:menu="@menu/drawer_menu" />
</RelativeLayout>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.navigation.NavigationView
app:itemIconPadding="23dp"
app:itemHorizontalPadding="13dp"
android:id="@+id/listfooterMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/app_drawer_feed_list_background_color"
app:menu="@menu/list_footer_menu" />
</LinearLayout>

View file

@ -41,7 +41,6 @@
android:gravity="center_vertical|start"
android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold"
android:layout_weight="1"
android:textAlignment="viewStart"
android:textIsSelectable="false"
@ -65,4 +64,4 @@
tools:text="13"
android:alpha=".54" />
</LinearLayout>
</LinearLayout>

View file

@ -28,7 +28,6 @@
android:textSize="14sp"
android:textColor="?attr/primaryTextColor"
tools:text="Summary"
android:textStyle="bold"
android:focusable="false" />
<TextView
@ -44,4 +43,4 @@
android:alpha=".54"
tools:text="13" />
</LinearLayout>
</LinearLayout>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/drawer_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:title="@string/action_settings" />
</menu>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_add_new_feed"
android:icon="@drawable/ic_add_black_24dp"
android:title="@string/action_add_new_feed"/>
</menu>

View file

@ -28,36 +28,23 @@
android:orderInCategory="95"
app:showAsAction="never" />
<item
android:id="@+id/menu_markAllAsRead"
app:showAsAction="never"
android:orderInCategory="96"
android:title="@string/menu_markAllAsRead"/>
<item
android:id="@+id/menu_downloadMoreItems"
app:showAsAction="never"
android:orderInCategory="97"
android:orderInCategory="96"
android:title="@string/menu_downloadMoreItems"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="98"
android:id="@+id/menu_markAllAsRead"
app:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_login"
android:orderInCategory="100"
app:showAsAction="never"
android:title="@string/action_login"/>
android:orderInCategory="97"
android:title="@string/menu_markAllAsRead"/>
<item
android:id="@+id/action_add_new_feed"
android:orderInCategory="101"
app:showAsAction="never"
android:visible="false"
android:title="@string/action_add_new_feed"/>
<item

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Autosincronizar</string>
<string name="title_activity_sync_interval_selector">Seleutor d\'intervalu de sincronizaciones</string>
<string name="title_activity_news_detail">ActividáDetallesNoticies</string>
<string name="empty_view_content">Nun hai nengún elementu equí</string>
<string name="no_wifi_available">Nun hai conexón WiFi</string>
@ -125,6 +124,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Namás con WIFI &amp; Datos</string>
<string name="pref_data_sync_image_cache_ask">Entruga cuanto nun tea coneutáu a una WIFI</string>
<string name="array_sync_interval_min_0">Enxamás</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Автоматично синхронизиране</string>
<string name="title_activity_sync_interval_selector">Избор на интервал за синхронизиране</string>
<string name="title_activity_news_detail">Детайли на Новината</string>
<string name="empty_view_content">Няма елементи</string>
<string name="toast_GettingMoreItems">Започва свалянето на няколко елемента... Моля изчакайте.</string>
@ -189,6 +188,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">През WiFi и мобилна мрежа</string>
<string name="pref_data_sync_image_cache_ask">Запитване когато няма WiFi връзка</string>
<string name="array_sync_interval_min_0">Никога</string>
<string name="array_sync_interval_min_5">5 минути</string>
<string name="array_sync_interval_min_15">15 минути</string>
<string name="array_sync_interval_min_30">30 минути</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Sincronitza automàticament</string>
<string name="title_activity_sync_interval_selector">Selector d\'interval de sincronització</string>
<string name="title_activity_sync_interval_selector">Interval de sincronització</string>
<string name="title_activity_news_detail">NotíciesDetailActivitat</string>
<string name="empty_view_content">Cap element</string>
<string name="toast_GettingMoreItems">Ha començat la descàrrega de més elements... Espereu si us plau.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre mòbil WiFi &amp;</string>
<string name="pref_data_sync_image_cache_ask">Pregunta-m\'ho quan no estigui connectat a una xarxa Wi-Fi</string>
<string name="array_sync_interval_min_0">Mai</string>
<string name="array_sync_interval_min_5">5 minuts</string>
<string name="array_sync_interval_min_15">15 minuts</string>
<string name="array_sync_interval_min_30">30 minuts</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatická synchronizace</string>
<string name="title_activity_sync_interval_selector">Volba intervalu synchronizace</string>
<string name="title_activity_sync_interval_selector">Interval synchronizace</string>
<string name="title_activity_news_detail">Podrobná aktivita zpráv</string>
<string name="empty_view_content">Žádné položky</string>
<string name="toast_GettingMoreItems">Zahájeno stahování vícero položek… Čekejte.</string>
@ -72,7 +72,7 @@
<string name="action_img_download">Stáhnout obrázek</string>
<string name="action_img_sharelink">Sdílet odkaz na obrázek</string>
<string name="action_img_open">Otevřít obrázek v prohlížeči</string>
<string name="action_img_copylink">Kopírovat odkaz na obrázek</string>
<string name="action_img_copylink">Zkopírovat odkaz na obrázek</string>
<string name="action_link_share">Sdílet odkaz</string>
<string name="action_link_open">Otevřít odkaz v prohlížeči</string>
<string name="action_link_copy">Zkopírovat odkaz</string>
@ -114,7 +114,7 @@
<item quantity="one">Stažena %d stará položka</item>
<item quantity="few">Staženo %d staré položky</item>
<item quantity="many">Staženo %d starých položek</item>
<item quantity="other">Staženo %d starých položek</item>
<item quantity="other">Staženy %d staré položky</item>
</plurals>
<string name="toast_no_more_downloads_available">Žádné další položky k dispozici</string>
<plurals name="fetched_items_so_far">
@ -132,7 +132,7 @@
<!-- General settings -->
<string name="pref_header_general">Obecné</string>
<string name="pref_title_general_sort_order">Řazení</string>
<string name="pref_title_general_sort_order">Pořadí řazení</string>
<string name="pref_general_sort_order_new_old">Nové -> staré</string>
<string name="pref_general_sort_order_old_new">Staré -> nové</string>
@ -142,8 +142,8 @@
<string name="pref_title_general_search_in">Hledat v</string>
<string name="pref_general_search_in_title">Nadpis</string>
<string name="pref_general_search_in_body">Tělo</string>
<string name="pref_general_search_in_title">Nadpisu</string>
<string name="pref_general_search_in_body">Těle textu</string>
<string name="dialog_clearing_cache">Vyprazdňování mezipaměťi</string>
<string name="dialog_clearing_cache_please_wait">Mazání odkládací paměti… Chvíli strpení.</string>
@ -179,7 +179,7 @@
<string name="pref_license_summary">GNU Affero General Public License (AGPL) verze 3</string>
<string name="pref_report_issue">Nahlásit problém</string>
<string name="pref_report_issue_summary">Vyžaduje účet na portálu GitHub (zdarma)</string>
<string name="pref_contribute">Přispět!</string>
<string name="pref_contribute">Zapojení se</string>
<string name="pref_contribute_summary">Získat zdrojové kódy</string>
<string name="pref_version">Aplikace Nextcloud Novinky pro Android</string>
@ -194,16 +194,16 @@
<string name="pref_display_news_detail_actionbar_icons_title">Ikony akce (podrobné zobrazení)</string>
<string name="pref_display_apptheme_auto">Světlé/tmavé (podle denní doby)</string>
<string name="pref_display_apptheme_light">Světlé</string>
<string name="pref_display_apptheme_dark">Tmavé</string>
<string name="pref_display_apptheme_auto">Světlý/tmavý (podle denní doby)</string>
<string name="pref_display_apptheme_light">Světlý</string>
<string name="pref_display_apptheme_dark">Tmavý</string>
<string name="pref_oled_mode">Černé pozadí</string>
<string name="pref_oled_mode_summary">Pro tmavý motiv vzhledu na OLED obrazovkách</string>
<string name="pref_display_browser_cct">Vestavěné Chrome vlastní karty</string>
<string name="pref_display_browser_built_in">Vestavěný prohlížeč</string>
<string name="pref_display_browser_external">Vnější prohlížeč</string>
<string name="pref_display_browser_external">Externí prohlížeč</string>
<string name="pref_display_feed_list_layout_thumbnails">Náhledy</string>
<string name="pref_display_feed_list_layout_simple_text">Jednoduchý text</string>
@ -227,7 +227,7 @@
<string name="content_desc_collapse">sbalit</string>
<string name="content_desc_mark_as_read">označit jako přečtené</string>
<string name="content_desc_mark_as_unread">označit jako nepřečtené</string>
<string name="content_desc_tap_to_refresh">ťuknout pro obnovení</string>
<string name="content_desc_tap_to_refresh">ťukněte pro znovunačtení</string>
<string name="content_desc_add_to_favorites">přidat k obíbeným</string>
<string name="content_desc_remove_from_favorites">odstranit z oblíbených</string>
<string name="content_desc_show_password">zobrazit heslo</string>
@ -236,8 +236,8 @@
<!-- Settings for Notifications -->
<string name="pref_header_notifications">Upozor</string>
<string name="pref_title_notification_new_articles_available">Zobrazit upozornění pokud jsou dostupné nové články</string>
<string name="pref_header_notifications">Upozorňová</string>
<string name="pref_title_notification_new_articles_available">Zobrazovat upozornění na nové články</string>
<!-- Login Dialog -->
@ -245,29 +245,30 @@
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Vypadá to, že aplikace Novinky není na serveru nainstalovaná nebo zapnutá. Následujte zde dané pokny k nastavení aplikace Novinky na server: %1$s</string>
<string name="login_dialog_text_something_went_wrong">Něco se pokazilo :(</string>
<string name="login_dialog_text_zero_version_code">Aplikace Novinky na webu vrátila verzi „0“. Nahlédněte do následujícího hlášení chyby: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">Tato verze aplikace není kompatibilní s vámi používanou aplikací Nextcloud novinky. Aktualizujte novinkovou aplikaci a aplikační rámec.</string>
<string name="login_dialog_title_security_warning">Bezpečnostní upozorně</string>
<string name="login_dialog_text_not_compatible">Tato verze mobilní aplikace není kompatibilní s aplikací Nextcloud Novinky na straně vámi využívaného serveru. Aktualizujte tam ji i její aplikační rámec (framework).</string>
<string name="login_dialog_title_security_warning">Varování ohledně zabezpeče</string>
<string name="login_dialog_text_security_warning">Nepoužíváte HTTPS, což je silně nedoporučeno. Útočník může zachytit váš provoz a získat přístup k nějakým citlivým datům (např. vašemu heslu).</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">Data &amp; synchronizace</string>
<string name="pref_header_data_sync">Data a synchronizace</string>
<string name="pref_title_clearCache">Vyprázdnit mezipaměť</string>
<string name="pref_title_CacheImagesOffline">Ukládat obrázky do offline mezipaměti</string>
<string name="pref_title_Max_Cache_Size">Maximální velikost mezipaměti</string>
<string name="pref_title_CacheImagesOffline">Předem si stahovat obrázky do mezipaměti</string>
<string name="pref_title_Max_Cache_Size">Nejvyšší umožněná velikost mezipaměti</string>
<string name="pref_data_sync_image_cache_never">Nikdy</string>
<string name="pref_data_sync_image_cache_wifi_only">Pouze přes WiFi</string>
<string name="pref_data_sync_image_cache_wifi_and_mobile">Přes WiFi &amp; Mobile</string>
<string name="pref_data_sync_image_cache_ask">Dotázat se pokud bez WiFi</string>
<string name="pref_data_sync_image_cache_wifi_and_mobile">Přes WiFi a mobilní data</string>
<string name="pref_data_sync_image_cache_ask">Dotázat se, když WiFi není</string>
<string name="array_sync_interval_min_0">Nikdy</string>
<string name="array_sync_interval_min_5">5 minut</string>
<string name="array_sync_interval_min_15">15 minut</string>
<string name="array_sync_interval_min_30">30 minut</string>
<string name="array_sync_interval_min_45">45 minut</string>
<string name="array_sync_interval_hour_1">1 hodina</string>
<string name="array_sync_interval_hour_2">Dvě hodiny</string>
<string name="array_sync_interval_hour_3">Tři hodiny</string>
<string name="array_sync_interval_hour_2">2 hodiny</string>
<string name="array_sync_interval_hour_3">3 hodiny</string>
<string name="array_sync_interval_hour_6">6 hodin</string>
<string name="array_sync_interval_hour_12">12 hodin</string>
<string name="array_sync_interval_hour_24">24 hodin</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatisk synkronisering </string>
<string name="title_activity_sync_interval_selector">Synkroniseringsinterval vælger</string>
<string name="title_activity_sync_interval_selector">Synkroniseringsinterval</string>
<string name="title_activity_news_detail">DetaljeretNyhedsAktivitet</string>
<string name="empty_view_content">Her er ingen artikler</string>
<string name="toast_GettingMoreItems">Hentning af flere elementer påbegyndt... Vent venligst.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Via wifi &amp; mobil</string>
<string name="pref_data_sync_image_cache_ask">Spørg når der ikke er wifi-forbindelse</string>
<string name="array_sync_interval_min_0">Aldrig</string>
<string name="array_sync_interval_min_5">5 minutter</string>
<string name="array_sync_interval_min_15">15 minutter</string>
<string name="array_sync_interval_min_30">30 minutter</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatisch synchronisieren</string>
<string name="title_activity_sync_interval_selector">Auswahl des Synchronisationsintervalls</string>
<string name="title_activity_sync_interval_selector">Synchronisierungsintervall</string>
<string name="title_activity_news_detail">NewsDetailAktivität</string>
<string name="empty_view_content">Keine Artikel vorhanden</string>
<string name="toast_GettingMoreItems">Herunterladen weiterer Elemente gestartet... Bitte warten.</string>
@ -38,7 +38,7 @@
<string name="action_login">Servereinstellungen</string>
<string name="action_save">Speichern</string>
<string name="action_settings">Einstellungen</string>
<string name="action_sync_settings">Einstellungen zur Synchronisation</string>
<string name="action_sync_settings">Einstellungen zur Synchronisierung</string>
<string name="action_add_new_feed">Einen neuen Feed hinzufügen</string>
<string name="action_textToSpeech">Vorlesen</string>
<string name="action_search">Suchen</string>
@ -89,14 +89,14 @@
<string name="move_feed_root_folder">Quellordner</string>
<!-- Strings related to login -->
<string name="login_manual">Manueller Login</string>
<string name="login_sso">Login mittels Nextcloud App</string>
<string name="login_manual">Manuelle Anmeldung</string>
<string name="login_sso">Anmeldung mittels Nextcloud-App</string>
<string name="pref_title_username">Benutzername</string>
<string name="pref_title_password">Passwort</string>
<string name="pref_title_owncloudRootPath">Nextcloud Wurzeladresse</string>
<string name="pref_default_owncloudRootPath">https://1.2.3.4/owncloud</string>
<string name="action_sign_in_short">Einloggen</string>
<string name="action_sign_in_short">Anmelden</string>
<string name="login_progress_signing_in">Logge ein...</string>
<!-- <string name="error_incorrect_password">Incorrect password</string> -->
<string name="error_field_required">Dieses Feld ist erforderlich.</string>
@ -242,7 +242,7 @@
<!-- Data & Sync -->
<string name="pref_header_data_sync">Daten &amp; Synchronisation</string>
<string name="pref_header_data_sync">Daten &amp; Synchronisierung</string>
<string name="pref_title_clearCache">Zwischenspeicher leeren</string>
<string name="pref_title_CacheImagesOffline">Bilder Offline zwischenspeichern</string>
<string name="pref_title_Max_Cache_Size">Maximale Cachegröße</string>
@ -252,6 +252,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Über WLAN &amp; Mobil</string>
<string name="pref_data_sync_image_cache_ask">Bei nicht verbundenem WLAN fragen</string>
<string name="array_sync_interval_min_0">Niemals</string>
<string name="array_sync_interval_min_5">5 Minuten</string>
<string name="array_sync_interval_min_15">15 Minuten</string>
<string name="array_sync_interval_min_30">30 Minuten</string>

View file

@ -2,14 +2,14 @@
<resources>
<string name="auto_sync_string">Αυτόματος συγχρονισμός</string>
<string name="title_activity_sync_interval_selector">Επιλογέας διαστήματος συγχρονισμού</string>
<string name="title_activity_sync_interval_selector">Περίοδος συγχρονισμού</string>
<string name="title_activity_news_detail">Λεπτομέρειες Δραστηριότητας Ειδήσεων</string>
<string name="empty_view_content">Κανένα στοιχείο</string>
<string name="toast_GettingMoreItems">Γίνεται λήψη περισσότερων αντικειμένων... Παρακαλώ περιμένετε. </string>
<string name="no_wifi_available">Δεν υπάρχει ασύρματη σύνδεση</string>
<string name="do_you_want_to_download_without_wifi"> Θα θέλατε τη λήψη εικόνων χωρίς σύνδεση Wi-Fi </string>
<string name="current_version">Χρησιμοποιείτε την έκδοση %s</string>
<string name="widget_header">Νέα ownCloud</string>
<string name="widget_header">Νέα Nextcloud</string>
<plurals name="message_bar_new_articles_available">
<item quantity="one">%d νέο αντικείμενο διαθέσιμο</item>
<item quantity="other">%d νέα αντικείμενα διαθέσιμα</item>
@ -251,9 +251,10 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Μέσω WiFi &amp; Κινητής</string>
<string name="pref_data_sync_image_cache_ask">Ερώτηση αν δεν υπάρχει σύνδεση WiFi</string>
<string name="array_sync_interval_min_5">5 Λεπτά</string>
<string name="array_sync_interval_min_15">15 Λεπτά</string>
<string name="array_sync_interval_min_30">30 Λεπτά</string>
<string name="array_sync_interval_min_0">Ποτέ</string>
<string name="array_sync_interval_min_5">5 λεπτά</string>
<string name="array_sync_interval_min_15">15 λεπτά</string>
<string name="array_sync_interval_min_30">30 λεπτά</string>
<string name="array_sync_interval_min_45">45 λεπτά</string>
<string name="array_sync_interval_hour_1">1 ώρα</string>
<string name="array_sync_interval_hour_2">2 ώρες</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Auto sync</string>
<string name="title_activity_sync_interval_selector">Sync Interval Selector</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">No items here</string>
<string name="toast_GettingMoreItems">Download of more items started… Please wait.</string>
@ -235,6 +234,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Over WiFi &amp; Mobile</string>
<string name="pref_data_sync_image_cache_ask">Ask when not connected to WiFi</string>
<string name="array_sync_interval_min_0">Never</string>
<string name="array_sync_interval_min_5">5 Minutes</string>
<string name="array_sync_interval_min_15">15 Minutes</string>
<string name="array_sync_interval_min_30">30 Minutes</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="toast_GettingMoreItems">La descarga de más elmentos ha comenzado... Por favor espera. </string>
@ -192,6 +191,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Control del intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">Aquí no hay elementos</string>
<string name="no_wifi_available">No estás conectado a una WiFi</string>
@ -170,6 +169,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Mediante WiFi &amp; datos móviles</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no se esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 Minutos</string>
<string name="array_sync_interval_min_15">15 Minutos</string>
<string name="array_sync_interval_min_30">30 Minutos</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Autosincronizar</string>
<string name="title_activity_sync_interval_selector">Sincronizar Selector de Intervalo</string>
<string name="title_activity_sync_interval_selector">Intervalo de sincronización</string>
<string name="title_activity_news_detail">ActividadDetallesNoticias</string>
<string name="empty_view_content">No hay artículos aquí</string>
<string name="toast_GettingMoreItems">Se ha iniciado la descarga de varios elementos... por favor, espere.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi &amp; Móvil.</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cuando no esté conectado a una WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 minutos</string>
<string name="array_sync_interval_min_15">15 minutos</string>
<string name="array_sync_interval_min_30">30 minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Auto sünk</string>
<string name="title_activity_sync_interval_selector">Sync sageduse valik</string>
<string name="title_activity_news_detail">UudisteÜksikasjadeTegevused</string>
<string name="empty_view_content">Siin pole üksusi</string>
<string name="no_wifi_available">WiFi pole ühendatud</string>
@ -156,6 +155,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">WiFi &amp; andmeside</string>
<string name="pref_data_sync_image_cache_ask">Küsi, kui pole WiFisse ühendatud</string>
<string name="array_sync_interval_min_0">Mitte kunagi</string>
<string name="array_sync_interval_min_5">5 minutit</string>
<string name="array_sync_interval_min_15">15 minutit</string>
<string name="array_sync_interval_min_30">30 minutit</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Sinkronizazio automatikoa</string>
<string name="title_activity_sync_interval_selector">Sinkronizazio tartearen hautatzailea</string>
<string name="title_activity_sync_interval_selector">Sinkronizazio bitartea</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Ez dago elementurik hemen</string>
<string name="toast_GettingMoreItems">Elementu gehiagoren deskarga hasita... Itxaron mesedez.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Wifi &amp; mugikor bidez</string>
<string name="pref_data_sync_image_cache_ask">Galdetu WiFi-ra konektatu gabe badago</string>
<string name="array_sync_interval_min_0">Inoiz ez</string>
<string name="array_sync_interval_min_5">5 minutu</string>
<string name="array_sync_interval_min_15">15 minutu</string>
<string name="array_sync_interval_min_30">30 minutu</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">همگام‌سازی خودکار</string>
<string name="title_activity_sync_interval_selector">گزینشگر وقفهٔ همگام سازی</string>
<string name="title_activity_news_detail">فعالیت جزییات اخبار</string>
<string name="empty_view_content">موردی وجود ندارد</string>
<string name="toast_GettingMoreItems">بارگیری موارد بیش‌تر آغاز شد… صبر لطفاً </string>
@ -26,6 +25,9 @@
<string name="tv_showing_cached_version">در حال نمایش نگارش ذخیره‌شده</string>
<string name="permission_req_location_twilight_title">تم تاریک/روشن خودکار</string>
<string name="permission_req_location_twilight_text">به منظور جابجایی خودکار بین تم نور و تاریک ، لازم است مکان دستگاه ها را تعیین کنید تا زمان طلوع و غروب خورشید مشخص شود.</string>
<!-- Action Bar Items -->
<string name="action_starred">ستاره‌دار</string>
<string name="action_read">خواندن</string>
@ -40,6 +42,9 @@
<string name="action_textToSpeech">بازخوانی</string>
<string name="action_search">جستجو</string>
<string name="action_download_articles_offline">بارگیری برون‌خط مقاله‌ها</string>
<!-- notifications -->
<string name="notification_download_articles_offline">بارگیری مقالات برای استفاده آفلاین</string>
<string name="notification_download_images_offline">بارگیری تصاویر برای استفاده آفلاین</string>
<plurals name="notification_new_items_ticker">
<item quantity="one">%d مورد خوانده‌نشده دارید</item>
<item quantity="other">%d مورد خوانده‌نشده دارید</item>
@ -52,6 +57,10 @@
<!-- Add new feed -->
<string name="hint_feed_url">نشانی خوراک</string>
<string name="action_add_feed">افزودن خوراک</string>
<string name="import_opml">وارد کردن OPML</string>
<string name="export_opml">OPML را بیرون ببرید</string>
<!-- String related to NewsDetail-ContextMenu Items -->
<string name="action_img_download">بارگیری تصویر</string>
<string name="action_img_sharelink">هم‌رسانی پیوند تصویر</string>
@ -78,6 +87,9 @@
<string name="feed_move_list_description">پوشه‌ای برای انتقال خوراک برگزینید</string>
<string name="move_feed_root_folder">پوشهٔ ریشه</string>
<!-- Strings related to login -->
<string name="login_manual">ورود به سیستم دستی</string>
<string name="login_sso">ورود به سیستم با استفاده از برنامه فایل های نکست کلود</string>
<string name="pref_title_username">نام کاربری</string>
<string name="pref_title_password">گذرواژه</string>
<string name="pref_title_owncloudRootPath">نشانی ریشهٔ نکست‌کلود</string>
@ -114,6 +126,9 @@
<string name="pref_general_sort_order_new_old">جدید -> قدیم</string>
<string name="pref_general_sort_order_old_new">قدیم -> جدید</string>
<string name="pref_rename_action_swipe_right">هنگام حرکت به سمت راست ، اقدام کنید</string>
<string name="pref_rename_action_swipe_left">هنگام حرکت به سمت چپ ، اقدام کنید</string>
<string name="pref_title_general_search_in">جست‌وجو در</string>
<string name="pref_general_search_in_title">عنوان</string>
@ -149,6 +164,15 @@
<!-- Settings for About -->
<string name="pref_header_about">درباره</string>
<string name="pref_license">License</string>
<string name="pref_license_summary">مجوز عمومی GNU Affero (AGPL) نسخه 3</string>
<string name="pref_report_issue">گزارش یک مسئله</string>
<string name="pref_report_issue_summary">به یک حساب GitHub (رایگان) نیاز دارد</string>
<string name="pref_contribute">مشارکت!</string>
<string name="pref_contribute_summary">کد منبع را دریافت کنید</string>
<string name="pref_version">برنامه آندروید Nextcloud News</string>
<!-- Settings for Display -->
<string name="pref_header_display">نمایش</string>
<string name="pref_title_app_theme">زمینه</string>
@ -172,6 +196,7 @@
<string name="pref_display_feed_list_layout_thumbnails">بندانگشتی‌ها</string>
<string name="pref_display_feed_list_layout_simple_text">متن ساده</string>
<string name="pref_display_feed_list_layout_headlines">عناوین</string>
<string name="pref_display_feed_list_layout_full_text">متن کامل</string>
<string name="pref_display_feed_list_layout_web_layout">چینش وب</string>
<string name="pref_display_feed_list_layout_card_view">نمای کارتی</string>
@ -225,6 +250,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">روی وای‌فای و همراه</string>
<string name="pref_data_sync_image_cache_ask">پرسش هنگام وصل نبودن به وای‌فای</string>
<string name="array_sync_interval_min_0">هرگز</string>
<string name="array_sync_interval_min_5">۵ دقیقه</string>
<string name="array_sync_interval_min_15">یک ربع</string>
<string name="array_sync_interval_min_30">نیم ساعت</string>

View file

@ -2,11 +2,14 @@
<resources>
<string name="auto_sync_string">Automaattinen synkronointi</string>
<string name="title_activity_sync_interval_selector">Synkronointivälin valitsin</string>
<string name="title_activity_sync_interval_selector">Synkronointiväli</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Ei kohteita</string>
<string name="toast_GettingMoreItems">Lisäkohteiden lataus alkoi... Odota.</string>
<string name="no_wifi_available">Ei WiFi-yhteyttä</string>
<string name="do_you_want_to_download_without_wifi">Haluatko ladata kuvat ilman wifi-yhteyttä</string>
<string name="current_version">Käytössäsi on versio %s</string>
<string name="widget_header">Nextcloud uutiset</string>
<plurals name="message_bar_new_articles_available">
<item quantity="one">%d uusi kohde saatavilla</item>
<item quantity="other">%d uutta kohdetta saatavilla</item>
@ -24,6 +27,8 @@
<string name="tv_showing_cached_version">Näytetään välimuistissa oleva versio</string>
<string name="permission_req_location_twilight_title">Automaattinan vaalea tai tumma teema</string>
<string name="permission_req_location_twilight_text">Automaattinen teeman vaihto valoisasta tummaan vaatii laitteen sijainnin, jotta auringon nousu- ja laskuajan voidaan määrittää.</string>
<!-- Action Bar Items -->
<string name="action_starred">Varustettu tähdellä</string>
<string name="action_read">Luku</string>
@ -37,6 +42,10 @@
<string name="action_add_new_feed">Lisää uusi syöte</string>
<string name="action_textToSpeech">Lue ääneen</string>
<string name="action_search">Etsi</string>
<string name="action_download_articles_offline">Lataa artikkelit ilman nettiyhteyttä</string>
<!-- notifications -->
<string name="notification_download_articles_offline">Lataa artikkelit kaytettäväksi ilman nettiyhteyttä</string>
<string name="notification_download_images_offline">Lataa kuvat kaytettäväksi ilman nettiyhteyttä</string>
<plurals name="notification_new_items_ticker">
<item quantity="one">%d uusi lukematon kohde</item>
<item quantity="other">%d uutta lukematonta kohdetta</item>
@ -81,6 +90,7 @@
<!-- Strings related to login -->
<string name="login_manual">Manuaalinen kirjautuminen</string>
<string name="login_sso">Kirjaudu sisään käyttäen Nextcloud tiedostosovellusta</string>
<string name="pref_title_username">Käyttäjätunnus</string>
<string name="pref_title_password">Salasana</string>
<string name="pref_title_owncloudRootPath">ownCloudin juuriosoite</string>
@ -117,6 +127,9 @@
<string name="pref_general_sort_order_new_old">Uusi -> Vanha</string>
<string name="pref_general_sort_order_old_new">Vanha -> Uusi</string>
<string name="pref_rename_action_swipe_right">Toiminto oikealle pyyhkäistäessä</string>
<string name="pref_rename_action_swipe_left">Toiminto vasemmalle pyyhkäistäessä</string>
<string name="pref_title_general_search_in">Etsi kohteesta</string>
<string name="pref_general_search_in_title">Otsikko</string>
@ -128,8 +141,14 @@
<string name="warning">Varoitus</string>
<string name="pref_title_AutoSyncOnStart">Synkronoi käynnistäessä</string>
<string name="pref_title_ShowOnlyUnread">Näytä vain lukemattomat kohteet</string>
<string name="pref_title_DisableHostnameVerification">Poista koneen nimen (hostname) varmistus</string>
<string name="pref_title_NavigateWithVolumeButtons">Liiku äänipainikkeilla</string>
<string name="pref_title_MarkAsReadWhileScrolling">Merkitse luetuiksi vierittäessä</string>
<string name="pref_title_OpenInBrowserDirectly">Ohita yksityiskohtainen näkymä ja avaa artikkeli selaimessa</string>
<string name="dialog_feature_not_available">Tämä ominaisuus ei ole käytettävissä sovelluksen tässä (avoimen lähdekoodin) versiossa. Jos haluat käyttää ominaisuutta, lataa sovellus GitHub säilöstä tai google ohjelmakaupasta.</string>
<!-- MemorizingTrustManager -->
<string name="mtm_accept_cert">Hyväksytäänkö tuntematon varmenne?</string>
<string name="mtm_decision_always">Aina</string>
@ -147,10 +166,14 @@
<!-- Settings for About -->
<string name="pref_header_about">Tietoja</string>
<string name="pref_license">Lisenssi</string>
<string name="pref_license_summary">GNU Affero General Public License (AGPL) versio 3</string>
<string name="pref_report_issue">Ilmoita ongelmasta</string>
<string name="pref_report_issue_summary">Vaatii ilmaisen GitHub-tilin</string>
<string name="pref_contribute">Osallistu!</string>
<string name="pref_contribute_summary">Hanki lähdekoodi</string>
<string name="pref_version">Nextcloud uutiset Android sovellus</string>
<!-- Settings for Display -->
<string name="pref_header_display">Näyttö</string>
<string name="pref_title_app_theme">Teema</string>
@ -159,14 +182,21 @@
<string name="pref_display_browser">Selain</string>
<string name="pref_display_news_detail_actionbar_icons_title">Toiminto kuvakkeet (yksityiskohtainen näkymä)</string>
<string name="pref_display_apptheme_auto">Vaalea/tumma (pohjautuu kellonaikaan)</string>
<string name="pref_display_apptheme_light">Vaalea</string>
<string name="pref_display_apptheme_dark">Tumma</string>
<string name="pref_oled_mode">Musta tausta</string>
<string name="pref_oled_mode_summary">Tumma teema OLED näytöille</string>
<string name="pref_display_browser_cct">Sisäänrakennetut Chrome muokatut välilehdet</string>
<string name="pref_display_browser_built_in">Sisäänrakennettu selain</string>
<string name="pref_display_browser_external">Ulkoinen selain</string>
<string name="pref_display_feed_list_layout_thumbnails">Esikatselukuvat</string>
<string name="pref_display_feed_list_layout_simple_text">Yksinkertainen teksti</string>
<string name="pref_display_feed_list_layout_headlines">Otsikot</string>
<string name="pref_display_feed_list_layout_full_text">Koko teksti</string>
<string name="pref_display_feed_list_layout_web_layout">Web-asettelu</string>
@ -181,6 +211,8 @@
<string name="content_desc_play">toista</string>
<string name="content_desc_pause">keskeytä</string>
<string name="content_desc_playback_speed">toistonopeus</string>
<string name="content_desc_rewind">takaisinkelaus</string>
<string name="content_desc_forward">eteenpäin</string>
<string name="content_desc_expand">laajenna</string>
<string name="content_desc_collapse">supista</string>
<string name="content_desc_mark_as_read">merkitse luetuksi</string>
@ -200,8 +232,14 @@
<!-- Login Dialog -->
<string name="login_dialog_title_error">Virhe</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Näyttäisi, että uutis sovellusat ei ole asennettu tai aktivoitu palvelimellesi. Seuraa tässä annettuja ohjeita asentaaksesi uutis sovelluksen palvelimellesi: %1$s</string>
<string name="login_dialog_text_something_went_wrong">Jokin meni pieleen :(</string>
<string name="login_dialog_text_zero_version_code">Nettiuutissovellus palautti versio \"0\":n. Katso seuraavaa virheraporttia: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">Tämä sovellus versio ei ole yhteensopiva käyttämäsi Nextcloud uutis sovelluksen kanssa. Päivitä uutissovellus ja sovelluskehikko.</string>
<string name="login_dialog_title_security_warning">Turvallisuusvaroitus</string>
<string name="login_dialog_text_security_warning">Et käytä HTTPS protokollaa, jota vahvasti suositellaan. Hyökkääjä voi siepata viestit ja saada pääsyn joihinkin arkaluontoisiin tietoihin, kuten salasana tms..</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">Data &amp; synkronointi</string>
<string name="pref_title_clearCache">Tyhjennä välimuisti</string>
@ -213,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Wifi- ja mobiilidatayhteydellä</string>
<string name="pref_data_sync_image_cache_ask">Kysy kun ei yhteyttä wifiin</string>
<string name="array_sync_interval_min_0">Ei koskaan</string>
<string name="array_sync_interval_min_5">5 minuuttia</string>
<string name="array_sync_interval_min_15">15 minuuttia</string>
<string name="array_sync_interval_min_30">30 minuuttia</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Synchronisation auto.</string>
<string name="title_activity_sync_interval_selector">Sélecteur d\'intervalle de synchronisation</string>
<string name="title_activity_sync_interval_selector">Intervalle de synchronisation</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Aucun article</string>
<string name="toast_GettingMoreItems">Téléchargement d\'articles additionnels en cours... Veuillez patienter.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Via WiFi &amp; mobile</string>
<string name="pref_data_sync_image_cache_ask">Demander lorsqu\'il n\'y a pas de connexion WiFi</string>
<string name="array_sync_interval_min_0">Jamais</string>
<string name="array_sync_interval_min_5">5 Minutes</string>
<string name="array_sync_interval_min_15">15 Minutes</string>
<string name="array_sync_interval_min_30">30 Minutes</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Sincronización automática</string>
<string name="title_activity_sync_interval_selector">Selector de intervalo de sincronización</string>
<string name="title_activity_sync_interval_selector">Intervalo de sincronización</string>
<string name="title_activity_news_detail">Detalle da actividade das novas</string>
<string name="empty_view_content">Non hai elementos aquí</string>
<string name="toast_GettingMoreItems">Iniciada a descarga de máis elementos... Agarde.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Sobre WiFi e móbil</string>
<string name="pref_data_sync_image_cache_ask">Preguntar cando non estea conectado a unha WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 minutos</string>
<string name="array_sync_interval_min_15">15 minutos</string>
<string name="array_sync_interval_min_30">30 minutos</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">סנכרון אוטומטי</string>
<string name="title_activity_sync_interval_selector">בורר הפרשים בין סנכרונים</string>
<string name="title_activity_sync_interval_selector">הפרש בין סנכרונים</string>
<string name="empty_view_content">אין כאן פריטים</string>
<string name="toast_GettingMoreItems">החלה הורדה של פריטים נוספים… נא להמתין.</string>
<string name="no_wifi_available">אין חיבור WiFi</string>
@ -27,6 +27,9 @@
<string name="tv_showing_cached_version">הגרסה השמורה מוצגת</string>
<string name="permission_req_location_twilight_title">ערכת עיצוב בהירה/כהה</string>
<string name="permission_req_location_twilight_text">כדי להחליף אוטומטית בין ערכות העיצוב הכהה לבין הבהירה ולהיפך, יש לספק את מיקום המכשיר כדי לאתר את זמני הזריחה והשקיעה.</string>
<!-- Action Bar Items -->
<string name="action_starred">מסומן בכוכב</string>
<string name="action_read">נקרא</string>
@ -40,13 +43,23 @@
<string name="action_add_new_feed">הוספת ערוץ תוכן חדש</string>
<string name="action_textToSpeech">הקראה</string>
<string name="action_search">חיפוש</string>
<string name="action_download_articles_offline">הורדת מאמרים לשימוש בלתי מקוון</string>
<string name="action_download_articles_offline">הורדת כתבות לשימוש בלתי מקוון</string>
<!-- notifications -->
<string name="notification_download_articles_offline">מתקבלות כתבות לשימוש בלתי מקוון</string>
<string name="notification_download_images_offline">מתקבלות תמונות לשימוש בלתי מקוון</string>
<plurals name="notification_new_items_ticker">
<item quantity="one">יש לך פריט חדש %d שלא נקרא</item>
<item quantity="two">יש לך %dפריטים חדשים שלא נקראו </item>
<item quantity="many">יש לך %d פריטים חדשים שלא נקראו</item>
<item quantity="other">יש לך %d פריטים חדשים שלא נקראו</item>
</plurals>
<plurals name="notification_new_items_text">
<item quantity="one">יש פריט (%d) חדש שלא נקרא</item>
<item quantity="two">יש %d פריטים חדשים שלא נקראו</item>
<item quantity="many">יש %d פריטים חדשים שלא נקראו</item>
<item quantity="other">יש %d פריטים חדשים שלא נקראו</item>
</plurals>
<!-- Add new feed -->
<string name="hint_feed_url">נתיב ערוץ תוכן</string>
<string name="action_add_feed">הוספת ערוץ תוכן</string>
@ -123,6 +136,9 @@
<string name="pref_general_sort_order_new_old">חדש -> ישן</string>
<string name="pref_general_sort_order_old_new">ישן -> חדש</string>
<string name="pref_rename_action_swipe_right">פעולה להחלקה ימינה</string>
<string name="pref_rename_action_swipe_left">פעולה להחלקה שמאלה</string>
<string name="pref_title_general_search_in">חיפוש תחת</string>
<string name="pref_general_search_in_title">כותרת</string>
@ -220,21 +236,31 @@
<!-- Settings for Notifications -->
<string name="pref_header_notifications">דיווחים</string>
<string name="pref_title_notification_new_articles_available">הצגת התראות כשמפורסמות ידיעות חדשות</string>
<string name="pref_title_notification_new_articles_available">להציג התראות כשמתפרסמות כתבות חדשות</string>
<!-- Login Dialog -->
<string name="login_dialog_title_error">שגיאה</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">נראה כי יישומון החדשות שלך לא מותקן או מופעל בשרת שלך. נא לעקוב אחר ההנחיות שמסופקות כאן כדי להתקין את יישומון החדשות על השרת שלך: %1$s</string>
<string name="login_dialog_text_something_went_wrong">משהו השתבש :(</string>
<string name="login_dialog_text_zero_version_code">יישומון החדשות המקוון החזיר שמספר הגרסה שלו היא „0”. נא לעיין בדיווח התקלה הבא: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">גרסת יישומון זו אינה תואמת ליישומון החדשות שלך ב־Nextcloud. נא לשדרג את יישומון החדשות ואת סביבת עבודת היישומונים.</string>
<string name="login_dialog_title_security_warning">אזהרת אבטחה</string>
<string name="login_dialog_text_security_warning">אינך עושה שימוש ב־HTTPS, שהיא שיטת העבודה המומלצת. לתוקף יש אפשרות ליירט את התעבורה שלך ולקבל גישה לנתונים רגישים (למשל: הססמה שלך).</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">נתונים וסנכרון</string>
<string name="pref_title_clearCache">פינוי מטמון</string>
<string name="pref_title_CacheImagesOffline">לשמור את התמונות במטמון</string>
<string name="pref_title_Max_Cache_Size">גודל המטמון המרבי</string>
<string name="pref_data_sync_image_cache_never">לעולם לא</string>
<string name="pref_data_sync_image_cache_wifi_only">דרך רשת אלחוטית בלבד</string>
<string name="pref_data_sync_image_cache_wifi_and_mobile">דרך רשת אלחוטית וסלולרית</string>
<string name="pref_data_sync_image_cache_ask">לשאול כאשר אין חיבור אלחוטי</string>
<string name="array_sync_interval_min_0">מעולם לא</string>
<string name="array_sync_interval_min_5">5 דקות</string>
<string name="array_sync_interval_min_15">15 דקות</string>
<string name="array_sync_interval_min_30">30 דקות</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatska sinkronizacija</string>
<string name="title_activity_sync_interval_selector">Odabirač intervala sinkronizacije</string>
<string name="title_activity_sync_interval_selector">Interval sinkronizacije</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Ovdje nema stavki</string>
<string name="toast_GettingMoreItems">Počelo je preuzimanje više stavki... Pričekajte.</string>
@ -256,6 +256,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Preko putem (Wi-Fi) i mobilne mreže</string>
<string name="pref_data_sync_image_cache_ask">Pitaj kada uređaj nije spojen na bežičnu (Wi-Fi) mrežu</string>
<string name="array_sync_interval_min_0">Nikad</string>
<string name="array_sync_interval_min_5">5 minuta</string>
<string name="array_sync_interval_min_15">15 minuta</string>
<string name="array_sync_interval_min_30">30 minuta</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatikus szinkronizáció</string>
<string name="title_activity_sync_interval_selector">A szinkronizáció gyakoriságának kiválasztása</string>
<string name="title_activity_sync_interval_selector">Szinkronizáció gyakorisága</string>
<string name="title_activity_news_detail">HírekRészletTevékenység</string>
<string name="empty_view_content">Itt nincs semmi</string>
<string name="toast_GettingMoreItems">További elemek letöltése megkezdődött… Várjon.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">WiFi-n és mobilhálózaton</string>
<string name="pref_data_sync_image_cache_ask">Kérdezze meg, ha nincs WiFi-n</string>
<string name="array_sync_interval_min_0">Soha</string>
<string name="array_sync_interval_min_5">5 perc</string>
<string name="array_sync_interval_min_15">15 perc</string>
<string name="array_sync_interval_min_30">30 perc</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sync otomatis</string>
<string name="title_activity_sync_interval_selector">Pemilih Jeda Sync</string>
<string name="title_activity_news_detail">AktivitasRinciBerita</string>
<string name="empty_view_content">Tak ada item disini</string>
<string name="no_wifi_available">Tidak ada WiFi yang terhubung</string>
@ -161,6 +160,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Melalui WiFi &amp; Mobile</string>
<string name="pref_data_sync_image_cache_ask">Tanya ketika tidak tersambung ke WiFi</string>
<string name="array_sync_interval_min_0">Tidak pernah</string>
<string name="array_sync_interval_min_5">5 Menit</string>
<string name="array_sync_interval_min_15">15 Menit</string>
<string name="array_sync_interval_min_30">30 Menit</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sjálfvirk samstilling</string>
<string name="title_activity_sync_interval_selector">Val á bili milli samstillinga</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Engin atriði hér</string>
<string name="toast_GettingMoreItems">Byrjaði að sækja fleiri atriði... Bíddu aðeins.</string>
@ -242,6 +241,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Yfir WiFi-net &amp; farsímasamband</string>
<string name="pref_data_sync_image_cache_ask">Spyrja þegar ekki er WiFi-tenging</string>
<string name="array_sync_interval_min_0">Aldrei</string>
<string name="array_sync_interval_min_5">5 mínútur</string>
<string name="array_sync_interval_min_15">15 mínútur</string>
<string name="array_sync_interval_min_30">30 mínútur</string>

View file

@ -2,14 +2,14 @@
<resources>
<string name="auto_sync_string">Sincronizzazione automatica</string>
<string name="title_activity_sync_interval_selector">Selettore intervallo di sincronizzazione</string>
<string name="title_activity_sync_interval_selector">Intervallo di sincronizzazione</string>
<string name="title_activity_news_detail">AttivitàDettagliNotizie</string>
<string name="empty_view_content">Nessun elemento</string>
<string name="toast_GettingMoreItems">Iniziato lo scaricamento di altri elementi... Attendi.</string>
<string name="no_wifi_available">WiFi non connesso</string>
<string name="do_you_want_to_download_without_wifi">Vuoi scaricare le immagini senza una connessione WiFi</string>
<string name="current_version">Stai usando la versione %s</string>
<string name="widget_header">Notizie di ownCloud</string>
<string name="widget_header">Notizie di NextCloud</string>
<plurals name="message_bar_new_articles_available">
<item quantity="one">%d nuovi elemento disponibile</item>
<item quantity="other">%d nuovi elementi disponibili</item>
@ -93,8 +93,8 @@
<string name="login_sso">Accedi utilizzando l\'applicazione File di Nextcloud</string>
<string name="pref_title_username">Nome utente</string>
<string name="pref_title_password">Password</string>
<string name="pref_title_owncloudRootPath">Indirizzo radice di ownCloud</string>
<string name="pref_default_owncloudRootPath">https://1.2.3.4/owncloud</string>
<string name="pref_title_owncloudRootPath">Indirizzo radice di Nextcloud</string>
<string name="pref_default_owncloudRootPath">https://1.2.3.4/nextcloud</string>
<string name="action_sign_in_short">Accedi</string>
<string name="login_progress_signing_in">Accesso in corso...</string>
@ -150,7 +150,7 @@
<!-- MemorizingTrustManager -->
<string name="mtm_accept_cert">Accettare un certificato sconosciuto?</string>
<string name="mtm_accept_cert">Vuoi accettare un certificato sconosciuto?</string>
<string name="mtm_decision_always">Sempre</string>
<string name="mtm_decision_abort">Interrompi</string>
<string name="mtm_notification">Verifica certificato</string>
@ -178,21 +178,21 @@
<string name="pref_header_display">Schermo</string>
<string name="pref_title_app_theme">Tema</string>
<string name="pref_title_feed_list_layout">Struttura elenco fonti</string>
<string name="pref_title_font_size">Dimensiine carattere</string>
<string name="pref_title_font_size">Dimensione carattere</string>
<string name="pref_display_browser">Browser</string>
<string name="pref_display_news_detail_actionbar_icons_title">Azioni delle icone (vista dettagliata)</string>
<string name="pref_display_apptheme_auto">Chiaro / Scuro (basato su ll\'orario)</string>
<string name="pref_display_apptheme_auto">Chiaro / Scuro (basato sull\'orario)</string>
<string name="pref_display_apptheme_light">Chiaro</string>
<string name="pref_display_apptheme_dark">Scuro</string>
<string name="pref_oled_mode">Sfondo scuro</string>
<string name="pref_oled_mode_summary">Per tema scuro su per schermi OLED</string>
<string name="pref_oled_mode_summary">Per tema scuro su schermi OLED</string>
<string name="pref_display_browser_cct">Schede personalizzate di Chrome integrate</string>
<string name="pref_display_browser_built_in">Broswer integrato</string>
<string name="pref_display_browser_built_in">Browser integrato</string>
<string name="pref_display_browser_external">Browser esterno</string>
<string name="pref_display_feed_list_layout_thumbnails">Miniature</string>
@ -232,13 +232,13 @@
<!-- Login Dialog -->
<string name="login_dialog_title_error">Errore</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Sembra che la t\'applicazione delle notizie non sia installata o attivata sul tuo server. Segui le istruzioni fornite qui per configurare l\'applicazione sul tuo server: %1$s</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Sembra che l\'applicazione delle notizie non sia installata o attivata sul tuo server. Segui le istruzioni fornite qui per configurare l\'applicazione sul tuo server: %1$s</string>
<string name="login_dialog_text_something_went_wrong">Qualcosa non ha funzionato :(</string>
<string name="login_dialog_text_zero_version_code">L\'applicazione Web News ha restituito Version \"0\". Dai uno sguardo alla seguente segnalazione di bug:
https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">La versione di questa applicazione non è compatibile con l\'applicazione News di Nextcloud. Aggiorna l\'applicazione e il framework.</string>
<string name="login_dialog_title_security_warning">Avviso di sicurezza</string>
<string name="login_dialog_text_security_warning">Non stai usando HTTPS, che è fortemente consigliato. Un attaccante potrebbe intercettare il tuo traffico e ottenere accesso a dati sensibili (ad esempio la tua password).</string>
<string name="login_dialog_text_security_warning">Non stai usando HTTPS, che è fortemente consigliato. Un malintenzionato potrebbe intercettare il tuo traffico e ottenere accesso a dati sensibili (ad esempio la tua password).</string>
<!-- Data & Sync -->
@ -252,6 +252,7 @@ https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="pref_data_sync_image_cache_wifi_and_mobile">Su WiFi e mobile</string>
<string name="pref_data_sync_image_cache_ask">Chiedi se non connesso al WiFi</string>
<string name="array_sync_interval_min_0">Mai</string>
<string name="array_sync_interval_min_5">5 minuti</string>
<string name="array_sync_interval_min_15">15 minuti</string>
<string name="array_sync_interval_min_30">30 minuti</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">自動同期</string>
<string name="title_activity_sync_interval_selector">同期間隔を指定</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">アイテムがありません</string>
<string name="toast_GettingMoreItems">他のアイテムのダウンロードが開始されました...しばらくお待ちください。</string>
@ -246,6 +245,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">WiFi &amp; モバイル</string>
<string name="pref_data_sync_image_cache_ask">WiFi接続がない場合は尋ねる</string>
<string name="array_sync_interval_min_0">なし</string>
<string name="array_sync_interval_min_5">5 分</string>
<string name="array_sync_interval_min_15">15 分</string>
<string name="array_sync_interval_min_30">30 分</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">ავტო სინქ.</string>
<string name="title_activity_sync_interval_selector">სინქ. ინტერვალის შერჩევა</string>
<string name="title_activity_news_detail">სიახლეებიდეტალებიაქტივობები</string>
<string name="empty_view_content">აქ ელემენტები არაა</string>
<string name="no_wifi_available">WiFi არაა დაკავშირებული</string>
@ -175,6 +174,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Wi-Fi-ზე და მობილურზე</string>
<string name="pref_data_sync_image_cache_ask">შეკითხვა როდესაც არაა კავშირი WiFi-სთან</string>
<string name="array_sync_interval_min_0">არასდროს</string>
<string name="array_sync_interval_min_5">5 წუთი</string>
<string name="array_sync_interval_min_15">15 წუთი</string>
<string name="array_sync_interval_min_30">30 წუთი</string>

View file

@ -2,10 +2,11 @@
<resources>
<string name="auto_sync_string">자동 동기화</string>
<string name="title_activity_sync_interval_selector">동기화 주기 선택기</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">항목 없음</string>
<string name="toast_GettingMoreItems">더 많은 아이템들을 다운로드 하고 있습니다... 잠시 기다려 주십시오.</string>
<string name="no_wifi_available">Wi-Fi에 연결되지 않았음</string>
<string name="do_you_want_to_download_without_wifi">Wi-Fi연결없이 이미지를 다운로드 하시겠습니까</string>
<string name="current_version">현재 버전 %s을(를) 사용 중입니다.</string>
<string name="widget_header">Nextcloud 뉴스</string>
<plurals name="message_bar_new_articles_available">
@ -21,10 +22,16 @@
<string name="menu_StartImageCaching">사진 다운로드</string>
<string name="menu_downloadMoreItems">더 많은 항목 다운로드</string>
<string name="tv_showing_cached_version">캐시된 버전 표시중</string>
<string name="permission_req_location_twilight_title">자동화된 밝은/어두운 테마</string>
<string name="permission_req_location_twilight_text">자동으로 밝은 테마와 어두운 테마를 바꾸시려면 일출과 일몰 측정을 위해 기기의 위치가 활성화 되어있어야 합니다</string>
<!-- Action Bar Items -->
<string name="action_starred">별표</string>
<string name="action_read">읽기</string>
<string name="action_playPodacst">팟캐스트 재생</string>
<string name="action_openInBrowser">웹 브라우저에서 열기</string>
<string name="action_Share">공유</string>
<string name="action_login">서버 설정</string>
<string name="action_save">저장</string>
@ -33,6 +40,10 @@
<string name="action_add_new_feed">새 피드 추가</string>
<string name="action_textToSpeech">음성으로 읽기</string>
<string name="action_search">검색</string>
<string name="action_download_articles_offline">오프라인으로 기사 다운로드</string>
<!-- notifications -->
<string name="notification_download_articles_offline">오프라인 사용을 위해 기사 다운로드중</string>
<string name="notification_download_images_offline">오프라인 사용을 위해 이미지 다운로드중</string>
<plurals name="notification_new_items_ticker">
<item quantity="other">읽지 않은 항목이 %d개 있습니다</item>
</plurals>
@ -43,6 +54,10 @@
<!-- Add new feed -->
<string name="hint_feed_url">피드 URL</string>
<string name="action_add_feed">피드 추가</string>
<string name="import_opml">OPML 가져오기</string>
<string name="export_opml">OPML 내보내기</string>
<!-- String related to NewsDetail-ContextMenu Items -->
<string name="action_img_download">사진 다운로드</string>
<string name="action_img_sharelink">사진 링크 공유</string>
@ -52,6 +67,7 @@
<string name="action_link_open">브라우저에서 링크 열기</string>
<string name="action_link_copy">링크 복사</string>
<string name="toast_img_download_wait">다운로드 중입니다… 잠시 기다려 주십시오.</string>
<string name="toast_img_saved">이미지 저장됨</string>
<string name="toast_img_notwriteable">사진을 기록할 수 없습니다.</string>
<string name="toast_copied_to_clipboard">클립보드로 복사됨</string>
<string name="error_download_failed">다운로드 실패</string>
@ -61,9 +77,16 @@
<!-- Strings related to NewsReaderListDialogFragment (Rename/Remove Feed) -->
<string name="action_feed_remove">피드 삭제</string>
<string name="action_feed_rename">비드 이름 바꾸기</string>
<string name="action_feed_move">피드 이동</string>
<string name="feed_remove_button">삭제</string>
<string name="feed_rename_button">이름 바꾸기</string>
<string name="confirm_feed_remove">이 피드를 삭제하시겠습니까? 취소할 수 없습니다!</string>
<string name="feed_move_list_description">피드가 이동할 폴더 선택</string>
<string name="move_feed_root_folder">루트 폴더</string>
<!-- Strings related to login -->
<string name="login_manual">수동 로그인</string>
<string name="login_sso">Nextcloud Files App으로 로그인</string>
<string name="pref_title_username">사용자 이름</string>
<string name="pref_title_password">암호</string>
<string name="pref_title_owncloudRootPath">Nextcloud 루트 주소</string>
@ -73,6 +96,9 @@
<string name="login_progress_signing_in">로그인 중…</string>
<!-- <string name="error_incorrect_password">Incorrect password</string> -->
<string name="error_field_required">이 항목은 필수 사항입니다</string>
<string name="error_invalid_url">잘못된 URL</string>
<!-- Toast Messages -->
<plurals name="toast_downloaded_x_items">
<item quantity="other">오래된 항목 %d개 다운로드됨</item>
@ -95,6 +121,11 @@
<string name="pref_general_sort_order_new_old">새 항목 -&gt; 오래된 항목</string>
<string name="pref_general_sort_order_old_new">오래된 항목 -&gt; 새 항목</string>
<string name="pref_rename_action_swipe_right">오른쪽으로 밀었을 때의 동작</string>
<string name="pref_rename_action_swipe_left">왼쪽으로 밀었을 때의 동작</string>
<string name="pref_title_general_search_in">검색</string>
<string name="pref_general_search_in_title">직위</string>
<string name="dialog_clearing_cache">캐시 비우는 중</string>
<string name="dialog_clearing_cache_please_wait">캐시를 비우고 있습니다… 잠시 기다려 주십시오.</string>
@ -105,6 +136,8 @@
<string name="pref_title_DisableHostnameVerification">호스트 이름 확인 사용 안함</string>
<string name="pref_title_NavigateWithVolumeButtons">음량 단추로 탐색</string>
<string name="pref_title_MarkAsReadWhileScrolling">스크롤 중 읽은 것으로 표시</string>
<string name="pref_title_OpenInBrowserDirectly">상세보기를 건너뛰고 기사를 브라우저에서 열기</string>
<!-- MemorizingTrustManager -->
<string name="mtm_accept_cert">알 수 없는 인증서를 허용하시겠습니까?</string>
<string name="mtm_decision_always">항상</string>
@ -115,13 +148,26 @@
<!-- Podcast -->
<string name="no_podcast_selected">팟캐스트가 선택되지 않았음</string>
<string name="no_chapters_available">사용 가능한 챕터가 없음</string>
<string name="podcast_playback_speed_dialog_title">재생 속도</string>
<string name="notification_downloading_podcast_title">팟캐스트 다운로드 중</string>
<!-- Settings for About -->
<string name="pref_header_about">정보</string>
<string name="pref_license">라이선스</string>
<string name="pref_license_summary">GNU Affero General Public License (AGPL) version 3</string>
<string name="pref_report_issue">문제점 보고</string>
<string name="pref_report_issue_summary">GitHub 계정 필수 (무료)</string>
<string name="pref_contribute">기여하기!</string>
<string name="pref_contribute_summary">소스 코드 얻기</string>
<string name="pref_version">Nextcloud News 안드로이드앱</string>
<!-- Settings for Display -->
<string name="pref_header_display">표시</string>
<string name="pref_title_app_theme">테마</string>
<string name="pref_title_feed_list_layout">피드 목록 레이아웃</string>
<string name="pref_title_font_size">글꼴 크기</string>
<string name="pref_display_browser">브라우저</string>
@ -130,11 +176,28 @@
<string name="pref_display_apptheme_light">밝게</string>
<string name="pref_display_apptheme_dark">어둡게</string>
<string name="pref_oled_mode">검은색 배경</string>
<string name="pref_oled_mode_summary">OLED를 위한 어두운 테마</string>
<string name="pref_display_browser_cct">내장 Chrome 사용자 정의 탭</string>
<string name="pref_display_browser_built_in">내장 브라우저</string>
<string name="pref_display_browser_external">외부 브라우저</string>
<string name="pref_display_feed_list_layout_thumbnails">썸네일</string>
<string name="pref_display_feed_list_layout_headlines">헤드라인</string>
<string name="pref_display_feed_list_layout_full_text">전문</string>
<string name="pref_display_feed_list_layout_web_layout">웹 레이아웃</string>
<string name="pref_display_feed_list_layout_card_view">카드 보기</string>
<!-- font size scaling definitions -->
<string name="pref_display_font_size_s">작게</string>
<string name="pref_display_font_size_d">기본값</string>
<string name="pref_display_font_size_l">크게</string>
<string name="pref_display_font_size_xl">더 크게</string>
<string name="content_desc_play">재생</string>
<string name="content_desc_pause">일시정지</string>
<string name="content_desc_playback_speed">재생 속도</string>
<string name="content_desc_rewind">되감기</string>
<string name="content_desc_forward">앞으로</string>
<string name="content_desc_expand">확장</string>
@ -159,6 +222,9 @@
<string name="login_dialog_text_something_went_wrong">무언가 잘못되었습니다 :(</string>
<string name="login_dialog_text_zero_version_code">웹 뉴스 앱에서 버전 "0"을 반환했습니다. 다음 버그 보고를 참조하십시오: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_title_security_warning">보안 경고</string>
<string name="login_dialog_text_security_warning">HTTPS를 사용하고 있지 않습니다. 공격자가 트래픽을 가로채어 민감한 정보를 악용할 수 있습니다. (예: 비밀번호)</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">데이터 및 동기화</string>
<string name="pref_title_clearCache">캐시 비우기</string>
@ -170,6 +236,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Wi-Fi 및 모바일 데이터</string>
<string name="pref_data_sync_image_cache_ask">Wi-Fi에 연결되지 않았을 때 묻기</string>
<string name="array_sync_interval_min_0">하지 않음</string>
<string name="array_sync_interval_min_5">5분</string>
<string name="array_sync_interval_min_15">15분</string>
<string name="array_sync_interval_min_30">30분</string>

View file

@ -26,6 +26,8 @@
<string name="menu_StartImageCaching">Atsisiųsti paveikslus</string>
<string name="menu_downloadMoreItems">Atsiųsti daugiau elementų</string>
<string name="tv_showing_cached_version">Rodyti versiją iš podėlio</string>
<!-- Action Bar Items -->
<string name="action_starred">Pažymėti</string>
<string name="action_read">Skaityti</string>
@ -226,6 +228,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Naudojant Wifi &amp; ir mobiliuosius duomenis</string>
<string name="pref_data_sync_image_cache_ask"> Klausti kai neprisijungta prie WiFi </string>
<string name="array_sync_interval_min_0">Niekada</string>
<string name="array_sync_interval_min_5">5 minutės</string>
<string name="array_sync_interval_min_15">15 minučių</string>
<string name="array_sync_interval_min_30">30 minučių</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Autosynk</string>
<string name="title_activity_sync_interval_selector">Velger for synkroniseringsintervall</string>
<string name="title_activity_news_detail">NyheterDetaljAktivitet</string>
<string name="empty_view_content">Ingenting her</string>
<string name="toast_GettingMoreItems">Nedlasting av flere elementer startet… Vennligst vent.</string>
@ -248,6 +247,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Over WiFi &amp; mobildata</string>
<string name="pref_data_sync_image_cache_ask">Spør når ikke tilkoblet Wi-Fi</string>
<string name="array_sync_interval_min_0">Aldri</string>
<string name="array_sync_interval_min_5">5 minutter</string>
<string name="array_sync_interval_min_15">15 minutter</string>
<string name="array_sync_interval_min_30">30 minutter</string>

View file

@ -32,6 +32,7 @@
<color name="unstarredColor">#ffcccccc</color>
<color name="markasreadColor">@android:color/holo_green_light</color>
<color name="swipeBackground">#aaa</color>
<color name="menuSeparator">#555</color>
<color name="tintColor">@android:color/white</color>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Auto sync</string>
<string name="title_activity_sync_interval_selector">Sync interval selector</string>
<string name="title_activity_sync_interval_selector">Sync Interval</string>
<string name="title_activity_news_detail">NieuwsDetailActiviteit</string>
<string name="empty_view_content">Geen items hier</string>
<string name="toast_GettingMoreItems">Begonnen meer bestanden te downloaden... Even geduld.</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Met WiFi &amp; Mobiel</string>
<string name="pref_data_sync_image_cache_ask">Vraag indien niet verbonden met WiFi</string>
<string name="array_sync_interval_min_0">Nooit</string>
<string name="array_sync_interval_min_5">5 minuten</string>
<string name="array_sync_interval_min_15">15 minuten</string>
<string name="array_sync_interval_min_30">30 minuten</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronizacion auto.</string>
<string name="title_activity_sync_interval_selector">Selector d\'interval de sincronizacion</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Pas cap d\'article</string>
<string name="no_wifi_available">Pas cap de connexion Wi-Fi</string>
@ -135,6 +134,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">En WiFi &amp; Mobil</string>
<string name="pref_data_sync_image_cache_ask">Demandar quand pas connectat</string>
<string name="array_sync_interval_min_0">Pas jamais</string>
<string name="array_sync_interval_min_5">5 Minutas</string>
<string name="array_sync_interval_min_15">15 Minutas</string>
<string name="array_sync_interval_min_30">30 Minutas</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Automatyczna synchronizacja</string>
<string name="title_activity_sync_interval_selector">Wybór interwału synchronizacji</string>
<string name="title_activity_sync_interval_selector">Interwał synchronizacji</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Brak elementów</string>
<string name="toast_GettingMoreItems">Rozpoczęto pobieranie kolejnych elementów… Proszę czekać.</string>
@ -147,7 +147,7 @@
<string name="dialog_clearing_cache">Czyszczenie pamięci podręcznej</string>
<string name="dialog_clearing_cache_please_wait">Czyszczenie cache… Proszę czekać.</string>
<string name="reset_cache_unsaved_changes">Są niezsynchronizowane zmiany. Czy chcesz zresetować pamięć podręczną?</string>
<string name="reset_cache_unsaved_changes">Istnieją niezsynchronizowane zmiany. Czy mimo to chcesz zresetować pamięć podręczną?</string>
<string name="warning">Ostrzeżenie</string>
<string name="pref_title_AutoSyncOnStart">Synchronizuj na starcie</string>
<string name="pref_title_ShowOnlyUnread">Pokaż tylko nieprzeczytane artykuły</string>
@ -194,7 +194,7 @@
<string name="pref_display_news_detail_actionbar_icons_title">Ikony akcji (Widok szczegółowy)</string>
<string name="pref_display_apptheme_auto">Jasny / Ciemny (zależy od pory dnia)</string>
<string name="pref_display_apptheme_auto">Jasny/Ciemny (zależy od pory dnia)</string>
<string name="pref_display_apptheme_light">Jasny</string>
<string name="pref_display_apptheme_dark">Ciemny</string>
@ -261,6 +261,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Przez WiFi &amp; Mobilne</string>
<string name="pref_data_sync_image_cache_ask">Zapytaj gdy nie podłączony do WiFi</string>
<string name="array_sync_interval_min_0">Nigdy</string>
<string name="array_sync_interval_min_5">5 minut</string>
<string name="array_sync_interval_min_15">15 minut</string>
<string name="array_sync_interval_min_30">30 minut</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Auto sincronização</string>
<string name="title_activity_sync_interval_selector">Seletor de Intervalo de Sincronização</string>
<string name="title_activity_sync_interval_selector">Intervalo de Sincronização</string>
<string name="title_activity_news_detail">Detalhes da notícia</string>
<string name="empty_view_content">Este local está vazio</string>
<string name="toast_GettingMoreItems">Download de mais itens iniciou... Aguarde.</string>
@ -56,8 +56,8 @@
</plurals>
<!-- Add new feed -->
<string name="hint_feed_url">Alimentar URL</string>
<string name="action_add_feed">Adicionar alimentador</string>
<string name="hint_feed_url">URL do feed</string>
<string name="action_add_feed">Adicionar feed</string>
<string name="import_opml">Importar OPML</string>
<string name="export_opml">Exportar OPML</string>
@ -124,8 +124,8 @@
<string name="pref_header_general">Geral</string>
<string name="pref_title_general_sort_order">Ordem de Classificação</string>
<string name="pref_general_sort_order_new_old">Novo -> Velho</string>
<string name="pref_general_sort_order_old_new">Velho -> Novo</string>
<string name="pref_general_sort_order_new_old">Novo -> Antigo</string>
<string name="pref_general_sort_order_old_new">Antigo -> Novo</string>
<string name="pref_rename_action_swipe_right">Ação ao deslizar para a direita</string>
<string name="pref_rename_action_swipe_left">Ação ao deslizar para a esquerda</string>
@ -144,7 +144,7 @@
<string name="pref_title_DisableHostnameVerification">Desativar Verificação de Hostname</string>
<string name="pref_title_NavigateWithVolumeButtons">Navegar usando os botões de volume</string>
<string name="pref_title_MarkAsReadWhileScrolling">Marcar como lido enquanto navegar</string>
<string name="pref_title_OpenInBrowserDirectly">Salte a exibição detalhada e abra o artigo no navegador</string>
<string name="pref_title_OpenInBrowserDirectly">Saltar exibição detalhada e abrir o artigo no navegador</string>
<string name="dialog_feature_not_available">Este recurso não está disponível nesta versão deste aplicativo (de código aberto). Se você quiser usá-lo, baixe o aplicativo do repositório do GitHub ou faça o download na Google Play Store.</string>
@ -182,7 +182,7 @@
<string name="pref_display_browser">Navegador</string>
<string name="pref_display_news_detail_actionbar_icons_title">Ícones de ação (Visualização detalhada)</string>
<string name="pref_display_news_detail_actionbar_icons_title">Ícones de ação (Exibição detalhada)</string>
<string name="pref_display_apptheme_auto">Claro / Escuro (baseado na hora do dia)</string>
<string name="pref_display_apptheme_light">Claro</string>
@ -195,7 +195,7 @@
<string name="pref_display_browser_built_in">Navegador Incorporado</string>
<string name="pref_display_browser_external">Navegador Externo</string>
<string name="pref_display_feed_list_layout_thumbnails">Thumbnails</string>
<string name="pref_display_feed_list_layout_thumbnails">Miniaturas</string>
<string name="pref_display_feed_list_layout_simple_text">Texto simples</string>
<string name="pref_display_feed_list_layout_headlines">Manchetes</string>
<string name="pref_display_feed_list_layout_full_text">Texto completo</string>
@ -251,6 +251,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Por WiFi &amp; Celular</string>
<string name="pref_data_sync_image_cache_ask">Perguntar quando não conectado por WiFi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 minutos</string>
<string name="array_sync_interval_min_15">15 minutos</string>
<string name="array_sync_interval_min_30">30 minutos</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Sincronização Automática</string>
<string name="title_activity_sync_interval_selector">Selector de intervalo de sincronização</string>
<string name="title_activity_news_detail">NotíciasDetalheAtividade</string>
<string name="empty_view_content">Sem itens aqui</string>
<string name="toast_GettingMoreItems">Foi iniciada a transferência de mais itens... Por favor, aguarde.</string>
@ -234,6 +233,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Com Wi-Fi e Rede Móvel</string>
<string name="pref_data_sync_image_cache_ask">Perguntar quando não ligado à Wi-Fi</string>
<string name="array_sync_interval_min_0">Nunca</string>
<string name="array_sync_interval_min_5">5 minutos</string>
<string name="array_sync_interval_min_15">15 minutos</string>
<string name="array_sync_interval_min_30">30 minutos</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Автоматическая синхронизация</string>
<string name="title_activity_sync_interval_selector">Переключатель интервала синхронизации</string>
<string name="title_activity_sync_interval_selector">Интервал синхронизации</string>
<string name="title_activity_news_detail">Последние новости</string>
<string name="empty_view_content">Здесь нет элементов</string>
<string name="toast_GettingMoreItems">Началось скачивание элементов… Пожалуйста подождите.</string>
@ -137,6 +137,9 @@
<string name="pref_general_sort_order_new_old">Новые -&gt; Старые</string>
<string name="pref_general_sort_order_old_new">Старые -&gt; Новые</string>
<string name="pref_rename_action_swipe_right">Действие при смахивании вправо</string>
<string name="pref_rename_action_swipe_left">Действие при смахивании влево</string>
<string name="pref_title_general_search_in">Искать в</string>
<string name="pref_general_search_in_title">Заголовок</string>
@ -258,6 +261,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Через WiFi &amp; и мобильный интернет</string>
<string name="pref_data_sync_image_cache_ask">Спросить, если не подключён к WiFi</string>
<string name="array_sync_interval_min_0">Никогда</string>
<string name="array_sync_interval_min_5">5 Минут</string>
<string name="array_sync_interval_min_15">15 Минут</string>
<string name="array_sync_interval_min_30">30 Минут</string>

View file

@ -2,12 +2,20 @@
<resources>
<string name="auto_sync_string">Autosynchronizácia</string>
<string name="title_activity_sync_interval_selector">Voľba intervalu synchronizácie</string>
<string name="title_activity_sync_interval_selector">Interval synchronizácie</string>
<string name="title_activity_news_detail">Podrobná aktivita noviniek</string>
<string name="empty_view_content">Žiadne položky</string>
<string name="toast_GettingMoreItems">Sťahovanie ďalších položiek začalo ... Čakajte prosím.</string>
<string name="no_wifi_available">Nie je pripojenie k WiFi</string>
<string name="do_you_want_to_download_without_wifi">Chcete obrázky stiahnuť bez pripojenia Wi-Fi</string>
<string name="current_version">Používate verziu %s</string>
<string name="widget_header">ownCloud Novinky</string>
<plurals name="message_bar_new_articles_available">
<item quantity="one">Dostupná %d nová položka</item>
<item quantity="few">Dostupné %d nové položky</item>
<item quantity="many">Dostupné %d nové položky</item>
<item quantity="other">Dostupných %d nových položiek</item>
</plurals>
<string name="message_bar_reload">Znovu načítať</string>
<string name="allUnreadFeeds">Všetky neprečítané položky</string>
<string name="starredFeeds">Položky s hviezdičkou</string>
@ -18,6 +26,11 @@
<string name="menu_StartImageCaching">Stiahnuť obrázky</string>
<string name="menu_downloadMoreItems">Stiahnuť viac položiek</string>
<string name="tv_showing_cached_version">Zobrazuje sa verzia vo vyrovnávacej pamäti</string>
<string name="permission_req_location_twilight_title">Automatický svetlý/tmavý motív vzhľadu</string>
<string name="permission_req_location_twilight_text">Na automatické prepínanie medzi svetlým a tmavým motívom vzhľadu, je potrebné poskytnúť polohu zariadena, aby bolo možné určiť čas východu a západu slnka.</string>
<!-- Action Bar Items -->
<string name="action_starred">S hviezdičkou</string>
<string name="action_read">Čítať</string>
@ -31,7 +44,30 @@
<string name="action_add_new_feed">Pridať nový kanál</string>
<string name="action_textToSpeech">Prečítať</string>
<string name="action_search">Hľadať</string>
<string name="action_download_articles_offline">Stiahnuť články na čítanie bez pripojenia</string>
<!-- notifications -->
<string name="notification_download_articles_offline">Sťahovanie článkov na čítanie bez pripojenia</string>
<string name="notification_download_images_offline">Sťahovanie obrázkov pre použitie bez pripojenia</string>
<plurals name="notification_new_items_ticker">
<item quantity="one">Máte %d novú neprečítanú položku</item>
<item quantity="few">Máte %d nové neprečítané položky</item>
<item quantity="many">Máte %d nové neprečítané položky</item>
<item quantity="other">Máte %d nových neprečítaných položiek</item>
</plurals>
<plurals name="notification_new_items_text">
<item quantity="one">Dostupná %d neprečítaná položka</item>
<item quantity="few">Dostupné %d neprečítané položky</item>
<item quantity="many">Dostupné %d neprečítané položky</item>
<item quantity="other">Dostupných %d neprečítaných položiek</item>
</plurals>
<!-- Add new feed -->
<string name="hint_feed_url">URL informačného kanála</string>
<string name="action_add_feed">Pridať kanál</string>
<string name="import_opml">Importovať OPML</string>
<string name="export_opml">Exportovať OPML</string>
<!-- String related to NewsDetail-ContextMenu Items -->
<string name="action_img_download">Stiahnuť obrázok</string>
<string name="action_img_sharelink">Sprístupniť odkaz na obrázok</string>
@ -42,23 +78,58 @@
<string name="action_link_copy">Kopírovať odkaz</string>
<string name="toast_img_download_wait">Sťahujem… počkajte prosím</string>
<string name="toast_img_saved">Obrázok uložený</string>
<string name="toast_img_notwriteable">Obrázok sa nepodarilo zapísať.</string>
<string name="toast_copied_to_clipboard">Skopírované do schránky</string>
<string name="error_download_failed">Stiahnutie zlyhalo</string>
<string name="intent_title_share">Zdieľať prostredníctvom</string>
<!-- Strings related to NewsReaderListDialogFragment (Rename/Remove Feed) -->
<string name="action_feed_remove">Odstrániť kanál</string>
<string name="action_feed_rename">Premenovať kanál</string>
<string name="action_feed_move">Presunúť kanál</string>
<string name="feed_remove_button">Odobrať</string>
<string name="feed_rename_button">Premenovať</string>
<string name="confirm_feed_remove">Naozaj chcete odstrániť tento informačný kanál? Nie je to možné vrátiť späť!</string>
<string name="feed_move_list_description">Vyberte priečinok, do ktorého chcete presunúť informačný kanál</string>
<string name="move_feed_root_folder">Koreňový priečinok</string>
<!-- Strings related to login -->
<string name="login_manual">Ručné prihlásenie</string>
<string name="login_sso">Prihlásenie pomocou aplikácie Nextcloud Files</string>
<string name="pref_title_username">Meno používateľa</string>
<string name="pref_title_password">Heslo</string>
<string name="pref_title_owncloudRootPath">Koreňová adresa Nextcloud</string>
<string name="pref_default_owncloudRootPath">https://1.2.3.4/owncloud</string>
<string name="action_sign_in_short">Prihlásenie</string>
<string name="login_progress_signing_in">Prihlasujem vás...</string>
<!-- <string name="error_incorrect_password">Incorrect password</string> -->
<string name="error_field_required">Toto pole je povinné</string>
<string name="error_invalid_url">Nesprávna URL</string>
<!-- Toast Messages -->
<plurals name="toast_downloaded_x_items">
<item quantity="one">Stiahnutá %d jedna stará</item>
<item quantity="few">Stiahnuté %d staré položky</item>
<item quantity="many">Stiahnuté %d staré položky</item>
<item quantity="other">Stiahnutých %d starých položiek</item>
</plurals>
<string name="toast_no_more_downloads_available">Žiadne ďalšie položky k dispozícii</string>
<plurals name="fetched_items_so_far">
<item quantity="one">Stiahnutá %d položka...</item>
<item quantity="few">Stiahnuté %d položky...</item>
<item quantity="many">Stiahnuté %d položky...</item>
<item quantity="other">Stiahnutých %d položiek…</item>
</plurals>
<!-- Strings related to Settings -->
<string name="title_activity_settings">Nastavenia</string>
<string name="cache_is_cleared">Vyrovnávacia pamäť je vymazaná!</string>
<!-- General settings -->
<string name="pref_header_general">Všeobecné</string>
<string name="pref_title_general_sort_order">Zoradenie</string>
@ -66,8 +137,16 @@
<string name="pref_general_sort_order_new_old">Nové -&gt; Staré</string>
<string name="pref_general_sort_order_old_new">Staré -&gt; Nové</string>
<string name="pref_rename_action_swipe_right">Akcia pri potiahnutí prstom doprava</string>
<string name="pref_rename_action_swipe_left">Akcia pri potiahnutí prstom doľava</string>
<string name="pref_title_general_search_in">Hľadať v</string>
<string name="pref_general_search_in_title">Názov</string>
<string name="pref_general_search_in_body">Telo</string>
<string name="dialog_clearing_cache">Čistenie medzipamäte</string>
<string name="dialog_clearing_cache_please_wait">Maže sa vyrovnávacia pamäť ... Čakajte prosím.</string>
<string name="reset_cache_unsaved_changes">Nezosynchronizované zmeny sú k dispozícii. Aj napriek tomu chcete vyprázdniť medzipamäť?</string>
<string name="warning">Varovanie</string>
<string name="pref_title_AutoSyncOnStart">Synchronizovať pri spustení</string>
@ -75,6 +154,11 @@
<string name="pref_title_DisableHostnameVerification">Vypnúť overovanie názvu hostiteľa</string>
<string name="pref_title_NavigateWithVolumeButtons">Navigácia pomocou tlačidiel hlasitosti</string>
<string name="pref_title_MarkAsReadWhileScrolling">Označiť ako prečítané pri rolovaní stránky</string>
<string name="pref_title_OpenInBrowserDirectly">Preskočte podrobné zobrazenie a otvorte článok v prehliadači</string>
<string name="dialog_feature_not_available">Táto funkcia nie je k dispozícii v tejto (otvorenej) verzii tejto aplikácie. Ak chcete túto funkciu používať, stiahnite si aplikáciu z úložiska GitHub alebo si ju stiahnite z Obchodu Google Play.</string>
<!-- MemorizingTrustManager -->
<string name="mtm_accept_cert">Prijať neznámy certifikát?</string>
<string name="mtm_decision_always">Vždy</string>
@ -84,9 +168,22 @@
<!-- Podcast -->
<string name="no_podcast_selected">Nebol vybraný žiaden podcast</string>
<string name="no_chapters_available">Žiadne dostupné kapitoly</string>
<string name="podcast_playback_speed_dialog_title">Rýchlosť prehrávania</string>
<string name="notification_downloading_podcast_title">Sťahovanie podcastu</string>
<!-- Settings for About -->
<string name="pref_header_about">O aplikácii</string>
<string name="pref_license">Licencia</string>
<string name="pref_license_summary">GNU Affero General Public License (AGPL) verzia 3</string>
<string name="pref_report_issue">Nahlásiť problém</string>
<string name="pref_report_issue_summary">Vyžaduje (bezplatný) účet GitHub</string>
<string name="pref_contribute">Prispievať!</string>
<string name="pref_contribute_summary">Získajte zdrojový kód</string>
<string name="pref_version">Aplikácia Nextcloud novinky pre Android</string>
<!-- Settings for Display -->
<string name="pref_header_display">Zobrazenie</string>
<string name="pref_title_app_theme">Motív vzhľadu</string>
@ -95,18 +192,49 @@
<string name="pref_display_browser">Prehliadač</string>
<string name="pref_display_news_detail_actionbar_icons_title">Ikony akcií (podrobné zobrazenie)</string>
<string name="pref_display_apptheme_auto">Svetlý/tmavý (podľa dennej doby)</string>
<string name="pref_display_apptheme_light">Svetlý</string>
<string name="pref_display_apptheme_dark">Tmavý</string>
<string name="pref_oled_mode">Čierne pozadie</string>
<string name="pref_oled_mode_summary">Pre tmavé motívy vzhľadu na obrazovkách OLED</string>
<string name="pref_display_browser_cct">Vstavané karty prehliadača Chrome</string>
<string name="pref_display_browser_built_in">Vstavaný prehliadač</string>
<string name="pref_display_browser_external">Externý prehliadač</string>
<string name="pref_display_feed_list_layout_thumbnails">Náhľady</string>
<string name="pref_display_feed_list_layout_simple_text">Jednoduchý text</string>
<string name="pref_display_feed_list_layout_headlines">Nadpisy</string>
<string name="pref_display_feed_list_layout_full_text">Celý text</string>
<string name="pref_display_feed_list_layout_web_layout">Webové rozloženie</string>
<string name="pref_display_feed_list_layout_card_view">Zobrazenie s kartami</string>
<!-- font size scaling definitions -->
<string name="pref_display_font_size_s">Malá</string>
<string name="pref_display_font_size_d">Predvolené</string>
<string name="pref_display_font_size_l">Veľká</string>
<string name="pref_display_font_size_xl">Veľmi veľké</string>
<string name="content_desc_play">prehrať</string>
<string name="content_desc_pause">pozastaviť</string>
<string name="content_desc_playback_speed">rýchlosť prehrávania</string>
<string name="content_desc_rewind">preskočiť na začiatok/koniec</string>
<string name="content_desc_forward">vpred</string>
<string name="content_desc_expand">rozbaliť</string>
<string name="content_desc_collapse">zbaliť</string>
<string name="content_desc_mark_as_read">označiť ako prečítané</string>
<string name="content_desc_mark_as_unread">označiť ako neprečítané</string>
<string name="content_desc_tap_to_refresh">ťuknite pre znovunačítanie</string>
<string name="content_desc_add_to_favorites">pridať k obľúbeným</string>
<string name="content_desc_remove_from_favorites">odstrániť z obľúbených</string>
<string name="content_desc_show_password">zobraziť heslo</string>
<string name="content_desc_delete">vymazať</string>
<string name="content_desc_download">stiahnuť</string>
<!-- Settings for Notifications -->
<string name="pref_header_notifications">Oznámenia</string>
<string name="pref_title_notification_new_articles_available">Zobraziť oznámenie, keď sú k dispozícii nové články</string>
@ -114,8 +242,14 @@
<!-- Login Dialog -->
<string name="login_dialog_title_error">Chyba</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Zdá sa, že vaša aplikácia Novinky nie je nainštalovaná alebo aktivovaná na vašom serveri. Postupujte podľa pokynov, pre nastavenie aplikácie Novinky na servri:: %1$s</string>
<string name="login_dialog_text_something_went_wrong">Tak toto je nepríjemné :(</string>
<string name="login_dialog_text_zero_version_code">Aplikácia Novinky vrátila verziu „0“. Prezrite si nasledujúcu správu o chybe: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">Táto verzia aplikácie nie je kompatibilná s vašou aplikáciou Nextcloud Novinky na strane sevra. Aktualizujte ju a jej aplikačné prostredie (framework). </string>
<string name="login_dialog_title_security_warning">Bezpečnostné varovanie</string>
<string name="login_dialog_text_security_warning">Nepoužívate protokol HTTPS, čo sa dôrazne odporúča. Útočník by mohol zachytiť vašu komunikáciu a získať prístup k niektorým citlivým údajom (napr. k heslu).</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">Dáta &amp; synchronizácia</string>
<string name="pref_title_clearCache">Vyčistiť medzipamäť</string>
@ -127,6 +261,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Iba cez WiFi &amp; Mobil</string>
<string name="pref_data_sync_image_cache_ask">Spýtať sa keď nieste pripojený k WiFi</string>
<string name="array_sync_interval_min_0">Nikdy</string>
<string name="array_sync_interval_min_5">5 minút</string>
<string name="array_sync_interval_min_15">15 minút</string>
<string name="array_sync_interval_min_30">30 minút</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="auto_sync_string">Samodejno usklajevanje</string>
<string name="title_activity_sync_interval_selector">Izbirnik razmika med usklajevanji</string>
<string name="title_activity_sync_interval_selector">Časovni razmik usklajevanj</string>
<string name="title_activity_news_detail">Podrobnosti pregledovanja novic</string>
<string name="empty_view_content">Ni novic</string>
<string name="toast_GettingMoreItems">Začeto je prejemanje več prispevkov ...</string>
@ -261,6 +261,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Prek Wi-Fi in prek mobilnega dostopa</string>
<string name="pref_data_sync_image_cache_ask">Vprašaj, kadar povezava ni vzpostavljena prek Wi-Fi</string>
<string name="array_sync_interval_min_0">Nikoli</string>
<string name="array_sync_interval_min_5">5 minut</string>
<string name="array_sync_interval_min_15">15 minut</string>
<string name="array_sync_interval_min_30">30 minut</string>

View file

@ -2,7 +2,6 @@
<resources>
<string name="auto_sync_string">Vetënjëkohëso</string>
<string name="title_activity_sync_interval_selector">Përzgjedhës Intervali Njëkohësimesh</string>
<string name="title_activity_news_detail">NewsDetailActivity</string>
<string name="empty_view_content">Ska gjë këtu</string>
<string name="toast_GettingMoreItems">Shkarkimi i më shumë gjërave filloi... Ju lutem prisni.</string>
@ -180,6 +179,7 @@
<string name="pref_data_sync_image_cache_wifi_and_mobile">Përmes WiFi-ji &amp; Lidhjeje Celulari</string>
<string name="pref_data_sync_image_cache_ask">Pyet, kur s\është i lidhur me WiFi</string>
<string name="array_sync_interval_min_0">Kurrë</string>
<string name="array_sync_interval_min_5">5 Minuta</string>
<string name="array_sync_interval_min_15">15 Minuta</string>
<string name="array_sync_interval_min_30">30 Minuta</string>

View file

@ -0,0 +1,270 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="auto_sync_string">Auto-osvežavanje</string>
<string name="title_activity_news_detail">Detaljne aktivnosti Vesti</string>
<string name="empty_view_content">Nema stavki</string>
<string name="toast_GettingMoreItems">Započeto skidanje još stavki… Sačekajte.</string>
<string name="no_wifi_available">Nema bežične veze</string>
<string name="do_you_want_to_download_without_wifi">Želite li da preuzmete slike bez bežične veze</string>
<string name="current_version">Koristite verziju %s</string>
<string name="widget_header">Nekstklaud Vesti</string>
<plurals name="message_bar_new_articles_available">
<item quantity="one">Dostupna %d nova stavka</item>
<item quantity="few">Dostupne %d nove stavke</item>
<item quantity="other">Dostupnih %d novih stavki</item>
</plurals>
<string name="message_bar_reload">Ponovo učitaj</string>
<string name="allUnreadFeeds">Sve nepročitane stavke</string>
<string name="starredFeeds">Ozvezdane stavke</string>
<string name="title_activity_new_feed">Dodaj dovod</string>
<string name="menu_update">Osveži</string>
<string name="menu_markAllAsRead">Označi sve kao pročitano</string>
<string name="menu_StartImageCaching">Preuzmi slike</string>
<string name="menu_downloadMoreItems">Preuzmi još stavki</string>
<string name="tv_showing_cached_version">Prikazujem keširanu verziju</string>
<string name="permission_req_location_twilight_title">Automatska tamna/svetla tema</string>
<string name="permission_req_location_twilight_text">Da bismo automatski menjali između tamne i svetle teme, potrebno je da dozvolite pristup lokaciji uređaja da odredimo vreme izlaska i zalaska sunca.</string>
<!-- Action Bar Items -->
<string name="action_starred">Ozvezdano</string>
<string name="action_read">Čitaj</string>
<string name="action_playPodacst">Pusti podemisiju</string>
<string name="action_openInBrowser">Otvori u pregledaču</string>
<string name="action_Share">Deli</string>
<string name="action_login">Postavke servera</string>
<string name="action_save">Sačuvaj</string>
<string name="action_settings">Postavke</string>
<string name="action_sync_settings">Postavke osvežavanja</string>
<string name="action_add_new_feed">Dodaj dovod</string>
<string name="action_textToSpeech">Iščitaj</string>
<string name="action_search">Pretraga</string>
<string name="action_download_articles_offline">Skini članke za pristup i bez interneta</string>
<!-- notifications -->
<string name="notification_download_articles_offline">Skidam članke za pristup i bez interneta</string>
<string name="notification_download_images_offline">Skidam slike za pristup i bez interneta</string>
<plurals name="notification_new_items_ticker">
<item quantity="one">Imate %d nepročitanu stavku</item>
<item quantity="few">Imate %d nepročitane stavke</item>
<item quantity="other">Imate %d nepročitanih stavki</item>
</plurals>
<plurals name="notification_new_items_text">
<item quantity="one">Dostupna je %d nepročitana stavka</item>
<item quantity="few">Dostupno je %d nepročitane stavke</item>
<item quantity="other">Dostupno je %d nepročitanih stavki</item>
</plurals>
<!-- Add new feed -->
<string name="hint_feed_url">Adresa dovoda</string>
<string name="action_add_feed">Dodaj dovod</string>
<string name="import_opml">Uvezi OPML</string>
<string name="export_opml">Izvezi OPML</string>
<!-- String related to NewsDetail-ContextMenu Items -->
<string name="action_img_download">Preuzmi sliku</string>
<string name="action_img_sharelink">Podeli vezu ka slici</string>
<string name="action_img_open">Otvori sliku u pregledaču</string>
<string name="action_img_copylink">Kopiraj vezu ka slici</string>
<string name="action_link_share">Podeli vezu</string>
<string name="action_link_open">Otvori vezu u pregledaču</string>
<string name="action_link_copy">Kopiraj vezu</string>
<string name="toast_img_download_wait">Preuzimam… sačekajte molim</string>
<string name="toast_img_saved">Slika sačuvana.</string>
<string name="toast_img_notwriteable">Greška pri čuvanju slike.</string>
<string name="toast_copied_to_clipboard">Kopirano u klipbord</string>
<string name="error_download_failed">Preuzimanje nije uspelo</string>
<string name="intent_title_share">Podeli preko</string>
<!-- Strings related to NewsReaderListDialogFragment (Rename/Remove Feed) -->
<string name="action_feed_remove">Ukloni dovod</string>
<string name="action_feed_rename">Preimenuj dovod</string>
<string name="action_feed_move">Premesti dovod</string>
<string name="feed_remove_button">Ukloni</string>
<string name="feed_rename_button">Preimenuj</string>
<string name="confirm_feed_remove">Zaista želite da uklonite ovaj dovod? Ovo se ne može opozvati!</string>
<string name="feed_move_list_description">Izaberite fasciklu da premestite dovod</string>
<string name="move_feed_root_folder">Korena fascikla</string>
<!-- Strings related to login -->
<string name="login_manual">Ručna prijava</string>
<string name="login_sso">Prijava korišćenjem Nekstklaud aplikacije Fajlova</string>
<string name="pref_title_username">Korisničko ime</string>
<string name="pref_title_password">Lozinka</string>
<string name="pref_title_owncloudRootPath">Korena adresa Nekstklauda</string>
<string name="pref_default_owncloudRootPath">https://1.2.3.4/nextcloud</string>
<string name="action_sign_in_short">Prijavi se</string>
<string name="login_progress_signing_in">Prijavljujem se...</string>
<!-- <string name="error_incorrect_password">Incorrect password</string> -->
<string name="error_field_required">Ovo polje je neophodno</string>
<string name="error_invalid_url">Neispravna adresa</string>
<!-- Toast Messages -->
<plurals name="toast_downloaded_x_items">
<item quantity="one">Preuzeta %d stara stavka</item>
<item quantity="few">Preuzeto %d stare stavke</item>
<item quantity="other">Preuzeto %d starih stavki</item>
</plurals>
<string name="toast_no_more_downloads_available">Nema više dostupnih stavki</string>
<plurals name="fetched_items_so_far">
<item quantity="one">Do sada skinuta %d stavka…</item>
<item quantity="few">Do sada skinuto %d stavke…</item>
<item quantity="other">Do sada skinuto %d stavki…</item>
</plurals>
<!-- Strings related to Settings -->
<string name="title_activity_settings">Postavke</string>
<string name="cache_is_cleared">Keš je očišćen!</string>
<!-- General settings -->
<string name="pref_header_general">Opšte</string>
<string name="pref_title_general_sort_order">Sortiranje</string>
<string name="pref_general_sort_order_new_old">Noviji -> Stariji</string>
<string name="pref_general_sort_order_old_new">Stariji -> Noviji</string>
<string name="pref_rename_action_swipe_right">Radnja na prevlačenje desno</string>
<string name="pref_rename_action_swipe_left">Radnja na prevlačenje levo</string>
<string name="pref_title_general_search_in">Pretraži u</string>
<string name="pref_general_search_in_title">Naslov</string>
<string name="pref_general_search_in_body">Telo</string>
<string name="dialog_clearing_cache">Čistim keš</string>
<string name="dialog_clearing_cache_please_wait">Čistim keš… sačekajte.</string>
<string name="reset_cache_unsaved_changes">Postoje nesinhronizovane izmene. Da ipak obrišem keš?</string>
<string name="warning">Upozorenje</string>
<string name="pref_title_AutoSyncOnStart">Osveži pri pokretanju</string>
<string name="pref_title_ShowOnlyUnread">Prikaži samo nepročitane članke</string>
<string name="pref_title_DisableHostnameVerification">Isključi proveru imena domaćina</string>
<string name="pref_title_NavigateWithVolumeButtons">Navigacija pomoću dugmadi za jačinu zvuka</string>
<string name="pref_title_MarkAsReadWhileScrolling">Označi kao pročitano tokom klizanja</string>
<string name="pref_title_OpenInBrowserDirectly">Preskoči detaljni pregled i odmah otvori članak u pregledaču</string>
<string name="dialog_feature_not_available">Ova mogućnost nije dostupna u ovoj verziji (otvorenog koda). Ako želite da je koristite, preuzmite aplikaciju sa Githab riznice ili skinite aplikaciju sa Gugl Plej prodavnice.</string>
<!-- MemorizingTrustManager -->
<string name="mtm_accept_cert">Prihvatiti nepoznati sertifikat?</string>
<string name="mtm_decision_always">Uvek</string>
<string name="mtm_decision_abort">Prekini</string>
<string name="mtm_notification">Provera sertifikata</string>
<!-- Podcast -->
<string name="no_podcast_selected">Nije izabrana podemisija</string>
<string name="no_chapters_available">Nema dostupnih poglavlja</string>
<string name="podcast_playback_speed_dialog_title">Brzina puštanja</string>
<string name="notification_downloading_podcast_title">Preuzimam podkast</string>
<!-- Settings for About -->
<string name="pref_header_about">O programu</string>
<string name="pref_license">Licenca</string>
<string name="pref_license_summary">GNU Affero Opšta Javna Licenca (AOJL), verzija 3</string>
<string name="pref_report_issue">Prijavi problem</string>
<string name="pref_report_issue_summary">Potreban je (besplatni) Githab nalog</string>
<string name="pref_contribute">Dajte doprinos!</string>
<string name="pref_contribute_summary">Uzmi izvorni kôd</string>
<string name="pref_version">Android aplikacija za Nekstklaud Vesti</string>
<!-- Settings for Display -->
<string name="pref_header_display">Prikaz</string>
<string name="pref_title_app_theme">Tema</string>
<string name="pref_title_feed_list_layout">Raspored liste dovoda</string>
<string name="pref_title_font_size">Veličina fonta</string>
<string name="pref_display_browser">Pregledač</string>
<string name="pref_display_news_detail_actionbar_icons_title">Ikone radnji (detaljni prikaz)</string>
<string name="pref_display_apptheme_auto">Svetlo / tamno (u odnosu na doba dana)</string>
<string name="pref_display_apptheme_light">Svetla</string>
<string name="pref_display_apptheme_dark">Tamna</string>
<string name="pref_oled_mode">Crna pozadina</string>
<string name="pref_oled_mode_summary">Za tamne teme na OLED ekranima</string>
<string name="pref_display_browser_cct">Ugrađeni Hrom posebni jezičci</string>
<string name="pref_display_browser_built_in">Ugrađeni pregledač</string>
<string name="pref_display_browser_external">Spoljni pregledač</string>
<string name="pref_display_feed_list_layout_thumbnails">Sličice</string>
<string name="pref_display_feed_list_layout_simple_text">Običan tekst</string>
<string name="pref_display_feed_list_layout_headlines">Naslovi</string>
<string name="pref_display_feed_list_layout_full_text">Ceo tekst</string>
<string name="pref_display_feed_list_layout_web_layout">Veb raspored</string>
<string name="pref_display_feed_list_layout_card_view">Kartični prikaz</string>
<!-- font size scaling definitions -->
<string name="pref_display_font_size_s">Malo</string>
<string name="pref_display_font_size_d">Podrazumevano</string>
<string name="pref_display_font_size_l">Veliko</string>
<string name="pref_display_font_size_xl">Jako veliko</string>
<string name="content_desc_play">pusti</string>
<string name="content_desc_pause">pauziraj</string>
<string name="content_desc_playback_speed">brzina puštanja</string>
<string name="content_desc_rewind">premotaj</string>
<string name="content_desc_forward">ubrzaj</string>
<string name="content_desc_expand">proširi</string>
<string name="content_desc_collapse">skupi</string>
<string name="content_desc_mark_as_read">označi kao pročitano</string>
<string name="content_desc_mark_as_unread">označi kao nepročitano</string>
<string name="content_desc_tap_to_refresh">pritisnite da osvežite</string>
<string name="content_desc_add_to_favorites">dodaj u omiljene</string>
<string name="content_desc_remove_from_favorites">ukloni iz omiljenih</string>
<string name="content_desc_show_password">prikaži lozinku</string>
<string name="content_desc_delete">obriši</string>
<string name="content_desc_download">preuzmi</string>
<!-- Settings for Notifications -->
<string name="pref_header_notifications">Obaveštenja</string>
<string name="pref_title_notification_new_articles_available">Prikaži obaveštenja o novim člancima</string>
<!-- Login Dialog -->
<string name="login_dialog_title_error">Greška</string>
<string name="login_dialog_text_news_app_not_installed_on_server" formatted="true">Izgleda da aplikacija Vesti nije instalirana ili aktivirana na serveru. Pratite uputstva odavde da prvo podesite aplikaciju Vesti na serveru: %1$s</string>
<string name="login_dialog_text_something_went_wrong">Nešto je pošlo naopako :(</string>
<string name="login_dialog_text_zero_version_code">Aplikacija Vesti je vratila verziju \"0\". Pogledajte sledeći izveštaj o grešci: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
<string name="login_dialog_text_not_compatible">Verzija ove aplikacije nije usklađena sa aplikacijom Nekstklaud Vesti. Ažurirajte aplikaciju i njen radni okvir.</string>
<string name="login_dialog_title_security_warning">Sigurnosno upozorenje</string>
<string name="login_dialog_text_security_warning">Ne koristite preporučeni HTTPS protokol. Napadač može presresti vaš saobraćaj i imati pristup osetljivim podacima (npr. vašoj lozinki).</string>
<!-- Data & Sync -->
<string name="pref_header_data_sync">Podaci i sinhronizacija</string>
<string name="pref_title_clearCache">Očisti keš</string>
<string name="pref_title_CacheImagesOffline">Keširaj slike za rad van veze</string>
<string name="pref_title_Max_Cache_Size">Najviše</string>
<string name="pref_data_sync_image_cache_never">Nikad</string>
<string name="pref_data_sync_image_cache_wifi_only">Samo preko bežične veze</string>
<string name="pref_data_sync_image_cache_wifi_and_mobile">Preko bežične &amp; mobilne mreže</string>
<string name="pref_data_sync_image_cache_ask">Pitaj kada nema bežične veze</string>
<string name="array_sync_interval_min_0">Nikad</string>
<string name="array_sync_interval_min_5">5 minuta</string>
<string name="array_sync_interval_min_15">15 minuta</string>
<string name="array_sync_interval_min_30">30 minuta</string>
<string name="array_sync_interval_min_45">45 minuta</string>
<string name="array_sync_interval_hour_1">1 sat</string>
<string name="array_sync_interval_hour_2">2 sata</string>
<string name="array_sync_interval_hour_3">3 sata</string>
<string name="array_sync_interval_hour_6">6 sati</string>
<string name="array_sync_interval_hour_12">12 sati</string>
<string name="array_sync_interval_hour_24">24 sata</string>
</resources>

Some files were not shown because too many files have changed in this diff Show more