Compare commits

..

5 commits

Author SHA1 Message Date
Philipp Heckel
2b215059cc CardView 2022-11-25 13:05:17 -05:00
Philipp Heckel
5cd0c0bed7 Slightly better 2022-11-25 12:29:43 -05:00
Philipp Heckel
c6f414813e Working resizing and such 2022-11-25 11:40:58 -05:00
Philipp Heckel
1a828e505e WIP message bar 2022-11-24 14:45:52 -05:00
Philipp Heckel
6841896f92 WIP: Message bar 2022-11-23 22:03:00 -05:00
126 changed files with 965 additions and 5759 deletions

View file

@ -1,21 +0,0 @@
image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest"
stages:
- build
before_script:
- export GRADLE_USER_HOME=$(pwd)/.gradle
- chmod +x ./gradlew
cache:
key: ${CI_PROJECT_ID}
paths:
- .gradle/
buildRelease:
stage: build
script:
- ./gradlew assembleFdroid
artifacts:
paths:
- app/build/outputs/apk/fdroid/release

View file

@ -2,8 +2,32 @@
This is the Android app for [ntfy](https://github.com/binwiederhier/ntfy) ([ntfy.sh](https://ntfy.sh)). You can find the app in [F-Droid](https://f-droid.org/packages/io.heckel.ntfy/) or the [Play Store](https://play.google.com/store/apps/details?id=io.heckel.ntfy),
or as .apk files on the [releases page](https://github.com/binwiederhier/ntfy-android/releases).
## Build
For up-to-date building instructions, please see the [official docs](https://docs.ntfy.sh/develop/#android-app).
# Build
## Building without Firebase (F-Droid flavor)
Without Firebase, you may want to still change the default `app_base_url` in [strings.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/strings.xml)
if you're self-hosting the server. Then run:
```
# To build an unsigned .apk (app/build/outputs/apk/fdroid/*.apk)
./gradlew assembleFdroidRelease
# To build a bundle .aab (app/fdroid/release/*.aab)
./gradlew bundleFdroidRelease
```
## Building with Firebase (FCM, Google Play flavor)
To build your own version with Firebase, you must:
* Create a Firebase/FCM account
* Place your account file at `app/google-services.json`
* And change `app_base_url` in [strings.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/strings.xml)
* Then run:
```
# To build an unsigned .apk (app/build/outputs/apk/play/*.apk)
./gradlew assemblePlayRelease
# To build a bundle .aab (app/play/release/*.aab)
./gradlew bundlePlayRelease
```
## Translations
We're using [Weblate](https://hosted.weblate.org/projects/ntfy/) to translate the ntfy Android app. We'd love your participation.

View file

@ -10,12 +10,12 @@ android {
compileSdkVersion 33
defaultConfig {
applicationId "foundation.e.ntfy"
minSdkVersion 23
applicationId "io.heckel.ntfy"
minSdkVersion 21
targetSdkVersion 33
versionCode 33
versionName "1.17.0"
versionCode 29
versionName "1.15.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@ -27,10 +27,6 @@ android {
}
}
buildFeatures {
viewBinding = true
}
buildTypes {
release {
minifyEnabled true
@ -48,12 +44,10 @@ android {
play {
buildConfigField 'boolean', 'FIREBASE_AVAILABLE', 'true'
buildConfigField 'boolean', 'RATE_APP_AVAILABLE', 'true'
buildConfigField 'boolean', 'INSTALL_PACKAGES_AVAILABLE', 'false'
}
fdroid {
buildConfigField 'boolean', 'FIREBASE_AVAILABLE', 'false'
buildConfigField 'boolean', 'RATE_APP_AVAILABLE', 'false'
buildConfigField 'boolean', 'INSTALL_PACKAGES_AVAILABLE', 'true'
}
}
@ -68,47 +62,29 @@ android {
'-Xjvm-default=all-compatibility' // https://stackoverflow.com/a/71234042/1440785
]
}
namespace "io.heckel.ntfy"
}
// Disables GoogleServices tasks for F-Droid variant
android.applicationVariants.all { variant ->
def shouldProcessGoogleServices = variant.flavorName == "play"
def googleTask = tasks.findByName("process${variant.name.capitalize()}GoogleServices")
googleTask.enabled = shouldProcessGoogleServices
}
// Strips out REQUEST_INSTALL_PACKAGES permission for Google Play variant
android.applicationVariants.all { variant ->
def shouldStripInstallPermission = variant.flavorName == "play"
if (shouldStripInstallPermission) {
variant.outputs.each { output ->
def processManifest = output.getProcessManifestProvider().get()
processManifest.doLast { task ->
def outputDir = task.getMultiApkManifestOutputDirectory().get().asFile
def manifestOutFile = file("$outputDir/AndroidManifest.xml")
def newFileContents = manifestOutFile.collect { s -> s.contains("android.permission.REQUEST_INSTALL_PACKAGES") ? "" : s }.join("\n")
manifestOutFile.write(newFileContents, 'UTF-8')
}
}
}
}
dependencies {
// AndroidX, The Basics
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "androidx.core:core-ktx:1.10.1"
implementation "androidx.appcompat:appcompat:1.5.1"
implementation "androidx.core:core-ktx:1.9.0"
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
implementation "androidx.activity:activity-ktx:1.7.1"
implementation "androidx.fragment:fragment-ktx:1.5.7"
implementation "androidx.work:work-runtime-ktx:2.8.1"
implementation "androidx.activity:activity-ktx:1.6.1"
implementation "androidx.fragment:fragment-ktx:1.5.4"
implementation "androidx.work:work-runtime-ktx:2.7.1"
implementation 'androidx.preference:preference-ktx:1.2.0'
// JSON serialization
implementation 'com.google.code.gson:gson:2.10'
// Room (SQLite)
def room_version = "2.5.1"
def room_version = "2.4.3"
implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version"
@ -116,23 +92,21 @@ dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
// Firebase, sigh ... (only Google Play)
playImplementation 'com.google.firebase:firebase-messaging:23.1.2'
playImplementation 'com.google.firebase:firebase-messaging:23.1.0'
// RecyclerView
implementation "androidx.recyclerview:recyclerview:1.3.0"
implementation "androidx.recyclerview:recyclerview:1.3.0-rc01"
// Swipe down to refresh
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
// Material design
implementation "com.google.android.material:material:1.9.0"
implementation "com.google.android.material:material:1.6.1"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
// Image viewer
implementation 'com.github.stfalcon-studio:StfalconImageViewer:v1.0.1'
implementation 'foundation.e:elib:0.0.1-alpha11'
}

View file

@ -1,356 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 13,
"identityHash": "44fc291d937fdf02b9bc2d0abb10d2e0",
"entities": [
{
"tableName": "Subscription",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `baseUrl` TEXT NOT NULL, `topic` TEXT NOT NULL, `instant` INTEGER NOT NULL, `mutedUntil` INTEGER NOT NULL, `minPriority` INTEGER NOT NULL, `autoDelete` INTEGER NOT NULL, `insistent` INTEGER NOT NULL, `lastNotificationId` TEXT, `icon` TEXT, `upAppId` TEXT, `upConnectorToken` TEXT, `displayName` TEXT, `dedicatedChannels` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "baseUrl",
"columnName": "baseUrl",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "topic",
"columnName": "topic",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "instant",
"columnName": "instant",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "mutedUntil",
"columnName": "mutedUntil",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "minPriority",
"columnName": "minPriority",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "autoDelete",
"columnName": "autoDelete",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "insistent",
"columnName": "insistent",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastNotificationId",
"columnName": "lastNotificationId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "icon",
"columnName": "icon",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "upAppId",
"columnName": "upAppId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "upConnectorToken",
"columnName": "upConnectorToken",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "displayName",
"columnName": "displayName",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "dedicatedChannels",
"columnName": "dedicatedChannels",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Subscription_baseUrl_topic",
"unique": true,
"columnNames": [
"baseUrl",
"topic"
],
"orders": [],
"createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_Subscription_baseUrl_topic` ON `${TABLE_NAME}` (`baseUrl`, `topic`)"
},
{
"name": "index_Subscription_upConnectorToken",
"unique": true,
"columnNames": [
"upConnectorToken"
],
"orders": [],
"createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_Subscription_upConnectorToken` ON `${TABLE_NAME}` (`upConnectorToken`)"
}
],
"foreignKeys": []
},
{
"tableName": "Notification",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `subscriptionId` INTEGER NOT NULL, `timestamp` INTEGER NOT NULL, `title` TEXT NOT NULL, `message` TEXT NOT NULL, `encoding` TEXT NOT NULL, `notificationId` INTEGER NOT NULL, `priority` INTEGER NOT NULL DEFAULT 3, `tags` TEXT NOT NULL, `click` TEXT NOT NULL, `actions` TEXT, `deleted` INTEGER NOT NULL, `icon_url` TEXT, `icon_contentUri` TEXT, `attachment_name` TEXT, `attachment_type` TEXT, `attachment_size` INTEGER, `attachment_expires` INTEGER, `attachment_url` TEXT, `attachment_contentUri` TEXT, `attachment_progress` INTEGER, PRIMARY KEY(`id`, `subscriptionId`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "subscriptionId",
"columnName": "subscriptionId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "timestamp",
"columnName": "timestamp",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "encoding",
"columnName": "encoding",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "notificationId",
"columnName": "notificationId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "3"
},
{
"fieldPath": "tags",
"columnName": "tags",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "click",
"columnName": "click",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "actions",
"columnName": "actions",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "deleted",
"columnName": "deleted",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "icon.url",
"columnName": "icon_url",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "icon.contentUri",
"columnName": "icon_contentUri",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "attachment.name",
"columnName": "attachment_name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "attachment.type",
"columnName": "attachment_type",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "attachment.size",
"columnName": "attachment_size",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "attachment.expires",
"columnName": "attachment_expires",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "attachment.url",
"columnName": "attachment_url",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "attachment.contentUri",
"columnName": "attachment_contentUri",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "attachment.progress",
"columnName": "attachment_progress",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id",
"subscriptionId"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "User",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`baseUrl` TEXT NOT NULL, `username` TEXT NOT NULL, `password` TEXT NOT NULL, PRIMARY KEY(`baseUrl`))",
"fields": [
{
"fieldPath": "baseUrl",
"columnName": "baseUrl",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "username",
"columnName": "username",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "password",
"columnName": "password",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"baseUrl"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "Log",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `timestamp` INTEGER NOT NULL, `tag` TEXT NOT NULL, `level` INTEGER NOT NULL, `message` TEXT NOT NULL, `exception` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "timestamp",
"columnName": "timestamp",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "tag",
"columnName": "tag",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "level",
"columnName": "level",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "exception",
"columnName": "exception",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '44fc291d937fdf02b9bc2d0abb10d2e0')"
]
}
}

View file

@ -1,6 +1,5 @@
package io.heckel.ntfy.firebase
@Suppress("UNUSED_PARAMETER")
class FirebaseMessenger {
fun subscribe(topic: String) {
// Dummy to keep F-Droid flavor happy

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
package="io.heckel.ntfy">
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <!-- For instant delivery foregrounds service -->
@ -9,23 +8,15 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <!-- To restart service on reboot -->
<uses-permission android:name="android.permission.VIBRATE"/> <!-- Incoming notifications should be able to vibrate the phone -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/> <!-- Only required on SDK <= 28 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> <!-- To install packages downloaded through ntfy; craazyy! -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/> <!-- To reschedule the websocket retry -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <!-- As of Android 13, we need to ask for permission to post notifications -->
<!--
Permission REQUEST_INSTALL_PACKAGES (F-Droid only!):
- Permission is used to install .apk files that were received as attachments
- Google rejected the permission for ntfy, so this permission is STRIPPED OUT by the build process
for the Google Play variant of the app.
-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<application
android:name=".app.Application"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:persistent="true"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme"
@ -36,10 +27,10 @@
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:excludeFromRecents="true"
android:exported="true">
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
@ -47,6 +38,7 @@
<activity
android:name=".ui.DetailActivity"
android:parentActivityName=".ui.MainActivity"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
@ -143,13 +135,6 @@
android:exported="false">
</receiver>
<!-- Broadcast receiver for when the notification is swiped away (currently only to cancel the insistent sound) -->
<receiver
android:name=".msg.NotificationService$DeleteBroadcastReceiver"
android:enabled="true"
android:exported="false">
</receiver>
<!-- Firebase messaging (note that this is empty in the F-Droid flavor) -->
<service
android:name=".firebase.FirebaseService"
@ -176,25 +161,5 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
<activity
android:name=".ui.MainSettingsActivity"
android:theme="@style/PreferenceTheme"/>
<activity-alias
android:name=".ui.SettingsActivityLink"
android:exported="true"
android:label="@string/eos_settings_title"
android:targetActivity=".ui.MainSettingsActivity">
<intent-filter>
<action android:name="com.android.settings.action.EXTRA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.device" />
<meta-data
android:name="com.android.settings.icon"
android:resource="@drawable/ic_notification" />
</activity-alias>
</application>
</manifest>

View file

@ -1,10 +1,16 @@
package io.heckel.ntfy.app
import android.app.Application
import android.content.Context
import io.heckel.ntfy.db.Database
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.util.Log
class Application : Application() {
private val database by lazy {
Log.init(this) // What a hack, but this is super early and used everywhere
Database.getInstance(this)
}
val repository by lazy {
val repository = Repository.getInstance(applicationContext)
if (repository.getRecordLogs()) {

View file

@ -5,11 +5,9 @@ import android.net.Uri
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.stream.JsonReader
import io.heckel.ntfy.R
import io.heckel.ntfy.app.Application
import io.heckel.ntfy.db.Icon
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.firebase.FirebaseMessenger
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.util.topicUrl
import java.io.InputStreamReader
@ -18,8 +16,6 @@ class Backuper(val context: Context) {
private val gson = Gson()
private val resolver = context.applicationContext.contentResolver
private val repository = (context.applicationContext as Application).repository
private val messenger = FirebaseMessenger()
private val notifier = NotificationService(context)
suspend fun backup(uri: Uri, withSettings: Boolean = true, withSubscriptions: Boolean = true, withUsers: Boolean = true) {
Log.d(TAG, "Backing up settings to file $uri")
@ -90,40 +86,24 @@ class Backuper(val context: Context) {
private suspend fun applySubscriptions(subscriptions: List<Subscription>?) {
if (subscriptions == null) {
return
return;
}
val appBaseUrl = context.getString(R.string.app_base_url)
subscriptions.forEach { s ->
try {
// Add to database
val subscription = io.heckel.ntfy.db.Subscription(
repository.addSubscription(io.heckel.ntfy.db.Subscription(
id = s.id,
baseUrl = s.baseUrl,
topic = s.topic,
instant = s.instant,
dedicatedChannels = s.dedicatedChannels,
mutedUntil = s.mutedUntil,
minPriority = s.minPriority ?: Repository.MIN_PRIORITY_USE_GLOBAL,
autoDelete = s.autoDelete ?: Repository.AUTO_DELETE_USE_GLOBAL,
insistent = s.insistent ?: Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL,
lastNotificationId = s.lastNotificationId,
icon = s.icon,
upAppId = s.upAppId,
upConnectorToken = s.upConnectorToken,
displayName = s.displayName,
)
repository.addSubscription(subscription)
// Subscribe to Firebase topics
if (s.baseUrl == appBaseUrl) {
messenger.subscribe(s.topic)
}
// Create dedicated channels
if (s.dedicatedChannels) {
notifier.createSubscriptionNotificationChannels(subscription)
// TODO Backup/restore individual notification channel settings
}
))
} catch (e: Exception) {
Log.w(TAG, "Unable to restore subscription ${s.id} (${topicUrl(s.baseUrl, s.topic)}): ${e.message}. Ignoring.", e)
}
@ -132,7 +112,7 @@ class Backuper(val context: Context) {
private suspend fun applyNotifications(notifications: List<Notification>?) {
if (notifications == null) {
return
return;
}
notifications.forEach { n ->
try {
@ -201,7 +181,7 @@ class Backuper(val context: Context) {
private suspend fun applyUsers(users: List<User>?) {
if (users == null) {
return
return;
}
users.forEach { u ->
try {
@ -249,11 +229,9 @@ class Backuper(val context: Context) {
baseUrl = s.baseUrl,
topic = s.topic,
instant = s.instant,
dedicatedChannels = s.dedicatedChannels,
mutedUntil = s.mutedUntil,
minPriority = s.minPriority,
autoDelete = s.autoDelete,
insistent = s.insistent,
lastNotificationId = s.lastNotificationId,
icon = s.icon,
upAppId = s.upAppId,
@ -368,11 +346,9 @@ data class Subscription(
val baseUrl: String,
val topic: String,
val instant: Boolean,
val dedicatedChannels: Boolean,
val mutedUntil: Long,
val minPriority: Int?,
val autoDelete: Long?,
val insistent: Int?,
val lastNotificationId: String?,
val icon: String?,
val upAppId: String?,

View file

@ -18,54 +18,18 @@ data class Subscription(
@ColumnInfo(name = "mutedUntil") val mutedUntil: Long,
@ColumnInfo(name = "minPriority") val minPriority: Int,
@ColumnInfo(name = "autoDelete") val autoDelete: Long, // Seconds
@ColumnInfo(name = "insistent") val insistent: Int, // Ring constantly for max priority notifications (-1 = use global, 0 = off, 1 = on)
@ColumnInfo(name = "lastNotificationId") val lastNotificationId: String?, // Used for polling, with since=<id>
@ColumnInfo(name = "icon") val icon: String?, // content://-URI (or later other identifier)
@ColumnInfo(name = "upAppId") val upAppId: String?, // UnifiedPush application package name
@ColumnInfo(name = "upConnectorToken") val upConnectorToken: String?, // UnifiedPush connector token
@ColumnInfo(name = "displayName") val displayName: String?,
@ColumnInfo(name = "dedicatedChannels") val dedicatedChannels: Boolean,
@Ignore val totalCount: Int = 0, // Total notifications
@Ignore val newCount: Int = 0, // New notifications
@Ignore val lastActive: Long = 0, // Unix timestamp
@Ignore val state: ConnectionState = ConnectionState.NOT_APPLICABLE
) {
constructor(
id: Long,
baseUrl: String,
topic: String,
instant: Boolean,
mutedUntil: Long,
minPriority: Int,
autoDelete: Long,
insistent: Int,
lastNotificationId: String,
icon: String,
upAppId: String,
upConnectorToken: String,
displayName: String?,
dedicatedChannels: Boolean
) :
this(
id,
baseUrl,
topic,
instant,
mutedUntil,
minPriority,
autoDelete,
insistent,
lastNotificationId,
icon,
upAppId,
upConnectorToken,
displayName,
dedicatedChannels,
totalCount = 0,
newCount = 0,
lastActive = 0,
state = ConnectionState.NOT_APPLICABLE
)
constructor(id: Long, baseUrl: String, topic: String, instant: Boolean, mutedUntil: Long, minPriority: Int, autoDelete: Long, lastNotificationId: String, icon: String, upAppId: String, upConnectorToken: String, displayName: String?) :
this(id, baseUrl, topic, instant, mutedUntil, minPriority, autoDelete, lastNotificationId, icon, upAppId, upConnectorToken, displayName, 0, 0, 0, ConnectionState.NOT_APPLICABLE)
}
enum class ConnectionState {
@ -80,13 +44,11 @@ data class SubscriptionWithMetadata(
val mutedUntil: Long,
val autoDelete: Long,
val minPriority: Int,
val insistent: Int,
val lastNotificationId: String?,
val icon: String?,
val upAppId: String?,
val upConnectorToken: String?,
val displayName: String?,
val dedicatedChannels: Boolean,
val totalCount: Int,
val newCount: Int,
val lastActive: Long
@ -196,7 +158,7 @@ data class LogEntry(
this(0, timestamp, tag, level, message, exception)
}
@androidx.room.Database(entities = [Subscription::class, Notification::class, User::class, LogEntry::class], version = 13)
@androidx.room.Database(entities = [Subscription::class, Notification::class, User::class, LogEntry::class], version = 12)
@TypeConverters(Converters::class)
abstract class Database : RoomDatabase() {
abstract fun subscriptionDao(): SubscriptionDao
@ -223,7 +185,6 @@ abstract class Database : RoomDatabase() {
.addMigrations(MIGRATION_9_10)
.addMigrations(MIGRATION_10_11)
.addMigrations(MIGRATION_11_12)
.addMigrations(MIGRATION_12_13)
.fallbackToDestructiveMigration()
.build()
this.instance = instance
@ -322,13 +283,6 @@ abstract class Database : RoomDatabase() {
db.execSQL("ALTER TABLE Notification ADD COLUMN icon_contentUri TEXT")
}
}
private val MIGRATION_12_13 = object : Migration(12, 13) {
override fun migrate(db: SupportSQLiteDatabase) {
db.execSQL("ALTER TABLE Subscription ADD COLUMN insistent INTEGER NOT NULL DEFAULT (-1)") // = Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL
db.execSQL("ALTER TABLE Subscription ADD COLUMN dedicatedChannels INTEGER NOT NULL DEFAULT (0)")
}
}
}
}
@ -336,7 +290,7 @@ abstract class Database : RoomDatabase() {
interface SubscriptionDao {
@Query("""
SELECT
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.insistent, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName, s.dedicatedChannels,
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName,
COUNT(n.id) totalCount,
COUNT(CASE n.notificationId WHEN 0 THEN NULL ELSE n.id END) newCount,
IFNULL(MAX(n.timestamp),0) AS lastActive
@ -349,7 +303,7 @@ interface SubscriptionDao {
@Query("""
SELECT
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.insistent, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName, s.dedicatedChannels,
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName,
COUNT(n.id) totalCount,
COUNT(CASE n.notificationId WHEN 0 THEN NULL ELSE n.id END) newCount,
IFNULL(MAX(n.timestamp),0) AS lastActive
@ -362,7 +316,7 @@ interface SubscriptionDao {
@Query("""
SELECT
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.insistent, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName, s.dedicatedChannels,
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName,
COUNT(n.id) totalCount,
COUNT(CASE n.notificationId WHEN 0 THEN NULL ELSE n.id END) newCount,
IFNULL(MAX(n.timestamp),0) AS lastActive
@ -375,7 +329,7 @@ interface SubscriptionDao {
@Query("""
SELECT
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.insistent, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName, s.dedicatedChannels,
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName,
COUNT(n.id) totalCount,
COUNT(CASE n.notificationId WHEN 0 THEN NULL ELSE n.id END) newCount,
IFNULL(MAX(n.timestamp),0) AS lastActive
@ -388,7 +342,7 @@ interface SubscriptionDao {
@Query("""
SELECT
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.insistent, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName, s.dedicatedChannels,
s.id, s.baseUrl, s.topic, s.instant, s.mutedUntil, s.minPriority, s.autoDelete, s.lastNotificationId, s.icon, s.upAppId, s.upConnectorToken, s.displayName,
COUNT(n.id) totalCount,
COUNT(CASE n.notificationId WHEN 0 THEN NULL ELSE n.id END) newCount,
IFNULL(MAX(n.timestamp),0) AS lastActive

View file

@ -2,7 +2,6 @@ package io.heckel.ntfy.db
import android.content.Context
import android.content.SharedPreferences
import android.media.MediaPlayer
import android.os.Build
import androidx.annotation.WorkerThread
import androidx.appcompat.app.AppCompatDelegate
@ -19,10 +18,7 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
private val connectionStates = ConcurrentHashMap<Long, ConnectionState>()
private val connectionStatesLiveData = MutableLiveData(connectionStates)
// TODO Move these into an ApplicationState singleton
val detailViewSubscriptionId = AtomicLong(0L) // Omg, what a hack ...
val mediaPlayer = MediaPlayer()
init {
Log.d(TAG, "Created $this")
@ -292,26 +288,6 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
.apply()
}
fun getUnifiedPushEnabled(): Boolean {
return sharedPrefs.getBoolean(SHARED_PREFS_UNIFIEDPUSH_ENABLED, true) // Enabled by default
}
fun setUnifiedPushEnabled(enabled: Boolean) {
sharedPrefs.edit()
.putBoolean(SHARED_PREFS_UNIFIEDPUSH_ENABLED, enabled)
.apply()
}
fun getInsistentMaxPriorityEnabled(): Boolean {
return sharedPrefs.getBoolean(SHARED_PREFS_INSISTENT_MAX_PRIORITY_ENABLED, false) // Disabled by default
}
fun setInsistentMaxPriorityEnabled(enabled: Boolean) {
sharedPrefs.edit()
.putBoolean(SHARED_PREFS_INSISTENT_MAX_PRIORITY_ENABLED, enabled)
.apply()
}
fun getRecordLogs(): Boolean {
return sharedPrefs.getBoolean(SHARED_PREFS_RECORD_LOGS_ENABLED, false) // Disabled by default
}
@ -409,11 +385,9 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
baseUrl = s.baseUrl,
topic = s.topic,
instant = s.instant,
dedicatedChannels = s.dedicatedChannels,
mutedUntil = s.mutedUntil,
minPriority = s.minPriority,
autoDelete = s.autoDelete,
insistent = s.insistent,
lastNotificationId = s.lastNotificationId,
icon = s.icon,
upAppId = s.upAppId,
@ -436,11 +410,9 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
baseUrl = s.baseUrl,
topic = s.topic,
instant = s.instant,
dedicatedChannels = s.dedicatedChannels,
mutedUntil = s.mutedUntil,
minPriority = s.minPriority,
autoDelete = s.autoDelete,
insistent = s.insistent,
lastNotificationId = s.lastNotificationId,
icon = s.icon,
upAppId = s.upAppId,
@ -487,8 +459,6 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
const val SHARED_PREFS_CONNECTION_PROTOCOL = "ConnectionProtocol"
const val SHARED_PREFS_DARK_MODE = "DarkMode"
const val SHARED_PREFS_BROADCAST_ENABLED = "BroadcastEnabled"
const val SHARED_PREFS_UNIFIEDPUSH_ENABLED = "UnifiedPushEnabled"
const val SHARED_PREFS_INSISTENT_MAX_PRIORITY_ENABLED = "InsistentMaxPriority"
const val SHARED_PREFS_RECORD_LOGS_ENABLED = "RecordLogs"
const val SHARED_PREFS_BATTERY_OPTIMIZATIONS_REMIND_TIME = "BatteryOptimizationsRemindTime"
const val SHARED_PREFS_WEBSOCKET_REMIND_TIME = "JsonStreamRemindTime" // "Use WebSocket" banner (used to be JSON stream deprecation banner)
@ -520,9 +490,6 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas
const val AUTO_DELETE_THREE_MONTHS_SECONDS = 90 * ONE_DAY_SECONDS
const val AUTO_DELETE_DEFAULT_SECONDS = AUTO_DELETE_ONE_MONTH_SECONDS
const val INSISTENT_MAX_PRIORITY_USE_GLOBAL = -1 // Values must match values.xml
const val INSISTENT_MAX_PRIORITY_ENABLED = 1 // 0 = Disabled (but not needed in code)
const val CONNECTION_PROTOCOL_JSONHTTP = "jsonhttp"
const val CONNECTION_PROTOCOL_WS = "ws"

View file

@ -37,7 +37,7 @@ class ApiService {
user: User? = null,
message: String,
title: String = "",
priority: Int = PRIORITY_DEFAULT,
priority: Int = 3,
tags: List<String> = emptyList(),
delay: String = "",
body: RequestBody? = null,
@ -45,7 +45,7 @@ class ApiService {
) {
val url = topicUrl(baseUrl, topic)
val query = mutableListOf<String>()
if (priority in ALL_PRIORITIES) {
if (priority in 1..5) {
query.add("priority=$priority")
}
if (tags.isNotEmpty()) {
@ -95,7 +95,7 @@ class ApiService {
throw Exception("Unexpected response ${response.code} when polling topic $url")
}
val body = response.body?.string()?.trim()
if (body.isNullOrEmpty()) return emptyList()
if (body == null || body.isEmpty()) return emptyList()
val notifications = body.lines().mapNotNull { line ->
parser.parse(line, subscriptionId = subscriptionId, notificationId = 0) // No notification when we poll
}
@ -108,7 +108,6 @@ class ApiService {
fun subscribe(
baseUrl: String,
topics: String,
unifiedPushTopics: String,
since: String?,
user: User?,
notify: (topic: String, Notification) -> Unit,
@ -117,7 +116,7 @@ class ApiService {
val sinceVal = since ?: "all"
val url = topicUrlJson(baseUrl, topics, sinceVal)
Log.d(TAG, "Opening subscription connection to $url")
val request = requestBuilder(url, user, unifiedPushTopics).build()
val request = requestBuilder(url, user).build()
val call = subscriberClient.newCall(request)
call.enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
@ -167,7 +166,7 @@ class ApiService {
}
class UnauthorizedException(val user: User?) : Exception()
class EntityTooLargeException : Exception()
class EntityTooLargeException() : Exception()
companion object {
val USER_AGENT = "ntfy/${BuildConfig.VERSION_NAME} (${BuildConfig.FLAVOR}; Android ${Build.VERSION.RELEASE}; SDK ${Build.VERSION.SDK_INT})"
@ -179,16 +178,13 @@ class ApiService {
const val EVENT_KEEPALIVE = "keepalive"
const val EVENT_POLL_REQUEST = "poll_request"
fun requestBuilder(url: String, user: User?, unifiedPushTopics: String? = null): Request.Builder {
fun requestBuilder(url: String, user: User?): Request.Builder {
val builder = Request.Builder()
.url(url)
.addHeader("User-Agent", USER_AGENT)
if (user != null) {
builder.addHeader("Authorization", Credentials.basic(user.username, user.password, UTF_8))
}
if (unifiedPushTopics != null) {
builder.addHeader("Rate-Topics", unifiedPushTopics)
}
return builder
}
}

View file

@ -11,7 +11,7 @@ import io.heckel.ntfy.util.Log
* Download attachment in the background via WorkManager
*
* The indirection via WorkManager is required since this code may be executed
* in a doze state and Internet may not be available. It's also best practice, apparently.
* in a doze state and Internet may not be available. It's also best practice apparently.
*/
object DownloadManager {
private const val TAG = "NtfyDownloadManager"

View file

@ -19,7 +19,7 @@ class NotificationDispatcher(val context: Context, val repository: Repository) {
private val distributor = Distributor(context)
fun init() {
notifier.createDefaultNotificationChannels()
notifier.createNotificationChannels()
}
fun dispatch(subscription: Subscription, notification: Notification) {

View file

@ -50,7 +50,7 @@ class NotificationParser {
)
}
} else null
val icon: Icon? = if (message.icon != null && message.icon != "") Icon(url = message.icon) else null
val icon: Icon? = if (message.icon != null) Icon(url = message.icon) else null
val notification = Notification(
id = message.id,
subscriptionId = subscriptionId,

View file

@ -5,8 +5,6 @@ import android.content.ActivityNotFoundException
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.media.AudioAttributes
import android.media.AudioManager
import android.media.RingtoneManager
import android.net.Uri
import android.os.Build
@ -23,9 +21,9 @@ import io.heckel.ntfy.ui.MainActivity
import io.heckel.ntfy.util.*
import java.util.*
class NotificationService(val context: Context) {
private val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
private val repository = Repository.getInstance(context)
fun display(subscription: Subscription, notification: Notification) {
Log.d(TAG, "Displaying notification $notification")
@ -53,56 +51,27 @@ class NotificationService(val context: Context) {
fun cancel(notificationId: Int) {
if (notificationId != 0) {
Log.d(TAG, "Cancelling notification $notificationId")
Log.d(TAG, "Cancelling notification ${notificationId}")
notificationManager.cancel(notificationId)
}
}
fun createDefaultNotificationChannels() {
maybeCreateNotificationGroup(DEFAULT_GROUP, context.getString(R.string.channel_notifications_group_default_name))
ALL_PRIORITIES.forEach { priority -> maybeCreateNotificationChannel(DEFAULT_GROUP, priority) }
}
fun createSubscriptionNotificationChannels(subscription: Subscription) {
val groupId = subscriptionGroupId(subscription)
maybeCreateNotificationGroup(groupId, subscriptionGroupName(subscription))
ALL_PRIORITIES.forEach { priority -> maybeCreateNotificationChannel(groupId, priority) }
}
fun deleteSubscriptionNotificationChannels(subscription: Subscription) {
val groupId = subscriptionGroupId(subscription)
ALL_PRIORITIES.forEach { priority -> maybeDeleteNotificationChannel(groupId, priority) }
maybeDeleteNotificationGroup(groupId)
}
fun channelsSupported(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
}
private fun subscriptionGroupId(subscription: Subscription): String {
return SUBSCRIPTION_GROUP_PREFIX + subscription.id.toString()
}
private fun subscriptionGroupName(subscription: Subscription): String {
return subscription.displayName ?: subscriptionTopicShortUrl(subscription)
fun createNotificationChannels() {
(1..5).forEach { priority -> maybeCreateNotificationChannel(priority) }
}
private fun displayInternal(subscription: Subscription, notification: Notification, update: Boolean = false) {
val title = formatTitle(subscription, notification)
val groupId = if (subscription.dedicatedChannels) subscriptionGroupId(subscription) else DEFAULT_GROUP
val channelId = toChannelId(groupId, notification.priority)
val insistent = notification.priority == PRIORITY_MAX &&
(repository.getInsistentMaxPriorityEnabled() || subscription.insistent == Repository.INSISTENT_MAX_PRIORITY_ENABLED)
val channelId = toChannelId(notification.priority)
val builder = NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.drawable.ic_notification)
.setColor(ContextCompat.getColor(context, Colors.notificationIcon(context)))
.setColor(ContextCompat.getColor(context, Colors.notificationIcon))
.setContentTitle(title)
.setOnlyAlertOnce(true) // Do not vibrate or play sound if already showing (updates!)
.setAutoCancel(true) // Cancel when notification is clicked
setStyleAndText(builder, subscription, notification) // Preview picture or big text style
setClickAction(builder, subscription, notification)
maybeSetDeleteIntent(builder, insistent)
maybeSetSound(builder, insistent, update)
maybeSetSound(builder, update)
maybeSetProgress(builder, notification)
maybeAddOpenAction(builder, notification)
maybeAddBrowseAction(builder, notification)
@ -110,26 +79,12 @@ class NotificationService(val context: Context) {
maybeAddCancelAction(builder, notification)
maybeAddUserActions(builder, notification)
maybeCreateNotificationGroup(groupId, subscriptionGroupName(subscription))
maybeCreateNotificationChannel(groupId, notification.priority)
maybePlayInsistentSound(groupId, insistent)
maybeCreateNotificationChannel(notification.priority)
notificationManager.notify(notification.notificationId, builder.build())
}
private fun maybeSetDeleteIntent(builder: NotificationCompat.Builder, insistent: Boolean) {
if (!insistent) {
return
}
val intent = Intent(context, DeleteBroadcastReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(context, Random().nextInt(), intent, PendingIntent.FLAG_IMMUTABLE)
builder.setDeleteIntent(pendingIntent)
}
private fun maybeSetSound(builder: NotificationCompat.Builder, insistent: Boolean, update: Boolean) {
// Note that the sound setting is ignored in Android => O (26) in favor of notification channels
val hasSound = !update && !insistent
if (hasSound) {
private fun maybeSetSound(builder: NotificationCompat.Builder, update: Boolean) {
if (!update) {
val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
builder.setSound(defaultSoundUri)
} else {
@ -211,9 +166,6 @@ class NotificationService(val context: Context) {
}
private fun maybeAddOpenAction(builder: NotificationCompat.Builder, notification: Notification) {
if (!canOpenAttachment(notification.attachment)) {
return
}
if (notification.attachment?.contentUri != null) {
val contentUri = Uri.parse(notification.attachment.contentUri)
val intent = Intent(Intent.ACTION_VIEW, contentUri).apply {
@ -345,18 +297,6 @@ class NotificationService(val context: Context) {
}
}
/**
* Receives a broadcast when a notification is swiped away. This is currently
* only called for notifications with an insistent sound.
*/
class DeleteBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Log.d(TAG, "Media player: Stopping insistent ring")
val mediaPlayer = Repository.getInstance(context).mediaPlayer
mediaPlayer.stop()
}
}
private fun detailActivityIntent(subscription: Subscription): PendingIntent? {
val intent = Intent(context, DetailActivity::class.java).apply {
putExtra(MainActivity.EXTRA_SUBSCRIPTION_ID, subscription.id)
@ -368,21 +308,20 @@ class NotificationService(val context: Context) {
}
return TaskStackBuilder.create(context).run {
addNextIntentWithParentStack(intent) // Add the intent, which inflates the back stack
getPendingIntent(Random().nextInt(), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) // Get the PendingIntent containing the entire back stack
getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) // Get the PendingIntent containing the entire back stack
}
}
private fun maybeCreateNotificationChannel(group: String, priority: Int) {
if (channelsSupported()) {
private fun maybeCreateNotificationChannel(priority: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Note: To change a notification channel, you must delete the old one and create a new one!
val channelId = toChannelId(group, priority)
val pause = 300L
val channel = when (priority) {
PRIORITY_MIN -> NotificationChannel(channelId, context.getString(R.string.channel_notifications_min_name), NotificationManager.IMPORTANCE_MIN)
PRIORITY_LOW -> NotificationChannel(channelId, context.getString(R.string.channel_notifications_low_name), NotificationManager.IMPORTANCE_LOW)
PRIORITY_HIGH -> {
val channel = NotificationChannel(channelId, context.getString(R.string.channel_notifications_high_name), NotificationManager.IMPORTANCE_HIGH)
1 -> NotificationChannel(CHANNEL_ID_MIN, context.getString(R.string.channel_notifications_min_name), NotificationManager.IMPORTANCE_MIN)
2 -> NotificationChannel(CHANNEL_ID_LOW, context.getString(R.string.channel_notifications_low_name), NotificationManager.IMPORTANCE_LOW)
4 -> {
val channel = NotificationChannel(CHANNEL_ID_HIGH, context.getString(R.string.channel_notifications_high_name), NotificationManager.IMPORTANCE_HIGH)
channel.enableVibration(true)
channel.vibrationPattern = longArrayOf(
pause, 100, pause, 100, pause, 100,
@ -390,11 +329,10 @@ class NotificationService(val context: Context) {
)
channel
}
PRIORITY_MAX -> {
val channel = NotificationChannel(channelId, context.getString(R.string.channel_notifications_max_name), NotificationManager.IMPORTANCE_HIGH) // IMPORTANCE_MAX does not exist
5 -> {
val channel = NotificationChannel(CHANNEL_ID_MAX, context.getString(R.string.channel_notifications_max_name), NotificationManager.IMPORTANCE_HIGH) // IMPORTANCE_MAX does not exist
channel.enableLights(true)
channel.enableVibration(true)
channel.setBypassDnd(true)
channel.vibrationPattern = longArrayOf(
pause, 100, pause, 100, pause, 100,
pause, 2000,
@ -405,71 +343,19 @@ class NotificationService(val context: Context) {
)
channel
}
else -> NotificationChannel(channelId, context.getString(R.string.channel_notifications_default_name), NotificationManager.IMPORTANCE_DEFAULT)
else -> NotificationChannel(CHANNEL_ID_DEFAULT, context.getString(R.string.channel_notifications_default_name), NotificationManager.IMPORTANCE_DEFAULT)
}
channel.group = group
notificationManager.createNotificationChannel(channel)
}
}
private fun maybeDeleteNotificationChannel(group: String, priority: Int) {
if (channelsSupported()) {
notificationManager.deleteNotificationChannel(toChannelId(group, priority))
}
}
private fun maybeCreateNotificationGroup(id: String, name: String) {
if (channelsSupported()) {
notificationManager.createNotificationChannelGroup(NotificationChannelGroup(id, name))
}
}
private fun maybeDeleteNotificationGroup(id: String) {
if (channelsSupported()) {
notificationManager.deleteNotificationChannelGroup(id)
}
}
private fun toChannelId(groupId: String, priority: Int): String {
private fun toChannelId(priority: Int): String {
return when (priority) {
PRIORITY_MIN -> groupId + GROUP_SUFFIX_PRIORITY_MIN
PRIORITY_LOW -> groupId + GROUP_SUFFIX_PRIORITY_LOW
PRIORITY_HIGH -> groupId + GROUP_SUFFIX_PRIORITY_HIGH
PRIORITY_MAX -> groupId + GROUP_SUFFIX_PRIORITY_MAX
else -> groupId + GROUP_SUFFIX_PRIORITY_DEFAULT
}
}
private fun maybePlayInsistentSound(groupId: String, insistent: Boolean) {
if (!insistent) {
return
}
try {
val mediaPlayer = repository.mediaPlayer
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
Log.d(TAG, "Media player: Playing insistent alarm on alarm channel")
mediaPlayer.reset()
mediaPlayer.setDataSource(context, getInsistentSound(groupId))
mediaPlayer.setAudioAttributes(AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM).build())
mediaPlayer.isLooping = true
mediaPlayer.prepare()
mediaPlayer.start()
} else {
Log.d(TAG, "Media player: Alarm volume is 0; not playing insistent alarm")
}
} catch (e: Exception) {
Log.w(TAG, "Media player: Failed to play insistent alarm", e)
}
}
private fun getInsistentSound(groupId: String): Uri {
return if (channelsSupported()) {
val channelId = toChannelId(groupId, PRIORITY_MAX)
val channel = notificationManager.getNotificationChannel(channelId)
channel.sound
} else {
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
1 -> CHANNEL_ID_MIN
2 -> CHANNEL_ID_LOW
4 -> CHANNEL_ID_HIGH
5 -> CHANNEL_ID_MAX
else -> CHANNEL_ID_DEFAULT
}
}
@ -529,13 +415,11 @@ class NotificationService(val context: Context) {
private const val TAG = "NtfyNotifService"
private const val DEFAULT_GROUP = "ntfy"
private const val SUBSCRIPTION_GROUP_PREFIX = "ntfy-subscription-"
private const val GROUP_SUFFIX_PRIORITY_MIN = "-min"
private const val GROUP_SUFFIX_PRIORITY_LOW = "-low"
private const val GROUP_SUFFIX_PRIORITY_DEFAULT = ""
private const val GROUP_SUFFIX_PRIORITY_HIGH = "-high"
private const val GROUP_SUFFIX_PRIORITY_MAX = "-max"
private const val CHANNEL_ID_MIN = "ntfy-min"
private const val CHANNEL_ID_LOW = "ntfy-low"
private const val CHANNEL_ID_DEFAULT = "ntfy"
private const val CHANNEL_ID_HIGH = "ntfy-high"
private const val CHANNEL_ID_MAX = "ntfy-max"
private const val VIEW_ACTION_EXTRA_URL = "url"
private const val VIEW_ACTION_EXTRA_NOTIFICATION_ID = "notificationId"

View file

@ -8,6 +8,5 @@ interface Connection {
data class ConnectionId(
val baseUrl: String,
val topicsToSubscriptionIds: Map<String, Long>,
val topicIsUnifiedPush: Map<String, Boolean>
val topicsToSubscriptionIds: Map<String, Long>
)

View file

@ -21,10 +21,8 @@ class JsonConnection(
) : Connection {
private val baseUrl = connectionId.baseUrl
private val topicsToSubscriptionIds = connectionId.topicsToSubscriptionIds
private val topicIsUnifiedPush = connectionId.topicIsUnifiedPush
private val subscriptionIds = topicsToSubscriptionIds.values
private val topicsStr = topicsToSubscriptionIds.keys.joinToString(separator = ",")
private val unifiedPushTopicsStr = topicIsUnifiedPush.filter { entry -> entry.value }.keys.joinToString(separator = ",")
private val url = topicUrl(baseUrl, topicsStr)
private var since: String? = sinceId
@ -58,7 +56,7 @@ class JsonConnection(
// Call /json subscribe endpoint and loop until the call fails, is canceled,
// or the job or service are cancelled/stopped
try {
call = api.subscribe(baseUrl, topicsStr, unifiedPushTopicsStr, since, user, notify, fail)
call = api.subscribe(baseUrl, topicsStr, since, user, notify, fail)
while (!failed.get() && !call.isCanceled() && isActive && serviceActive()) {
stateChangeListener(subscriptionIds, ConnectionState.CONNECTED)
Log.d(TAG,"[$url] Connection is active (failed=$failed, callCanceled=${call.isCanceled()}, jobActive=$isActive, serviceStarted=${serviceActive()}")

View file

@ -10,18 +10,17 @@ import android.os.PowerManager
import android.os.SystemClock
import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat
import androidx.preference.PreferenceManager
import io.heckel.ntfy.BuildConfig
import io.heckel.ntfy.R
import io.heckel.ntfy.app.Application
import io.heckel.ntfy.db.ConnectionState
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.db.Subscription
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.msg.ApiService
import io.heckel.ntfy.msg.NotificationDispatcher
import io.heckel.ntfy.ui.Colors
import io.heckel.ntfy.ui.MainActivity
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.util.topicUrl
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@ -89,16 +88,23 @@ class SubscriberService : Service() {
Log.init(this) // Init logs in all entry points
Log.d(TAG, "Subscriber service has been created")
val title = getString(R.string.channel_subscriber_notification_title)
val text = if (BuildConfig.FIREBASE_AVAILABLE) {
getString(R.string.channel_subscriber_notification_instant_text)
} else {
getString(R.string.channel_subscriber_notification_noinstant_text)
}
notificationManager = createNotificationChannel()
serviceNotification = createNotification(title, text)
startForeground(NOTIFICATION_SERVICE_ID, serviceNotification)
}
override fun onDestroy() {
Log.d(TAG, "Subscriber service has been destroyed")
stopService()
val preferenceKey = getString(R.string.eos_preference_key_is_enabled)
if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(preferenceKey, false)) {
sendBroadcast(Intent(this, AutoRestartReceiver::class.java))
}
sendBroadcast(Intent(this, AutoRestartReceiver::class.java)) // Restart it if necessary!
super.onDestroy()
}
@ -132,6 +138,7 @@ class SubscriberService : Service() {
}
}
wakeLock = null
stopForeground(true)
stopSelf()
} catch (e: Exception) {
Log.d(TAG, "Service stopped without being started: ${e.message}")
@ -165,8 +172,8 @@ class SubscriberService : Service() {
.filter { s -> s.instant }
val activeConnectionIds = connections.keys().toList().toSet()
val desiredConnectionIds = instantSubscriptions // Set<ConnectionId>
.groupBy { s -> ConnectionId(s.baseUrl, emptyMap(), emptyMap()) }
.map { entry -> entry.key.copy(topicsToSubscriptionIds = entry.value.associate { s -> s.topic to s.id }, topicIsUnifiedPush = entry.value.associate { s -> s.topic to (s.upConnectorToken != null) }) }
.groupBy { s -> ConnectionId(s.baseUrl, emptyMap()) }
.map { entry -> entry.key.copy(topicsToSubscriptionIds = entry.value.associate { s -> s.topic to s.id }) }
.toSet()
val newConnectionIds = desiredConnectionIds.subtract(activeConnectionIds)
val obsoleteConnectionIds = activeConnectionIds.subtract(desiredConnectionIds)
@ -193,7 +200,7 @@ class SubscriberService : Service() {
// retrieve old messages. This is important, so we don't download attachments from old messages.
val since = sinceByBaseUrl[connectionId.baseUrl] ?: "none"
val serviceActive = { isServiceStarted }
val serviceActive = { -> isServiceStarted }
val user = repository.getUser(connectionId.baseUrl)
val connection = if (repository.getConnectionProtocol() == Repository.CONNECTION_PROTOCOL_WS) {
val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
@ -284,13 +291,12 @@ class SubscriberService : Service() {
}
return NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification_instant)
.setColor(ContextCompat.getColor(this, Colors.notificationIcon(this)))
.setColor(ContextCompat.getColor(this, Colors.notificationIcon))
.setContentTitle(title)
.setContentText(text)
.setContentIntent(pendingIntent)
.setSound(null)
.setShowWhen(false) // Don't show date/time
.setOngoing(true) // Starting SDK 33 / Android 13, foreground notifications can be swiped away
.setGroup(NOTIFICATION_GROUP_ID) // Do not group with other notifications
.build()
}
@ -303,11 +309,11 @@ class SubscriberService : Service() {
override fun onTaskRemoved(rootIntent: Intent) {
val restartServiceIntent = Intent(applicationContext, SubscriberService::class.java).also {
it.setPackage(packageName)
}
val restartServicePendingIntent: PendingIntent = PendingIntent.getService(this, 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE)
applicationContext.getSystemService(Context.ALARM_SERVICE)
val alarmService: AlarmManager = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent)
};
val restartServicePendingIntent: PendingIntent = PendingIntent.getService(this, 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE);
applicationContext.getSystemService(Context.ALARM_SERVICE);
val alarmService: AlarmManager = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager;
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent);
}
/* This re-starts the service on reboot; see manifest */

View file

@ -2,11 +2,10 @@ package io.heckel.ntfy.service
import android.content.Context
import android.content.Intent
import androidx.preference.PreferenceManager
import androidx.core.content.ContextCompat
import androidx.work.*
import io.heckel.ntfy.app.Application
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@ -44,17 +43,11 @@ class SubscriberServiceManager(private val context: Context) {
Log.d(TAG, "ServiceStartWorker: Failed, no application found (work ID: ${id})")
return Result.failure()
}
withContext(Dispatchers.IO) {
val app = context.applicationContext as Application
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(app)
val preferenceKey = context.getString(R.string.eos_preference_key_is_enabled)
val action = if (sharedPreferences.getBoolean(preferenceKey, false)) {
SubscriberService.Action.START
} else {
SubscriberService.Action.STOP
}
val subscriptionIdsWithInstantStatus = app.repository.getSubscriptionIdsWithInstantStatus()
val instantSubscriptions = subscriptionIdsWithInstantStatus.toList().filter { (_, instant) -> instant }.size
val action = if (instantSubscriptions > 0) SubscriberService.Action.START else SubscriberService.Action.STOP
val serviceState = SubscriberService.readServiceState(context)
if (serviceState == SubscriberService.ServiceState.STOPPED && action == SubscriberService.Action.STOP) {
return@withContext Result.success()
@ -62,7 +55,7 @@ class SubscriberServiceManager(private val context: Context) {
Log.d(TAG, "ServiceStartWorker: Starting foreground service with action $action (work ID: ${id})")
Intent(context, SubscriberService::class.java).also {
it.action = action.name
context.startService(it)
ContextCompat.startForegroundService(context, it)
}
}
return Result.success()

View file

@ -56,10 +56,8 @@ class WsConnection(
private val since = AtomicReference<String?>(sinceId)
private val baseUrl = connectionId.baseUrl
private val topicsToSubscriptionIds = connectionId.topicsToSubscriptionIds
private val topicIsUnifiedPush = connectionId.topicIsUnifiedPush
private val subscriptionIds = topicsToSubscriptionIds.values
private val topicsStr = topicsToSubscriptionIds.keys.joinToString(separator = ",")
private val unifiedPushTopicsStr = topicIsUnifiedPush.filter { entry -> entry.value }.keys.joinToString(separator = ",")
private val shortUrl = topicShortUrl(baseUrl, topicsStr)
init {
@ -80,7 +78,7 @@ class WsConnection(
val sinceId = since.get()
val sinceVal = sinceId ?: "all"
val urlWithSince = topicUrlWs(baseUrl, topicsStr, sinceVal)
val request = requestBuilder(urlWithSince, user, unifiedPushTopicsStr).build()
val request = requestBuilder(urlWithSince, user).build()
Log.d(TAG, "$shortUrl (gid=$globalId): Opening $urlWithSince with listener ID $nextListenerId ...")
webSocket = client.newWebSocket(request, Listener(nextListenerId))
}

View file

@ -5,6 +5,8 @@ import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.View
import android.view.WindowManager
import android.view.inputmethod.InputMethodManager

View file

@ -8,10 +8,7 @@ import io.heckel.ntfy.util.isDarkThemeOn
class Colors {
companion object {
const val refreshProgressIndicator = R.color.teal
fun notificationIcon(context: Context): Int {
return if (isDarkThemeOn(context)) R.color.teal_light else R.color.teal
}
const val notificationIcon = R.color.teal
fun itemSelectedBackground(context: Context): Int {
return if (isDarkThemeOn(context)) R.color.black_800b else R.color.gray_400

View file

@ -7,13 +7,13 @@ import android.content.Context
import android.content.Intent
import android.content.Intent.ACTION_VIEW
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.Html
import android.view.ActionMode
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.activity.viewModels
@ -24,6 +24,7 @@ import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.textfield.TextInputEditText
import io.heckel.ntfy.BuildConfig
import io.heckel.ntfy.R
import io.heckel.ntfy.app.Application
@ -111,11 +112,9 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
baseUrl = baseUrl,
topic = topic,
instant = instant,
dedicatedChannels = false,
mutedUntil = 0,
minPriority = Repository.MIN_PRIORITY_USE_GLOBAL,
autoDelete = Repository.AUTO_DELETE_USE_GLOBAL,
insistent = Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL,
lastNotificationId = null,
icon = null,
upAppId = null,
@ -181,12 +180,40 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
howToExample.linksClickable = true
val howToText = getString(R.string.detail_how_to_example, topicUrl)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
howToExample.text = Html.fromHtml(howToText, Html.FROM_HTML_MODE_LEGACY)
} else {
howToExample.text = Html.fromHtml(howToText)
}
// Message bar
val messageText: TextInputEditText = findViewById(R.id.detail_message_box)
val messageSendButton: Button = findViewById(R.id.detail_message_send_button)
messageSendButton.setOnClickListener {
lifecycleScope.launch(Dispatchers.IO) {
val message = messageText.text.toString()
if (message.isNotEmpty()) {
try {
api.publish(subscriptionBaseUrl, subscriptionTopic, message = message)
messageText.text?.clear()
} catch (e: Exception) {
runOnUiThread {
Toast
.makeText(this@DetailActivity, getString(R.string.detail_test_message_error, e.message), Toast.LENGTH_LONG)
.show()
}
}
} else {
runOnUiThread {
Toast
.makeText(this@DetailActivity, getString(R.string.detail_message_bar_empty_message), Toast.LENGTH_LONG)
.show()
}
}
}
}
// Swipe to refresh
mainListContainer = findViewById(R.id.detail_notification_list_container)
mainListContainer.setOnRefreshListener { refresh() }
@ -244,7 +271,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
adapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {
if (positionStart == 0) {
Log.d(TAG, "$itemCount item(s) inserted at 0, scrolling to the top")
Log.d(TAG, "$itemCount item(s) inserted at $positionStart, scrolling to the top")
mainList.scrollToPosition(positionStart)
}
}
@ -257,13 +284,6 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
// Mark this subscription as "open" so we don't receive notifications for it
repository.detailViewSubscriptionId.set(subscriptionId)
// Stop insistent playback (if running, otherwise it'll throw)
try {
repository.mediaPlayer.stop()
} catch (_: Exception) {
// Ignore errors
}
}
override fun onResume() {
@ -581,7 +601,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
dialog.setOnShowListener {
dialog
.getButton(AlertDialog.BUTTON_POSITIVE)
.dangerButton(this)
.setTextAppearance(R.style.DangerText)
}
dialog.show()
}
@ -619,7 +639,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
dialog.setOnShowListener {
dialog
.getButton(AlertDialog.BUTTON_POSITIVE)
.dangerButton(this)
.setTextAppearance(R.style.DangerText)
}
dialog.show()
}
@ -629,7 +649,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
handleActionModeClick(notification)
} else if (notification.click != "") {
try {
startActivity(Intent(ACTION_VIEW, Uri.parse(notification.click)))
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(notification.click)))
} catch (e: Exception) {
Log.w(TAG, "Cannot open click URL", e)
runOnUiThread {
@ -730,7 +750,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
dialog.setOnShowListener {
dialog
.getButton(AlertDialog.BUTTON_POSITIVE)
.dangerButton(this)
.setTextAppearance(R.style.DangerText)
}
dialog.show()
}

View file

@ -27,16 +27,14 @@ import com.google.android.material.button.MaterialButton
import com.stfalcon.imageviewer.StfalconImageViewer
import io.heckel.ntfy.R
import io.heckel.ntfy.db.*
import io.heckel.ntfy.msg.DownloadAttachmentWorker
import io.heckel.ntfy.msg.DownloadManager
import io.heckel.ntfy.msg.DownloadAttachmentWorker
import io.heckel.ntfy.msg.DownloadType
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.msg.NotificationService.Companion.ACTION_VIEW
import io.heckel.ntfy.util.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.*
class DetailAdapter(private val activity: Activity, private val lifecycleScope: CoroutineScope, private val repository: Repository, private val onClick: (Notification) -> Unit, private val onLongClick: (Notification) -> Unit) :
ListAdapter<Notification, DetailAdapter.DetailViewHolder>(TopicDiffCallback) {
@ -145,22 +143,22 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
private fun renderPriority(context: Context, notification: Notification) {
when (notification.priority) {
PRIORITY_MIN -> {
1 -> {
priorityImageView.visibility = View.VISIBLE
priorityImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_priority_1_24dp))
}
PRIORITY_LOW -> {
2 -> {
priorityImageView.visibility = View.VISIBLE
priorityImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_priority_2_24dp))
}
PRIORITY_DEFAULT -> {
3 -> {
priorityImageView.visibility = View.GONE
}
PRIORITY_HIGH -> {
4 -> {
priorityImageView.visibility = View.VISIBLE
priorityImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_priority_4_24dp))
}
PRIORITY_MAX -> {
5 -> {
priorityImageView.visibility = View.VISIBLE
priorityImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_priority_5_24dp))
}
@ -175,9 +173,8 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
}
val attachment = notification.attachment
val image = attachment.contentUri != null && supportedImage(attachment.type) && previewableImage(attachmentFileStat)
val bitmap = if (image) attachment.contentUri?.readBitmapFromUriOrNull(context) else null
maybeRenderAttachmentImage(context, bitmap)
maybeRenderAttachmentBox(context, notification, attachment, attachmentFileStat, bitmap)
maybeRenderAttachmentImage(context, attachment, image)
maybeRenderAttachmentBox(context, notification, attachment, attachmentFileStat, image)
}
private fun maybeRenderIcon(context: Context, notification: Notification, iconStat: FileInfo?) {
@ -206,7 +203,7 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
}
private fun maybeRenderActions(context: Context, notification: Notification) {
if (!notification.actions.isNullOrEmpty()) {
if (notification.actions != null && notification.actions.isNotEmpty()) {
actionsWrapperView.visibility = View.VISIBLE
val actionsCount = Math.min(notification.actions.size, 3) // per documentation, only 3 actions are available
for (i in 0 until actionsCount) {
@ -222,7 +219,7 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
private fun resetCardButtons() {
// clear any previously created dynamic buttons
actionsFlow.allViews.forEach { actionsFlow.removeView(it) }
actionsFlow.allViews.forEach { it -> actionsFlow.removeView(it) }
actionsWrapperView.removeAllViews()
actionsWrapperView.addView(actionsFlow)
}
@ -241,8 +238,8 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
return button
}
private fun maybeRenderAttachmentBox(context: Context, notification: Notification, attachment: Attachment, attachmentFileStat: FileInfo?, bitmap: Bitmap?) {
if (bitmap != null) {
private fun maybeRenderAttachmentBox(context: Context, notification: Notification, attachment: Attachment, attachmentFileStat: FileInfo?, image: Boolean) {
if (image) {
attachmentBoxView.visibility = View.GONE
return
}
@ -351,12 +348,13 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
}
}
private fun maybeRenderAttachmentImage(context: Context, bitmap: Bitmap?) {
if (bitmap == null) {
private fun maybeRenderAttachmentImage(context: Context, attachment: Attachment, image: Boolean) {
if (!image) {
attachmentImageView.visibility = View.GONE
return
}
try {
val bitmap = attachment.contentUri?.readBitmapFromUri(context) ?: throw Exception("uri empty")
attachmentImageView.setImageBitmap(bitmap)
attachmentImageView.setOnClickListener {
val loadImage = { view: ImageView, image: Bitmap -> view.setImageBitmap(image) }
@ -373,12 +371,6 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
}
private fun openFile(context: Context, attachment: Attachment): Boolean {
if (!canOpenAttachment(attachment)) {
Toast
.makeText(context, context.getString(R.string.detail_item_cannot_open_apk), Toast.LENGTH_LONG)
.show()
return true
}
Log.d(TAG, "Opening file ${attachment.contentUri}")
try {
val contentUri = Uri.parse(attachment.contentUri)

View file

@ -4,10 +4,8 @@ import android.content.ContentResolver
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
@ -23,7 +21,6 @@ import io.heckel.ntfy.R
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.db.Subscription
import io.heckel.ntfy.msg.DownloadAttachmentWorker
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.service.SubscriberServiceManager
import io.heckel.ntfy.util.*
import kotlinx.coroutines.*
@ -38,7 +35,6 @@ class DetailSettingsActivity : AppCompatActivity() {
private lateinit var repository: Repository
private lateinit var serviceManager: SubscriberServiceManager
private lateinit var settingsFragment: SettingsFragment
private lateinit var notificationService: NotificationService
private var subscriptionId: Long = 0
override fun onCreate(savedInstanceState: Bundle?) {
@ -49,7 +45,6 @@ class DetailSettingsActivity : AppCompatActivity() {
repository = Repository.getInstance(this)
serviceManager = SubscriberServiceManager(this)
notificationService = NotificationService(this)
subscriptionId = intent.getLongExtra(DetailActivity.EXTRA_SUBSCRIPTION_ID, 0)
if (savedInstanceState == null) {
@ -80,11 +75,9 @@ class DetailSettingsActivity : AppCompatActivity() {
private lateinit var resolver: ContentResolver
private lateinit var repository: Repository
private lateinit var serviceManager: SubscriberServiceManager
private lateinit var notificationService: NotificationService
private lateinit var subscription: Subscription
private lateinit var iconSetPref: Preference
private lateinit var openChannelsPref: Preference
private lateinit var iconSetLauncher: ActivityResultLauncher<String>
private lateinit var iconRemovePref: Preference
@ -94,7 +87,6 @@ class DetailSettingsActivity : AppCompatActivity() {
// Dependencies (Fragments need a default constructor)
repository = Repository.getInstance(requireActivity())
serviceManager = SubscriberServiceManager(requireActivity())
notificationService = NotificationService(requireActivity())
resolver = requireContext().applicationContext.contentResolver
// Create result launcher for custom icon (must be created in onCreatePreferences() directly)
@ -118,18 +110,14 @@ class DetailSettingsActivity : AppCompatActivity() {
loadMutedUntilPref()
loadMinPriorityPref()
loadAutoDeletePref()
loadInsistentMaxPriorityPref()
loadIconSetPref()
loadIconRemovePref()
if (notificationService.channelsSupported()) {
loadDedicatedChannelsPrefs()
loadOpenChannelsPrefs()
}
} else {
val notificationsHeaderId = context?.getString(R.string.detail_settings_notifications_header_key) ?: return
val notificationsHeader: PreferenceCategory? = findPreference(notificationsHeaderId)
notificationsHeader?.isVisible = false
}
loadDisplayNamePref()
loadTopicUrlPref()
}
@ -157,48 +145,6 @@ class DetailSettingsActivity : AppCompatActivity() {
}
}
private fun loadDedicatedChannelsPrefs() {
val prefId = context?.getString(R.string.detail_settings_notifications_dedicated_channels_key) ?: return
val pref: SwitchPreference? = findPreference(prefId)
pref?.isVisible = true
pref?.isChecked = subscription.dedicatedChannels
pref?.preferenceDataStore = object : PreferenceDataStore() {
override fun putBoolean(key: String?, value: Boolean) {
save(subscription.copy(dedicatedChannels = value))
if (value) {
notificationService.createSubscriptionNotificationChannels(subscription)
} else {
notificationService.deleteSubscriptionNotificationChannels(subscription)
}
openChannelsPref.isVisible = value
}
override fun getBoolean(key: String?, defValue: Boolean): Boolean {
return subscription.dedicatedChannels
}
}
pref?.summaryProvider = Preference.SummaryProvider<SwitchPreference> { preference ->
if (preference.isChecked) {
getString(R.string.detail_settings_notifications_dedicated_channels_summary_on)
} else {
getString(R.string.detail_settings_notifications_dedicated_channels_summary_off)
}
}
}
private fun loadOpenChannelsPrefs() {
val prefId = context?.getString(R.string.detail_settings_notifications_open_channels_key) ?: return
openChannelsPref = findPreference(prefId) ?: return
openChannelsPref.isVisible = subscription.dedicatedChannels
openChannelsPref.preferenceDataStore = object : PreferenceDataStore() { } // Dummy store to protect from accidentally overwriting
openChannelsPref.onPreferenceClickListener = Preference.OnPreferenceClickListener { _ ->
val settingsIntent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().applicationContext.packageName)
startActivity(settingsIntent);
true
}
}
private fun loadMutedUntilPref() {
val prefId = context?.getString(R.string.detail_settings_notifications_muted_until_key) ?: return
val pref: ListPreference? = findPreference(prefId)
@ -229,8 +175,9 @@ class DetailSettingsActivity : AppCompatActivity() {
return subscription.mutedUntil.toString()
}
}
pref?.summaryProvider = Preference.SummaryProvider<ListPreference> {
when (val mutedUntilValue = subscription.mutedUntil) {
pref?.summaryProvider = Preference.SummaryProvider<ListPreference> { _ ->
val mutedUntilValue = subscription.mutedUntil
when (mutedUntilValue) {
Repository.MUTED_UNTIL_SHOW_ALL -> getString(R.string.settings_notifications_muted_until_show_all)
Repository.MUTED_UNTIL_FOREVER -> getString(R.string.settings_notifications_muted_until_forever)
else -> {
@ -262,8 +209,8 @@ class DetailSettingsActivity : AppCompatActivity() {
value = repository.getMinPriority()
}
val summary = when (value) {
PRIORITY_MIN -> getString(R.string.settings_notifications_min_priority_summary_any)
PRIORITY_MAX -> getString(R.string.settings_notifications_min_priority_summary_max)
1 -> getString(R.string.settings_notifications_min_priority_summary_any)
5 -> getString(R.string.settings_notifications_min_priority_summary_max)
else -> {
val minPriorityString = toPriorityString(requireContext(), value)
getString(R.string.settings_notifications_min_priority_summary_x_or_higher, value, minPriorityString)
@ -290,7 +237,7 @@ class DetailSettingsActivity : AppCompatActivity() {
pref?.summaryProvider = Preference.SummaryProvider<ListPreference> { preference ->
var seconds = preference.value.toLongOrNull() ?: Repository.AUTO_DELETE_USE_GLOBAL
val global = seconds == Repository.AUTO_DELETE_USE_GLOBAL
if (global) {
if (seconds == Repository.AUTO_DELETE_USE_GLOBAL) {
seconds = repository.getAutoDeleteSeconds()
}
val summary = when (seconds) {
@ -306,39 +253,12 @@ class DetailSettingsActivity : AppCompatActivity() {
}
}
private fun loadInsistentMaxPriorityPref() {
val prefId = context?.getString(R.string.detail_settings_notifications_insistent_max_priority_key) ?: return
val pref: ListPreference? = findPreference(prefId)
pref?.isVisible = true
pref?.value = subscription.insistent.toString()
pref?.preferenceDataStore = object : PreferenceDataStore() {
override fun putString(key: String?, value: String?) {
val intValue = value?.toIntOrNull() ?:return
save(subscription.copy(insistent = intValue))
}
override fun getString(key: String?, defValue: String?): String {
return subscription.insistent.toString()
}
}
pref?.summaryProvider = Preference.SummaryProvider<ListPreference> { preference ->
val value = preference.value.toIntOrNull() ?: Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL
val global = value == Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL
val enabled = if (global) repository.getInsistentMaxPriorityEnabled() else value == Repository.INSISTENT_MAX_PRIORITY_ENABLED
val summary = if (enabled) {
getString(R.string.settings_notifications_insistent_max_priority_summary_enabled)
} else {
getString(R.string.settings_notifications_insistent_max_priority_summary_disabled)
}
maybeAppendGlobal(summary, global)
}
}
private fun loadIconSetPref() {
val prefId = context?.getString(R.string.detail_settings_appearance_icon_set_key) ?: return
iconSetPref = findPreference(prefId) ?: return
iconSetPref.isVisible = subscription.icon == null
iconSetPref.preferenceDataStore = object : PreferenceDataStore() { } // Dummy store to protect from accidentally overwriting
iconSetPref.onPreferenceClickListener = Preference.OnPreferenceClickListener {
iconSetPref.onPreferenceClickListener = Preference.OnPreferenceClickListener { _ ->
iconSetLauncher.launch("image/*")
true
}
@ -349,7 +269,7 @@ class DetailSettingsActivity : AppCompatActivity() {
iconRemovePref = findPreference(prefId) ?: return
iconRemovePref.isVisible = subscription.icon != null
iconRemovePref.preferenceDataStore = object : PreferenceDataStore() { } // Dummy store to protect from accidentally overwriting
iconRemovePref.onPreferenceClickListener = Preference.OnPreferenceClickListener {
iconRemovePref.onPreferenceClickListener = Preference.OnPreferenceClickListener { _ ->
iconRemovePref.isVisible = false
iconSetPref.isVisible = true
deleteIcon(subscription.icon)
@ -376,17 +296,16 @@ class DetailSettingsActivity : AppCompatActivity() {
pref?.dialogMessage = getString(R.string.detail_settings_appearance_display_name_message, topicShortUrl(subscription.baseUrl, subscription.topic))
pref?.preferenceDataStore = object : PreferenceDataStore() {
override fun putString(key: String?, value: String?) {
val displayName = if (value != "") value else null
val displayName: String? = if (value == "") {
null
} else {
value
}
val newSubscription = subscription.copy(displayName = displayName)
save(newSubscription)
// Update activity title
activity?.runOnUiThread {
activity?.title = displayName(newSubscription)
}
// Update dedicated notification channel
if (newSubscription.dedicatedChannels) {
notificationService.createSubscriptionNotificationChannels(newSubscription)
}
}
override fun getString(key: String?, defValue: String?): String {
return subscription.displayName ?: ""

View file

@ -35,6 +35,7 @@ import io.heckel.ntfy.app.Application
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.db.Subscription
import io.heckel.ntfy.firebase.FirebaseMessenger
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.msg.ApiService
import io.heckel.ntfy.msg.DownloadManager
import io.heckel.ntfy.msg.DownloadType
@ -47,6 +48,7 @@ import io.heckel.ntfy.work.PollWorker
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.security.SecureRandom
import java.util.*
import java.util.concurrent.TimeUnit
import kotlin.random.Random
@ -397,10 +399,6 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc
}
true
}
R.id.main_menu_donate -> {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.main_menu_donate_url))))
true
}
R.id.main_menu_docs -> {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.main_menu_docs_url))))
true
@ -450,11 +448,9 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc
baseUrl = baseUrl,
topic = topic,
instant = instant,
dedicatedChannels = false,
mutedUntil = 0,
minPriority = Repository.MIN_PRIORITY_USE_GLOBAL,
autoDelete = Repository.AUTO_DELETE_USE_GLOBAL,
insistent = Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL,
lastNotificationId = null,
icon = null,
upAppId = null,
@ -622,7 +618,7 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc
dialog.setOnShowListener {
dialog
.getButton(AlertDialog.BUTTON_POSITIVE)
.dangerButton(this)
.setTextAppearance(R.style.DangerText)
}
dialog.show()
}

View file

@ -1,7 +1,9 @@
package io.heckel.ntfy.ui
import android.content.Context
import android.graphics.BitmapFactory
import android.graphics.Color
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -15,8 +17,10 @@ import io.heckel.ntfy.R
import io.heckel.ntfy.db.ConnectionState
import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.db.Subscription
import io.heckel.ntfy.util.displayName
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.util.Log
import io.heckel.ntfy.util.readBitmapFromUriOrNull
import io.heckel.ntfy.util.displayName
import java.text.DateFormat
import java.util.*
@ -96,8 +100,6 @@ class MainAdapter(private val repository: Repository, private val onClick: (Subs
val showMutedUntilIcon = !showMutedForeverIcon && (subscription.mutedUntil > 1L || globalMutedUntil > 1L) && !isUnifiedPush
if (subscription.icon != null) {
imageView.setImageBitmap(subscription.icon.readBitmapFromUriOrNull(context))
} else {
imageView.setImageResource(R.drawable.ic_sms_gray_24dp)
}
nameView.text = displayName(subscription)
statusView.text = statusMessage
@ -117,7 +119,7 @@ class MainAdapter(private val repository: Repository, private val onClick: (Subs
if (selected.contains(subscription.id)) {
itemView.setBackgroundResource(Colors.itemSelectedBackground(context))
} else {
itemView.setBackgroundColor(Color.TRANSPARENT)
itemView.setBackgroundColor(Color.TRANSPARENT);
}
}
}

View file

@ -1,71 +0,0 @@
package io.heckel.ntfy.ui
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.view.WindowInsetsController
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import io.heckel.ntfy.R
import io.heckel.ntfy.databinding.MainSettingsActivityBinding
class MainSettingsActivity : AppCompatActivity() {
private lateinit var mBinding: MainSettingsActivityBinding
@RequiresApi(Build.VERSION_CODES.R)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = MainSettingsActivityBinding.inflate(layoutInflater)
setContentView(mBinding.root)
setupToolbar()
setSystemBarsAppearance()
showPreferencesFragment()
}
private fun setupToolbar() {
mBinding.toolbar.setNavigationOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
@RequiresApi(Build.VERSION_CODES.R)
private fun setSystemBarsAppearance() {
val insetsController = window.insetsController ?: return
val isLightMode = isSystemInLightMode()
if (isLightMode) {
insetsController.setSystemBarsAppearance(
WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
)
insetsController.setSystemBarsAppearance(
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS,
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
)
} else {
insetsController.setSystemBarsAppearance(
0,
WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
)
insetsController.setSystemBarsAppearance(
0,
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
)
}
}
private fun isSystemInLightMode(): Boolean {
val nightModeFlags = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
return nightModeFlags != Configuration.UI_MODE_NIGHT_YES
}
private fun showPreferencesFragment() {
supportFragmentManager
.beginTransaction()
.replace(R.id.fragment_container, PreferencesFragment())
.commit()
}
}

View file

@ -8,8 +8,10 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import io.heckel.ntfy.db.*
import io.heckel.ntfy.up.Distributor
import io.heckel.ntfy.util.Log
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlin.collections.List
class SubscriptionsViewModel(private val repository: Repository) : ViewModel() {
fun list(): LiveData<List<Subscription>> {

View file

@ -8,6 +8,7 @@ import android.widget.RadioButton
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import io.heckel.ntfy.R
import io.heckel.ntfy.db.Database
import io.heckel.ntfy.db.Repository
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay

View file

@ -1,37 +0,0 @@
package io.heckel.ntfy.ui
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.widget.Toolbar
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat
import io.heckel.ntfy.R
import io.heckel.ntfy.service.SubscriberService
import io.heckel.ntfy.util.Log
class PreferencesFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings_preferences, rootKey)
val preference: SwitchPreferenceCompat? =
findPreference(getString(R.string.eos_preference_key_is_enabled))
preference?.setOnPreferenceChangeListener { _, newValue ->
val isChecked = newValue as Boolean
val intent = Intent(context, SubscriberService::class.java)
intent.action = if (isChecked) {
SubscriberService.Action.START.name
} else {
SubscriberService.Action.STOP.name
}
requireContext().startService(intent)
true
}
}
}

View file

@ -191,8 +191,8 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
}
minPriority?.summaryProvider = Preference.SummaryProvider<ListPreference> { pref ->
when (val minPriorityValue = pref.value.toIntOrNull() ?: 1) { // 1/low means all priorities
PRIORITY_MIN -> getString(R.string.settings_notifications_min_priority_summary_any)
PRIORITY_MAX -> getString(R.string.settings_notifications_min_priority_summary_max)
1 -> getString(R.string.settings_notifications_min_priority_summary_any)
5 -> getString(R.string.settings_notifications_min_priority_summary_max)
else -> {
val minPriorityString = toPriorityString(requireContext(), minPriorityValue)
getString(R.string.settings_notifications_min_priority_summary_x_or_higher, minPriorityValue, minPriorityString)
@ -200,26 +200,6 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
}
}
// Keep alerting for max priority
val insistentMaxPriorityPrefId = context?.getString(R.string.settings_notifications_insistent_max_priority_key) ?: return
val insistentMaxPriority: SwitchPreference? = findPreference(insistentMaxPriorityPrefId)
insistentMaxPriority?.isChecked = repository.getInsistentMaxPriorityEnabled()
insistentMaxPriority?.preferenceDataStore = object : PreferenceDataStore() {
override fun putBoolean(key: String?, value: Boolean) {
repository.setInsistentMaxPriorityEnabled(value)
}
override fun getBoolean(key: String?, defValue: Boolean): Boolean {
return repository.getInsistentMaxPriorityEnabled()
}
}
insistentMaxPriority?.summaryProvider = Preference.SummaryProvider<SwitchPreference> { pref ->
if (pref.isChecked) {
getString(R.string.settings_notifications_insistent_max_priority_summary_enabled)
} else {
getString(R.string.settings_notifications_insistent_max_priority_summary_disabled)
}
}
// Channel settings
val channelPrefsPrefId = context?.getString(R.string.settings_notifications_channel_prefs_key) ?: return
val channelPrefs: Preference? = findPreference(channelPrefsPrefId)
@ -364,26 +344,6 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
}
}
// Enable UnifiedPush
val unifiedPushEnabledPrefId = context?.getString(R.string.settings_advanced_unifiedpush_key) ?: return
val unifiedPushEnabled: SwitchPreference? = findPreference(unifiedPushEnabledPrefId)
unifiedPushEnabled?.isChecked = repository.getUnifiedPushEnabled()
unifiedPushEnabled?.preferenceDataStore = object : PreferenceDataStore() {
override fun putBoolean(key: String?, value: Boolean) {
repository.setUnifiedPushEnabled(value)
}
override fun getBoolean(key: String?, defValue: Boolean): Boolean {
return repository.getUnifiedPushEnabled()
}
}
unifiedPushEnabled?.summaryProvider = Preference.SummaryProvider<SwitchPreference> { pref ->
if (pref.isChecked) {
getString(R.string.settings_advanced_unifiedpush_summary_enabled)
} else {
getString(R.string.settings_advanced_unifiedpush_summary_disabled)
}
}
// Export logs
val exportLogsPrefId = context?.getString(R.string.settings_advanced_export_logs_key) ?: return
val exportLogs: ListPreference? = findPreference(exportLogsPrefId)

View file

@ -1,6 +1,7 @@
package io.heckel.ntfy.ui
import android.content.Intent
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
@ -87,16 +88,8 @@ class ShareActivity : AppCompatActivity() {
errorImage = findViewById(R.id.share_error_image)
errorImage.visibility = View.GONE
val textWatcher = object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
validateInput()
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// Nothing
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
// Nothing
}
val textWatcher = AfterChangedTextWatcher {
validateInput()
}
contentText.addTextChangedListener(textWatcher)
topicText.addTextChangedListener(textWatcher)
@ -294,7 +287,7 @@ class ShareActivity : AppCompatActivity() {
.show()
}
} catch (e: Exception) {
val errorMessage = if (e is ApiService.UnauthorizedException) {
val message = if (e is ApiService.UnauthorizedException) {
if (e.user != null) {
getString(R.string.detail_test_message_error_unauthorized_user, e.user.username)
} else {
@ -307,7 +300,7 @@ class ShareActivity : AppCompatActivity() {
}
runOnUiThread {
progress.visibility = View.GONE
errorText.text = errorMessage
errorText.text = message
errorImage.visibility = View.VISIBLE
errorText.visibility = View.VISIBLE
}

View file

@ -3,17 +3,19 @@ package io.heckel.ntfy.ui
import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.os.Build
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.View
import android.view.WindowManager
import android.widget.Button
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import com.google.android.material.textfield.TextInputEditText
import io.heckel.ntfy.R
import io.heckel.ntfy.db.User
import io.heckel.ntfy.util.AfterChangedTextWatcher
import io.heckel.ntfy.util.dangerButton
import io.heckel.ntfy.util.validUrl
class UserFragment : DialogFragment() {
@ -96,14 +98,28 @@ class UserFragment : DialogFragment() {
// Delete button should be red
if (user != null) {
dialog
.getButton(AlertDialog.BUTTON_NEUTRAL)
.dangerButton(requireContext())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
dialog
.getButton(AlertDialog.BUTTON_NEUTRAL)
.setTextAppearance(R.style.DangerText)
} else {
dialog
.getButton(AlertDialog.BUTTON_NEUTRAL)
.setTextColor(ContextCompat.getColor(requireContext(), Colors.dangerText(requireContext())))
}
}
// Validate input when typing
val textWatcher = AfterChangedTextWatcher {
validateInput()
val textWatcher = object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
validateInput()
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// Nothing
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
// Nothing
}
}
baseUrlView.addTextChangedListener(textWatcher)
usernameView.addTextChangedListener(textWatcher)
@ -124,7 +140,7 @@ class UserFragment : DialogFragment() {
}
// Show keyboard when the dialog is shown (see https://stackoverflow.com/a/19573049/1440785)
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return dialog
}

View file

@ -10,10 +10,12 @@ import io.heckel.ntfy.service.SubscriberServiceManager
import io.heckel.ntfy.util.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import java.util.*
import kotlin.random.Random
/**
* This is the UnifiedPush broadcast receiver to handle the distributor actions REGISTER and UNREGISTER.
@ -38,11 +40,6 @@ class BroadcastReceiver : android.content.BroadcastReceiver() {
val repository = app.repository
val distributor = Distributor(app)
Log.d(TAG, "REGISTER received for app $appId (connectorToken=$connectorToken)")
if (!repository.getUnifiedPushEnabled()) {
Log.w(TAG, "Refusing registration because 'EnableUP' is disabled")
distributor.sendRegistrationFailed(appId, connectorToken, "UnifiedPush is disabled in ntfy")
return
}
if (appId.isBlank()) {
Log.w(TAG, "Refusing registration: Empty application")
distributor.sendRegistrationFailed(appId, connectorToken, "Empty application string")
@ -75,11 +72,9 @@ class BroadcastReceiver : android.content.BroadcastReceiver() {
baseUrl = baseUrl,
topic = topic,
instant = true, // No Firebase, always instant!
dedicatedChannels = false,
mutedUntil = 0,
minPriority = Repository.MIN_PRIORITY_USE_GLOBAL,
autoDelete = Repository.AUTO_DELETE_USE_GLOBAL,
insistent = Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL,
lastNotificationId = null,
icon = null,
upAppId = appId,

View file

@ -1,11 +0,0 @@
package io.heckel.ntfy.util
const val ANDROID_APP_MIME_TYPE = "application/vnd.android.package-archive"
const val PRIORITY_MIN = 1
const val PRIORITY_LOW = 2
const val PRIORITY_DEFAULT = 3
const val PRIORITY_HIGH = 4
const val PRIORITY_MAX = 5
val ALL_PRIORITIES = listOf(PRIORITY_MIN, PRIORITY_LOW, PRIORITY_DEFAULT, PRIORITY_HIGH, PRIORITY_MAX)

View file

@ -22,16 +22,12 @@ import android.util.Base64
import android.util.TypedValue
import android.view.View
import android.view.Window
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.content.ContextCompat
import io.heckel.ntfy.BuildConfig
import io.heckel.ntfy.R
import io.heckel.ntfy.db.*
import io.heckel.ntfy.msg.MESSAGE_ENCODING_BASE64
import io.heckel.ntfy.ui.Colors
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
@ -60,12 +56,8 @@ fun topicUrlAuth(baseUrl: String, topic: String) = "${topicUrl(baseUrl, topic)}/
fun topicUrlJsonPoll(baseUrl: String, topic: String, since: String) = "${topicUrl(baseUrl, topic)}/json?poll=1&since=$since"
fun topicShortUrl(baseUrl: String, topic: String) = shortUrl(topicUrl(baseUrl, topic))
fun subscriptionTopicShortUrl(subscription: Subscription) : String {
return topicShortUrl(subscription.baseUrl, subscription.topic)
}
fun displayName(subscription: Subscription) : String {
return subscription.displayName ?: subscriptionTopicShortUrl(subscription)
return subscription.displayName ?: topicShortUrl(subscription.baseUrl, subscription.topic)
}
fun shortUrl(url: String) = url
@ -99,16 +91,17 @@ fun formatDateShort(timestampSecs: Long): String {
}
fun toPriority(priority: Int?): Int {
return if (priority != null && ALL_PRIORITIES.contains(priority)) priority else PRIORITY_DEFAULT
if (priority != null && (1..5).contains(priority)) return priority
else return 3
}
fun toPriorityString(context: Context, priority: Int): String {
return when (priority) {
PRIORITY_MIN -> context.getString(R.string.settings_notifications_priority_min)
PRIORITY_LOW -> context.getString(R.string.settings_notifications_priority_low)
PRIORITY_DEFAULT -> context.getString(R.string.settings_notifications_priority_default)
PRIORITY_HIGH -> context.getString(R.string.settings_notifications_priority_high)
PRIORITY_MAX -> context.getString(R.string.settings_notifications_priority_max)
1 -> context.getString(R.string.settings_notifications_priority_min)
2 -> context.getString(R.string.settings_notifications_priority_low)
3 -> context.getString(R.string.settings_notifications_priority_default)
4 -> context.getString(R.string.settings_notifications_priority_high)
5 -> context.getString(R.string.settings_notifications_priority_max)
else -> context.getString(R.string.settings_notifications_priority_default)
}
}
@ -224,6 +217,16 @@ fun maybeAppendActionErrors(message: String, notification: Notification): String
}
}
// Checks in the most horrible way if a content URI exists; I couldn't find a better way
fun fileExists(context: Context, contentUri: String?): Boolean {
return try {
fileStat(context, Uri.parse(contentUri)) // Throws if the file does not exist
true
} catch (_: Exception) {
false
}
}
// Queries the filename of a content URI
fun fileName(context: Context, contentUri: String?, fallbackName: String): String {
return try {
@ -325,7 +328,7 @@ fun mimeTypeToIconResource(mimeType: String?): Int {
R.drawable.ic_file_video_orange_24dp
} else if (mimeType?.startsWith("audio/") == true) {
R.drawable.ic_file_audio_purple_24dp
} else if (mimeType == ANDROID_APP_MIME_TYPE) {
} else if (mimeType == "application/vnd.android.package-archive") {
R.drawable.ic_file_app_gray_24dp
} else {
R.drawable.ic_file_document_blue_24dp
@ -336,15 +339,6 @@ fun supportedImage(mimeType: String?): Boolean {
return listOf("image/jpeg", "image/png").contains(mimeType)
}
// Google Play doesn't allow us to install received .apk files anymore.
// See https://github.com/binwiederhier/ntfy/issues/531
fun canOpenAttachment(attachment: Attachment?): Boolean {
if (attachment?.type == ANDROID_APP_MIME_TYPE && !BuildConfig.INSTALL_PACKAGES_AVAILABLE) {
return false
}
return true
}
// Check if battery optimization is enabled, see https://stackoverflow.com/a/49098293/1440785
fun isIgnoringBatteryOptimizations(context: Context): Boolean {
val powerManager = context.applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager
@ -425,16 +419,11 @@ fun View.ripple(scope: CoroutineScope) {
}
}
fun Uri.readBitmapFromUri(context: Context): Bitmap {
val resolver = context.applicationContext.contentResolver
val bitmapStream = resolver.openInputStream(this)
val bitmap = BitmapFactory.decodeStream(bitmapStream)
if (bitmap.byteCount > 100 * 1024 * 1024) {
// If the Bitmap is too large to be rendered (100 MB), it will throw a RuntimeException downstream.
// This workaround throws a catchable exception instead. See issue #474. From https://stackoverflow.com/a/53334563/1440785
throw Exception("Bitmap too large to draw on Canvas (${bitmap.byteCount} bytes)")
}
return bitmap
return BitmapFactory.decodeStream(bitmapStream)
}
fun String.readBitmapFromUri(context: Context): Bitmap {
@ -496,16 +485,3 @@ fun String.sha256(): String {
val digest = md.digest(this.toByteArray())
return digest.fold("") { str, it -> str + "%02x".format(it) }
}
fun Button.dangerButton(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
setTextAppearance(R.style.DangerText)
} else {
setTextColor(ContextCompat.getColor(context, Colors.dangerText(context)))
}
}
fun Long.nullIfZero(): Long? {
return if (this == 0L) return null else this
}

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="5dp"/>
</shape>

View file

@ -1,31 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="50dp"
android:height="50dp"
android:viewportWidth="50"
android:viewportHeight="50">
<path
android:pathData="m7.8399,6.35c-3.58,0 -6.6469,2.817 -6.6469,6.3983v0.003l0.0351,27.8668 -0.8991,6.6347 12.2261,-3.248L42.9487,44.0049c3.58,0 6.6469,-2.8208 6.6469,-6.4022v-24.8545c0,-3.5803 -3.0652,-6.3967 -6.6438,-6.3983h-0.0031zM7.8399,10.8662h35.1088,0.0031c1.2579,0.0013 2.1277,0.9164 2.1277,1.8821v24.8544c0,0.9666 -0.8714,1.8821 -2.1307,1.8821L11.8924,39.4849l-6.2114,1.8768 0.0633,-0.366 -0.0343,-28.2473c0,-0.9665 0.8706,-1.8821 2.13,-1.8821z"
android:strokeWidth="0.754022"
android:fillColor="#FFFFFFFF"
android:strokeColor="#00000000"/>
<path
android:pathData="m11.5278,32.0849l0,-3.346l7.0363,-3.721q0.3397,-0.1732 0.6551,-0.2596 0.3397,-0.1153 0.6066,-0.1732 0.2912,-0.0288 0.5823,-0.0576l0,-0.2308q-0.2912,-0.0288 -0.5823,-0.1153 -0.2669,-0.0576 -0.6066,-0.1443 -0.3154,-0.1153 -0.6551,-0.2884l-7.0363,-3.721l0,-3.3749l10.8699,5.9132l0,3.6056z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:strokeColor="#00000000"/>
<path
android:pathData="m10.9661,15.6112l0,4.8516l7.3742,3.9002c0.0157,0.0077 0.0305,0.0128 0.0461,0.0204 -0.0157,0.0077 -0.0305,0.0128 -0.0461,0.0204l-7.3742,3.9002l0,4.8267l0.7961,-0.4333 11.1995,-6.0969l0,-4.463zM12.0931,17.6933 L21.8346,22.9981l0,2.7446l-9.7414,5.2999l0,-1.8679l6.6912,-3.5416 0.0084,-0.0051c0.1961,-0.0992 0.3826,-0.1724 0.5531,-0.2191l0.0127,0l0.0167,-0.0051c0.2034,-0.0691 0.3777,-0.1209 0.5279,-0.1545l1.0684,-0.1046l0,-1.4644l-0.5154,-0.0497c-0.1632,-0.0153 -0.3288,-0.0505 -0.4944,-0.0997l-0.0167,-0.0051 -0.0167,-0.0051c-0.1632,-0.0352 -0.3552,-0.0811 -0.5656,-0.1344 -0.1802,-0.0668 -0.3706,-0.1479 -0.5698,-0.2492l-0.0084,-0.0051 -6.6912,-3.5416z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:strokeColor="#00000000"/>
<path
android:pathData="m26.7503,30.9206l11.6118,0l0,3.1388L26.7503,34.0594Z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:strokeColor="#00000000"/>
<path
android:pathData="m26.1875,30.2775l0,0.6427 0,3.7845l12.7371,0l0,-4.4272zM27.3113,31.563l10.4896,0l0,1.8515l-10.4896,0z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:strokeColor="#00000000"/>
</vector>

View file

@ -1,31 +1,31 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="22dp"
android:height="22dp"
android:width="50dp"
android:height="50dp"
android:viewportWidth="50"
android:viewportHeight="50">
<path
android:pathData="m7.8399,6.35c-3.58,0 -6.6469,2.817 -6.6469,6.3983v0.003l0.0351,27.8668 -0.8991,6.6347 12.2261,-3.248L42.9487,44.0049c3.58,0 6.6469,-2.8208 6.6469,-6.4022v-24.8545c0,-3.5803 -3.0652,-6.3967 -6.6438,-6.3983h-0.0031zM7.8399,10.8662h35.1088,0.0031c1.2579,0.0013 2.1277,0.9164 2.1277,1.8821v24.8544c0,0.9666 -0.8714,1.8821 -2.1307,1.8821L11.8924,39.4849l-6.2114,1.8768 0.0633,-0.366 -0.0343,-28.2473c0,-0.9665 0.8706,-1.8821 2.13,-1.8821z"
android:strokeWidth="0.754022"
android:fillColor="?android:attr/colorControlNormal"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m11.5278,32.0849l0,-3.346l7.0363,-3.721q0.3397,-0.1732 0.6551,-0.2596 0.3397,-0.1153 0.6066,-0.1732 0.2912,-0.0288 0.5823,-0.0576l0,-0.2308q-0.2912,-0.0288 -0.5823,-0.1153 -0.2669,-0.0576 -0.6066,-0.1443 -0.3154,-0.1153 -0.6551,-0.2884l-7.0363,-3.721l0,-3.3749l10.8699,5.9132l0,3.6056z"
android:strokeWidth="0.525121"
android:fillColor="?android:attr/colorControlNormal"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m10.9661,15.6112l0,4.8516l7.3742,3.9002c0.0157,0.0077 0.0305,0.0128 0.0461,0.0204 -0.0157,0.0077 -0.0305,0.0128 -0.0461,0.0204l-7.3742,3.9002l0,4.8267l0.7961,-0.4333 11.1995,-6.0969l0,-4.463zM12.0931,17.6933 L21.8346,22.9981l0,2.7446l-9.7414,5.2999l0,-1.8679l6.6912,-3.5416 0.0084,-0.0051c0.1961,-0.0992 0.3826,-0.1724 0.5531,-0.2191l0.0127,0l0.0167,-0.0051c0.2034,-0.0691 0.3777,-0.1209 0.5279,-0.1545l1.0684,-0.1046l0,-1.4644l-0.5154,-0.0497c-0.1632,-0.0153 -0.3288,-0.0505 -0.4944,-0.0997l-0.0167,-0.0051 -0.0167,-0.0051c-0.1632,-0.0352 -0.3552,-0.0811 -0.5656,-0.1344 -0.1802,-0.0668 -0.3706,-0.1479 -0.5698,-0.2492l-0.0084,-0.0051 -6.6912,-3.5416z"
android:strokeWidth="0.525121"
android:fillColor="?android:attr/colorControlNormal"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m26.7503,30.9206l11.6118,0l0,3.1388L26.7503,34.0594Z"
android:strokeWidth="0.525121"
android:fillColor="?android:attr/colorControlNormal"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m26.1875,30.2775l0,0.6427 0,3.7845l12.7371,0l0,-4.4272zM27.3113,31.563l10.4896,0l0,1.8515l-10.4896,0z"
android:strokeWidth="0.525121"
android:fillColor="?android:attr/colorControlNormal"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
</vector>

View file

@ -6,21 +6,21 @@
<path
android:pathData="M7.8398,6.35C4.2598,6.35 1.1932,9.1672 1.1932,12.7486L1.1932,12.7512L1.2283,40.6182L0.3292,47.2529L12.5553,44.0051L35.9384,44.0051L36.5848,39.4849L11.8923,39.4849L5.6808,41.3618L5.7444,40.9954L5.7097,12.7486C5.7097,11.7821 6.5805,10.866 7.8398,10.866L42.9488,10.866L42.9519,10.866C44.2097,10.8673 45.0794,11.7828 45.0794,12.7486L45.0794,25.7395L49.5954,25.7395L49.5954,12.7481C49.5954,9.1677 46.5305,6.3517 42.9519,6.35L42.9488,6.35L7.8398,6.35zM49.5954,31.4735C45.6685,38.326 43.7215,41.7259 42.4176,44.0051L42.9488,44.0051C46.5288,44.0051 49.5954,41.1842 49.5954,37.6029L49.5954,31.4735z"
android:strokeWidth="2.84985"
android:fillColor="#FFFFFFFF"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m11.5278,32.0849l0,-3.346l7.0363,-3.721q0.3397,-0.1732 0.6551,-0.2596 0.3397,-0.1153 0.6066,-0.1732 0.2912,-0.0288 0.5823,-0.0576l0,-0.2308q-0.2912,-0.0288 -0.5823,-0.1153 -0.2669,-0.0576 -0.6066,-0.1443 -0.3154,-0.1153 -0.6551,-0.2884l-7.0363,-3.721l0,-3.3749l10.8699,5.9132l0,3.6056z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m10.9661,15.6112l0,4.8516l7.3742,3.9002c0.0157,0.0077 0.0305,0.0128 0.0461,0.0204 -0.0157,0.0077 -0.0305,0.0128 -0.0461,0.0204l-7.3742,3.9002l0,4.8267l0.7961,-0.4333 11.1995,-6.0969l0,-4.463zM12.0931,17.6933 L21.8346,22.9981l0,2.7446l-9.7414,5.2999l0,-1.8679l6.6912,-3.5416 0.0084,-0.0051c0.1961,-0.0992 0.3826,-0.1724 0.5531,-0.2191l0.0127,0l0.0167,-0.0051c0.2034,-0.0691 0.3777,-0.1209 0.5279,-0.1545l1.0684,-0.1046l0,-1.4644l-0.5154,-0.0497c-0.1632,-0.0153 -0.3288,-0.0505 -0.4944,-0.0997l-0.0167,-0.0051 -0.0167,-0.0051c-0.1632,-0.0352 -0.3552,-0.0811 -0.5656,-0.1344 -0.1802,-0.0668 -0.3706,-0.1479 -0.5698,-0.2492l-0.0084,-0.0051 -6.6912,-3.5416z"
android:strokeWidth="0.525121"
android:fillColor="#FFFFFFFF"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
<path
android:pathData="m41.6796,15.3498c-4.1394,7.2567 -7.8235,13.7146 -10.2159,17.9374h8.5829l-1.8531,12.962c1.2024,-2.1043 3.8969,-6.8095 10.2878,-17.9601h-8.6543z"
android:strokeWidth="1"
android:fillColor="#FFFFFFFF"
android:fillColor="#338574"
android:strokeColor="#00000000"/>
</vector>

View file

@ -11,8 +11,7 @@
style="@style/CardViewBackground"
android:id="@+id/detail_notification_list_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
android:visibility="gone" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@id/detail_message_bar" app:layout_constraintVertical_bias="0.0">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/detail_notification_list"
android:layout_width="match_parent"
@ -26,51 +25,120 @@
app:layoutManager="LinearLayoutManager"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_no_notifications" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content" app:srcCompat="@drawable/ic_sms_gray_48dp"
android:id="@+id/detail_no_notifications_image"/>
<TextView
android:id="@+id/detail_no_notifications_text"
android:text="@string/detail_no_notifications_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:padding="10dp" android:gravity="center_horizontal"
android:paddingStart="50dp" android:paddingEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_intro"
android:layout_height="0dp"
android:id="@+id/detail_no_notifications"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" android:visibility="visible" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/detail_message_bar" app:layout_constraintVertical_bias="1.0">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_intro"
android:layout_marginTop="20dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_example"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_example"
android:layout_marginTop="7dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_link"
android:layout_marginTop="7dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:linksClickable="true"
android:autoLink="web"/>
</LinearLayout>
android:id="@+id/detail_no_notifications_inner" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content" app:srcCompat="@drawable/ic_sms_gray_48dp"
android:id="@+id/detail_no_notifications_image"/>
<TextView
android:id="@+id/detail_no_notifications_text"
android:text="@string/detail_no_notifications_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:padding="10dp" android:gravity="center_horizontal"
android:paddingStart="50dp" android:paddingEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_intro"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_intro"
android:layout_marginTop="20dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_example"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_example"
android:layout_marginTop="7dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"/>
<TextView
android:text="@string/detail_how_to_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_how_to_link"
android:layout_marginTop="7dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:linksClickable="true"
android:autoLink="web"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/MessageBarBackground"
android:layout_height="64dp"
android:layout_width="match_parent"
android:id="@+id/detail_message_bar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_weight="1"
app:layout_constraintTop_toBottomOf="@+id/detail_no_notifications"
app:layout_constraintVertical_bias="1.0"
android:elevation="10dp"
>
<androidx.cardview.widget.CardView
style="@style/CardView"
android:id="@+id/detail_message_box_layout"
android:layout_width="0dp"
android:layout_height="52dp"
android:layout_marginStart="7dp"
android:layout_marginEnd="5dp"
android:padding="7dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/detail_message_send_button"
android:outlineAmbientShadowColor="@color/gray_600"
android:outlineSpotShadowColor="@color/gray_600"
app:cardCornerRadius="5dp"
app:cardElevation="1dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/detail_message_box"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="text"
style="@style/MessageInputText"
android:padding="8dp"
android:background="@drawable/ic_edittext_background"
android:hint="@string/detail_message_bar_hint"
/>
</androidx.cardview.widget.CardView>
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:id="@+id/detail_message_send_button"
android:layout_width="48dp"
android:layout_height="48dp"
app:cornerRadius="30dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:insetLeft="0dp"
android:insetRight="0dp"
app:icon="@drawable/ic_send_white_24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/detail_message_box_layout"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="7dp"
android:layout_marginBottom="2dp" android:layout_marginTop="3dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,49 +0,0 @@
<?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:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
style="?attr/collapsingToolbarLayoutLargeStyle"
android:background="@color/e_background"
android:layout_width="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
android:layout_height="?attr/collapsingToolbarLayoutLargeSize">
<com.google.android.material.appbar.MaterialToolbar
app:navigationIcon="@drawable/e_ic_back"
app:title="@string/eos_settings_title"
android:id="@+id/toolbar"
android:background="@color/e_background"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View file

@ -8,6 +8,5 @@
<item android:id="@+id/main_menu_settings" android:title="@string/main_menu_settings_title"/>
<item android:id="@+id/main_menu_docs" android:title="@string/main_menu_docs_title"/>
<item android:id="@+id/main_menu_rate" android:title="@string/main_menu_rate_title"/>
<item android:id="@+id/main_menu_donate" android:title="@string/main_menu_donate_title"/>
<item android:id="@+id/main_menu_report_bug" android:title="@string/main_menu_report_bug_title"/>
</menu>

View file

@ -2,12 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_monochrome"
android:insetLeft="30%"
android:insetTop="30%"
android:insetRight="30%"
android:insetBottom="30%"/>
</monochrome>
</adaptive-icon>

View file

@ -2,12 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_monochrome"
android:insetLeft="30%"
android:insetTop="30%"
android:insetRight="30%"
android:insetBottom="30%"/>
</monochrome>
</adaptive-icon>
</adaptive-icon>

View file

@ -1,71 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">أولوية منخفضة</string>
<string name="channel_notifications_max_name">الأولوية القصوى</string>
<string name="channel_notifications_min_name">الحد الأدنى للأولوية</string>
<string name="channel_notifications_low_name">إشعارات (أولوية منخفضة)</string>
<string name="channel_notifications_max_name">إشعارات (أعلى أولوية)</string>
<string name="channel_notifications_min_name">إشعارات (أدني أولوية)</string>
<string name="channel_subscriber_notification_title">الإستماع (إلتقاط) الإشعارات الواردة</string>
<string name="channel_notifications_default_name">الأولوية الافتراضية</string>
<string name="channel_notifications_default_name">إشعارات (أولوية طبيعية)</string>
<string name="channel_subscriber_service_name">خدمة الاشتراك</string>
<string name="channel_notifications_high_name">أولوية عليا</string>
<string name="channel_notifications_group_default_name">افتراضي</string>
<string name="add_dialog_topic_name_hint">اسم الموضوع، على سبيل المثال phil_alerts</string>
<string name="add_dialog_use_another_server">استخدم خادمًا آخر</string>
<string name="add_dialog_button_cancel">إلغاء</string>
<string name="add_dialog_button_subscribe">اشترك</string>
<string name="add_dialog_button_back">العودة</string>
<string name="add_dialog_button_login">لِج</string>
<string name="add_dialog_error_connection_failed">فشل الاتصال: %1$s</string>
<string name="detail_clear_dialog_permanently_delete">الحذف بشكل نهائي</string>
<string name="detail_clear_dialog_cancel">إلغاء</string>
<string name="detail_delete_dialog_cancel">إلغاء</string>
<string name="detail_instant_delivery_disabled">التسليم الفوري مُعطَّل</string>
<string name="detail_item_menu_cancel">إلغاء التنزيل</string>
<string name="detail_item_menu_save_file">حفظ الملف</string>
<string name="detail_item_menu_copy_url">إنسخ الرابط</string>
<string name="detail_item_menu_copy_contents_copied">تم نسخ الإشعار إلى الحافظة</string>
<string name="user_dialog_button_save">حفظ</string>
<string name="add_dialog_base_urls_dropdown_choose">اختر عنوان URL للخدمة</string>
<string name="add_dialog_login_title">تسجيل الدخول مطلوب</string>
<string name="detail_copied_to_clipboard_message">تم نسخه إلى الحافظة</string>
<string name="detail_instant_delivery_enabled">التسليم الفوري مُفعَّل</string>
<string name="channel_subscriber_notification_instant_text">مشترِك في الإستلام الفوري للمواضيع</string>
<string name="add_dialog_login_username_hint">إسم المستخدم</string>
<string name="add_dialog_login_new_user">مستخدم جديد</string>
<string name="add_dialog_login_password_hint">كلمة المرور</string>
<string name="detail_how_to_example">مثال (باستخدام curl): <br/> <tt> $ curl -d \"أهلًا\" %1$s </tt></string>
<string name="detail_item_snack_deleted">تم حذف الإشعار</string>
<string name="detail_item_snack_undo">إلغاء</string>
<string name="detail_item_menu_copy_contents">نسخ الإشعار</string>
<string name="detail_item_tags">الوسوم: %1$s</string>
<string name="detail_test_message_error">لا يمكن إرسال رسالة: %1$s</string>
<string name="detail_no_notifications_text">لم تتلق بعد أية إشعارات حول هذا الموضوع.</string>
<string name="detail_delete_dialog_permanently_delete">الحذف بشكل نهائي</string>
<string name="channel_subscriber_notification_noinstant_text">تم الاشتراك في المواضيع</string>
<string name="channel_subscriber_notification_noinstant_text_two">مشترك في موضوعين</string>
<string name="channel_subscriber_notification_noinstant_text_three">مشترك في ثلاثة مواضيع</string>
<string name="channel_subscriber_notification_noinstant_text_six">مشترك في ستة مواضيع</string>
<string name="channel_subscriber_notification_noinstant_text_four">مشترك في أربعة مواضيع</string>
<string name="channel_subscriber_notification_noinstant_text_five">مشترك في خمسة مواضيع</string>
<string name="main_menu_settings_title">الإعدادات</string>
<string name="channel_subscriber_notification_noinstant_text_one">مشترك في موضوع واحد</string>
<string name="main_menu_rate_title">قيم البرنامج ⭐</string>
<string name="channel_subscriber_notification_instant_text_two">تم الاشتراك في 2 موضوع فوري</string>
<string name="refresh_message_result">تم استلام %1$d اشعار(ات)</string>
<string name="channel_subscriber_notification_noinstant_text_more">مشترك في %1$d موضوع</string>
<string name="main_menu_notifications_enabled">الاشعارات مفعلة</string>
<string name="main_menu_notifications_disabled_forever">الاشعارات مكتومة</string>
<string name="channel_subscriber_notification_instant_text_six">تم الاشتراك في 6 مواضيع فورية</string>
<string name="channel_subscriber_notification_instant_text_three">تم الاشتراك في 3 مواضيع فورية</string>
<string name="channel_subscriber_notification_instant_text_five">تم الاشتراك في 5 مواضيع فورية</string>
<string name="main_menu_notifications_disabled_until">الاشعارات مكتومة حتي %1$s</string>
<string name="channel_subscriber_notification_instant_text_more">تم الاشتراك في %1$d مواضيع فورية</string>
<string name="main_menu_report_bug_title">التبليغ عن خطأ</string>
<string name="main_action_bar_title">المواضيع المسجلة</string>
<string name="main_action_mode_menu_unsubscribe">الغاء الاشتراك</string>
<string name="main_menu_docs_title">اقرا المراجع</string>
<string name="refresh_message_no_results">كل شئ محدث لاخر تحديث</string>
<string name="channel_subscriber_notification_instant_text_one">تم الاشتراك في 1 موضوع فوري</string>
<string name="channel_subscriber_notification_instant_text_four">تم الاشتراك في 4 مواضيع فورية</string>
<string name="main_menu_donate_title">تبرع 💸</string>
<string name="settings_title">اﻹعدادات</string>
<string name="channel_notifications_high_name">إشعارات (أولوية عالية)</string>
</resources>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Нисък приоритет</string>
<string name="channel_notifications_default_name">Подразбиран приоритет</string>
<string name="channel_notifications_high_name">Висок приоритет</string>
<string name="channel_notifications_max_name">Най-висок приоритет</string>
<string name="channel_notifications_low_name">Известия (нисък приоритет)</string>
<string name="channel_notifications_default_name">Известия (подразбиран приоритет)</string>
<string name="channel_notifications_high_name">Известия (висок приоритет)</string>
<string name="channel_notifications_max_name">Известия (максимален приоритет)</string>
<string name="channel_subscriber_service_name">Абонаментна услуга</string>
<string name="channel_subscriber_notification_instant_text">Има абонамент за теми с незабавно доставяне</string>
<string name="channel_subscriber_notification_instant_text_three">Има абонамент за три теми с незабавно доставяне</string>
@ -51,7 +51,7 @@
\nПаролите са премахнати, но не са изброени тук.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Не са променени никакви теми/имена на хостове. Абонирани ли сте\?</string>
<string name="user_dialog_description_add">Тук можете да добавите потребител. Всички теми на сървъра ще използват този потребител.</string>
<string name="channel_notifications_min_name">Най-нисък приоритет</string>
<string name="channel_notifications_min_name">Известия (минимален приоритет)</string>
<string name="channel_subscriber_notification_instant_text_one">Има абонамент за тема с незабавно доставяне</string>
<string name="notification_dialog_muted_forever_toast_message">Известията са заглушени</string>
<string name="channel_subscriber_notification_title">Очаква входящи известия</string>
@ -63,8 +63,8 @@
<string name="main_menu_notifications_disabled_until">Известията са заглушени до %1$s</string>
<string name="detail_menu_notifications_disabled_until">Известията са заглушени до %1$s</string>
<string name="main_how_to_intro">Докоснете бутона с +, за да създадете тема или да се абонирате. След това ще получавате известия на устройството си, след като изпратите съобщения чрез метода PUT или POST.</string>
<string name="detail_how_to_intro">За да изпратите известия в тази тема направете заявка чрез методите PUT или POST към адреса й.</string>
<string name="detail_no_notifications_text">Липсват известия в темата</string>
<string name="detail_how_to_intro">За да изпратите известия в тази тема, просто изпратете PUT или POST към адреса й.</string>
<string name="detail_no_notifications_text">В момента в темата няма известия</string>
<string name="settings_general_default_base_url_message">За да използвате по подразбиране собствен сървър при абониране за нови теми и/или споделяне на теми, въведете адрес на сървъра.</string>
<string name="notification_dialog_muted_until_toast_message">Известията са заглушени до %1$s</string>
<string name="settings_advanced_export_logs_summary">Дневниците се копират в междинната памет или се изпращат към nopaste.net (собственост на автора на ntfy). Имената на хостовете и темите могат да бъдат цензурирани, но съдържанието на известията никога.</string>
@ -80,7 +80,7 @@
<string name="main_action_mode_delete_dialog_permanently_delete">Премахване</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_item_status_reconnecting">свързване…</string>
<string name="main_no_subscriptions_text">Липсват абонаменти</string>
<string name="main_no_subscriptions_text">В момента няма абонаменти</string>
<string name="main_unified_push_toast">Този абонамент се управлява от %1$s чрез UnifiedPush</string>
<string name="add_dialog_button_cancel">Отказ</string>
<string name="add_dialog_button_subscribe">Абониране</string>
@ -142,12 +142,12 @@
\n%3$s</string>
<string name="settings_title">Настройки</string>
<string name="settings_notifications_header">Известия</string>
<string name="settings_notifications_min_priority_title">Най-нисък приоритет</string>
<string name="settings_notifications_min_priority_title">Mинимален приоритет</string>
<string name="settings_notifications_min_priority_min">Всички</string>
<string name="settings_notifications_min_priority_low">Нисък приоритет и по-висок</string>
<string name="settings_notifications_min_priority_default">Подразбиран приоритет и по-висок</string>
<string name="settings_notifications_min_priority_high">Висок приоритет и по-висок</string>
<string name="settings_notifications_min_priority_max">Само най-висок приоритет</string>
<string name="settings_notifications_min_priority_max">Само максимален приоритет</string>
<string name="settings_notifications_min_priority_summary_max">Показват се известията с приоритет 5 (най-висок)</string>
<string name="settings_notifications_min_priority_summary_any">Показват се всички известия</string>
<string name="settings_notifications_auto_delete_never">Никога</string>
@ -237,7 +237,7 @@
<string name="notification_popup_file_download_failed">%1$s
\nФайл: %2$s, неуспешно изтеглен</string>
<string name="settings_notifications_auto_download_title">Изтегляне на прикачени файлове</string>
<string name="settings_notifications_auto_delete_title">Автоматично премахване</string>
<string name="settings_notifications_auto_delete_title">Премахване на известия</string>
<string name="settings_notifications_auto_download_summary_always">Прикачените файлове се изтеглят автоматично</string>
<string name="settings_notifications_auto_download_summary_never">Прикачените файлове не се изтеглят автоматично</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Прикачените файлове до %1$s се изтеглят автоматично</string>
@ -293,10 +293,10 @@
<string name="detail_item_download_info_download_failed_expires_x">грешка при изтегляне, валидността изтича на %1$s</string>
<string name="share_content_image_error">Изображението не може да бъде отворено: %1$s</string>
<string name="share_content_file_error">Информацията за файла не може да бъде прочетена: %1$s</string>
<string name="settings_notifications_priority_min">най-нисък</string>
<string name="settings_notifications_priority_min">минимален</string>
<string name="settings_notifications_priority_low">нисък</string>
<string name="settings_notifications_priority_default">подразбиран</string>
<string name="settings_notifications_priority_max">най-висок</string>
<string name="settings_notifications_priority_max">максимален</string>
<string name="settings_notifications_priority_high">висок</string>
<string name="detail_deep_link_subscribed_toast_message">Абонирани сте за темата %1$s</string>
<string name="settings_notifications_channel_prefs_summary">Отмяна на „Не безпокойте“, звуци и т.н.</string>
@ -327,20 +327,4 @@
<string name="detail_settings_about_header">Относно</string>
<string name="detail_settings_about_topic_url_title">Адрес на темата</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Копирано в междинната памет</string>
<string name="main_menu_donate_title">Даряване 💸</string>
<string name="detail_item_cannot_open_apk">Ntfy не може да инсталира получени приложения. Вместо това изтеглете чрез браузъра. За подробности вижте дефект №531.</string>
<string name="channel_notifications_group_default_name">Подразбирани</string>
<string name="detail_settings_notifications_dedicated_channels_title">Потребителски настройки за известия</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Използва потребителски настройки за този абонамент</string>
<string name="settings_notifications_insistent_max_priority_title">Продължително сигнализиране за най-високия приоритет</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Известията с най-висок приоритет сигнализират веднъж</string>
<string name="detail_settings_notifications_open_channels_title">Настройки на известията</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Продължително сигнализиране</string>
<string name="detail_settings_notifications_open_channels_summary">Отмяна на „Не безпокойте“, звуци и т.н.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Единично сигнализиране</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Подразбирани настройки (отмяна на „Не безпокойте“, звуци и т.н.)</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Известията с най-висок приоритет сигнализират, докато не бъдат затворени</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy ще работи като дистрибутор на UnifiedPush</string>
<string name="settings_advanced_unifiedpush_title">Включване на UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy няма да работи като дистрибутор на UnifiedPush</string>
</resources>

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">কম গুরুত্ব</string>
<string name="channel_notifications_min_name">সর্বনিম্ন গুরুত্ব</string>
<string name="channel_notifications_default_name">স্বাভাবিক গুরুত্ব</string>
<string name="channel_notifications_max_name">সর্বোচ্চ্য গুরুত্ব</string>
<string name="channel_notifications_group_default_name">স্বাভাবিক</string>
<string name="channel_notifications_high_name">বেশি গুরুত্ব</string>
<string name="channel_subscriber_notification_title">আগত নোটিফিকেশন এর জন্য অপেক্ষা করা হচ্ছে</string>
<string name="channel_subscriber_notification_instant_text">তাত্ক্ষণিক পাওয়া বিষয়গুলোতে যোগ দেওয়া হয়েছে</string>
</resources>

View file

@ -1,346 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Prioritat mínima</string>
<string name="channel_notifications_low_name">Prioritat baixa</string>
<string name="channel_notifications_default_name">Prioritat per defecte</string>
<string name="channel_notifications_high_name">Prioritat alta</string>
<string name="channel_notifications_max_name">Prioritat màxima</string>
<string name="channel_notifications_min_name">Notificacions (prioritat min)</string>
<string name="channel_notifications_low_name">Notificacions (prioritat min)</string>
<string name="channel_notifications_default_name">Notificacions (prioritat defecte)</string>
<string name="channel_notifications_high_name">Notificacions (alta prioritat)</string>
<string name="channel_notifications_max_name">Notificacions (prioritat màx)</string>
<string name="channel_subscriber_service_name">Servei Subscripció</string>
<string name="main_menu_donate_title">Donar 💸</string>
<string name="main_item_status_reconnecting">reconnectant…</string>
<string name="channel_subscriber_notification_title">Escoltant notificacions entrants</string>
<string name="channel_subscriber_notification_instant_text">Subscrit per entrega instantània de temes</string>
<string name="channel_subscriber_notification_instant_text_one">Subscrit per entrega instantània d\'un tema</string>
<string name="channel_subscriber_notification_instant_text_two">Subscrit per dues entregues instantànies de temes</string>
<string name="channel_subscriber_notification_instant_text_three">Subscrit per tres entregues instantànies de temes</string>
<string name="channel_subscriber_notification_instant_text_four">Subscrit per quatre entregues instantànies de temes</string>
<string name="channel_subscriber_notification_instant_text_five">Subscrit per cinc entregues instantànies de temes</string>
<string name="channel_subscriber_notification_instant_text_six">Subscrit per sis entregues instantànies de temes</string>
<string name="channel_subscriber_notification_instant_text_more">Subscrit per %1$d entregues instantànies de temes</string>
<string name="channel_subscriber_notification_noinstant_text">Subscrit als temes</string>
<string name="channel_subscriber_notification_noinstant_text_one">Subscrit a un tema</string>
<string name="channel_subscriber_notification_noinstant_text_two">Subscrit a dos temes</string>
<string name="channel_subscriber_notification_noinstant_text_three">Subscrit a tres temes</string>
<string name="channel_subscriber_notification_noinstant_text_six">Subscrit a sis temes</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Eliminat permanentment</string>
<string name="main_action_mode_delete_dialog_cancel">Cancel·lar</string>
<string name="main_item_status_text_one">%1$d notificació</string>
<string name="channel_subscriber_notification_noinstant_text_more">Subscrit a %1$d temes</string>
<string name="channel_subscriber_notification_noinstant_text_four">Subscrit a quatre temes</string>
<string name="channel_subscriber_notification_noinstant_text_five">Subscrit a cinc temes</string>
<string name="refresh_message_result">%1$d notificacions rebudes</string>
<string name="refresh_message_no_results">Tot està actualitzat</string>
<string name="refresh_message_error">No es poden actualitzar %1$d subscripciones
\n
\n%2$s</string>
<string name="refresh_message_error_one">No s\'ha pogut actualitzar la subscripció: %1$s</string>
<string name="main_action_bar_title">Temes subscrits</string>
<string name="main_menu_notifications_enabled">Notificacions activades</string>
<string name="main_menu_notifications_disabled_forever">Notificacions silenciades</string>
<string name="main_menu_notifications_disabled_until">Notificacions silenciades fins: %1$s</string>
<string name="main_menu_settings_title">Ajustos</string>
<string name="main_menu_report_bug_title">Reportar un problema</string>
<string name="main_menu_docs_title">Llegir la documentació</string>
<string name="main_menu_rate_title">Valora la aplicació ⭐</string>
<string name="main_action_mode_menu_unsubscribe">Donar-se de baixa</string>
<string name="main_action_mode_delete_dialog_message">Donar-se de baixa del tema(es) seleccionat(s) permanentment i eliminar totes les notificacions\?</string>
<string name="main_item_status_text_not_one">%1$d notificacions</string>
<string name="channel_notifications_group_default_name">Per defecte</string>
<string name="main_item_date_yesterday">ahir</string>
<string name="main_add_button_description">Afegir subscripció</string>
<string name="main_how_to_intro">Prem + per crear o subscriure\'t a un tema. Després rebràs notificacions al teu dispositiu quan enviïs missatges mitjançant PUT o POST.</string>
<string name="main_no_subscriptions_text">Sembla que encara no tens cap subscripció.</string>
<string name="main_banner_battery_text">L\'optimització de la bateria hauria de ser desactivada per tal d\'evitar problemes amb l\'entrega de notificacions.</string>
<string name="main_banner_websocket_button_dismiss">Descartar</string>
<string name="detail_test_message_error_unauthorized_anon">No es pot enviar el missatge: No es permeten publicacions anònimes.</string>
<string name="detail_instant_delivery_disabled">Entrega instantània desactivada</string>
<string name="detail_item_menu_copy_contents">Copiar la notificació</string>
<string name="detail_item_menu_copy_contents_copied">Notificació copiada al porta-retalls</string>
<string name="detail_menu_test">Enviar notificació de prova</string>
<string name="notification_dialog_save">Guardar</string>
<string name="main_banner_battery_button_remind_later">Preguntar més endavant</string>
<string name="main_banner_battery_button_dismiss">Descartar</string>
<string name="main_banner_battery_button_fix_now">Arreglar ara</string>
<string name="main_banner_websocket_button_remind_later">Preguntar més endavant</string>
<string name="add_dialog_button_back">Enrere</string>
<string name="add_dialog_title">Subscriure\'s a un tema</string>
<string name="detail_deep_link_subscribed_toast_message">Subscrit al tema %1$s</string>
<string name="detail_item_tags">Etiquetes: %1$s</string>
<string name="detail_test_message_error_too_large">No es pot enviar el missatge: L\'adjunt és massa gran.</string>
<string name="detail_item_snack_undo">Desfer</string>
<string name="detail_item_menu_delete">Elimina arxiu</string>
<string name="detail_item_menu_download">Descarrega l\'arxiu</string>
<string name="detail_item_menu_cancel">Cancel·la la descàrrega</string>
<string name="detail_item_menu_copy_url">Copiar la URL</string>
<string name="detail_item_menu_copy_url_copied">URL copiada al porta-retalls</string>
<string name="detail_item_cannot_open_url">No es pot obrir la URL: %1$s</string>
<string name="detail_item_cannot_save">No es pot guardar l\'adjunt: %1$s</string>
<string name="detail_item_cannot_delete">No es pot eliminar l\'adjunt: %1$s</string>
<string name="detail_action_mode_menu_delete">Eliminar</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Eliminar definitivament</string>
<string name="detail_action_mode_delete_dialog_cancel">Cancel·lar</string>
<string name="detail_settings_title">Configuració de la subscripció</string>
<string name="share_title">Compartir</string>
<string name="share_menu_send">Compartir</string>
<string name="share_content_image_error">No es pot llegir la imatge: %1$s</string>
<string name="share_content_image_text">S\'ha compartit una imatge amb tu</string>
<string name="share_content_file_text">S\'ha compartit un arxiu amb tu</string>
<string name="share_content_file_error">No es pot llegir la informació de l\'arxiu: %1$s</string>
<string name="share_topic_title">Compartir amb</string>
<string name="share_successful">Missatge publicat</string>
<string name="detail_test_title">Test: Pots definir un títol.</string>
<string name="detail_test_message">Això es una notificació de prova de l\'aplicació per Android de ntfy. Té un nivell de prioritat %1$d. Si n\'envies una altra, pot ser diferent.</string>
<string name="detail_test_message_error">No es pot enviar el missatge: %1$s</string>
<string name="detail_test_message_error_unauthorized_user">No es pot enviar el missatge: L\'usuari \"%1$s\" no està autoritzat.</string>
<string name="detail_copied_to_clipboard_message">Copiat al porta-retalls</string>
<string name="detail_item_snack_deleted">Notificació eliminada</string>
<string name="detail_item_menu_open">Obre arxiu</string>
<string name="detail_item_menu_save_file">Guardar l\'arxiu</string>
<string name="detail_item_cannot_download">No es pot obrir o descarregar l\'adjunt. L\'enllaç ha caducat i no es pot trobar un arxiu local.</string>
<string name="detail_item_download_failed">No s\'ha pogut descarregar l\'adjunt: %1$s</string>
<string name="detail_item_download_info_not_downloaded">no descarregat</string>
<string name="detail_item_download_info_not_downloaded_expired">no descarregat, enllaç caducat</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% descarregat</string>
<string name="detail_item_download_info_deleted">eliminat</string>
<string name="detail_item_download_info_deleted_expired">eliminat, enllaç caducat</string>
<string name="add_dialog_topic_name_hint">Nom del tema, p. ex. alertes_josep</string>
<string name="add_dialog_base_urls_dropdown_clear">Esborra URL de servei</string>
<string name="detail_no_notifications_text">Encara no has rebut cap notificació en aquest tema.</string>
<string name="detail_how_to_intro">Per enviar notificacions en aquest tema, fes PUT o POST a la URL del tema.</string>
<string name="detail_how_to_example">Exemple (usant curl):<br/><tt>$ curl -d \"Hola\" %1$s</tt></string>
<string name="main_unified_push_toast">Aquesta subscripció és gestionada per %1$s via UnifiedPush</string>
<string name="main_how_to_link">Instruccions detallades disponibles a ntfy.sh i a la documentació.</string>
<string name="main_banner_websocket_text">WebSockets és el mètode recomanat per connectar-te al teu servidor. Pot millorar el rendiment de la bateria, però pot requerir <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configuració addicional al teu proxy</a>. Aquesta opció pot ser habil·litada a Configuració.</string>
<string name="main_banner_websocket_button_enable_now">Activar ara</string>
<string name="add_dialog_description_below">Els temes poden no estar protegits per contrasenya, tria un nom difícil d\'endevinar. Un cop subscrit podràs publicar notificacions PUT/POST.</string>
<string name="add_dialog_use_another_server">Usar un altre servidor</string>
<string name="add_dialog_use_another_server_description">Introdueix URLs a sota per subscriure\'t a temes d\'altres servidors.</string>
<string name="add_dialog_instant_delivery_description">Assegura que els missatges s\'entreguin immediatament, fins i tot amb el dispositiu inactiu.</string>
<string name="add_dialog_button_cancel">Cancel·lar</string>
<string name="add_dialog_instant_delivery">Entrega instantània en mode Descans</string>
<string name="add_dialog_foreground_description">L\'entrega instantània sempre està activada per a amfitrions diferents de %1$s.</string>
<string name="add_dialog_button_subscribe">Subscriure</string>
<string name="add_dialog_button_login">Entrar</string>
<string name="add_dialog_error_connection_failed">Connexió fallida: %1$s</string>
<string name="add_dialog_login_title">Inici de sessió necessari</string>
<string name="add_dialog_login_description">Aquest tema necessita que iniciïs sessió. Introdueix nom d\'usuari i contrasenya.</string>
<string name="add_dialog_login_username_hint">Nom d\'usuari</string>
<string name="add_dialog_login_password_hint">Contrasenya</string>
<string name="add_dialog_login_error_not_authorized">Inici de sessió fallit. L\'usuari %1$s no està autoritzat.</string>
<string name="add_dialog_login_new_user">Nou usuari</string>
<string name="add_dialog_base_urls_dropdown_choose">Tria URL de servei</string>
<string name="detail_how_to_link">Instruccions detallades disponibles a ntfy.sh i a la documentació.</string>
<string name="detail_clear_dialog_message">Vols esborrar totes les notificacions d\'aquest tema\?</string>
<string name="detail_clear_dialog_permanently_delete">Eliminar definitivament</string>
<string name="detail_clear_dialog_cancel">Cancel·lar</string>
<string name="detail_delete_dialog_message">Vols eliminar la subscripció a aquest tema i totes les notificacions\?</string>
<string name="detail_delete_dialog_permanently_delete">Eliminar definitivament</string>
<string name="detail_delete_dialog_cancel">Cancel·lar</string>
<string name="detail_instant_delivery_enabled">Entrega instantània activada</string>
<string name="detail_item_saved_successfully">Guardat amb el nom \"%1$s\" a la carpeta \"Downloads\"</string>
<string name="detail_item_cannot_open">No es pot obrir l\'adjunt: %1$s</string>
<string name="detail_item_cannot_open_not_found">No es pot obrir l\'adjunt: L\'arxiu pot haver estat eliminat, o potser cap aplicació instal·lada el pot obrir.</string>
<string name="detail_item_download_info_not_downloaded_expires_x">no descarregat, caduca al %1$s</string>
<string name="detail_item_download_info_deleted_expires_x">eliminat, l\'enllaç caduca al %1$s</string>
<string name="detail_item_download_info_download_failed_expires_x">descàrrega fallida, l\'enllaç caduca el %1$s</string>
<string name="detail_menu_disable_instant">Desactivar entrega instantània</string>
<string name="detail_menu_copy_url">Copiar adreça del tema</string>
<string name="detail_item_download_info_download_failed">descàrrega fallida</string>
<string name="detail_menu_notifications_enabled">Notificacions activades</string>
<string name="detail_menu_clear">Eliminar totes les notificacions</string>
<string name="detail_menu_settings">Configuració de la subscripció</string>
<string name="detail_item_download_info_download_failed_expired">descàrrega fallida, enllaç caducat</string>
<string name="detail_menu_notifications_disabled_forever">Notificacions silenciades</string>
<string name="share_suggested_topics">Temes suggerits</string>
<string name="notification_dialog_title">Silenciar notificacions</string>
<string name="detail_menu_notifications_disabled_until">Notificacions silenciades fins %1$s</string>
<string name="notification_dialog_cancel">Cancel·lar</string>
<string name="detail_menu_enable_instant">Activar entrega instantània</string>
<string name="detail_item_cannot_open_apk">Les aplicacions ja no poden ser instal·lades. Descarrega-les a través del navegador. Pots trobar més detalls a #531.</string>
<string name="detail_menu_unsubscribe">Eliminar subscripció</string>
<string name="detail_action_mode_menu_copy">Copiar</string>
<string name="detail_action_mode_delete_dialog_message">Eliminar definitivament la notificació\?</string>
<string name="share_content_title">Vista prèvia del missatge</string>
<string name="share_content_text_hint">Afegeix contingut per compartir aquí</string>
<string name="notification_dialog_enabled_toast_message">Notificacions reactivades</string>
<string name="notification_dialog_muted_forever_toast_message">Notificacions silenciades</string>
<string name="notification_dialog_muted_until_toast_message">Notificacions silenciades fins a %1$s</string>
<string name="notification_dialog_show_all">Mostrar totes les notificacions</string>
<string name="notification_dialog_30min">30 minuts</string>
<string name="notification_dialog_1h">1 hora</string>
<string name="notification_dialog_2h">2 hores</string>
<string name="notification_dialog_8h">8 hores</string>
<string name="notification_dialog_tomorrow">Fins demà</string>
<string name="notification_dialog_forever">Fins que es reactivi</string>
<string name="settings_notifications_header">Notificacions</string>
<string name="settings_notifications_min_priority_title">Prioritat mínima</string>
<string name="settings_notifications_min_priority_summary_any">Mostrant totes les notificacions</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Mostrar notificacions de prioritat %1$d (%2$s) o superior</string>
<string name="settings_notifications_min_priority_summary_max">Mostrar notificacions si la prioritat és 5 (màxima)</string>
<string name="settings_notifications_priority_low">baixa</string>
<string name="settings_notifications_priority_default">normal</string>
<string name="settings_notifications_priority_high">alta</string>
<string name="settings_notifications_priority_min">mín</string>
<string name="settings_notifications_priority_max">màx</string>
<string name="settings_notifications_channel_prefs_title">Configuració de canal</string>
<string name="settings_notifications_channel_prefs_summary">Sobreescriure No Molestar, sons, etc.</string>
<string name="settings_notifications_auto_download_title">Descarregar adjunts</string>
<string name="settings_notifications_auto_download_summary_always">Descarregar automàticament tots els adjunts</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Descarregar automàticament adjunts fins a %1$s</string>
<string name="settings_notifications_auto_download_never">No descarregar mai res automàticament</string>
<string name="settings_notifications_auto_download_always">Descarregar automàticament tot</string>
<string name="settings_notifications_auto_delete_summary_one_week">Eliminar automàticament les notificacions al cap d\'una setmana</string>
<string name="settings_notifications_auto_delete_one_day">Al cap d\'un dia</string>
<string name="settings_notifications_auto_delete_never">Mai</string>
<string name="settings_notifications_auto_delete_three_days">Al cap de 3 dies</string>
<string name="settings_notifications_auto_delete_one_week">Al cap d\'una setmana</string>
<string name="settings_notifications_insistent_max_priority_title">Mantenir alertes per prioritat màxima</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Alertar contínuament de les notificacions de prioritat màxima fins que es descartin</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Alertar un sol cop per notificacions de prioritat màxima</string>
<string name="settings_general_default_base_url_title">Servidor predeterminat</string>
<string name="settings_general_default_base_url_message">Introdueix la URL base del teu servidor per usar-lo com a predeterminat a l\'hora de subscriure\'t a nous temes o compartir a temes.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (predeterminat)</string>
<string name="settings_general_users_title">Gestionar usuaris</string>
<string name="settings_general_users_prefs_user_add">Afegir usuaris</string>
<string name="settings_general_users_prefs_user_add_title">Afegir nou usuari</string>
<string name="settings_general_users_prefs_user_add_summary">Crear nou usuari per a un nou servidor</string>
<string name="settings_general_dark_mode_summary_system">Usant el predeterminat del sistema</string>
<string name="settings_general_dark_mode_summary_light">Mode clar activat</string>
<string name="settings_general_dark_mode_summary_dark">Mode fosc activat. Que ets un vampir\?</string>
<string name="settings_general_dark_mode_entry_system">Usar predeterminat del sistema</string>
<string name="settings_backup_restore_backup_summary">Exportar configuració, notificacions i usuaris</string>
<string name="settings_backup_restore_restore_title">Recuperar des d\'arxiu</string>
<string name="settings_backup_restore_restore_summary">Importar configuració, notificacions i usuaris</string>
<string name="settings_general_dark_mode_entry_light">Mode clar</string>
<string name="settings_backup_restore_restore_failed">Recuperació fallida: %1$s</string>
<string name="settings_advanced_header">Avançat</string>
<string name="settings_advanced_broadcast_title">Publicar missatges</string>
<string name="settings_advanced_broadcast_summary_enabled">Les aplicacions poden rebre notificacions d\'entrada com a missatges</string>
<string name="settings_advanced_record_logs_summary_enabled">Gravant (fins a 1000 entrades) al dispositiu…</string>
<string name="settings_advanced_export_logs_title">Copiar/carregar registres</string>
<string name="settings_advanced_export_logs_summary">Copiar registres al porta-retalls, o carregar-los a nopaste.net (propietat de l\'autor de ntfy). Els noms de host i els temes poden ser censurats, les notificacions mai.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Copiar al porta-retalls</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Copiar al porta-retalls (censurat)</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Usant configuració predeterminada (sons, sobreescriure No Molestar, etc.)</string>
<string name="detail_settings_notifications_open_channels_title">Configuració de notificacions</string>
<string name="detail_settings_notifications_open_channels_summary">Sobreescriure No Molestar, sons, etc.</string>
<string name="detail_settings_appearance_icon_error_saving">No s\'ha pogut guardar la icona: %1$s</string>
<string name="detail_settings_appearance_display_name_title">Nom</string>
<string name="detail_settings_appearance_display_name_message">Tria un nom personalitzat per a aquesta subscripció. Deixa en blanc per usar el predeterminat (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (predeterminat)</string>
<string name="detail_settings_global_setting_title">Usar configuració global</string>
<string name="detail_settings_global_setting_suffix">usant configuració global</string>
<string name="detail_settings_about_topic_url_title">URL del tema</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Copiat al porta-retalls</string>
<string name="user_dialog_title_add">Afegir usuari</string>
<string name="user_dialog_description_edit">Pots editar el nom d\'usuari o la contrasenya de l\'usuari seleccionat, o eliminar-lo.</string>
<string name="user_dialog_base_url_hint">URL de servei</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="settings_notifications_auto_delete_one_month">Al cap d\'un mes</string>
<string name="settings_general_users_prefs_title">Usuaris</string>
<string name="settings_general_users_prefs_user_not_used">No usat per cap tema</string>
<string name="settings_general_dark_mode_title">Mode fosc</string>
<string name="settings_advanced_connection_protocol_title">Protocol de connexió</string>
<string name="notification_popup_file_downloading">Descarregant %1$s, %2$d%%
\n%3$s</string>
<string name="settings_title">Configuració</string>
<string name="settings_notifications_muted_until_show_all">Mostrant totes les notificacions</string>
<string name="settings_notifications_muted_until_forever">Notificacions silenciades fins que es reactivin</string>
<string name="settings_notifications_muted_until_x">Notificacions silenciades fins %1$s</string>
<string name="settings_notifications_min_priority_min">Qualsevol prioritat</string>
<string name="settings_notifications_min_priority_low">Prioritat baixa i superiors</string>
<string name="settings_notifications_min_priority_max">Només prioritat màxima</string>
<string name="settings_advanced_unifiedpush_title">Activar UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy actuarà com a distribuidor de UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy no actuarà com a distribuidor de UnifiedPush</string>
<string name="settings_advanced_record_logs_summary_disabled">Activar registre per poder compartir-lo més endavant per resoldre problemes.</string>
<string name="settings_advanced_clear_logs_title">Eliminar registres</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Carregar i copiar enllaç (censurat)</string>
<string name="settings_advanced_clear_logs_summary">Eliminar registres i tornar a començar</string>
<string name="settings_advanced_clear_logs_deleted_toast">Registres eliminats</string>
<string name="settings_advanced_export_logs_copied_logs">Registres copiats al porta-retalls</string>
<string name="settings_advanced_export_logs_uploading">Carregant registre…</string>
<string name="settings_advanced_export_logs_copied_url">Registres carregats i URL copiada</string>
<string name="settings_advanced_export_logs_error_uploading">Ha fallat la càrrega de registres: %1$s</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Usa un flux JSON a través d\'HTTP per tal de connectar-te al servidor. Aquest mètode és robust, però pot consumir molta bateria.</string>
<string name="settings_about_version_title">Versió</string>
<string name="settings_advanced_connection_protocol_summary_ws">Usa WebSockets per connectar al servidor. Aquest és el mètode recomanat, però pot necessitar configuració addicional al teu proxy.</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_notifications_instant_title">Entrega instantània</string>
<string name="detail_settings_notifications_instant_summary_on">Les notificacions s\'entreguen instantàniament. Requereix d\'un servei en primer pla i consumeix molta bateria.</string>
<string name="detail_settings_notifications_instant_summary_off">Les notificacions s\'entreguen usant FireBase. L\'entrega es pot retardar, però consumeix menys bateria.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Configuració personalitzada de notificacions</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Usant configuració personalitzada en aquesta subscripció</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Mantenir alertes</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alertar un sol cop</string>
<string name="detail_settings_appearance_icon_set_title">Icona de subscripció</string>
<string name="detail_settings_about_header">Quant a</string>
<string name="detail_settings_appearance_icon_remove_title">Icona de subscripció (prem per eliminar)</string>
<string name="user_dialog_title_edit">Editar usuari</string>
<string name="user_dialog_description_add">Pots afegir un usuari aquí. Tots els temes del servidor usaran aquest usuari.</string>
<string name="user_dialog_username_hint">Nom d\'usuari</string>
<string name="user_dialog_button_cancel">Cancel·lar</string>
<string name="notification_popup_action_open">Obrir</string>
<string name="notification_popup_action_browse">Explorar</string>
<string name="notification_popup_action_download">Descarregar</string>
<string name="notification_popup_action_cancel">Cancel·lar</string>
<string name="notification_popup_file">%1$s
\nArxiu: %2$s</string>
<string name="notification_popup_file_download_successful">%1$s
\nArxiu: %2$s, descarregat</string>
<string name="notification_popup_file_download_failed">%1$s
\nArxiu: %2$s, descàrrega fallida</string>
<string name="notification_popup_user_action_failed">%1$s fallida: %2$s</string>
<string name="settings_notifications_muted_until_title">Silenciar notificacions</string>
<string name="settings_notifications_min_priority_default">Prioritat normal i superiors</string>
<string name="settings_notifications_min_priority_high">Prioritat alta i superiors</string>
<string name="settings_notifications_auto_download_100k">Si inferior a 100 kB</string>
<string name="settings_notifications_auto_download_500k">Si inferior a 500 kB</string>
<string name="settings_notifications_auto_download_1m">Si inferior a 1 MB</string>
<string name="settings_notifications_auto_download_5m">Si inferior a 5 MB</string>
<string name="settings_notifications_auto_download_10m">Si inferior a 10 MB</string>
<string name="settings_notifications_auto_download_50m">Si inferior a 50 MB</string>
<string name="settings_notifications_auto_delete_title">Eliminar notificacions</string>
<string name="settings_notifications_auto_delete_summary_never">No eliminar mai les notificacions automàticament</string>
<string name="settings_notifications_auto_delete_summary_one_day">Eliminar les notificacions automàticament al cap d\'un dia</string>
<string name="settings_notifications_auto_delete_summary_three_days">Eliminar automàticament les notificacions al cap de tres dies</string>
<string name="settings_notifications_auto_delete_summary_one_month">Eliminar automàticament les notificacions al cap d\'un mes</string>
<string name="settings_notifications_auto_delete_summary_three_months">Eliminar automàticament les notificacions al cap de 3 mesos</string>
<string name="settings_notifications_auto_delete_three_months">Al cap de 3 mesos</string>
<string name="settings_general_header">General</string>
<string name="settings_general_users_summary">Afegir/eliminar usuaris a temes protegits</string>
<string name="settings_general_users_prefs_user_used_by_one">Usat pel tema %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Usat pels temes %1$s</string>
<string name="settings_general_dark_mode_entry_dark">Mode fosc</string>
<string name="settings_backup_restore_header">Còpia de seguretat &amp; Restauració</string>
<string name="settings_backup_restore_backup_title">Fer còpia de seguretat en arxiu</string>
<string name="settings_backup_restore_backup_entry_everything">Tot</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Tot, excepte usuaris</string>
<string name="settings_backup_restore_backup_entry_settings_only">Només configuració</string>
<string name="settings_backup_restore_backup_successful">Còpia de seguretat creada</string>
<string name="settings_backup_restore_backup_failed">Còpia de seguretat fallida: %1$s</string>
<string name="settings_backup_restore_restore_successful">Recuperació exitosa</string>
<string name="settings_advanced_broadcast_summary_disabled">Les aplicacions no poden rebre notificacions com a missatges</string>
<string name="settings_advanced_record_logs_title">Gravar registres</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Aquest temes/noms de host han estat reemplaçats per noms de fruites, per tal que els puguis compartir tranquil·lament:
\n
\n%1$s
\n
\nLes contrasenyes s\'han descartat, però no es mostren.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Cap tema/nom de host ha estat censurat. Potser no tens cap subscripció\?</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">D\'acord</string>
<string name="settings_about_version_copied_to_clipboard_message">Copiat al porta-retalls</string>
<string name="detail_settings_appearance_header">Apariència</string>
<string name="detail_settings_appearance_icon_set_summary">Triar una icona per mostrar a les notificacions</string>
<string name="detail_settings_appearance_icon_remove_summary">Icona mostrada a notificacions d\'aquest tema</string>
<string name="user_dialog_password_hint_add">Contrasenya</string>
<string name="user_dialog_password_hint_edit">Contrasenya (no canvia si es deixa en blanc)</string>
<string name="user_dialog_button_add">Afegir usuari</string>
<string name="settings_notifications_auto_download_summary_never">Mai descarregar automàticament els adjunts</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">Flux JSON a través d\'HTTP</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_about_header">Quant a</string>
<string name="settings_advanced_export_logs_entry_upload_original">Carregar i copiar enllaç</string>
<string name="user_dialog_button_delete">Eliminar usuari</string>
<string name="user_dialog_button_save">Guardar</string>
</resources>

View file

@ -22,8 +22,8 @@
\n%2$s</string>
<string name="main_action_bar_title">Odebíraná témata</string>
<string name="main_menu_notifications_enabled">Oznámení zapnuta</string>
<string name="channel_notifications_default_name">Výchozí priorita</string>
<string name="channel_notifications_high_name">Vysoká priorita</string>
<string name="channel_notifications_default_name">Oznámení (výchozí priorita)</string>
<string name="channel_notifications_high_name">Oznámení (vysoká priorita)</string>
<string name="main_menu_notifications_disabled_until">Oznámení ztlumena do %1$s</string>
<string name="main_menu_settings_title">Nastavení</string>
<string name="main_menu_docs_title">Přečíst dokumentaci</string>
@ -255,9 +255,9 @@
<string name="detail_menu_test">Odeslat testovací oznámení</string>
<string name="detail_menu_clear">Vymazat všechna oznámení</string>
<string name="settings_notifications_muted_until_forever">Oznámení ztlumena až do obnovení</string>
<string name="channel_notifications_low_name">Malá priorita</string>
<string name="channel_notifications_min_name">Nejnižší priorita</string>
<string name="channel_notifications_max_name">Nejvyšší priorita</string>
<string name="channel_notifications_low_name">Oznámení (malá priorita)</string>
<string name="channel_notifications_min_name">Oznámení (nejnižší priorita)</string>
<string name="channel_notifications_max_name">Oznámení (nejvyšší priorita)</string>
<string name="detail_menu_copy_url">Kopírovat adresu tématu</string>
<string name="detail_settings_title">Nastavení odběru</string>
<string name="detail_action_mode_delete_dialog_cancel">Zrušit</string>
@ -327,20 +327,4 @@
<string name="main_banner_websocket_button_enable_now">Povolit nyní</string>
<string name="main_banner_websocket_text">WebSockets jsou doporučenou metodou připojení k vašemu serveru, která může zlepšit zvýšit výdrž baterie, ale může vyžadovat <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">další konfiguraci v proxy serveru</a>. Metodu připojení lze přepnout v Nastavení.</string>
<string name="add_dialog_base_urls_dropdown_choose">Zvolit URL služby</string>
<string name="main_menu_donate_title">Přispět 💸</string>
<string name="detail_item_cannot_open_apk">Aplikace již nelze nainstalovat. Místo toho stahujte přes prohlížeč. Podrobnosti naleznete v issue #531.</string>
<string name="channel_notifications_group_default_name">Výchozí</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Upozornění s nejvyšší prioritou pouze jednou</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Používání vlastních nastavení pro tento odběr</string>
<string name="detail_settings_notifications_open_channels_title">Konfigurace nastavení oznámení</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Stále upozorňovat</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Upozornit pouze jednou</string>
<string name="detail_settings_notifications_dedicated_channels_title">Vlastní nastavení oznámení</string>
<string name="settings_notifications_insistent_max_priority_title">Zachovat upozornění na nejvyšší prioritu</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Oznámení s maximální prioritou nepřetržitě upozorňují až do odvolání</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Použití výchozího nastavení (zvuky, vlastní nastavení funkce Nerušit, atd.)</string>
<string name="detail_settings_notifications_open_channels_summary">Vlastní nastavení funkce Nerušit (DND), zvuky, atd.</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy bude fungovat jako distributor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_title">Povolit UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy nebude fungovat jako distributor UnifiedPush</string>
</resources>

View file

@ -1,6 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_high_name">Blaenoriaeth uchel</string>
<string name="channel_notifications_min_name">Blaenoriaeth lleiaf</string>
<string name="channel_notifications_low_name">Blaenoriaeth isel</string>
</resources>
<resources></resources>

View file

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_subscriber_notification_instant_text">Abonnerer på emner med øjeblikkelig levering</string>
<string name="channel_notifications_max_name">Maks. prioritet</string>
<string name="channel_subscriber_notification_instant_text_two">Abonnerer på to emner om øjeblikkelig levering</string>
<string name="channel_notifications_group_default_name">standard</string>
<string name="channel_subscriber_notification_instant_text_six">Abonnerer på seks emner med øjeblikkelig levering</string>
<string name="channel_subscriber_notification_instant_text_three">Abonnerer på tre emner med øjeblikkelig levering</string>
<string name="channel_subscriber_service_name">Abonnementsservice</string>
<string name="channel_subscriber_notification_instant_text_five">Abonnerer på fem emner med øjeblikkelig levering</string>
<string name="channel_notifications_default_name">Standardprioritet</string>
<string name="channel_notifications_min_name">Minimum prioritet</string>
<string name="channel_subscriber_notification_instant_text_more">Abonnerer på %1$d emner med øjeblikkelig levering</string>
<string name="channel_notifications_low_name">Lav prioritet</string>
<string name="channel_subscriber_notification_noinstant_text">Abonnerer på emner</string>
<string name="channel_subscriber_notification_title">Lytter efter indgående notifikationer</string>
<string name="channel_subscriber_notification_instant_text_one">Abonnerer på et emne med øjeblikkelig levering</string>
<string name="channel_subscriber_notification_instant_text_four">Abonnerer på fire emner med øjeblikkelig levering</string>
<string name="channel_notifications_high_name">Høj prioritet</string>
</resources>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Niedrige Priorität</string>
<string name="channel_notifications_default_name">Normale Priorität</string>
<string name="channel_notifications_high_name">Hohe Priorität</string>
<string name="channel_notifications_max_name">Höchste Priorität</string>
<string name="channel_notifications_low_name">Benachrichtigungen (niedrige Priorität)</string>
<string name="channel_notifications_default_name">Benachrichtigungen (normale Priorität)</string>
<string name="channel_notifications_high_name">Benachrichtigungen (hohe Priorität)</string>
<string name="channel_notifications_max_name">Benachrichtigungen (max. Priorität)</string>
<string name="channel_subscriber_service_name">Abo Service</string>
<string name="channel_notifications_min_name">Min. Priorität</string>
<string name="channel_notifications_min_name">Benachrichtigungen (min. Priorität)</string>
<string name="channel_subscriber_notification_title">Warte auf Benachrichtigungen</string>
<string name="channel_subscriber_notification_instant_text_one">Ein Sofortnachrichten-Thema abonniert</string>
<string name="channel_subscriber_notification_instant_text_two">Zwei Sofortnachrichten-Themen abonniert</string>
@ -309,7 +309,7 @@
<string name="detail_settings_appearance_header">Darstellung</string>
<string name="detail_settings_appearance_icon_set_title">Abo-Icon</string>
<string name="detail_settings_appearance_icon_set_summary">Ein Icon zur Darstellung in Benachrichtigungen auswählen</string>
<string name="detail_settings_appearance_icon_remove_title">Abo-Icon (entfernen durch Antippen)</string>
<string name="detail_settings_appearance_icon_remove_title">Abo-Icon (entfernen durch antippen)</string>
<string name="detail_settings_appearance_icon_error_saving">Kann Icon nicht speichern: %1$s</string>
<string name="detail_settings_global_setting_title">Globale Einstellung verwenden</string>
<string name="detail_settings_global_setting_suffix">globale Einstellung</string>
@ -323,26 +323,8 @@
<string name="add_dialog_base_urls_dropdown_clear">Service-URL löschen</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (Standard)</string>
<string name="detail_settings_appearance_display_name_title">Anzeigename</string>
<string name="detail_settings_appearance_display_name_message">Gib einen eigenen Anzeigenamen für dieses Abo an. Leer lassen für den Standardwert (%1$s).</string>
<string name="detail_settings_appearance_display_name_message">Gib einen eigenen Anzeigenamen für diese Abo an. Leer lassen für den Standardwert (%1$s).</string>
<string name="detail_settings_about_topic_url_title">Themen-URL</string>
<string name="detail_settings_about_header">Über</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">In Zwischenablage kopiert</string>
<string name="main_menu_donate_title">Spenden 💸</string>
<string name="detail_item_cannot_open_apk">Apps können nicht mehr installiert werden. Bitte stattdessen über einen Browser herunterladen. Details siehe Issue #531.</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Verwende eigene Einstellungen für dieses Thema</string>
<string name="detail_settings_notifications_open_channels_title">Beanchrichtigungseinstellungen konfigurieren</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Durchgehend alarmieren</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Nur einmal alarmieren</string>
<string name="settings_notifications_insistent_max_priority_title">Bei höchster Priorität dauerhaft alarmieren</string>
<string name="channel_notifications_group_default_name">Standard</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Benachrichtigungen mit höchster Priorität alarmieren nur einmal</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Benachrichtigungen mit höchster Priorität alarmieren dauerhaft bis sie bestätigt werden</string>
<string name="detail_settings_notifications_dedicated_channels_title">Eigene Benachrichtigungseinstellungen</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Verwende Standardeinstellungen (Töne, Übergehen von \"Nicht Stören\" etc.)</string>
<string name="detail_settings_notifications_open_channels_summary">„Bitte nicht stören“ unterbrechen, Töne, etc.</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy arbeitet nicht als UnifiedPush-Distributor</string>
<string name="settings_advanced_unifiedpush_title">UnifiedPush aktivieren</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy arbeitet als UnifiedPush-Distributor</string>
<string name="eos_settings_enable_title">Den Verteiler aktivieren</string>
<string name="eos_settings_enable_description">Es ermöglicht Drittanbieteranwendungen, UnifiedPush-Benachrichtigungen zu empfangen</string>
</resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="main_menu_settings_title">Ρυθμίσεις</string>
<string name="channel_notifications_max_name">Μέγιστη προτεραιότητα</string>
<string name="channel_notifications_max_name">Ειδοποιήσεις (μέγιστη προτεραιότητα)</string>
<string name="channel_subscriber_notification_title">Ακρόαση για εισερχόμενες ειδοποιήσεις</string>
<string name="main_menu_report_bug_title">Αναφέρετε ένα σφάλμα</string>
<string name="main_menu_rate_title">Βαθμολογήστε την εφαρμογή ⭐</string>
@ -13,15 +13,15 @@
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_item_date_yesterday">εχθές</string>
<string name="main_add_button_description">Προσθήκη συνδρομής</string>
<string name="channel_notifications_min_name">Ελάχιστη προτεραιότητα</string>
<string name="channel_notifications_low_name">Χαμηλή προτεραιότητα</string>
<string name="channel_notifications_min_name">Ειδοποιήσεις (χαμηλότερη προτεραιότητα)</string>
<string name="channel_notifications_low_name">Ειδοποιήσεις (χαμηλή προτεραιότητα)</string>
<string name="channel_subscriber_notification_instant_text">Έχει γίνει εγγραφή σε θέματα άμεσης παράδοσης</string>
<string name="channel_subscriber_notification_instant_text_two">Έχει γίνει εγγραφή σε δύο θέματα άμεσης παράδοσης</string>
<string name="channel_subscriber_notification_instant_text_more">Έχει γίνει εγγραφή σε %1$d θέματα άμεσης παράδοσης</string>
<string name="channel_subscriber_notification_noinstant_text_two">Έχει γίνει εγγραφή σε δύο θέματα</string>
<string name="channel_notifications_high_name">Υψηλή προτεραιότητα</string>
<string name="channel_notifications_high_name">Ειδοποιήσεις (υψηλή προτεραιότητα)</string>
<string name="channel_subscriber_notification_instant_text_four">Έχει γίνει εγγραφή σε τέσσερα θέματα άμεσης παράδοσης</string>
<string name="channel_notifications_default_name">Προκαθορισμένη προτεραιότητα</string>
<string name="channel_notifications_default_name">Ειδοποιήσεις (προκαθορισμένη προτεραιότητα)</string>
<string name="channel_subscriber_notification_instant_text_five">Έχει γίνει εγγραφή σε πέντε θέματα άμεσης παράδοσης</string>
<string name="channel_subscriber_service_name">Συνδρομητική υπηρεσία</string>
<string name="channel_subscriber_notification_noinstant_text_three">Έχει γίνει εγγραφή σε τρία θέματα</string>
@ -55,30 +55,4 @@
<string name="main_banner_battery_button_remind_later">Ερώτηση αργότερα</string>
<string name="main_banner_battery_button_dismiss">Απόρριψη</string>
<string name="main_banner_battery_button_fix_now">Διορθώστε τώρα</string>
<string name="channel_notifications_group_default_name">Προκαθορισμένο</string>
<string name="add_dialog_description_below">Τα θέματα μπορεί να μην προστατεύονται από κωδικό, οπότε επιλέξτε ένα όνομα που να είναι δύσκολο να μαντευτεί. Όταν εγγραφείτε, θα μπορείτε να κάνετε PUT/POST ειδοποιήσεις.</string>
<string name="add_dialog_topic_name_hint">Όνομα θέματος</string>
<string name="add_dialog_use_another_server">Χρήση άλλου server/εξυπηρετητή</string>
<string name="add_dialog_title">Εγγραφή σε ειδοποίηση</string>
<string name="main_menu_donate_title">Κάντε δωρεά</string>
<string name="main_banner_websocket_text">Η μετάβαση σε WebSockets είναι ο συνιστώμενος τρόπος σύνδεσης με τον διακομιστή σας και μπορεί να βελτιώσει τη διάρκεια ζωής της μπαταρίας, αλλά μπορεί να απαιτεί <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">πρόσθετες ρυθμίσεις στο διακομιστή μεσολάβησης</a>. Αυτό μπορεί να ενεργοποιηθεί στις Ρυθμίσεις.</string>
<string name="add_dialog_login_password_hint">Κωδικός πρόσβασης</string>
<string name="add_dialog_login_error_not_authorized">Η σύνδεση απέτυχε. Ο χρήστης %1$s δεν είναι εξουσιοδοτημένος.</string>
<string name="add_dialog_foreground_description">Η άμεση παράδοση είναι πάντα ενεργή για χρήστες εκτός από τον/την %1$s.</string>
<string name="add_dialog_login_new_user">Νέος χρήστης</string>
<string name="add_dialog_login_title">Απαιτείται σύνδεση</string>
<string name="main_banner_websocket_button_remind_later">Ρωτήστε αργότερα</string>
<string name="add_dialog_instant_delivery_description">Εξασφαλίζει την άμεση παράδοση των μηνυμάτων, ακόμη και αν η συσκευή είναι ανενεργή.</string>
<string name="main_banner_websocket_button_enable_now">Ενεργοποίηση τώρα</string>
<string name="add_dialog_use_another_server_description">Εισάγετε τις παρακάτω διευθύνσεις URL υπηρεσιών για να εγγραφείτε σε θέματα από άλλους διακομιστές.</string>
<string name="add_dialog_button_cancel">Ακύρωση</string>
<string name="add_dialog_error_connection_failed">Η σύνδεση απέτυχε: %1$s</string>
<string name="add_dialog_button_subscribe">Εγγραφή</string>
<string name="add_dialog_button_login">Σύνδεση</string>
<string name="add_dialog_login_username_hint">Όνομα χρήστη</string>
<string name="add_dialog_base_urls_dropdown_choose">Επιλέξτε URL υπηρεσίας</string>
<string name="add_dialog_instant_delivery">Άμεση παράδοση σε κατάσταση doze</string>
<string name="add_dialog_login_description">Αυτό το θέμα απαιτεί να συνδεθείτε. Παρακαλώ πληκτρολογήστε ένα όνομα χρήστη και έναν κωδικό πρόσβασης.</string>
<string name="main_banner_websocket_button_dismiss">Απορρίψτε το</string>
<string name="add_dialog_button_back">Πίσω</string>
</resources>

View file

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Prioridad mínima</string>
<string name="channel_notifications_min_name">Notificaciones (prioridad mínima)</string>
<string name="detail_item_menu_copy_url">Copiar URL</string>
<string name="notification_popup_action_open">Abrir</string>
<string name="channel_notifications_low_name">Prioridad baja</string>
<string name="channel_notifications_default_name">Prioridad predeterminada</string>
<string name="channel_notifications_max_name">Prioridad máxima</string>
<string name="channel_notifications_low_name">Notificaciones (prioridad baja)</string>
<string name="channel_notifications_default_name">Notificaciones (prioridad por defecto)</string>
<string name="channel_notifications_max_name">Notificaciones (prioridad máxima)</string>
<string name="channel_subscriber_service_name">Servicio de Suscripciones</string>
<string name="channel_subscriber_notification_title">Escuchando por notificaciones entrantes</string>
<string name="channel_subscriber_notification_instant_text_one">Suscrito a un tópico de entrega instantánea</string>
@ -221,7 +221,7 @@
<string name="user_dialog_button_add">Añadir usuario</string>
<string name="user_dialog_button_cancel">Cancelar</string>
<string name="user_dialog_button_save">Guardar</string>
<string name="channel_notifications_high_name">Prioridad alta</string>
<string name="channel_notifications_high_name">Notificaciones (prioridad alta)</string>
<string name="channel_subscriber_notification_instant_text">Suscrito a tópicos de entrega instantánea</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="add_dialog_use_another_server_description">Introduzca las URL de servicio para suscribirse a los tópicos de otros servidores.</string>
@ -327,22 +327,4 @@
<string name="add_dialog_base_urls_dropdown_clear">Borrar la URL del servicio</string>
<string name="main_banner_websocket_text">Cambiar a WebSockets es la forma recomendada para conectarse a su servidor, y podría mejorar la vida de la batería, pero puede requerir <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configuración adicional en su proxy</a>. Esto se puede cambiar en la Configuración.</string>
<string name="main_banner_websocket_button_enable_now">Habilitar ahora</string>
<string name="main_menu_donate_title">Donar 💸</string>
<string name="detail_item_cannot_open_apk">Las aplicaciones ya no se pueden instalar desde ntfy. Descárguelas a través del navegador. Consulte el issue #531 para obtener más información.</string>
<string name="channel_notifications_group_default_name">Predeterminado</string>
<string name="settings_notifications_insistent_max_priority_title">Mantener alertas para la máxima prioridad</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Las notificaciones de prioridad máxima alertan continuamente hasta que se descartan</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Las notificaciones de prioridad máxima solo alertan una vez</string>
<string name="detail_settings_notifications_open_channels_summary">Ignorar No Molestar (DND), sonidos, etc.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Seguir alertando</string>
<string name="detail_settings_notifications_dedicated_channels_title">Configuración de notificaciones personalizadas</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alertar solo una vez</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Utilizando configuración personalizada para esta suscripción</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Utilizando configuración predeterminada (sonidos, no molestar, etc.)</string>
<string name="detail_settings_notifications_open_channels_title">Configuración de la notificación</string>
<string name="settings_advanced_unifiedpush_title">Activar UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy actuará como distribuidor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy no actuará como distribuidor UnifiedPush</string>
<string name="eos_settings_enable_title">Habilitar el distribuidor</string>
<string name="eos_settings_enable_description">Permite a las aplicaciones de terceros recibir notificaciones de UnifiedPush</string>
</resources>

View file

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">اولویت اصلی</string>
<string name="channel_notifications_default_name">اولویت پیش تعریف</string>
<string name="channel_notifications_low_name">اولویت پایین</string>
<string name="channel_notifications_group_default_name">پیش تعریف</string>
<string name="channel_subscriber_notification_instant_text">عضویت یافته در تحویل فوری اطلاعیه ها</string>
<string name="channel_subscriber_notification_instant_text_one">عضویت یافته در تحویل یک موضوع</string>
<string name="channel_subscriber_notification_instant_text_three">عضویت یافته در دریافت سه موضوع</string>
<string name="channel_subscriber_notification_instant_text_five">عضویت یافته در دریافت پنج موضوع</string>
<string name="channel_subscriber_notification_instant_text_more">عضویت یافته در دریافت %1$d موضوع</string>
<string name="channel_subscriber_notification_noinstant_text">عضویت یافته در موضوعات</string>
<string name="main_menu_settings_title">تنظیمات</string>
<string name="main_menu_report_bug_title">گزارش یک نقص فنی</string>
<string name="main_menu_docs_title">مطالعه مستندات</string>
<string name="main_menu_rate_title">رتبه دهی به اپ ⭐</string>
<string name="main_menu_donate_title">حمایت مالی 💸</string>
<string name="main_item_status_text_one">%1$d اطلاعیه</string>
<string name="main_item_status_text_not_one">%1$d اطلاعیه</string>
<string name="main_item_status_reconnecting">در حال اتصال دوباره …</string>
<string name="main_item_date_yesterday">دیروز</string>
<string name="main_no_subscriptions_text">به نظر می رسد شما هنوز هیچ عضویتی ندارید.</string>
<string name="channel_notifications_high_name">اولویت بالا</string>
<string name="channel_notifications_max_name">بالاترین اولویت</string>
<string name="channel_subscriber_service_name">آبونمان دریافت خدمات</string>
<string name="channel_subscriber_notification_title">گوش به زنگ دریافت اطلاعیه</string>
<string name="channel_subscriber_notification_instant_text_two">عضویت یافته در دریافت دو موضوع</string>
<string name="channel_subscriber_notification_instant_text_four">عضویت یافته در دریافت چهار موضوع</string>
<string name="channel_subscriber_notification_instant_text_six">عضویت یافته در دریافت شش موضوع</string>
<string name="channel_subscriber_notification_noinstant_text_one">عضویت یافته در یک موضوع</string>
<string name="refresh_message_result">%1$d اطلاعیه دریافت شد</string>
<string name="refresh_message_no_results">همه چیز بروزآوری شده است</string>
<string name="refresh_message_error_one">بروزآوری آبونمان %1$s ناموفق بود</string>
<string name="main_menu_notifications_enabled">ارسال اطلاعیه در</string>
<string name="main_menu_notifications_disabled_forever">اطلاعیه ها بی صدا شده اند</string>
<string name="main_menu_notifications_disabled_until">اطلاعیه ها تا %1$s بی صدا شده اند</string>
<string name="main_action_mode_menu_unsubscribe">لغو اشتراک</string>
<string name="main_action_mode_delete_dialog_message">از سرفصل های انتخاب شده لغو عضویت و همه اطلاعیه ها را برای همیشه پاک کن؟</string>
<string name="main_action_mode_delete_dialog_permanently_delete">حذف برای همیشه</string>
<string name="main_action_mode_delete_dialog_cancel">لغو</string>
<string name="main_add_button_description">افزون اشتراک</string>
</resources>

View file

@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="user_dialog_button_add">Lisää käyttäjä</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Kaikki, paitsi käyttäjät</string>
<string name="add_dialog_login_password_hint">Salasana</string>
<string name="add_dialog_login_error_not_authorized">Kirjautuminen epäonnistui %1$s ei oikeuksia.</string>
<string name="settings_general_header">Pääkäyttäjä</string>
<string name="add_dialog_foreground_description">Välitön toimitus on aina päällä muille palvelimille kuin %1$s.</string>
<string name="detail_clear_dialog_message">Poistetaanko kaikki tämän topikin ilmoitukset \?</string>
<string name="channel_subscriber_notification_instant_text">Tilattu välittömään topikkiin</string>
<string name="detail_settings_appearance_display_name_title">Näytön nimi</string>
<string name="detail_item_menu_copy_url_copied">URL kopioitu leikkelepöydälle</string>
<string name="detail_item_snack_deleted">Ilmoitus poistettu</string>
<string name="settings_advanced_export_logs_entry_copy_original">Kopioi leikkelepöydälle</string>
<string name="settings_advanced_broadcast_summary_disabled">Sovellukset eivät voi vastaanottaa ilmoituksia ja lähetyksiä</string>
<string name="detail_menu_clear">Poista kaikki ilmoitukset</string>
<string name="channel_notifications_max_name">Maksimi tärkeys</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Aiheita/isäntänimiä ei ole muokattu. Ehkä sinulla ei ole topikkeja\?</string>
<string name="add_dialog_login_new_user">Uusi käyttäjä</string>
<string name="user_dialog_description_add">Kaikki tietyn palvelimen topikit käyttävät tätä käyttäjää.</string>
<string name="share_content_text_hint">Lisää jaettavaksi täällä</string>
<string name="settings_backup_restore_backup_title">Varmuuskopioi tiedostoon</string>
<string name="share_successful">Viesti julkaistu</string>
<string name="settings_advanced_clear_logs_title">Tyhjennä logit</string>
<string name="settings_general_users_title">Hallitse käyttäjiä</string>
<string name="add_dialog_login_title">Kirjautuminen tarvitaan</string>
<string name="settings_notifications_priority_min">min</string>
<string name="settings_notifications_auto_delete_summary_never">Älä koskaan poista automaattisesti ilmoituksia</string>
<string name="notification_popup_file_download_successful">%1$s
\nTiedosto: %2$s, ladattu</string>
<string name="notification_popup_action_browse">Julkaise</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Jatka hälyttämistä</string>
<string name="settings_advanced_broadcast_title">Lähetä viestejä</string>
<string name="main_menu_rate_title">Äänestä aplikaatiota</string>
<string name="detail_item_cannot_delete">Ei voida poistaa liitettä %1$s</string>
<string name="settings_backup_restore_backup_summary">Vie asetukset, ilmoitukset ja käyttäjät</string>
<string name="notification_popup_file_downloading">Lataa %1$s, %2$d%%
\n%3$s</string>
<string name="main_item_status_text_not_one">%1$d Huomautusta</string>
<string name="user_dialog_description_edit">Voit muokata valitun käyttäjän käyttäjätunnusta/salasanaa tai poistaa sen.</string>
<string name="notification_dialog_show_all">Näytä kaikki ilmoitukset</string>
<string name="settings_notifications_min_priority_min">Kaikki tärkeydet</string>
<string name="notification_dialog_30min">30 minuuttia</string>
<string name="detail_item_menu_delete">Poista tiedosto</string>
<string name="channel_subscriber_notification_instant_text_two">Tilattu kahteen välittömään topikkiin</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Tee hälytys vain kerran</string>
<string name="settings_notifications_auto_download_never">Älä koskaan lataa automaattisesti mitään</string>
<string name="notification_popup_user_action_failed">%1$s epäonnistunut: %2$s</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Tallenna ja kopioi linkki (sensuroitu)</string>
<string name="refresh_message_result">%1$d ilmoitusta vastaanotettu</string>
<string name="notification_dialog_1h">1 tunti</string>
<string name="detail_settings_notifications_instant_title">Välitön lähetys</string>
<string name="notification_dialog_forever">Jatkamiseen asti</string>
<string name="settings_notifications_auto_delete_summary_one_week">Poista ilmoitukset viikon jälkeen</string>
<string name="settings_advanced_export_logs_error_uploading">Ei voida tallentaa logia: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expires_x">Ei ladattu, vanhentunut %1$s</string>
<string name="detail_no_notifications_text">Et ole vielä saanut yhtään ilmoitusta tästä topikista.</string>
<string name="detail_item_cannot_open_url">Ei voida avata URL: %1$s</string>
<string name="settings_notifications_min_priority_title">Pienin prioriteetti</string>
<string name="share_menu_send">Jaa</string>
<string name="channel_subscriber_notification_noinstant_text_two">Tilattu kahteen topikkiin</string>
<string name="detail_settings_title">Tilausasetukset</string>
<string name="detail_item_saved_successfully">Tallennettu nimellä %1$s lataukset kansioon</string>
<string name="settings_notifications_auto_delete_one_month">jälkeen kolmenkymmenen päivän</string>
<string name="channel_notifications_group_default_name">Oletus</string>
<string name="detail_menu_test">Lähetä testi ilmoitus</string>
<string name="settings_notifications_priority_high">korkea</string>
<string name="main_no_subscriptions_text">Näyttää siltä, että sinulla ei ole vielä tilauksia.</string>
<string name="settings_general_users_prefs_user_add_title">Lisää uusi käyttäjä</string>
<string name="detail_menu_disable_instant">Poista välittömät ilmoitukset käytöstä</string>
<string name="detail_action_mode_delete_dialog_cancel">Peruuta</string>
<string name="channel_subscriber_notification_noinstant_text_more">Tilattu %1$d topikkiin</string>
<string name="settings_advanced_export_logs_entry_upload_original">Tallenna ja kopioi linkki</string>
<string name="main_banner_battery_button_fix_now">Korjaa nyt</string>
<string name="detail_item_download_info_not_downloaded">Ei ladattu</string>
<string name="user_dialog_button_save">Tallenna</string>
<string name="detail_delete_dialog_cancel">Peruuta</string>
<string name="settings_about_version_copied_to_clipboard_message">Kopioitu leikkelepöydälle</string>
<string name="notification_popup_action_download">Lataa</string>
<string name="detail_item_cannot_download">Liitettä ei voi avata tai ladata. Linkki vanhentui, eikä paikallista tiedostoa löytynyt.</string>
<string name="main_menu_notifications_enabled">Huomautukset päällä</string>
<string name="settings_general_dark_mode_summary_system">Käytä järjestelmän oletusta</string>
<string name="main_menu_notifications_disabled_forever">Hiljennetyt huomautukset</string>
<string name="detail_item_menu_download">Lataa tiedosto</string>
<string name="channel_subscriber_notification_instant_text_six">Tilattu kuuteen välittömään topikkiin</string>
<string name="main_banner_websocket_button_remind_later">Kysy myöhemmin</string>
<string name="detail_item_menu_copy_contents_copied">Ilmoitus kopioitu leikkelepöydälle</string>
<string name="settings_general_users_prefs_user_used_by_one">Käytetty topikissa %1$s</string>
<string name="detail_settings_appearance_header">Ulkoasu</string>
<string name="settings_notifications_auto_delete_summary_one_month">Poista ilmoitukset kuukauden jälkeen</string>
<string name="channel_subscriber_notification_instant_text_three">Tilattu kolmeen välittömään topikkiin</string>
<string name="channel_subscriber_service_name">Tilaus palvelu</string>
<string name="channel_subscriber_notification_instant_text_five">Tilattu viiteen välittömään topikkiin</string>
<string name="settings_general_users_prefs_user_add">Lisää käyttäjiä</string>
<string name="settings_notifications_auto_delete_three_months">jälkeen kolmen kuukauden</string>
<string name="main_add_button_description">Lisää tilaus</string>
<string name="notification_dialog_muted_forever_toast_message">Ilmoitukset hiljennetty</string>
<string name="settings_notifications_muted_until_show_all">Näytä kaikki ilmoitukset</string>
<string name="notification_popup_file_download_failed">%1$s
\ntiedosto: %2$s, lataus virhe</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Poista pysyvästi</string>
<string name="settings_notifications_auto_delete_three_days">Jälkeen kolmen päivän</string>
<string name="settings_general_dark_mode_summary_light">Vaalea tila päälle</string>
<string name="detail_item_cannot_open">Ei voida avata liitettä %1$s</string>
<string name="settings_notifications_auto_download_5m">Jos tiedoston koko on alle 5 MB</string>
<string name="settings_general_dark_mode_entry_light">Vaalea tila</string>
<string name="detail_item_cannot_open_not_found">Liitettä ei voi avata: Tiedosto on ehkä poistettu tai mikään asennettu sovellus ei voi avata tiedostoa.</string>
<string name="settings_general_dark_mode_title">Tumma tila</string>
<string name="detail_item_download_failed">Ei voida ladata tiedostoa: %1$s</string>
<string name="settings_about_version_title">Versio</string>
<string name="channel_notifications_default_name">Oletus tärkeys</string>
<string name="detail_item_download_info_download_failed">Lataus epäonnistunut</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Kopoitu leikkelepöydälle</string>
<string name="settings_notifications_min_priority_high">Korkea prioriteetti ja sen ylittävät</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Tärkeimmät ilmoitukset hälyttävät vain kerran</string>
<string name="add_dialog_description_below">Topikit eivät ole salasanasuojattuja, joten valitse nimi, jota on vaikea arvata. Kun olet tilannut, voit käyttää PUT/POST ilmoituksia.</string>
<string name="settings_backup_restore_header">Varmuuskopioi &amp; palauta</string>
<string name="main_item_status_reconnecting">Uudelleen yhdistää …</string>
<string name="detail_delete_dialog_message">Lopetetaanko tämän aiheen tilaus ja poistetaanko kaikki saamasi ilmoitukset\?</string>
<string name="settings_title">Asetukset</string>
<string name="settings_general_dark_mode_entry_dark">Tumma tila</string>
<string name="share_content_file_error">Tiedostoa ei voi lukea info: %1$s</string>
<string name="add_dialog_instant_delivery_description">Varmistaa, että viestit toimitetaan välittömästi, vaikka laite olisi passiivinen.</string>
<string name="detail_action_mode_menu_delete">Poista</string>
<string name="main_menu_notifications_disabled_until">Huomautukset hiljennetty %1$s saakka</string>
<string name="detail_item_download_info_deleted_expires_x">Poistettu, linkki vanhentuu %1$s</string>
<string name="main_banner_websocket_button_enable_now">Ota käyttöön</string>
<string name="main_item_date_yesterday">Eilen</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Mukautettujen asetusten käyttäminen tälle tilaukselle</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy ei toimi UnifiedPush-jakelijana</string>
<string name="detail_settings_global_setting_suffix">Käytetään globaalia asetusta</string>
<string name="detail_clear_dialog_permanently_delete">Poista pysyvästi</string>
<string name="main_banner_battery_button_remind_later">Kysy myöhemmin</string>
<string name="channel_notifications_min_name">Pieni tärkeys</string>
<string name="notification_popup_action_open">Auki</string>
<string name="detail_item_menu_open">Avaa tiedosto</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Tärkeimmät ilmoitukset hälyttävät jatkuvasti, kunnes ne hylätään</string>
<string name="main_how_to_link">Yksityiskohtaiset ohjeet löytyvät osoitteesta ntfy.sh .</string>
<string name="settings_notifications_channel_prefs_summary">Älä häiritse tila (DND) äänet, jne.</string>
<string name="settings_general_users_prefs_user_not_used">Ei käytetty missään topikissa</string>
<string name="detail_how_to_link">Yksityiskohtaiset ohjeet ovat saatavilla osoitteessa ntfy.sh ja dokumenteissa.</string>
<string name="settings_notifications_muted_until_title">Hiljennetyt ilmoitukset</string>
<string name="detail_test_message_error">Ei voida lähettää: %1$s</string>
<string name="channel_subscriber_notification_noinstant_text_four">Tilattu neljään topikkiin</string>
<string name="settings_general_default_base_url_default_summary">%1$s (oletus)</string>
<string name="detail_instant_delivery_enabled">Välitön lähetys päällä</string>
<string name="notification_dialog_2h">2 tuntia</string>
<string name="settings_backup_restore_backup_entry_everything">Kaikki</string>
<string name="settings_general_users_summary">Lisää/poista käyttäjiä suojatuille topikeille</string>
<string name="add_dialog_use_another_server_description">Syötä palvelun URL-osoitte alle tilataksesi topikkeja muilta palvelimilta.</string>
<string name="settings_notifications_auto_delete_one_day">Jälkeen yhden päivän</string>
<string name="settings_general_dark_mode_summary_dark">Tumma tila päällä. Oletko vampyyri \?</string>
<string name="settings_general_users_prefs_user_add_summary">Lisää uusi käyttäjä uudelle palvelimelle</string>
<string name="settings_general_dark_mode_entry_system">Käytä oletusasetusta</string>
<string name="notification_dialog_save">Tallenna</string>
<string name="user_dialog_base_url_hint">Palvelun URL</string>
<string name="detail_item_download_info_download_failed_expires_x">Lataus epäonnistunut, linkki vanhentunut %1$s</string>
<string name="settings_notifications_priority_max">max</string>
<string name="user_dialog_password_hint_add">Salasana</string>
<string name="settings_notifications_min_priority_summary_any">Näytä kaikki ilmoitukset</string>
<string name="main_unified_push_toast">%1$s hallinnoi tätä tilausta UnifiedPushin kautta</string>
<string name="detail_item_menu_copy_contents">Kopioi ilmoitus</string>
<string name="channel_subscriber_notification_instant_text_more">Tilattu %1$d välittömään topikkiin</string>
<string name="detail_menu_enable_instant">Ota välittömät ilmoitukset käyttöön</string>
<string name="settings_advanced_export_logs_summary">Kopioi lokit leikepöydälle tai lataa osoitteeseen nopaste.net (omistaja ntfy). Isäntänimet ja aiheet voidaan sensuroida, ilmoituksia ei koskaan tehdä.</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Poista pysyvästi</string>
<string name="notification_dialog_enabled_toast_message">Jatka ilmoituksia</string>
<string name="main_menu_report_bug_title">Raportoi bugista</string>
<string name="add_dialog_button_cancel">Peruuta</string>
<string name="settings_notifications_min_priority_summary_max">Näytä ilmoitukset jos tärkeys on 5 (max)</string>
<string name="settings_advanced_broadcast_summary_enabled">Sovellukset voivat vastaanottaa saapuvia ilmoituksia ja lähetyksiä</string>
<string name="notification_dialog_tomorrow">Huomiseen saakka</string>
<string name="detail_settings_notifications_open_channels_title">Määritä ilmoitusasetukset</string>
<string name="add_dialog_topic_name_hint">Topikin nimi, esimerkiksi pentin_hälytykset</string>
<string name="channel_notifications_low_name">Matala tärkeys</string>
<string name="settings_notifications_auto_download_title">Lataa liitteet</string>
<string name="user_dialog_button_delete">Poista käyttäjä</string>
<string name="add_dialog_error_connection_failed">Yhteys epäonnistui: %1$s</string>
<string name="detail_menu_notifications_disabled_forever">Ilmoitukset hiljennetty</string>
<string name="share_content_image_text">Kanssasi jaettiin kuva</string>
<string name="main_banner_websocket_text">WebSocketsiin vaihtaminen on suositeltu tapa muodostaa yhteys palvelimeesi, ja se voi parantaa akun käyttöikää, mutta saattaa edellyttää <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">additional config in your proxy</a>. Tämän voi vaihtaa asetuksista.</string>
<string name="settings_notifications_channel_prefs_title">Kanavan asetukset</string>
<string name="settings_notifications_auto_download_50m">Jos tiedoston koko on alle 50 MB</string>
<string name="detail_clear_dialog_cancel">Peruuta</string>
<string name="main_action_mode_delete_dialog_cancel">Peruuta</string>
<string name="settings_notifications_min_priority_default">Oletus prioriteetin ja sen ylittävät</string>
<string name="detail_test_message_error_unauthorized_anon">Viestiä ei voi lähettää: Nimetöntä lähetystä ei sallita.</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSocketit</string>
<string name="detail_copied_to_clipboard_message">Kopioitu leikepöydälle</string>
<string name="channel_subscriber_notification_noinstant_text">Tilattu topikkiin</string>
<string name="detail_action_mode_menu_copy">Kopioi</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">JSON stream yli HTTP</string>
<string name="user_dialog_title_add">Lisää käyttäjä</string>
<string name="detail_item_download_info_deleted">Poistettu</string>
<string name="add_dialog_button_subscribe">Tilaa</string>
<string name="settings_advanced_clear_logs_deleted_toast">Logit poistettu</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% ladattu</string>
<string name="user_dialog_button_cancel">Peruuta</string>
<string name="add_dialog_button_login">Kirjaudu</string>
<string name="settings_backup_restore_restore_summary">Tuo asetukset, ilmoitukset ja käyttäjät</string>
<string name="channel_subscriber_notification_title">Kuuntelee sisääntulevia viestejä</string>
<string name="detail_how_to_intro">Jos haluat lähettää ilmoituksia tähän topikkiin, lähetä PUT tai POST topikin URL-osoitteeseen.</string>
<string name="settings_general_users_prefs_title">Käyttäjät</string>
<string name="detail_item_cannot_open_apk">Sovelluksia ei voi enää asentaa. Lataa sen sijaan selaimen kautta. Katso numero #531 saadaksesi lisätietoja.</string>
<string name="settings_advanced_clear_logs_summary">Poista aiemmin tallennetut lokit ja aloita alusta</string>
<string name="refresh_message_error_one">Ei voitu päivittää: %1$s</string>
<string name="add_dialog_login_username_hint">Käyttäjänimi</string>
<string name="detail_settings_about_header">-</string>
<string name="settings_advanced_export_logs_uploading">Tallenna logi …</string>
<string name="detail_item_menu_copy_url">Kopioi URL</string>
<string name="detail_menu_notifications_disabled_until">Ilmoitukset hiljennetty %1$s asti</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Nämä aiheet/isäntänimet korvattiin hedelmien nimillä, joten voit jakaa lokin huoletta:
\n
\n%1$s
\n
\nSalasanat on poistettu, ja niitä ei ole listattu tässä.</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy toimii UnifiedPush-jakelijana</string>
<string name="add_dialog_use_another_server">Käytä eri palvelinta</string>
<string name="settings_notifications_priority_default">oletus</string>
<string name="settings_notifications_auto_download_100k">Jos tiedoston koko on alle 100 kB</string>
<string name="add_dialog_base_urls_dropdown_choose">Valitse palvelimen URL</string>
<string name="add_dialog_instant_delivery">Välitön toimitus torkkutilassa</string>
<string name="settings_notifications_auto_delete_title">Poista ilmoitukset</string>
<string name="detail_delete_dialog_permanently_delete">Poista pysyvästi</string>
<string name="share_content_title">Viestin esikatselu</string>
<string name="settings_notifications_auto_download_500k">Jos tiedoston koko on alle 500 kB</string>
<string name="settings_general_default_base_url_title">Oletuspalvelin</string>
<string name="settings_notifications_muted_until_x">Ilmoitukset mykistetty, %1$s saakka</string>
<string name="main_banner_battery_text">Akun optimoinnin tulee olla pois päältä ilmoitusten toimitusongelmien välttämiseksi.</string>
<string name="settings_advanced_unifiedpush_title">Ota käyttöön UnifiedPush</string>
<string name="settings_general_default_base_url_message">Anna palvelimesi juurikansio URL, jotta voit käyttää omaa palvelintasi oletuksena uusien topikkien tilaamisessa ja/tai aiheiden jakamisessa.</string>
<string name="user_dialog_password_hint_edit">Salasana (ei voi muuttaa, jos jätetään tyhjäksi)</string>
<string name="settings_advanced_record_logs_summary_disabled">Ota logaus käyttöön, jotta voit jakaa lokit myöhemmin diagnosoidaksesi ongelmia.</string>
<string name="main_action_mode_delete_dialog_message">Lopetetaanko valittujen aiheiden tilaus ja poistetaanko kaikki ilmoitukset pysyvästi \?</string>
<string name="notification_dialog_muted_until_toast_message">Ilmoituset hiljennetty %1$s asti</string>
<string name="share_title">Jaa</string>
<string name="refresh_message_error">Ei voitu päivittää %1$d tilausta
\n
\n%2$s</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Käytä JSON HTTP:n kautta muodostaaksesi yhteyden palvelimeen. Tämä menetelmä on testattu, mutta se voi kuluttaa enemmän akkua.</string>
<string name="settings_advanced_export_logs_copied_logs">Logit kopioitu leikkelepöydälle</string>
<string name="channel_subscriber_notification_noinstant_text_six">Tilattu kuuteen topikkiin</string>
<string name="detail_settings_notifications_instant_summary_on">Ilmoitukset toimitetaan välittömästi. kuluttaa enemmän akkua.</string>
<string name="detail_test_title">Testi: Voit asettaa otsikon, jos haluat.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Käytä WebSocketsia yhteyden muodostamiseen palvelimeen. Tämä on suositeltu tapa, mutta se voi vaatia lisämäärityksiä välityspalvelimessasi.</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Lataa automaattisesti liitteet %1$s saakka</string>
<string name="settings_notifications_auto_download_10m">Jos tiedoston koko on alle 10 MB</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_connection_protocol_title">Yhteys protokolla</string>
<string name="notification_popup_action_cancel">Peruuta</string>
<string name="settings_backup_restore_restore_title">Palauta tiedostosta</string>
<string name="share_content_image_error">Kuvaa ei voi lukea %1$s</string>
<string name="notification_dialog_cancel">Peruuta</string>
<string name="main_banner_battery_button_dismiss">Hylkää</string>
<string name="detail_menu_copy_url">Kopioi topikin osoite</string>
<string name="settings_notifications_min_priority_low">Matalan prioriteetin ylittävät</string>
<string name="detail_settings_notifications_dedicated_channels_title">Mukautetut ilmoitusasetukset</string>
<string name="main_menu_settings_title">Asetukset</string>
<string name="share_topic_title">Jaettu</string>
<string name="detail_settings_appearance_icon_set_summary">Aseta kuvake, joka näytetään ilmoituksissa</string>
<string name="main_how_to_intro">Napsauta + luodaksesi topikin tai tilataksesi sen. Tämän jälkeen saat ilmoituksia laitteellesi, kun lähetät viestejä PUT- tai POST-yhteydellä.</string>
<string name="main_action_bar_title">Tilatut topikit</string>
<string name="detail_menu_notifications_enabled">Ilmoitukset päälle</string>
<string name="settings_backup_restore_backup_entry_settings_only">Vain asetukset</string>
<string name="detail_item_cannot_save">Ei voida tallentaa liitettä: %1$s</string>
<string name="detail_item_snack_undo">Kumoa</string>
<string name="settings_backup_restore_backup_successful">Varmuuskopio luotu</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (oletus)</string>
<string name="channel_subscriber_notification_noinstant_text_three">Tilattu kolmeen topikkiin</string>
<string name="channel_subscriber_notification_noinstant_text_five">Tilattu viiteen topikkiin</string>
<string name="main_action_mode_menu_unsubscribe">Lopeta tilaus</string>
<string name="add_dialog_login_description">Tämä topikki vaatii kirjautumisen. Kirjoita käyttäjätunnus ja salasana.</string>
<string name="settings_general_users_prefs_user_used_by_many">Käytetty topikeissa %1$s</string>
<string name="detail_settings_global_setting_title">Käytä globaalia asetusta</string>
<string name="settings_notifications_auto_download_summary_never">Älä koskaan lataa automaattisesti liitteitä</string>
<string name="detail_item_download_info_deleted_expired">Poistettu, linkki vanhentunut</string>
<string name="detail_item_menu_save_file">Tallenna tiedosto</string>
<string name="main_menu_docs_title">Lue dokumentaatiota</string>
<string name="settings_notifications_auto_delete_summary_one_day">Poista ilmoitukset yhden päivän jälkeen</string>
<string name="refresh_message_no_results">Kaikki päivitetty</string>
<string name="detail_item_download_info_not_downloaded_expired">Ei ladattu, linkki vanhentunut</string>
<string name="settings_advanced_record_logs_summary_enabled">Logaus (jopa 1 000 merkintää) laitteeseen…</string>
<string name="settings_notifications_auto_delete_summary_three_days">Poista ilmoitukset 3 päivän jälkeen</string>
<string name="channel_subscriber_notification_instant_text_one">Tilattu yhteen välittömään topikkiin</string>
<string name="share_content_file_text">Tedoston on jaettu sinulle</string>
<string name="main_banner_websocket_button_dismiss">Hylkää</string>
<string name="add_dialog_base_urls_dropdown_clear">Poista palvelimen URL</string>
<string name="detail_action_mode_delete_dialog_message">Poista valitut tilaukset välittömästi \?</string>
<string name="detail_settings_about_topic_url_title">Topikin URL</string>
<string name="add_dialog_title">Liity topikkin</string>
<string name="add_dialog_button_back">Takaisin</string>
<string name="settings_advanced_header">Kehittyneet</string>
<string name="settings_notifications_auto_delete_summary_three_months">Poista ilmoitukset kolmen kuukauden jälkeen</string>
<string name="notification_popup_file">%1$s
\nTiedosto: %2$s</string>
<string name="settings_notifications_muted_until_forever">Ilmoitukset mykistetty, kunnes niitä jatketaan</string>
<string name="detail_how_to_example">Esimerkki (käytä curl):<br/><tt>$ curl -d \"Hei\" %1$s</tt></string>
<string name="detail_settings_appearance_icon_set_title">Kuvake</string>
<string name="detail_instant_delivery_disabled">Välitön lähetys pois</string>
<string name="channel_subscriber_notification_instant_text_four">Tilattu neljään välittömään topikkiin</string>
<string name="settings_notifications_auto_download_1m">Jos tiedoston koko on alle 1 MB</string>
<string name="detail_item_download_info_download_failed_expired">Lataus epäonnistunut, linkki vanhentunut</string>
<string name="detail_settings_notifications_instant_summary_off">Ilmoitukset toimitetaan Firebasella. Toimitus saattaa viivästyä, mutta kuluttaa vähemmän akkua.</string>
<string name="detail_settings_notifications_open_channels_summary">Älä häiritse (DND) ohitus, äänet jne.</string>
<string name="detail_test_message_error_unauthorized_user">Viestiä ei voi lähettää: Käyttäjällä \"%1$s\" ei ole oikeuksia.</string>
<string name="notification_dialog_title">Hiljennetyt ilmoitukset</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Näytä ilmoitukset jos täkeys on %1$d (%2$s) tai enemmän</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Kopioi leikkelepöydälle (sensuroitu)</string>
<string name="settings_advanced_export_logs_copied_url">Logit tallennettu ja URL kopioitu</string>
<string name="settings_advanced_export_logs_title">Kopioi/tallenna logit</string>
<string name="detail_settings_appearance_icon_remove_summary">Tämän topikin ilmoituksissa näkyvä kuvake</string>
<string name="settings_backup_restore_backup_failed">Varmuuskopio epäonnistunut: %1$s</string>
<string name="detail_test_message_error_too_large">Viestiä ei voi lähettää: Liite on liian suuri.</string>
<string name="settings_notifications_priority_low">matala</string>
<string name="channel_subscriber_notification_noinstant_text_one">Tilattu yhteen topikkiin</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="settings_notifications_auto_download_summary_always">Lataa automaattisesti liitteet</string>
<string name="user_dialog_title_edit">Muokkaa käyttäjää</string>
<string name="settings_backup_restore_restore_successful">Palautus onnistui</string>
<string name="settings_notifications_auto_delete_one_week">jälkeen seitsemän päivän</string>
<string name="settings_backup_restore_restore_failed">Palautus epäonnistui: %1$s</string>
<string name="settings_notifications_header">Ilmoitukset</string>
<string name="detail_test_message">Tämä on testi-ilmoitus ntfy Android -sovelluksesta. Sillä on prioriteettitaso %1$d. Jos lähetät toisen, se voi näyttää erilaiselta.</string>
<string name="detail_settings_appearance_icon_remove_title">Kuvake (napauta poistaaksesi)</string>
<string name="share_suggested_topics">Ehdotetut topikit</string>
<string name="detail_settings_appearance_display_name_message">Aseta tälle topikille mukautettu näyttönimi. Jätä tyhjäksi oletuksena (%1$s).</string>
<string name="detail_settings_appearance_icon_error_saving">Ei voida tallentaa kuvaketta %1$s</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Oletusasetusten käyttäminen (äänet, Älä häiritse -tilan ohitus jne.)</string>
<string name="detail_item_menu_cancel">Peruuta lataus</string>
<string name="channel_notifications_high_name">Korkea tärkeys</string>
<string name="settings_advanced_record_logs_title">Nauhoitetut logit</string>
<string name="settings_notifications_insistent_max_priority_title">Pidä hälytykset korkeimmalla tasolla</string>
<string name="settings_notifications_min_priority_max">Vain maksimi ja ylittävät</string>
<string name="settings_about_header">About</string>
<string name="main_menu_donate_title">Lahjoita 💸</string>
<string name="notification_dialog_8h">8 tuntia</string>
<string name="detail_deep_link_subscribed_toast_message">Topikki %1$s tilattu</string>
<string name="user_dialog_username_hint">Käyttäjätunnus</string>
<string name="detail_menu_unsubscribe">Lopeta tilaus</string>
<string name="settings_notifications_auto_download_always">Lataa automaattisesti kaikki</string>
<string name="detail_menu_settings">Tilauksien asetukset</string>
<string name="settings_notifications_auto_delete_never">Ei koskaan</string>
<string name="main_item_status_unified_push">%1$s (Yleis Push)</string>
<string name="detail_item_tags">Tagit %1$s</string>
<string name="main_item_status_text_one">%1$d Huomautus</string>
</resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Priorité basse</string>
<string name="channel_notifications_default_name">Priorité par défaut</string>
<string name="channel_notifications_low_name">Notifications (priorité basse)</string>
<string name="channel_notifications_default_name">Notifications (priorité normale)</string>
<string name="channel_subscriber_service_name">Abonnement</string>
<string name="channel_subscriber_notification_instant_text_two">Abonné à deux sujets à réception instantanée</string>
<string name="channel_subscriber_notification_instant_text_four">Abonné à quatre sujets à réception instantanée</string>
@ -19,11 +19,11 @@
<string name="main_item_date_yesterday">hier</string>
<string name="main_add_button_description">Ajout d\'abonnement</string>
<string name="main_how_to_link">Des instructions détaillées sont disponible sur ntfy.sh et dans la documentation.</string>
<string name="main_banner_battery_text">L\'optimisation de la batterie devrait être désactivée pour l\'application afin d\'éviter des problèmes de réception de notifications.</string>
<string name="main_banner_battery_text">L\'optimisation de la pile devrait être désactivée pour l\'application afin d\'éviter des problèmes de réception de notifications.</string>
<string name="main_banner_websocket_button_remind_later">Demander plus tard</string>
<string name="main_banner_websocket_button_dismiss">Ignorer</string>
<string name="add_dialog_topic_name_hint">Nom de sujet, ex. : phils_alerts</string>
<string name="add_dialog_instant_delivery">Réception instantanée en mode économie d\'énergie</string>
<string name="add_dialog_instant_delivery">Livraison instantanée en mode somnolence</string>
<string name="add_dialog_button_cancel">Annuler</string>
<string name="add_dialog_button_subscribe">Abonner</string>
<string name="add_dialog_button_back">Retour</string>
@ -53,9 +53,9 @@
<string name="detail_action_mode_delete_dialog_permanently_delete">Supprimer définitivement</string>
<string name="detail_action_mode_delete_dialog_message">Supprimer définitivement la ou les notification(s) sélectionnée(s) \?</string>
<string name="channel_subscriber_notification_instant_text_one">Abonné à un sujet à réception instantanée</string>
<string name="channel_notifications_max_name">Priorité maximale</string>
<string name="channel_notifications_min_name">Priorité minimale</string>
<string name="channel_notifications_high_name">Priorité élevée</string>
<string name="channel_notifications_max_name">Notifications (priorité maximale)</string>
<string name="channel_notifications_min_name">Notifications (priorité minimale)</string>
<string name="channel_notifications_high_name">Notifications (priorité élevée)</string>
<string name="channel_subscriber_notification_title">Écoute les notifications entrantes</string>
<string name="channel_subscriber_notification_instant_text">Abonné aux sujets à réception instantanée</string>
<string name="channel_subscriber_notification_instant_text_three">Abonné à trois sujets à réception instantanée</string>
@ -105,7 +105,7 @@
<string name="detail_test_message">Ceci est une notification de test depuis l\'application Android ntfy. Elle a une priorité de niveau %1$d. Si vous en envoyez une autre, elle pourrait avoir un apparence différente.</string>
<string name="detail_test_message_error_unauthorized_anon">Incapable d\'envoyer le message : La publication anonyme est interdite.</string>
<string name="detail_test_message_error_unauthorized_user">Incapable d\'envoyer le message : L\'utilisateur \"%1$s\" n\'est pas autorisé.</string>
<string name="detail_test_message_error_too_large">Impossible d\'envoyer le message : La pièce jointe est trop lourde.</string>
<string name="detail_test_message_error_too_large">Incapable d\'envoyer le message : La pièce jointe est trop large.</string>
<string name="detail_instant_delivery_enabled">Livraison instantanée active</string>
<string name="detail_item_snack_deleted">Notification supprimée</string>
<string name="detail_item_menu_copy_url_copied">L\'URL a été copiée dans le presse-papier</string>
@ -269,7 +269,7 @@
<string name="settings_notifications_priority_min">min</string>
<string name="settings_general_users_prefs_title">Utilisateurs</string>
<string name="settings_general_dark_mode_summary_system">Utilisé le thème système</string>
<string name="settings_notifications_min_priority_summary_any">Affichage de toutes les notifications</string>
<string name="settings_notifications_min_priority_summary_any">Toutes les notifications</string>
<string name="settings_notifications_priority_default">défaut</string>
<string name="settings_notifications_auto_delete_summary_three_days">Supprimer automatiquement les notifications après 3 jours</string>
<string name="settings_notifications_auto_delete_one_day">Après un jour</string>
@ -299,7 +299,7 @@
\n
\nLes mots de passe sont nettoyés, mais ne sont pas listés ici.</string>
<string name="detail_deep_link_subscribed_toast_message">Abonné au sujet %1$s</string>
<string name="settings_notifications_channel_prefs_summary">Ignorer « ne pas déranger », sons, etc.</string>
<string name="settings_notifications_channel_prefs_summary">Ignorer Ne pas déranger (DND), sons, etc.</string>
<string name="notification_popup_user_action_failed">%1$s a échoué : %2$s</string>
<string name="settings_notifications_channel_prefs_title">Paramètres du canal</string>
<string name="channel_subscriber_notification_noinstant_text_six">Abonné à six sujets</string>
@ -327,22 +327,4 @@
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Copié au Presse-papier</string>
<string name="detail_settings_about_header">À propos</string>
<string name="detail_settings_about_topic_url_title">URL du sujet</string>
<string name="channel_notifications_group_default_name">Défaut</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Conserver les notifications</string>
<string name="main_menu_donate_title">Faire un don 💸</string>
<string name="detail_item_cannot_open_apk">Les applications ne peuvent plus être installées. Veuillez les télécharger via un navigateur. Voir le ticket #531 pour plus de détails.</string>
<string name="settings_notifications_insistent_max_priority_title">Conserver les notifications avec une priorité maximale</string>
<string name="detail_settings_notifications_dedicated_channels_title">Paramètres personnalisés de la notification</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Affiche les notifications une fois seulement</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Utilisation de paramètres personnalisés pour cet abonnement</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Utilisation des paramètres par défaut (sons, ignorer « ne pas déranger », etc.)</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Les notifications avec une priorité maximale ne sont affichées qu\'une seule fois</string>
<string name="detail_settings_notifications_open_channels_title">Configurer les paramètres de la notification</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Les notifications avec une priorité maximale sont affichées jusqu\'à ce qu\'elles soient rejetées</string>
<string name="detail_settings_notifications_open_channels_summary">Ignorer « ne pas déranger », sons, etc.</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy agira comme un distributeur UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy n\'agira pas comme un distributeur UnifiedPush</string>
<string name="settings_advanced_unifiedpush_title">Activer le \"UnifiedPush\"</string>
<string name="eos_settings_enable_title">Activer le distributeur</string>
<string name="eos_settings_enable_description">Cela permet aux applications tierces de recevoir des notifications UnifiedPush</string>
</resources>

View file

@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Prioridade Min</string>
<string name="channel_notifications_low_name">Prioridade baixa</string>
<string name="channel_notifications_default_name">Prioridade por defecto</string>
<string name="channel_notifications_high_name">Prioridade alta</string>
<string name="channel_notifications_max_name">Prioridade Máx</string>
<string name="channel_subscriber_service_name">Servizo de subscrición</string>
<string name="channel_notifications_group_default_name">Por defecto</string>
<string name="channel_subscriber_notification_title">Agardando por notificacións entrantes</string>
<string name="channel_subscriber_notification_instant_text">Subscrita ao envío instantáneo de asuntos</string>
<string name="channel_subscriber_notification_instant_text_one">Subscrita ao envío instantáneo dun asunto</string>
<string name="channel_subscriber_notification_instant_text_two">Subscrita ao envío instantáneo de dous asuntos</string>
<string name="channel_subscriber_notification_instant_text_three">Subscrita ao envío instantáneo de tres asuntos</string>
<string name="channel_subscriber_notification_instant_text_four">Subscrita ao envío instantáneo de catro asuntos</string>
<string name="channel_subscriber_notification_instant_text_five">Subscrita ao envío instantáneo de cinco asuntos</string>
<string name="channel_subscriber_notification_instant_text_six">Subscrita ao envío instantáneo de seis asuntos</string>
<string name="channel_subscriber_notification_instant_text_more">Subscrita ao envío instantáneo de %1$d asuntos</string>
<string name="channel_subscriber_notification_noinstant_text">Subscrita a asuntos</string>
<string name="channel_subscriber_notification_noinstant_text_six">Subscrita a seis asuntos</string>
<string name="channel_subscriber_notification_noinstant_text_more">Subscrita a %1$d asuntos</string>
<string name="refresh_message_error">Non se actualizaron %1$d subscricións
\n
\n%2$s</string>
<string name="refresh_message_error_one">Non se actualizou a subscrición: %1$s</string>
<string name="main_action_bar_title">Asuntos subscritos</string>
<string name="main_menu_notifications_enabled">Notificacións activadas</string>
<string name="main_menu_notifications_disabled_forever">Notificacións acaladas</string>
<string name="main_menu_notifications_disabled_until">Notificacións acaladas ata %1$s</string>
<string name="main_menu_settings_title">Axustes</string>
<string name="main_menu_report_bug_title">Informar dun fallo</string>
<string name="main_menu_docs_title">Ler documentación</string>
<string name="main_menu_rate_title">Valorar a app ⭐</string>
<string name="main_menu_donate_title">Doar 💸</string>
<string name="main_action_mode_menu_unsubscribe">Retirar subscrición</string>
<string name="main_action_mode_delete_dialog_message">Retirar a subscrición ao(s) asunto(s) seleccionado(s) e eliminar definitivamente tódalas notificacións\?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Eliminar definitivamente</string>
<string name="main_action_mode_delete_dialog_cancel">Cancelar</string>
<string name="main_item_status_text_one">%1$d notificación</string>
<string name="main_item_status_text_not_one">%1$d notificacións</string>
<string name="main_item_status_reconnecting">reconectando…</string>
<string name="channel_subscriber_notification_noinstant_text_one">Subscrita a un asunto</string>
<string name="channel_subscriber_notification_noinstant_text_two">Subscrita a dous asuntos</string>
<string name="channel_subscriber_notification_noinstant_text_three">Subscrita a tres asuntos</string>
<string name="channel_subscriber_notification_noinstant_text_four">Subscrita a catro asuntos</string>
<string name="refresh_message_result">%1$d notificación(s) recibida(s)</string>
<string name="channel_subscriber_notification_noinstant_text_five">Subscrita a cinco asuntos</string>
<string name="refresh_message_no_results">Todo ao día</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_item_date_yesterday">onte</string>
<string name="main_how_to_intro">Preme no + para crear ou subscribirte a un tema. Posteriormente recibirás notificacións no teu dispositivo cando se envían mensaxes a través de PUT ou POST.</string>
<string name="main_unified_push_toast">Esta subscrición está xestionada por %1$s a través de UnifiedPush</string>
<string name="main_how_to_link">Instruccións detalladas dispoñibles en ntfy.sh, e na documentación.</string>
<string name="main_add_button_description">Engadir subscrición</string>
<string name="main_no_subscriptions_text">Semella que aínda non tes ningunha subscrición.</string>
<string name="main_banner_battery_text">A optimización da batería debe estar desactivada para a app para evitar problemas coas notificacións.</string>
<string name="main_banner_battery_button_remind_later">Preguntar máis tarde</string>
<string name="main_banner_battery_button_dismiss">Desbotar</string>
<string name="main_banner_battery_button_fix_now">Arranxar agora</string>
<string name="main_banner_websocket_text">O cambio a WebSockets é o xeito recomendado para conectar co servidor, pode mellorar a vida da batería, pero pode requerir <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configuración adicional no teu proxy</a>. Pódese cambiar nos Axustes.</string>
<string name="main_banner_websocket_button_remind_later">Preguntar máis tarde</string>
<string name="main_banner_websocket_button_dismiss">Desbotar</string>
<string name="main_banner_websocket_button_enable_now">Activar agora</string>
<string name="add_dialog_title">Subscribir ao tema</string>
<string name="add_dialog_description_below">Os temas poden non estar protexidos con contrasinal, escolle un nome dificil de adiviñar. Unha vez subscrito, podes PUT/POST notificacións.</string>
<string name="add_dialog_topic_name_hint">Nome do tema, ex. alertas_xoan</string>
<string name="add_dialog_use_another_server">Usar outro servidor</string>
<string name="add_dialog_use_another_server_description">Escribe o URL do servizo para subscribirte a temas doutros servidores.</string>
<string name="add_dialog_instant_delivery">Entrega inmediata en modo silencioso</string>
<string name="add_dialog_instant_delivery_description">Asegura que as mensaxes se entregan de xeito inmediato, incluso se o dispositivo non está activo.</string>
<string name="add_dialog_foreground_description">A entrega inmediata sempre está activa para hóspedes diferentes a %1$s.</string>
<string name="add_dialog_button_cancel">Cancelar</string>
<string name="add_dialog_button_subscribe">Subscribir</string>
<string name="add_dialog_button_back">Atrás</string>
<string name="add_dialog_button_login">Acceder</string>
<string name="add_dialog_error_connection_failed">Fallou a conexión: %1$s</string>
<string name="add_dialog_login_title">Require iniciar sesión</string>
<string name="add_dialog_login_description">Este tema require que inicies sesión. Escribe as túas credenciais.</string>
<string name="add_dialog_login_username_hint">Identificador</string>
<string name="add_dialog_login_password_hint">Contrasinal</string>
<string name="add_dialog_login_error_not_authorized">Fallou o acceso. A usuaria %1$s non está autorizada.</string>
<string name="add_dialog_login_new_user">Nova usuaria</string>
<string name="add_dialog_base_urls_dropdown_choose">Escribe URL do servizo</string>
<string name="add_dialog_base_urls_dropdown_clear">Limpar URL do servizo</string>
<string name="detail_no_notifications_text">Aínda non recibiches notificacións deste tema.</string>
<string name="detail_how_to_example">Exemplo (usando curl): <br/><tt>$ curl -d \"Ola\" %1$s</tt></string>
<string name="detail_how_to_link">Tes instruccións polo miúdo en ntfy.sh, e na documentación.</string>
<string name="detail_clear_dialog_message">Eliminar todas as notificacións neste tema\?</string>
<string name="detail_clear_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="detail_clear_dialog_cancel">Cancelar</string>
<string name="detail_delete_dialog_message">Retirar subscrición ao tema e eliminar todas as notificacións recibidas\?</string>
<string name="detail_delete_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="detail_delete_dialog_cancel">Cancelar</string>
<string name="detail_test_title">Proba: podes poñerlle un título se queres.</string>
<string name="detail_test_message">Esta é unha notificación de proba desde a app ntfy Android. Ten nivel %1$d de prioridade. Se envías outra, podería ser diferente.</string>
<string name="detail_test_message_error">Non se enviou a mensaxe: %1$s</string>
<string name="detail_test_message_error_unauthorized_anon">Non se enviou a mensaxe: Non está permitida a publicación anónima.</string>
<string name="detail_test_message_error_unauthorized_user">Non se enviou a mensaxe: A usuaria \"%1$s\" non ten autorización.</string>
<string name="detail_test_message_error_too_large">Non se enviou a mensaxe: O adxunto é demasiado grande.</string>
<string name="detail_copied_to_clipboard_message">Copiado ao portapapeis</string>
<string name="detail_instant_delivery_enabled">Entrega inmediata activada</string>
<string name="detail_instant_delivery_disabled">Entrega inmediata desactivada</string>
<string name="detail_deep_link_subscribed_toast_message">Subscrita ao tema %1$s</string>
<string name="detail_item_tags">Etiquetas: %1$s</string>
<string name="detail_item_snack_deleted">Notificación eliminada</string>
<string name="detail_item_snack_undo">Desfacer</string>
<string name="detail_item_menu_open">Abrir ficheiro</string>
<string name="detail_item_menu_delete">Eliminar ficheiro</string>
<string name="detail_item_menu_download">Descargar ficheiro</string>
<string name="detail_item_menu_cancel">Cancelar descarga</string>
<string name="detail_item_menu_save_file">Gardar ficheiro</string>
<string name="detail_item_menu_copy_url">Copiar URL</string>
<string name="detail_item_menu_copy_url_copied">URL copiado ao portapapeis</string>
<string name="detail_item_menu_copy_contents">Copiar notificación</string>
<string name="detail_item_menu_copy_contents_copied">Notificación copiada ao portapapeis</string>
<string name="detail_item_saved_successfully">Gardado como \"%1$s\" no cartafol \"Descargas\"</string>
<string name="detail_how_to_intro">Enviar notificacións a este tema, simplemente envía con PUT ou POST ao URL do tema.</string>
<string name="detail_item_cannot_download">Non se pode abrir ou descargar o adxunto. A ligazón caducou e non se atopa un ficheiro local.</string>
<string name="detail_item_cannot_open">Non se pode abrir: %1$s</string>
<string name="detail_item_cannot_open_not_found">Non se pode abrir o adxunto: pode que fose eliminado, ou ningunha app instalada pode abrir o ficheiro.</string>
<string name="detail_item_cannot_open_url">Non se pode abrir URL: %1$s</string>
<string name="detail_item_cannot_open_apk">Xa non poden instalarse as apps. Descarga desde un navegador. Ver detalles no issue #531.</string>
<string name="detail_item_cannot_save">Non se pode gardar o adxunto: %1$s</string>
<string name="detail_item_cannot_delete">Non se pode borrar o adxunto: %1$s</string>
<string name="detail_item_download_failed">Non se puido descargar o adxunto: %1$s</string>
<string name="detail_item_download_info_not_downloaded">non descargado</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% descargado</string>
<string name="detail_item_download_info_deleted_expires_x">eliminado, a ligazón caduca o %1$s</string>
<string name="detail_item_download_info_download_failed">fallou a descarga</string>
<string name="detail_item_download_info_download_failed_expired">fallou a descarga, caducou a ligazón</string>
<string name="detail_item_download_info_download_failed_expires_x">fallou a descarga, a ligazón caduca %1$s</string>
<string name="detail_menu_notifications_enabled">Notificación activas</string>
<string name="detail_menu_notifications_disabled_forever">Notificacións acaladas</string>
<string name="detail_menu_enable_instant">Activar entrega inmediata</string>
<string name="detail_item_download_info_not_downloaded_expires_x">non descargado, caduca %1$s</string>
<string name="detail_item_download_info_not_downloaded_expired">non descargado, caducou a ligazón</string>
<string name="detail_item_download_info_deleted">eliminado</string>
<string name="detail_item_download_info_deleted_expired">eliminado, caducou a ligazón</string>
<string name="detail_menu_notifications_disabled_until">Notificacións acaladas ate %1$s</string>
<string name="detail_menu_disable_instant">Desactivar o envío instantáneo</string>
<string name="detail_menu_test">Enviar notificación de proba</string>
<string name="detail_action_mode_delete_dialog_message">Eliminar a notificación(s) permanentemente\?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="detail_action_mode_delete_dialog_cancel">Cancelar</string>
<string name="detail_settings_title">Axustes da subscrición</string>
<string name="share_title">Compartir</string>
<string name="share_content_title">Vista previa da mensaxe</string>
<string name="share_content_image_error">Non se pode ler a imaxe: %1$s</string>
<string name="share_content_file_text">Compartiron un ficheiro contigo</string>
<string name="share_content_text_hint">Engadir aquí o contido para compartir</string>
<string name="share_content_image_text">Compartiron unha imaxe contigo</string>
<string name="share_content_file_error">Non se pode ler a info do ficheiro: %1$s</string>
<string name="share_topic_title">Compartir con</string>
<string name="share_suggested_topics">Temas suxeridos</string>
<string name="share_successful">Mensaxe publicada</string>
<string name="notification_dialog_cancel">Cancelar</string>
<string name="notification_dialog_save">Gardar</string>
<string name="notification_dialog_enabled_toast_message">Reactivadas as notificacións</string>
<string name="notification_popup_file_download_successful">%1$s
\nFicheiro: %2$s, descargado</string>
<string name="notification_popup_file_download_failed">%1$s
\nFicheiro: %2$s, fallou a descarga</string>
<string name="notification_popup_user_action_failed">Fallo en %1$s: %2$s</string>
<string name="settings_title">Axutes</string>
<string name="settings_notifications_header">Notificacións</string>
<string name="notification_dialog_title">Acalar notificacións</string>
<string name="settings_notifications_muted_until_title">Acalar notificacións</string>
<string name="settings_notifications_muted_until_show_all">Mostrando todas as notificacións</string>
<string name="settings_notifications_min_priority_min">Calquera prioridade</string>
<string name="settings_notifications_min_priority_low">Prioridade baixa ou superior</string>
<string name="settings_notifications_min_priority_default">Prioridade por defecto e superior</string>
<string name="detail_menu_copy_url">Copiar enderezo do tema</string>
<string name="detail_menu_clear">Limpar todas as notificacións</string>
<string name="detail_menu_settings">Axustes da subscrición</string>
<string name="detail_menu_unsubscribe">Retirar subscrición</string>
<string name="detail_action_mode_menu_copy">Copiar</string>
<string name="detail_action_mode_menu_delete">Eliminar</string>
<string name="share_menu_send">Compartir</string>
<string name="notification_dialog_muted_forever_toast_message">Notificacións acaladas</string>
<string name="notification_dialog_muted_until_toast_message">Acalar notificacións %1$s</string>
<string name="notification_dialog_show_all">Mostrar todas as notificacións</string>
<string name="notification_dialog_30min">30 minutos</string>
<string name="notification_dialog_1h">1 hora</string>
<string name="notification_dialog_2h">2 horas</string>
<string name="notification_dialog_forever">Ata reactivalas</string>
<string name="notification_dialog_8h">8 horas</string>
<string name="notification_dialog_tomorrow">Ata mañán</string>
<string name="notification_popup_action_open">Abrir</string>
<string name="notification_popup_action_browse">Buscar</string>
<string name="notification_popup_action_download">Descargar</string>
<string name="notification_popup_action_cancel">Cancelar</string>
<string name="notification_popup_file">%1$s
\nFicheiro: %2$s</string>
<string name="notification_popup_file_downloading">Descargando %1$s, %2$d%%
\n%3$s</string>
<string name="settings_notifications_muted_until_forever">Notificacións acaladas ata retomalas</string>
<string name="settings_notifications_muted_until_x">Notificacións acaladas ate %1$s</string>
<string name="settings_notifications_min_priority_title">Prioridade mínima</string>
<string name="settings_notifications_min_priority_summary_any">Mostrando todas as notificacións</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Mostrar notificacións se a prioridade é %1$d (%2$s) ou superior</string>
<string name="settings_notifications_min_priority_summary_max">Mostrar notificacións se a prioridade é 5 (máx.)</string>
<string name="settings_notifications_min_priority_high">Alta prioridade ou superior</string>
<string name="settings_notifications_min_priority_max">Só máxima prioridade</string>
<string name="settings_notifications_priority_min">mínima</string>
<string name="settings_notifications_priority_low">baixa</string>
<string name="settings_notifications_channel_prefs_title">Axustes da canle</string>
<string name="settings_notifications_priority_default">por defecto</string>
<string name="settings_notifications_priority_high">alta</string>
<string name="settings_notifications_priority_max">máxima</string>
<string name="settings_notifications_channel_prefs_summary">Obviar Non Molestar (DND), sons, etc.</string>
<string name="settings_notifications_auto_download_title">Descargar adxuntos</string>
<string name="settings_notifications_auto_download_summary_always">Descarga automática dos adxuntos</string>
<string name="settings_notifications_auto_download_summary_never">Non descargar automaticamente os adxuntos</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Descarga automática dos adxuntos ata %1$s</string>
<string name="settings_notifications_auto_download_never">Non descargar nunca automaticamente</string>
<string name="settings_notifications_auto_delete_summary_one_week">Eliminar automaticamene as notificacións após unha semana</string>
<string name="settings_notifications_auto_delete_summary_one_month">Eliminar automaticamente as notificacións após un mes</string>
<string name="settings_notifications_auto_delete_summary_three_months">Eliminar automaticamente as notificacións após 3 meses</string>
<string name="settings_notifications_auto_delete_never">Nunca</string>
<string name="settings_notifications_auto_delete_one_day">Após un día</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Manter as alertas da prioridade máis alta ata que se desboten</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Notificar as alertas da máxima prioridade só unha vez</string>
<string name="settings_general_header">Xeral</string>
<string name="settings_general_default_base_url_title">Servidor por defecto</string>
<string name="settings_general_default_base_url_default_summary">%1$s (por defecto)</string>
<string name="settings_general_users_title">Xestionar usuarias</string>
<string name="settings_general_users_summary">Engade/elimina usuarias dos temas protexidos</string>
<string name="settings_general_users_prefs_title">Usuarias</string>
<string name="settings_general_users_prefs_user_not_used">Non utilizado por ningún tema</string>
<string name="settings_general_users_prefs_user_used_by_one">Usado polo tema %1$s</string>
<string name="settings_general_users_prefs_user_add">Engadir usuarias</string>
<string name="settings_general_users_prefs_user_add_title">Engadir nova usuaria</string>
<string name="settings_general_users_prefs_user_add_summary">Crear unha nova usuaria para un novo servidor</string>
<string name="settings_general_dark_mode_title">Modo escuro</string>
<string name="settings_general_dark_mode_summary_system">Seguir o establecido no sistema</string>
<string name="settings_general_dark_mode_summary_light">Modo claro activado</string>
<string name="settings_general_dark_mode_summary_dark">Modo escuro activado. Es un morcego\?</string>
<string name="settings_general_dark_mode_entry_system">Seguir ao sistema</string>
<string name="settings_general_dark_mode_entry_light">Modo claro</string>
<string name="settings_general_dark_mode_entry_dark">Modo escuro</string>
<string name="settings_backup_restore_header">Copia e Restablecemento</string>
<string name="settings_backup_restore_backup_title">Copia de apoio nun ficheiro</string>
<string name="settings_backup_restore_backup_summary">Exportar configuración, notificacións e usuarias</string>
<string name="settings_backup_restore_backup_entry_everything">Todo</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Todo, menos as usuarias</string>
<string name="settings_backup_restore_backup_entry_settings_only">Só os axustes</string>
<string name="settings_backup_restore_backup_successful">Copia creada</string>
<string name="settings_backup_restore_backup_failed">Fallou a copia: %1$s</string>
<string name="settings_notifications_auto_download_always">Descargar todo automaticamente</string>
<string name="settings_notifications_auto_download_100k">Se inferior a 100 kB</string>
<string name="settings_notifications_auto_download_500k">Se inferior a 500 kB</string>
<string name="settings_notifications_auto_download_1m">Se inferior a 1 MB</string>
<string name="settings_notifications_auto_download_5m">Se inferior a 5 MB</string>
<string name="settings_notifications_auto_download_10m">Se inferior a 10 MB</string>
<string name="settings_notifications_auto_download_50m">Se inferior a 50 MB</string>
<string name="settings_notifications_auto_delete_title">Eliminar notificacións</string>
<string name="settings_notifications_auto_delete_summary_never">Non eliminar nunca automaticamente as notificacións</string>
<string name="settings_notifications_auto_delete_summary_one_day">Eliminar automaticamente as notificacións após un día</string>
<string name="settings_notifications_auto_delete_summary_three_days">Eliminar automaticamente as notificacións após 3 días</string>
<string name="settings_notifications_auto_delete_three_days">Após 3 días</string>
<string name="settings_notifications_auto_delete_one_week">Após unha semana</string>
<string name="settings_notifications_auto_delete_one_month">Após un mes</string>
<string name="settings_notifications_auto_delete_three_months">Após 3 meses</string>
<string name="settings_notifications_insistent_max_priority_title">Manter as alertas da prioridade máis alta</string>
<string name="settings_general_default_base_url_message">Escribe o enderezo URL raíz do teu servidor para usar o servidor propio por defecto cando te subscribas a novos temas e/ou compartas os temas.</string>
<string name="settings_general_users_prefs_user_used_by_many">Usado polos temas %1$s</string>
<string name="settings_advanced_broadcast_summary_enabled">As app poden recibir notificacións entrantes como difusións</string>
<string name="settings_advanced_broadcast_summary_disabled">As app non poden recibir notificacións entrantes como difusións</string>
<string name="settings_backup_restore_restore_failed">Fallou o restablecemento: %1$s</string>
<string name="settings_advanced_header">Avanzado</string>
<string name="settings_advanced_broadcast_title">Mensaxes de difusión</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Estes temas e nomes de servidor serán substituídos por nomes de froita, así podes compartilos sen problema:
\n
\n%1$s
\n
\nOs contrasinais son anulados, pero non aparecen aquí.</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_connection_protocol_summary_ws">Usar WebSockets para conectar co servidor. Este é o método recomendado, pero podería precisar configuración adicional no teu proxy.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">Fluxo JSON sobre HTTP</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Usar un fluxo JSON sobre HTTP para conectar co servidor. Este método é robusto, pero podería consumir máis batería.</string>
<string name="settings_about_version_copied_to_clipboard_message">Copiado ao portapapeis</string>
<string name="detail_settings_notifications_instant_title">Entrega inmediata</string>
<string name="settings_about_header">Acerca de</string>
<string name="settings_about_version_title">Versión</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_notifications_instant_summary_off">Notificacións entregadas usando Firebase. A entrega podería sufrir demora, pero consume menos batería.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Axustes personais de notificación</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Usar axustes personais para esta subscrición</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Usar axustes por defecto (sons, obviar Non Molestar, etc.)</string>
<string name="detail_settings_notifications_open_channels_summary">Obviar Non Molestar (DND), sons, etc.</string>
<string name="detail_settings_notifications_open_channels_title">Configurar axustes da notificación</string>
<string name="detail_settings_appearance_icon_error_saving">Non se gardou a icona: %1$s</string>
<string name="detail_settings_appearance_display_name_title">Nome mostrado</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Copiado ao portapapeis</string>
<string name="settings_backup_restore_restore_title">Restablecer desde ficheiro</string>
<string name="settings_backup_restore_restore_summary">Importar configuración, notificacións e usuarias</string>
<string name="settings_backup_restore_restore_successful">Restablecemento correcto</string>
<string name="settings_advanced_unifiedpush_summary_enabled">nfty actuará como distribuidora UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">nfty non actuará como distribuidora UnifiedPush</string>
<string name="settings_advanced_record_logs_title">Gravar rexistros</string>
<string name="settings_advanced_record_logs_summary_enabled">Gravando (ata 1000 entradas) no dispositivo…</string>
<string name="settings_advanced_record_logs_summary_disabled">Activar rexistro, así poderás compartir os rexistros para diagnosticar problemas.</string>
<string name="settings_advanced_clear_logs_title">Limpar rexistros</string>
<string name="settings_advanced_export_logs_title">Copiar/subir rexistros</string>
<string name="settings_advanced_export_logs_summary">Copia os rexistros ao portapapeis, ou súbeos a nopaste.net (propiedade de ntfy). Os nomes de servidor e temas poden agocharse, as notificacións non.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Copiar ao portapapeis</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Copiar ao portapapeis (censurado)</string>
<string name="settings_advanced_export_logs_entry_upload_original">Subir e copiar ligazón</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Subir e copiar ligazón (censurado)</string>
<string name="settings_advanced_export_logs_copied_logs">Rexistros copiados ao portapapeis</string>
<string name="settings_advanced_export_logs_uploading">Subindo o rexistro …</string>
<string name="settings_advanced_export_logs_copied_url">Rexistros subidos e URL copiado</string>
<string name="settings_advanced_export_logs_error_uploading">Non se puido subir o rexistro: %1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Non se editaron temas/servidores. Non tes ningunha subscrición\?</string>
<string name="settings_advanced_clear_logs_summary">Eliminar os rexistros anteriores e volver a comezar</string>
<string name="settings_advanced_clear_logs_deleted_toast">Rexistros eliminados</string>
<string name="settings_advanced_connection_protocol_title">Protocolo de conexión</string>
<string name="detail_settings_notifications_instant_summary_on">As notificacións entregaranse inmediatamente. Require un servizo en segundo plano e consume máis batería.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Seguir avisando</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Avisar só unha vez</string>
<string name="detail_settings_appearance_header">Aspecto</string>
<string name="detail_settings_appearance_icon_set_title">Icona da subscrición</string>
<string name="detail_settings_appearance_icon_set_summary">Establecer a icona a mostrar na notificación</string>
<string name="detail_settings_appearance_icon_remove_title">Icona da subscrición (toca para eliminar)</string>
<string name="detail_settings_appearance_icon_remove_summary">Icona mostrada na notificación deste tema</string>
<string name="user_dialog_button_add">Engadir usuaria</string>
<string name="detail_settings_appearance_display_name_message">Establece o nome para mostrar para esta subscrición. Deixa en branco para valor por defecto (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (por defecto)</string>
<string name="detail_settings_global_setting_title">Usar axuste global</string>
<string name="detail_settings_global_setting_suffix">usando o axuste global</string>
<string name="detail_settings_about_header">Acerca de</string>
<string name="detail_settings_about_topic_url_title">URL do tema</string>
<string name="user_dialog_title_add">Engadir usuaria</string>
<string name="user_dialog_button_cancel">Cancelar</string>
<string name="user_dialog_button_delete">Eliminar usuaria</string>
<string name="user_dialog_button_save">Gardar</string>
<string name="settings_advanced_unifiedpush_title">Activar UnifiedPush</string>
<string name="user_dialog_title_edit">Editar usuaria</string>
<string name="user_dialog_description_add">Podes engadir aquí unha usuaria. Todos os temas do servidor indicado usarán esta usuaria.</string>
<string name="user_dialog_description_edit">Podes editar as credenciais da usuaria seleccionada, ou eliminala.</string>
<string name="user_dialog_base_url_hint">URL do servizo</string>
<string name="user_dialog_username_hint">Identificador</string>
<string name="user_dialog_password_hint_add">Contrasinal</string>
<string name="user_dialog_password_hint_edit">Contrasinal (baleiro para non cambiar)</string>
</resources>

View file

@ -1,92 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_default_name">महत्वपूर्ण</string>
<string name="channel_notifications_high_name">ज्यादा महत्वपूर्ण</string>
<string name="channel_notifications_max_name">बहुत ज्यादा महत्वपूर्ण</string>
<string name="channel_notifications_group_default_name">साधारण</string>
<string name="channel_notifications_min_name">बहुत कम महत्त्व</string>
<string name="channel_notifications_low_name">कम महत्व</string>
<string name="channel_subscriber_service_name">सदस्यता सेवा</string>
<string name="channel_subscriber_notification_title">आने वाली सूचनाओं को सुनना</string>
<string name="channel_subscriber_notification_instant_text_two">दो त्वरित वितरण विषय का जानना</string>
<string name="channel_subscriber_notification_instant_text_three">तीन त्वरित वितरण विषय का जानना</string>
<string name="channel_subscriber_notification_instant_text_four">चार त्वरित वितरण विषय का जानना</string>
<string name="channel_subscriber_notification_instant_text">त्वरित वितरण विषय का जानना</string>
<string name="channel_subscriber_notification_instant_text_one">एक त्वरित वितरण विषय का जानना</string>
<string name="channel_subscriber_notification_instant_text_more">%1$d त्वरित वितरण विषयों का जानना</string>
<string name="channel_subscriber_notification_noinstant_text">विषयों का जानना</string>
<string name="channel_subscriber_notification_instant_text_six">छह त्वरित वितरण विषयों का जानना</string>
<string name="channel_subscriber_notification_instant_text_five">पाँच त्वरित वितरण विषयों का जानना</string>
<string name="add_dialog_login_password_hint">पासवर्ड</string>
<string name="add_dialog_login_error_not_authorized">लॉगिन विफल। उपयोगकर्ता %1$s अधिकृत नहीं है।</string>
<string name="add_dialog_foreground_description">%1$s के अलावा अन्य मेज़बानों के लिए तत्काल डिलीवरी हमेशा चालू रहती है।</string>
<string name="add_dialog_login_new_user">नया उपयोगकर्ता</string>
<string name="add_dialog_login_title">लॉगिन आवश्यक</string>
<string name="main_menu_rate_title">एप को रेट करें</string>
<string name="main_item_status_text_not_one">%1$d सूचनाएं</string>
<string name="refresh_message_result">%1$d सूचना(एं ) प्राप्त</string>
<string name="detail_no_notifications_text">इस विषय पर आपको अभी तक कोई सूचना नहीं मिली है।</string>
<string name="channel_subscriber_notification_noinstant_text_two">दो विषयों की सदस्यता</string>
<string name="main_no_subscriptions_text">ऐसा लगता है कि आपके पास अभी तक कोई सदस्यता नहीं है।</string>
<string name="channel_subscriber_notification_noinstant_text_more">%1$d विषयों की सदस्यता</string>
<string name="main_banner_battery_button_fix_now">अब ठीक करें</string>
<string name="main_menu_notifications_enabled">सूचनाएं चालू</string>
<string name="main_menu_notifications_disabled_forever">सूचनाएं मौन</string>
<string name="main_banner_websocket_button_remind_later">बाद में पूछें</string>
<string name="main_add_button_description">सदस्यता जोड़ें</string>
<string name="main_action_mode_delete_dialog_permanently_delete">स्थायी रूप से मिटाएं</string>
<string name="add_dialog_description_below">सम्भवतः विषय पासवर्ड से सुरक्षित नहीं हो सकते हैं, इसलिए ऐसा नाम चुनें जिसका अनुमान लगाना कठिन हो। एक बार सदस्यता लेने के बाद, आप सूचनाएं PUT/POST कर सकते हैं।</string>
<string name="main_item_status_reconnecting">फिर से जुड़ रहा है…</string>
<string name="add_dialog_instant_delivery_description">यह सुनिश्चित करता है कि डिवाइस निष्क्रिय होने पर भी संदेश तुरंत वितरित हो।</string>
<string name="main_menu_notifications_disabled_until">सूचनाएं मौन जब तक %1$s</string>
<string name="main_banner_websocket_button_enable_now">अब चालू करें</string>
<string name="main_item_date_yesterday">बीता हुआ कल</string>
<string name="main_banner_battery_button_remind_later">बाद में पूछें</string>
<string name="main_how_to_link">विस्तृत निर्देश ntfy.sh और दस्तावेज़ों में उपलब्ध हैं।</string>
<string name="channel_subscriber_notification_noinstant_text_four">चार विषयों की सदस्यता</string>
<string name="add_dialog_use_another_server_description">दूसरे सर्वर्स के विषयों की सदस्यता लेने के लिए सर्विस URLs दर्ज करें।</string>
<string name="main_unified_push_toast">यह सदस्यता UnifiedPush के माध्यम से %1$s द्वारा प्रबंधित की जाती है</string>
<string name="main_menu_report_bug_title">खराबी रिपोर्ट करें</string>
<string name="add_dialog_button_cancel">रद्द</string>
<string name="add_dialog_topic_name_hint">विषय का नाम, उदा. phils_alerts</string>
<string name="add_dialog_error_connection_failed">कनेक्शन विफल हुआ: %1$s</string>
<string name="main_action_mode_delete_dialog_cancel">रद्द करना</string>
<string name="add_dialog_button_subscribe">सदस्यता लें</string>
<string name="add_dialog_button_login">लॉग इन करें</string>
<string name="refresh_message_error_one">सदस्यताएं रिफ्रेश नहीं हो सकी: %1$s</string>
<string name="add_dialog_login_username_hint">यूजरनेम</string>
<string name="add_dialog_use_another_server">दूसरे सर्वर का प्रयोग करें</string>
<string name="add_dialog_base_urls_dropdown_choose">सर्विस URL का चयन करें</string>
<string name="add_dialog_instant_delivery">Doze मोड में तुरंत डिलीवरी</string>
<string name="main_banner_battery_text">अधिसूचना वितरण समस्याओं से बचने के लिए ऐप के लिए बैटरी ऑप्टिमाइजेशन बंद होना चाहिए।</string>
<string name="main_action_mode_delete_dialog_message">चयनित विषय(विषयों) से सदस्यता समाप्त करें और सभी सूचनाएं स्थायी रूप से हटा दें\?</string>
<string name="refresh_message_error">%1$d सदस्यताएं रिफ्रेश नहीं हो सकी
\n
\n%2$s</string>
<string name="channel_subscriber_notification_noinstant_text_six">छह विषयों की सदस्यता</string>
<string name="main_banner_battery_button_dismiss">रद्द करें</string>
<string name="main_menu_settings_title">सेटिंग्स</string>
<string name="main_how_to_intro">किसी विषय को बनाने या उसकी सदस्यता लेने के लिए + पर क्लिक करें। बाद में PUT या POST के माध्यम से संदेश भेजते समय आपको अपने डिवाइस पर सूचनाएं प्राप्त होती हैं।</string>
<string name="main_action_bar_title">सदस्यता लिए गए विषय</string>
<string name="channel_subscriber_notification_noinstant_text_three">तीन विषयों की सदस्यता</string>
<string name="channel_subscriber_notification_noinstant_text_five">पांच विषयों की सदस्यता</string>
<string name="main_action_mode_menu_unsubscribe">सदस्यता रद्द</string>
<string name="add_dialog_login_description">इस विषय के लिए आपको लॉगिन करना होगा। कृपया यूजरनेम और पासवर्ड टाइप करें।</string>
<string name="main_menu_docs_title">दस्तावेज़ पढ़ें</string>
<string name="refresh_message_no_results">सब कुछ नवीनतम जानकारी से युक्त</string>
<string name="main_banner_websocket_button_dismiss">रद्द करें</string>
<string name="add_dialog_base_urls_dropdown_clear">सर्विस URL हटाएं</string>
<string name="add_dialog_title">विषय की सदस्यता लें</string>
<string name="add_dialog_button_back">पीछे जाएं</string>
<string name="channel_subscriber_notification_noinstant_text_one">एक विषय की सदस्यता</string>
<string name="main_menu_donate_title">दान करें</string>
<string name="main_item_status_text_one">%1$d सूचना</string>
<string name="detail_clear_dialog_cancel">रद्द करें</string>
<string name="detail_delete_dialog_cancel">रद्द करें</string>
<string name="detail_how_to_link">विस्तृत निर्देश ntfy.sh पर और डॉक्स में उपलब्ध हैं।</string>
<string name="detail_clear_dialog_permanently_delete">स्थायी रूप से हटाएं</string>
<string name="detail_how_to_intro">इस विषय पर सूचनाएं भेजने के लिए, बस विषय URL पर PUT या POST करें।</string>
<string name="detail_how_to_example">उदाहरण (curl का उपयोग करके):<br/><tt>$curl -d \"नमस्कार\"%1$s</tt></string>
<string name="detail_clear_dialog_message">इस विषय की सभी सूचनाएँ हटाएँ?</string>
<string name="main_banner_websocket_text">WebSockets पर स्विच करना आपके सर्वर से कनेक्ट करने का अनुशंसित तरीका है, और बैटरी जीवन में सुधार कर सकता है, लेकिन आपके <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">proxy में अतिरिक्त कॉन्फ़िगरेशन</a> की आवश्यकता हो सकती है। इसे सेटिंग्स में टॉगल किया जा सकता है।</string>
</resources>
<resources></resources>

View file

@ -16,11 +16,11 @@
<string name="main_add_button_description">Feliratkozás hozzáadása</string>
<string name="main_no_subscriptions_text">Úgy néz ki hogy még nincsen egy feliratkozás sem.</string>
<string name="main_how_to_intro">Kattintson a + ra hogy létrehozzon vagy feliratkozzon egy témára. Aztán mikor PUT vagy POST-al küld üzeneteket, értesítéseket kap a készülékén.</string>
<string name="channel_notifications_min_name">Minimum prioritás</string>
<string name="channel_notifications_low_name">Alacsony prioritás</string>
<string name="channel_notifications_default_name">Alapértelmezett prioritás</string>
<string name="channel_notifications_max_name">Maximum prioritás</string>
<string name="channel_notifications_high_name">Magas prioritás</string>
<string name="channel_notifications_min_name">Értesítések (minimum prioritás)</string>
<string name="channel_notifications_low_name">Értesítések (alacsony prioritás)</string>
<string name="channel_notifications_default_name">Értesítések (alap prioritás)</string>
<string name="channel_notifications_max_name">Értesítések (maximum prioritás)</string>
<string name="channel_notifications_high_name">Értesítések (magas prioritás)</string>
<string name="channel_subscriber_service_name">Feliratkozó Szolgálat</string>
<string name="channel_subscriber_notification_title">Bejövő üzenetek fogadása</string>
<string name="channel_subscriber_notification_instant_text">Feliratkozva azonnal kézbesített témákra</string>
@ -49,88 +49,4 @@
<string name="main_action_mode_delete_dialog_message">Leiratkozás a kiválasztott témá(k)-ról és végleges törlése minden üzenetnek\?</string>
<string name="main_item_status_text_one">%1$d értesítés</string>
<string name="main_action_mode_delete_dialog_cancel">Mégse</string>
<string name="channel_notifications_group_default_name">Alapértelmezett</string>
<string name="main_menu_donate_title">Adomány 💸</string>
<string name="main_banner_websocket_button_dismiss">Bezár</string>
<string name="add_dialog_instant_delivery_description">Garantálja az azonnali üzenetküldést, akkor is, ha az eszköz inaktív.</string>
<string name="add_dialog_foreground_description">Az azonnali üzenetküldés mindig bekapcsolva a %1$s címen kívül.</string>
<string name="add_dialog_button_login">Bejelentkezés</string>
<string name="add_dialog_error_connection_failed">Kapcsolódási hiba: %1$s</string>
<string name="add_dialog_login_title">Bejelentkezés szükséges</string>
<string name="add_dialog_login_description">Ehhez a témához be kell jelentkezni. Kérem add meg a felhasználó nevedet és jelszavadat!</string>
<string name="add_dialog_login_username_hint">Felhasználó</string>
<string name="add_dialog_login_new_user">Új felhasználó</string>
<string name="detail_how_to_link">Részletes leírás elérhető a ntfy.sh oldalon és a dokumentációban.</string>
<string name="detail_clear_dialog_permanently_delete">Végleges törlés</string>
<string name="detail_clear_dialog_cancel">Mégse</string>
<string name="detail_delete_dialog_message">Leiratkozás a témáról és az összes értesítés törlése\?</string>
<string name="detail_delete_dialog_cancel">Mégse</string>
<string name="detail_test_title">Teszt: Beállíthatsz témát, ha szeretnél.</string>
<string name="detail_item_snack_deleted">Értesítés törölve</string>
<string name="detail_item_menu_download">Fájl letöltése</string>
<string name="detail_test_message_error_unauthorized_user">Nem sikerült az üzenetet elküldeni: A \"%1$s\" felhasználó jogosultságai nem megfelelőek.</string>
<string name="detail_item_menu_copy_url_copied">URL a vágólapra másolva</string>
<string name="detail_item_menu_copy_contents">Értesítés másolása</string>
<string name="add_dialog_title">Feliratokozás a témára</string>
<string name="main_banner_websocket_button_enable_now">Engedélyezés most</string>
<string name="add_dialog_instant_delivery">Azonnali küldés dózis módban</string>
<string name="add_dialog_login_password_hint">Jelszó</string>
<string name="add_dialog_login_error_not_authorized">Bejelentkezési hiba. A %1$s felhasználó nem azonosítható.</string>
<string name="detail_clear_dialog_message">Töröljük az összes értesítést ebben a témában\?</string>
<string name="detail_test_message_error_too_large">Nem sikerült az üzenetet elküldeni: A csatolmány túl nagy.</string>
<string name="detail_deep_link_subscribed_toast_message">Feliratkozva a %1$s témára</string>
<string name="detail_item_menu_copy_contents_copied">Értesítés a vágólapra másolva</string>
<string name="main_banner_battery_button_remind_later">Később</string>
<string name="main_how_to_link">Részletes leírás elérhető a ntfy.sh oldalon és a dokumentációban.</string>
<string name="main_banner_battery_text">Az akkumulátor optimalizáció kikapcsolása javasolt az értesítési problémák elkerülésére.</string>
<string name="main_banner_websocket_button_remind_later">Később</string>
<string name="main_banner_battery_button_dismiss">Bezár</string>
<string name="main_banner_battery_button_fix_now">Javítás most</string>
<string name="add_dialog_description_below">A témák nem feltétlenül jelszóval védettek, ezért válassz olyan nevet, amelyet nehéz kitalálni! Ha feliratkoztál, akkor küldhetsz PUT/POST értesítéseket.</string>
<string name="add_dialog_topic_name_hint">Téma neve, pl. tibi_jelzesei</string>
<string name="add_dialog_use_another_server">Használj másik szervert</string>
<string name="add_dialog_use_another_server_description">Add meg a szolgáltatók címét alább, hogy más szerveren futó témákra is feliratkozhass.</string>
<string name="add_dialog_button_subscribe">Feliratkozás</string>
<string name="add_dialog_button_back">Vissza</string>
<string name="detail_no_notifications_text">Még nem érkezett értesítés ebben a témában.</string>
<string name="detail_delete_dialog_permanently_delete">Végleges törlés</string>
<string name="detail_test_message_error_unauthorized_anon">Nem sikerült az üzenetet elküldni: A névtelen publikálás nem engedélyezett.</string>
<string name="detail_copied_to_clipboard_message">Vágólapra másolva</string>
<string name="detail_instant_delivery_enabled">Azonnali küldés bekapcsolva</string>
<string name="detail_instant_delivery_disabled">Azonnali küldés kikapcsolva</string>
<string name="detail_item_menu_open">Fájl megnyitása</string>
<string name="detail_item_menu_delete">Fájl törlése</string>
<string name="detail_item_menu_copy_url">URL másolása</string>
<string name="detail_item_menu_cancel">Letöltés leállítása</string>
<string name="detail_item_menu_save_file">Fájl mentése</string>
<string name="detail_item_cannot_download">Nem sikerült a melléklet megnyitása vagy letöltése. A link lejárt és a helyi fájl nem található.</string>
<string name="detail_item_cannot_open">A melléklet nem nyitható meg: %1$s</string>
<string name="detail_item_cannot_open_not_found">A melléklet nem nyitható meg: A fájl törölve lett, vagy nincs megfelelő alkalmazás telepítve a megnyitáshoz.</string>
<string name="detail_item_saved_successfully">Mentve \"%1$s\" néven a \"Downloads\" mappába</string>
<string name="detail_item_cannot_open_url">Az URL nem nyitható meg: %1$s</string>
<string name="add_dialog_button_cancel">Mégse</string>
<string name="detail_test_message">Ez egy teszt értesítés az Android ntfy alkalmazásból. A beállított prioritás %1$d. Ha küldesz egy újat nem feltétlenül így fog kinézni.</string>
<string name="detail_test_message_error">Nem sikerült az üzenetet elküldeni: %1$s</string>
<string name="detail_item_snack_undo">Visszavon</string>
<string name="detail_item_download_info_deleted">törölve</string>
<string name="detail_menu_unsubscribe">Leiratkozás</string>
<string name="detail_action_mode_menu_copy">Másolás</string>
<string name="detail_action_mode_menu_delete">Törlés</string>
<string name="share_menu_send">Megosztás</string>
<string name="notification_dialog_30min">30 perc</string>
<string name="notification_dialog_1h">1 óra</string>
<string name="notification_popup_action_cancel">Mégse</string>
<string name="detail_action_mode_delete_dialog_cancel">Mégse</string>
<string name="notification_dialog_save">Mentés</string>
<string name="notification_dialog_show_all">Összes értesítés mutatása</string>
<string name="notification_dialog_muted_forever_toast_message">Értesítések lenémítva</string>
<string name="notification_dialog_2h">2 óra</string>
<string name="notification_dialog_8h">8 óra</string>
<string name="settings_title">Beállítások</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% letöltve</string>
<string name="share_title">Megosztás</string>
<string name="notification_dialog_title">Értesítések némítása</string>
<string name="notification_dialog_cancel">Mégse</string>
<string name="settings_notifications_header">Értesítések</string>
<string name="settings_notifications_muted_until_title">Értesítések némítása</string>
</resources>

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_subscriber_notification_noinstant_text">Berlangganan ke topik</string>
<string name="channel_notifications_default_name">Prioritas bawaan</string>
<string name="channel_notifications_max_name">Prioritas maks</string>
<string name="channel_notifications_min_name">Prioritas min</string>
<string name="channel_notifications_low_name">Prioritas rendah</string>
<string name="channel_notifications_default_name">Notifikasi (prioritas default)</string>
<string name="channel_notifications_max_name">Notifikasi (prioritas maks)</string>
<string name="channel_notifications_min_name">Notifikasi (prioritas min)</string>
<string name="channel_notifications_low_name">Notifikasi (prioritas rendah)</string>
<string name="channel_subscriber_service_name">Layanan Langganan</string>
<string name="channel_subscriber_notification_title">Mendengarkan notifikasi masuk</string>
<string name="channel_subscriber_notification_title">Mendengarkan untuk notifikasi masuk</string>
<string name="channel_subscriber_notification_instant_text">Berlangganan ke topik pengiriman instan</string>
<string name="channel_subscriber_notification_instant_text_one">Berlangganan ke satu topik pengiriman instan</string>
<string name="channel_subscriber_notification_instant_text_two">Berlangganan ke dua topik pengiriman instan</string>
@ -23,7 +23,7 @@
<string name="main_menu_notifications_disabled_forever">Notifikasi dibisukan</string>
<string name="main_menu_notifications_disabled_until">Notifikasi dibisukan sampai %1$s</string>
<string name="main_menu_settings_title">Pengaturan</string>
<string name="main_menu_report_bug_title">Laporkan kutu</string>
<string name="main_menu_report_bug_title">Laporkan sebuah bug</string>
<string name="main_menu_docs_title">Baca dokumentasi</string>
<string name="main_menu_rate_title">Beri nilai aplikasi ⭐</string>
<string name="main_action_mode_menu_unsubscribe">Batalkan langganan</string>
@ -216,7 +216,7 @@
<string name="settings_notifications_auto_download_summary_always">Unduh semua lampiran secara otomatis</string>
<string name="settings_notifications_auto_download_500k">Jika di bawah 500 kB</string>
<string name="user_dialog_button_save">Simpan</string>
<string name="channel_notifications_high_name">Prioritas tinggi</string>
<string name="channel_notifications_high_name">Notifikasi (prioritas tinggi)</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Hapus secara permanen</string>
<string name="add_dialog_button_subscribe">Berlangganan</string>
<string name="channel_subscriber_notification_instant_text_more">Berlangganan ke %1$d topik pengiriman instan</string>
@ -255,7 +255,7 @@
<string name="settings_notifications_min_priority_default">Prioritas default dan di atas</string>
<string name="settings_notifications_priority_high">tinggi</string>
<string name="settings_notifications_auto_download_1m">Jika di bawah 1 MB</string>
<string name="settings_advanced_record_logs_summary_disabled">Nyalakan pencatatan, supaya Anda dapat membagikan catatan nanti untuk mendiagnosa masalah.</string>
<string name="settings_advanced_record_logs_summary_disabled">Nyalakan pencatatan supaya Anda dapat membagikan catatan nanti untuk mendiagnosa masalah.</string>
<string name="settings_advanced_export_logs_error_uploading">Tidak dapat mengunggah catatan: %1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Topik/nama host diganti dengan nama-nama buah, jadi Anda dapat membagikan catatan tanpa khawatir:
\n
@ -327,20 +327,4 @@
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Disalin ke papan klip</string>
<string name="detail_settings_about_header">Tentang</string>
<string name="detail_settings_about_topic_url_title">URL Topik</string>
<string name="main_menu_donate_title">Donasi 💸</string>
<string name="detail_item_cannot_open_apk">Aplikasi tidak dapat dipasang lagi. Unduh melalui peramban. Lihat masalah #531 untuk detail lebih lanjut.</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Notifikasi prioritas maks hanya memperingati sekali</string>
<string name="detail_settings_notifications_open_channels_title">Atur pengaturan notifikasi</string>
<string name="detail_settings_notifications_open_channels_summary">Sampingan Jangan Ganggu, suara, dll.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Peringati hanya sekali</string>
<string name="channel_notifications_group_default_name">Bawaan</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Tetap memperingati</string>
<string name="settings_notifications_insistent_max_priority_title">Tetap memperingati untuk prioritas tertinggi</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Notifikasi prioritas maks memperingatkan secara berkelanjutan sampai diabaikan</string>
<string name="detail_settings_notifications_dedicated_channels_title">Pengaturan notifikasi kustom</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Menggunakan pengaturan kustom untuk langganan ini</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Menggunakan pengaturan bawaan (suara, sampingan Jangan Ganggu, dll.)</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy akan menjadi sebagai distributor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy tidak akan menjadi sebagai distributor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_title">Aktifkan UnifiedPush</string>
</resources>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Priorità bassa</string>
<string name="channel_notifications_low_name">Notifiche (priorità bassa)</string>
<string name="channel_subscriber_notification_noinstant_text_three">Iscritto a tre topic</string>
<string name="channel_notifications_high_name">Priorità alta</string>
<string name="channel_notifications_max_name">Priorità massima</string>
<string name="channel_notifications_high_name">Notifiche (priorità alta)</string>
<string name="channel_notifications_max_name">Notifiche (priorità massima)</string>
<string name="channel_subscriber_service_name">Servizio di iscrizione</string>
<string name="channel_subscriber_notification_instant_text">Iscritto ai topic a consegna istantanea</string>
<string name="channel_subscriber_notification_instant_text_two">Iscritto a due topic a consegna istantanea</string>
@ -179,8 +179,8 @@
<string name="user_dialog_button_delete">Elimina utente</string>
<string name="user_dialog_button_save">Salva</string>
<string name="channel_subscriber_notification_noinstant_text_more">Iscritto a %1$d topic</string>
<string name="channel_notifications_default_name">Priorità di default</string>
<string name="channel_notifications_min_name">Priorità minima</string>
<string name="channel_notifications_default_name">Notifiche (priorità di default)</string>
<string name="channel_notifications_min_name">Notifiche (priorità minima)</string>
<string name="channel_subscriber_notification_instant_text_one">Iscritto a un topic a consegna istantanea</string>
<string name="channel_subscriber_notification_noinstant_text_four">Iscritto a quattro topic</string>
<string name="main_menu_docs_title">Leggi la documentazione</string>
@ -327,9 +327,4 @@
<string name="add_dialog_base_urls_dropdown_choose">Scegli il servizio URL</string>
<string name="add_dialog_base_urls_dropdown_clear">Pulisci il servizio URL</string>
<string name="main_banner_websocket_button_enable_now">Attiva ora</string>
<string name="channel_notifications_group_default_name">Default</string>
<string name="main_menu_donate_title">Dona 💸</string>
<string name="detail_item_cannot_open_apk">Le app non possono più essere installate: devono essere scaricate via browser. Vedi l\'issue #531 per dettagli.</string>
<string name="eos_settings_enable_title">Abilitare il distributore</string>
<string name="eos_settings_enable_description">Consente alle applicazioni di terze parti di ricevere notifiche UnifiedPush</string>
</resources>

View file

@ -1,315 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_subscriber_notification_noinstant_text_more">מנוי ל־%1$d נושאים</string>
<string name="channel_subscriber_notification_noinstant_text_more">רשום ל-%1$d נושאים</string>
<string name="refresh_message_result">%1$d התראות התקבלו</string>
<string name="refresh_message_no_results">הכול עדכני</string>
<string name="refresh_message_error_one">הרענון של המינוי הבא נכשל: %1$s</string>
<string name="main_action_bar_title">מינוי לנושאים</string>
<string name="main_menu_notifications_enabled">התראות פעילות</string>
<string name="refresh_message_no_results">הכל מעודכן</string>
<string name="refresh_message_error_one">הרענון של הרישום הבא נכשל: %1$s</string>
<string name="main_action_bar_title">רישומים לנושאים</string>
<string name="main_menu_notifications_enabled">התראות פועלות</string>
<string name="main_menu_notifications_disabled_until">ההתראות מושתקות עד %1$s</string>
<string name="main_menu_settings_title">הגדרות</string>
<string name="main_menu_report_bug_title">דיווח על תקלה</string>
<string name="main_menu_docs_title">הצגת התיעוד</string>
<string name="main_menu_rate_title">דירוג היישומון</string>
<string name="main_action_mode_menu_unsubscribe">ביטול מינוי</string>
<string name="main_action_mode_delete_dialog_permanently_delete">מחיקה לצמיתות</string>
<string name="main_menu_report_bug_title">דווח/י על באג</string>
<string name="main_menu_docs_title">קרא/י את הדוקומנטציה</string>
<string name="main_menu_rate_title">דרג/י את האפליקציה</string>
<string name="main_action_mode_menu_unsubscribe">הסר/י רישום</string>
<string name="main_action_mode_delete_dialog_permanently_delete">מחק/י לצמיתות</string>
<string name="main_action_mode_delete_dialog_cancel">ביטול</string>
<string name="main_item_status_text_one">התראה %1$d</string>
<string name="main_item_status_text_not_one">%1$d התראות</string>
<string name="main_item_status_text_one">התראת %1$d</string>
<string name="main_item_status_text_not_one">התראות %1$d</string>
<string name="main_item_date_yesterday">אתמול</string>
<string name="main_add_button_description">הוספת מינוי</string>
<string name="main_no_subscriptions_text">נראה שאין לך מינויים עדיין.</string>
<string name="main_banner_battery_text">צריך לכבות מיטוב סוללה כדי שהיישומון יוכל להימנע מבעיות משלוח וקבלת התראות.</string>
<string name="main_banner_battery_button_remind_later">לשאול אחר כך</string>
<string name="main_banner_battery_button_dismiss">התעלמות</string>
<string name="main_banner_battery_button_fix_now">לתקן עכשיו</string>
<string name="main_banner_websocket_button_remind_later">לשאול אחר כך</string>
<string name="channel_notifications_min_name">עדיפות מזערית</string>
<string name="channel_subscriber_service_name">שירות מנויים</string>
<string name="channel_subscriber_notification_title">בהאזנה להתראות נכנסות</string>
<string name="channel_notifications_low_name">עדיפות נמוכה</string>
<string name="channel_notifications_default_name">עדיפות ברירת מחדל</string>
<string name="channel_notifications_high_name">עדיפות גבוהה</string>
<string name="channel_notifications_max_name">עדיפות מרבית</string>
<string name="refresh_message_error">הרענון של %1$d מהרישומים נכשל
<string name="main_add_button_description">הוספת רישום</string>
<string name="main_no_subscriptions_text">נראה שלא נרשמת לאף נושא עדיין.</string>
<string name="main_banner_battery_text">מיטוב סוללה צריך להיות כבוי עבור האפליקציה כדי להימנע מבעיות בשליחת וקבלת התראות.</string>
<string name="main_banner_battery_button_remind_later">שאל אחר כך</string>
<string name="main_banner_battery_button_dismiss">הסר</string>
<string name="main_banner_battery_button_fix_now">תקן עכשיו</string>
<string name="main_banner_websocket_button_remind_later">שאל אחר כך</string>
<string name="channel_notifications_min_name">התראות (עדיפות מינימאלית)</string>
<string name="channel_subscriber_service_name">שירות רישום</string>
<string name="channel_subscriber_notification_title">מאזין להתראות נכנסות</string>
<string name="channel_notifications_low_name">התראות (עדיפות נמוכה)</string>
<string name="channel_notifications_default_name">התראות (עדיפות ברירת מחדל)</string>
<string name="channel_notifications_high_name">התראות (עדיפות גבוהה)</string>
<string name="channel_notifications_max_name">התראות (עדיפות מקסימאלית)</string>
<string name="refresh_message_error">הרענון של %1$d רישומים נכשל
\n
\n%2$s</string>
<string name="main_menu_notifications_disabled_forever">התראות מושתקות</string>
<string name="main_action_mode_delete_dialog_message">לבטל מינוי מהנושאים שנבחרו ולמחוק את כל ההתראות לצמיתות?</string>
<string name="main_item_status_reconnecting">התחברות מחדש…</string>
<string name="main_how_to_intro">לחיצה על + תאפשר ליצור או להירשם לנושא. לאחר מכן התראות תגענה למכשיר שלך בעת שליחת הודעות עם PUT או POST.</string>
<string name="main_how_to_link">הוראות מפורטות זמינות ב־ntfy.sh, ובתיעוד.</string>
<string name="main_menu_donate_title">תרומה 💸</string>
<string name="channel_subscriber_notification_instant_text_two">מנוי לשני נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_three">מנוי לשלושה נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text">מנוי לנושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_one">מנוי לנושא אחד במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_four">מנוי לארבעה נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_five">מנוי לחמישה נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_six">מנוי לשישה נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_instant_text_more">מנוי ל־%1$d נושאים במשלוח מהיר</string>
<string name="channel_subscriber_notification_noinstant_text">מנוי לנושאים</string>
<string name="channel_subscriber_notification_noinstant_text_one">מנוי לנושא אחד</string>
<string name="channel_subscriber_notification_noinstant_text_two">מנוי לשני נושאים</string>
<string name="channel_subscriber_notification_noinstant_text_three">מנוי לשלושה נושאים</string>
<string name="channel_subscriber_notification_noinstant_text_four">מנוי לארבעה נושאים</string>
<string name="channel_subscriber_notification_noinstant_text_five">מנוי לחמישה נושאים</string>
<string name="channel_subscriber_notification_noinstant_text_six">מנוי לשישה נושאים</string>
<string name="channel_notifications_group_default_name">ברירת מחדל</string>
<string name="add_dialog_description_below">כנראה שהנושאים אינם מוגנים בסיסמה, אז כדאי לבחור שם שקשה לנחש. לאחר הרשמה, אפשר לשלוח התראות עם PUT/POST.</string>
<string name="main_banner_websocket_button_enable_now">להפעיל כעת</string>
<string name="add_dialog_topic_name_hint">שם הנושא, למשל: shimons_alerts</string>
<string name="add_dialog_use_another_server">להשתמש בשרת אחר</string>
<string name="add_dialog_instant_delivery">משלוח מיידי במצב תנומה</string>
<string name="main_banner_websocket_button_dismiss">התעלמות</string>
<string name="add_dialog_title">הרשמה לנושא</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="detail_how_to_intro">כדי לשלוח התראות לנושא הזה צריך פשוט לשלוח בקשות PUT או POST לכתובת הנושא.</string>
<string name="detail_test_message_error_unauthorized_user">אי אפשר לשלוח הודעה: למשתמש „%1$s” אין הרשאה.</string>
<string name="detail_deep_link_subscribed_toast_message">נרשמת לנושא %1$s</string>
<string name="detail_item_tags">תגיות: %1$s</string>
<string name="detail_item_snack_undo">הסגה</string>
<string name="detail_item_menu_delete">מחיקת קובץ</string>
<string name="detail_menu_settings">הגדרות המינוי</string>
<string name="detail_action_mode_menu_delete">מחיקה</string>
<string name="notification_dialog_cancel">ביטול</string>
<string name="notification_dialog_muted_until_toast_message">ההתראות מושתקות עד %1$s</string>
<string name="notification_dialog_show_all">הצגת כל ההתראות</string>
<string name="notification_popup_user_action_failed">%1$s נכשל: %2$s</string>
<string name="settings_notifications_min_priority_summary_any">כל ההתראות מוצגות</string>
<string name="settings_notifications_min_priority_summary_max">להציג התראות אם העדיפות היא 5 (מרבית)</string>
<string name="settings_notifications_min_priority_min">כל עדיפות שהיא</string>
<string name="settings_notifications_min_priority_default">עדיפות ברירת מחדל ומעלה</string>
<string name="settings_notifications_min_priority_high">עדיפות גבוהה ומעלה</string>
<string name="settings_notifications_min_priority_max">עדיפות מרבית בלבד</string>
<string name="settings_notifications_priority_min">מזערית</string>
<string name="settings_notifications_auto_download_100k">אם מתחת ל־100 ק״ב</string>
<string name="settings_notifications_auto_download_500k">אם מתחת ל־500 ק״ב</string>
<string name="settings_notifications_auto_download_1m">אם מתחת ל־1 מ״ב</string>
<string name="settings_notifications_auto_download_5m">אם מתחת ל־5 מ״ב</string>
<string name="settings_notifications_auto_download_10m">אם מתחת ל־10 מ״ב</string>
<string name="settings_notifications_auto_download_50m">אם מתחת ל־50 מ״ב</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% ירדו</string>
<string name="detail_menu_clear">פינוי כל ההתראות</string>
<string name="notification_popup_file_download_successful">%1$s
\nקובץ: %2$s, ירד</string>
<string name="notification_popup_file_download_failed">%1$s
\nקובץ: %2$s, ההורדה נכשלה</string>
<string name="settings_notifications_auto_delete_summary_never">לעולם לא למחוק התראות אוטומטית</string>
<string name="settings_general_users_title">ניהול משתמשים</string>
<string name="settings_general_users_summary">הוספת/הסרת משתמשים מ/על נושאים מוגנים</string>
<string name="settings_backup_restore_header">גיבוי ושחזור</string>
<string name="settings_backup_restore_backup_title">גיבוי לקובץ</string>
<string name="settings_backup_restore_backup_successful">נוצר גיבוי</string>
<string name="settings_advanced_broadcast_title">הודעות שידור</string>
<string name="settings_advanced_broadcast_summary_enabled">יישומונים יכולים לקבל התראות נכנסות בתור שידורים</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">להמשיך להודיע</string>
<string name="add_dialog_login_password_hint">סיסמה</string>
<string name="add_dialog_login_description">הנושא הזה דורש כניסה למערכת. נא למלא שם משתמש וסיסמה.</string>
<string name="add_dialog_login_error_not_authorized">הכניסה נכשלה. למשתמש %1$s אין הרשאה.</string>
<string name="add_dialog_login_new_user">משתמש חדש</string>
<string name="add_dialog_base_urls_dropdown_choose">נא לבחור כתובת שירות</string>
<string name="add_dialog_base_urls_dropdown_clear">מחיקת כתובת השירות</string>
<string name="detail_no_notifications_text">עדיין לא קיבלת התראות לנושא הזה.</string>
<string name="detail_how_to_example">דוגמה (עם curl):<br/><tt>$ curl -d \"Shalom\" %1$s</tt></string>
<string name="detail_how_to_link">יש הנחיות מפורטות ב־ntfy.sh ובתיעוד.</string>
<string name="detail_clear_dialog_message">למחוק את כל ההתראות בנושא הזה?</string>
<string name="detail_clear_dialog_permanently_delete">למחוק לצמיתות</string>
<string name="detail_clear_dialog_cancel">ביטול</string>
<string name="detail_delete_dialog_message">לבטל את המינוי לנושא הזה ולמחוק את כל ההתראות שהתקבלו?</string>
<string name="detail_test_message_error_too_large">אי אפשר לשלוח הודעה: הצרופה גדולה מדי.</string>
<string name="detail_item_menu_cancel">ביטול הורדה</string>
<string name="detail_item_menu_save_file">שמירת קובץ</string>
<string name="detail_item_menu_copy_contents_copied">ההתראה הועתקה ללוח הגזירים</string>
<string name="detail_item_cannot_download">אי אפשר לפתוח או להוריד את הצרופה. תוקף הקישור פג ואין קובץ מקומי.</string>
<string name="detail_item_cannot_save">לא ניתן לשמור צרופה: %1$s</string>
<string name="detail_item_download_info_not_downloaded">לא ירדה</string>
<string name="detail_item_download_info_deleted">נמחקה</string>
<string name="detail_item_download_info_deleted_expired">נמחקה, תוקף הקישור פג</string>
<string name="detail_item_download_info_download_failed_expires_x">ההורדה נכשלה, תוקף הקישור יפוג ב־%1$s</string>
<string name="detail_menu_notifications_disabled_forever">התראות מושתקות</string>
<string name="detail_menu_notifications_disabled_until">ההתראות מושתקות עד %1$s</string>
<string name="detail_menu_test">שליחת התראת בדיקה</string>
<string name="detail_menu_copy_url">העתקת כתובת הנושא</string>
<string name="detail_action_mode_menu_copy">העתקה</string>
<string name="share_title">שיתוף</string>
<string name="share_menu_send">שיתוף</string>
<string name="share_content_text_hint">הוספת הקשר לשיתוף כאן</string>
<string name="share_topic_title">שיתוף אל</string>
<string name="share_suggested_topics">נושאים מוצעים</string>
<string name="notification_dialog_title">השתקת התראות</string>
<string name="notification_dialog_save">שמירה</string>
<string name="notification_dialog_enabled_toast_message">ההתראות נמשכות</string>
<string name="notification_dialog_muted_forever_toast_message">ההתראות מושתקות</string>
<string name="notification_dialog_30min">חצי שעה</string>
<string name="notification_dialog_1h">שעה</string>
<string name="notification_dialog_2h">שעתיים</string>
<string name="notification_dialog_8h">8 שעות</string>
<string name="notification_dialog_tomorrow">עד מחר</string>
<string name="notification_popup_action_open">פתיחה</string>
<string name="notification_popup_action_browse">עיון</string>
<string name="notification_popup_action_download">הורדה</string>
<string name="notification_popup_action_cancel">ביטול</string>
<string name="notification_popup_file">%1$s
\nקובץ: %2$s</string>
<string name="settings_title">הגדרות</string>
<string name="settings_notifications_header">התראות</string>
<string name="settings_notifications_muted_until_show_all">כל ההתראות מוצגות</string>
<string name="settings_notifications_muted_until_forever">ההתראות מושתקות עד לביטול השתקה</string>
<string name="settings_notifications_muted_until_x">התראות מושתקות עד %1$s</string>
<string name="settings_notifications_min_priority_title">התראה מזערית</string>
<string name="settings_notifications_auto_delete_one_month">לאחר חודש</string>
<string name="settings_notifications_auto_delete_three_months">לאחר 3 חודשים</string>
<string name="settings_general_header">כללי</string>
<string name="settings_general_default_base_url_title">שרת ברירת מחדל</string>
<string name="settings_general_default_base_url_default_summary">%1$s (ברירת מחדל)</string>
<string name="settings_general_users_prefs_title">משתמשים</string>
<string name="settings_general_users_prefs_user_used_by_many">בשימוש הנושאים %1$s</string>
<string name="settings_general_users_prefs_user_add">הוספת משתמשים</string>
<string name="settings_general_users_prefs_user_add_title">הוספת משתמש חדש</string>
<string name="settings_general_users_prefs_user_add_summary">יצירת משתמש חדש לשרת חדש</string>
<string name="settings_general_dark_mode_title">מצב כהה</string>
<string name="settings_general_dark_mode_summary_system">ברירת מחדל המערכת</string>
<string name="settings_general_dark_mode_summary_light">מצב בהיר פעיל</string>
<string name="settings_general_dark_mode_summary_dark">מצב ככה פעיל. מדובר בערפד/ית?</string>
<string name="settings_backup_restore_backup_summary">ייצוא הגדרות, התראות ומשתמשים</string>
<string name="settings_backup_restore_backup_entry_everything">הכול</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">הכול חוץ מהמשתמשים</string>
<string name="settings_backup_restore_backup_failed">הגיבוי נכשל: %1$s</string>
<string name="settings_backup_restore_restore_title">שחזור מקובץ</string>
<string name="settings_backup_restore_restore_failed">השחזור נכשל: %1$s</string>
<string name="settings_advanced_header">מתקדם</string>
<string name="settings_advanced_export_logs_copied_url">היומנים הועלו והכתובת הועתקה</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">אישור</string>
<string name="settings_advanced_export_logs_error_uploading">לא ניתן להעלות יומנים: %1$s</string>
<string name="settings_advanced_clear_logs_title">פינוי יומנים</string>
<string name="detail_settings_appearance_header">מראה</string>
<string name="detail_settings_appearance_icon_set_title">סמל מינוי</string>
<string name="main_unified_push_toast">המינוי הזה מנוהל על ידי %1$s דרך UnifiedPush</string>
<string name="add_dialog_use_another_server_description">נא למלא את כתובת השירותים להלן כדי להירשם לנושאים משרתים אחרים.</string>
<string name="add_dialog_button_login">כניסה</string>
<string name="add_dialog_error_connection_failed">החיבור נכשל: %1$s</string>
<string name="add_dialog_login_title">יש להיכנס</string>
<string name="add_dialog_login_username_hint">שם משתמש</string>
<string name="detail_delete_dialog_cancel">ביטול</string>
<string name="detail_test_title">בדיקה: אפשר להגדיר כותרת אם מתחשק לך.</string>
<string name="detail_test_message">זאת התראת בדיקה מהיישומון של ntfy ל־Android. רמת העדיפות שלו היא %1$d. אם תישלח התראה נוספת היא עשויה להיראות אחרת.</string>
<string name="detail_test_message_error">לא ניתן לשלוח הודעה: %1$s</string>
<string name="detail_test_message_error_unauthorized_anon">לא ניתן לשלוח הודעה: אסור לפרסם באופן אלמוני.</string>
<string name="share_successful">ההודעה פורסמה</string>
<string name="settings_notifications_channel_prefs_title">הגדרות ערוץ</string>
<string name="settings_notifications_auto_download_summary_never">לעולם לא להוריד צרופות אוטומטית</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">להוריד צרופות עד %1$s אוטומטית</string>
<string name="settings_notifications_auto_delete_summary_one_month">למחוק התראות אוטומטית לאחר חודש</string>
<string name="settings_notifications_auto_delete_summary_three_months">למחוק התראות אוטומטית לאחר 3 חודשים</string>
<string name="settings_notifications_auto_delete_never">אף פעם לא</string>
<string name="settings_notifications_auto_delete_one_day">לאחר יום</string>
<string name="settings_general_users_prefs_user_not_used">לא בשימוש של אף נושא</string>
<string name="settings_general_users_prefs_user_used_by_one">בשימוש הנושא %1$s</string>
<string name="settings_advanced_export_logs_copied_logs">היומן הועתק ללוח הגזירים</string>
<string name="settings_advanced_export_logs_entry_copy_original">העתקה ללוח הגזירים</string>
<string name="user_dialog_title_add">הוספת משתמש</string>
<string name="user_dialog_password_hint_add">סיסמה</string>
<string name="user_dialog_password_hint_edit">סיסמה (לא תשתנה אם יישאר ריק)</string>
<string name="user_dialog_button_add">הוספת משתמש</string>
<string name="detail_item_download_info_not_downloaded_expires_x">לא ירדה, התוקף יפוג ב־%1$s</string>
<string name="settings_notifications_auto_delete_title">מחיקת התראות</string>
<string name="settings_notifications_auto_delete_one_week">לאחר שבוע</string>
<string name="settings_advanced_connection_protocol_title">פרוטוקול חיבור</string>
<string name="settings_about_version_copied_to_clipboard_message">הועתק ללוח הגזירים</string>
<string name="settings_advanced_export_logs_title">העתקת/העלאת יומנים</string>
<string name="settings_advanced_export_logs_entry_upload_original">להעלות ולהעתיק קישור</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">להעלות ולהעתיק קישור (מצונזר)</string>
<string name="detail_settings_appearance_icon_set_summary">נא להגדיר סמל שיוצג בהתראות</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">הועתק ללוח הגזירים</string>
<string name="detail_settings_appearance_icon_remove_summary">סמל שמוצג בהתראות לנושא הזה</string>
<string name="add_dialog_instant_delivery_description">מוודא שהודעות נמסרות מיידית, אפילו אם המכשיר לא פעיל.</string>
<string name="add_dialog_button_subscribe">הרשמה</string>
<string name="add_dialog_button_back">חזרה</string>
<string name="add_dialog_button_cancel">ביטול</string>
<string name="detail_delete_dialog_permanently_delete">למחוק לצמיתות</string>
<string name="detail_copied_to_clipboard_message">הועתק ללוח הגזירים</string>
<string name="detail_item_snack_deleted">ההתראה נמחקה</string>
<string name="detail_item_menu_download">הורדת קובץ</string>
<string name="detail_item_menu_copy_url">העתקת כתובת</string>
<string name="detail_item_menu_copy_url_copied">הכתובת הועתקה ללוח הגזירים</string>
<string name="detail_item_menu_copy_contents">העתקת התראה</string>
<string name="detail_item_saved_successfully">נשמרה בשם „%1$s” בתיקיית ה„הורדות/Download”</string>
<string name="detail_item_menu_open">פתיחת קובץ</string>
<string name="share_content_file_text">שותף איתך קובץ</string>
<string name="settings_backup_restore_backup_entry_settings_only">הגדרות בלבד</string>
<string name="detail_item_cannot_open">אי אפשר לפתוח צרופה: %1$s</string>
<string name="detail_menu_unsubscribe">ביטול מינוי</string>
<string name="detail_action_mode_delete_dialog_message">למחוק את ההתראות הנבחרות לצמיתות?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">למחוק לצמיתות</string>
<string name="detail_action_mode_delete_dialog_cancel">ביטול</string>
<string name="detail_settings_title">הגדרות מינוי</string>
<string name="share_content_title">תצוגת הודעה מקדימה</string>
<string name="share_content_image_text">שותפה איתך תמונה</string>
<string name="share_content_image_error">לא ניתן לקרוא תמונה: %1$s</string>
<string name="share_content_file_error">לא ניתן לקרוא פרטי קובץ: %1$s</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">להציג התראות אם העדיפות היא %1$d (%2$s) ומעלה</string>
<string name="notification_dialog_forever">עד לביטול ההשתקה</string>
<string name="settings_notifications_muted_until_title">השתקת התראות</string>
<string name="settings_notifications_auto_download_title">הורדות צרופות</string>
<string name="settings_notifications_channel_prefs_summary">מעקף „לא להפריע” (DND) צלילים וכו׳.</string>
<string name="settings_notifications_min_priority_low">עדיפות נמוכה ומעלה</string>
<string name="settings_notifications_priority_low">נמוכה</string>
<string name="settings_notifications_priority_max">מרבית</string>
<string name="settings_general_dark_mode_entry_light">מצב בהיר</string>
<string name="settings_notifications_priority_default">ברירת מחדל</string>
<string name="settings_notifications_priority_high">גבוהה</string>
<string name="settings_notifications_auto_download_always">להוריד הכול אוטומטית</string>
<string name="settings_notifications_auto_download_summary_always">להוריד את כל הצרופות אוטומטית</string>
<string name="settings_notifications_auto_download_never">לעולם לא להוריד כלום</string>
<string name="settings_notifications_auto_delete_summary_one_day">למחוק התראות אוטומטית לאחר יום</string>
<string name="settings_notifications_auto_delete_summary_three_days">למחוק התראות אוטומטית לאחר 3 ימים</string>
<string name="settings_notifications_auto_delete_summary_one_week">למחוק התראות אוטומטית לאחר שבוע</string>
<string name="settings_notifications_auto_delete_three_days">לאחר 3 ימים</string>
<string name="settings_general_dark_mode_entry_system">כמו המערכת</string>
<string name="settings_general_dark_mode_entry_dark">מצב כהה</string>
<string name="settings_backup_restore_restore_summary">ייבוא הגדרות, התראות ומשתמשים</string>
<string name="settings_backup_restore_restore_successful">השחזור הצליח</string>
<string name="detail_item_download_info_download_failed">ההורדה נכשלה</string>
<string name="settings_advanced_broadcast_summary_disabled">יישומונים לא יכולים לקבל התראות כשידורים</string>
<string name="settings_advanced_unifiedpush_title">הפעלת UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy ישמש כמפיץ UnifiedPush</string>
<string name="settings_about_version_title">גרסה</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">תזרים JSON על גבי HTTP</string>
<string name="settings_about_header">על אודות</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_appearance_icon_remove_title">סמל מינוי (נגיעה להסרה)</string>
<string name="detail_settings_appearance_icon_error_saving">לא ניתן לשמור סמל: %1$s</string>
<string name="detail_settings_appearance_display_name_title">שם תצוגה</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (ברירת מחדל)</string>
<string name="detail_settings_about_header">על אודות</string>
<string name="detail_settings_about_topic_url_title">כתובת נושא</string>
<string name="user_dialog_title_edit">עריכת משתמש</string>
<string name="user_dialog_description_add">כאן אפשר להוסיף משתמש. כל הנושאים לשרת שצוין ישתמשו במשתמש הזה.</string>
<string name="user_dialog_description_edit">אפשר לערוך שם משתמש/סיסמה למשתמש הנבחר או למחוק אותו.</string>
<string name="user_dialog_base_url_hint">כתובת שירות</string>
<string name="user_dialog_username_hint">שם משתמש</string>
<string name="user_dialog_button_cancel">ביטול</string>
<string name="user_dialog_button_delete">מחיקת משתמש</string>
<string name="user_dialog_button_save">שמירה</string>
<string name="detail_item_cannot_delete">לא ניתן למחוק צרופה: %1$s</string>
<string name="detail_item_download_failed">לא ניתן להוריד צרופה: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expired">לא ירדה, תוקף הקישור פג</string>
<string name="detail_item_download_info_deleted_expires_x">נמחקה, הקישור יפוג ב־%1$s</string>
<string name="detail_item_download_info_download_failed_expired">ההורדה נכשלה, תוקף הקישור פג</string>
<string name="detail_menu_notifications_enabled">התראות פעילות</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">העתקה ללוח הגזירים (מצונזר)</string>
<string name="settings_advanced_export_logs_uploading">היומן נשלח…</string>
<string name="settings_advanced_clear_logs_deleted_toast">יומנים נמחקו</string>
<string name="detail_settings_notifications_open_channels_title">הגדרות תצורת התראות</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">להודיע רק פעם אחת</string>
<string name="main_banner_websocket_text">החלפה ל־WebSockets היא הדרך המומלצת להתחבר לשרת שלך ויכולה לשפר את חייה הסוללה אך היא עשויה לדרוש <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">שינויים נוספים במתווך שלך</a>. אפשר להפעיל או לכבות את זה בהגדרות.</string>
<string name="settings_notifications_insistent_max_priority_title">להמשיך להודיע לעדיפות הגבוהה ביותר</string>
<string name="detail_item_cannot_open_not_found">לא ניתן לפתוח את הצרופה: יכול להיות שהקובץ נמחק או שאין יישומון מותקן שיכול לפתוח את הקובץ.</string>
<string name="detail_item_cannot_open_url">לא ניתן לפתוח כתובת: %1$s</string>
<string name="notification_popup_file_downloading">בהורדה%1$s, %2$d%%
\n%3$s</string>
<string name="detail_item_cannot_open_apk">אי אפשר להתקין עוד יישומונים. יש להוריד דרך הדפדפן במקום. בתקלה #531 מופיעים פרטים נוספים.</string>
<string name="detail_settings_global_setting_suffix">נעשה שימוש בהגדרות גלובליות</string>
</resources>
<string name="main_action_mode_delete_dialog_message">להסיר את הרישום מהנושא(ים) הנבחר(ים) ולמחוק את כל ההתראות לצמיתות\?</string>
<string name="main_item_status_reconnecting">מתחבר מחדש…</string>
<string name="main_how_to_intro">לחצ\\י על + על מנת ליצור או להירשם אל מול נושא מסוים. לאחר מכן תקבל\\י התראות במכשירך כשתשלח\\י התראות דרך PUT או POST.</string>
<string name="main_how_to_link">הוראות מפורטות זמינות ב-ntfy.sh, ובדוקומנטציה.</string>
</resources>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">優先度 最低</string>
<string name="channel_notifications_min_name">通知 (優先度最低)</string>
<string name="detail_delete_dialog_cancel">キャンセル</string>
<string name="detail_menu_notifications_enabled">通知オン</string>
<string name="settings_notifications_auto_download_summary_never">添付ファイルは自動的にダウンロードしない</string>
@ -12,13 +12,13 @@
<string name="settings_notifications_auto_delete_one_week">1週間後</string>
<string name="settings_notifications_auto_delete_one_month">1か月後</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="channel_notifications_high_name">優先度 </string>
<string name="channel_notifications_default_name">優先度 通常</string>
<string name="channel_notifications_high_name">通知 (優先度高)</string>
<string name="channel_notifications_default_name">通知 (優先度通常)</string>
<string name="channel_subscriber_notification_noinstant_text_two">トピックを2件購読しています</string>
<string name="add_dialog_login_new_user">新規ユーザー</string>
<string name="channel_notifications_max_name">優先度 最高</string>
<string name="channel_notifications_max_name">通知 (優先度最高)</string>
<string name="channel_subscriber_notification_instant_text_two">即時配信トピックを2件購読しています</string>
<string name="channel_notifications_low_name">優先度 </string>
<string name="channel_notifications_low_name">通知 (優先度低)</string>
<string name="channel_subscriber_notification_title">通知の受信を待機しています</string>
<string name="channel_subscriber_notification_instant_text">即時配信トピックを購読しています</string>
<string name="channel_subscriber_service_name">購読サービス</string>
@ -327,20 +327,4 @@
<string name="detail_settings_about_header">About</string>
<string name="detail_settings_about_topic_url_title">トピックのURL</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">クリップボードにコピーしました</string>
<string name="main_menu_donate_title">寄付する💸</string>
<string name="detail_item_cannot_open_apk">アプリはインストールできなくなりました。代替手段としてブラウザからダウンロードしてください。詳細は issue #531 をご参照ください。</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">優先度最高は非表示になるまで通知継続</string>
<string name="channel_notifications_group_default_name">デフォルト</string>
<string name="settings_notifications_insistent_max_priority_title">優先度最高は通知継続</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">優先度最高は一回のみ通知</string>
<string name="detail_settings_notifications_dedicated_channels_title">カスタム通知設定</string>
<string name="detail_settings_notifications_open_channels_title">通知設定を編集</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">デフォルト設定を使用(サウンドやおやすみモード時の動作等)</string>
<string name="detail_settings_notifications_open_channels_summary">おやすみモード時の動作やサウンド等</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">この購読にカスタム設定を利用</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">通知を継続</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">一回のみ通知</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfyがUnifiedPushディストリビュータとして振る舞うようになります</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfyはUnifiedPushディストリビュータとして振る舞いません</string>
<string name="settings_advanced_unifiedpush_title">UnifiedPushを有効化する</string>
</resources>

View file

@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="add_dialog_login_new_user">Ny bruker</string>
<string name="channel_notifications_low_name">Lav prioritet</string>
<string name="channel_notifications_default_name">Standard prioritet</string>
<string name="channel_notifications_low_name">Merknader (lav prioritet)</string>
<string name="channel_notifications_default_name">Merknader (forvalgt prioritet)</string>
<string name="channel_subscriber_service_name">Abonnementstjeneste</string>
<string name="channel_subscriber_notification_title">Lytter etter innkommende varsler</string>
<string name="channel_subscriber_notification_instant_text">Abonnert på emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_one">Abonnert på ett emne med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_four">Abonnert på fire emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_more">Abonnert på %1$d emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_one">Abonnert på ett emne</string>
<string name="channel_subscriber_notification_noinstant_text_two">Abonnert på to emner</string>
<string name="channel_subscriber_notification_noinstant_text">Abonnert på emner</string>
<string name="channel_subscriber_notification_noinstant_text_three">Abonnert på tre emner</string>
<string name="channel_subscriber_notification_noinstant_text_four">Abonnert på fire emner</string>
<string name="refresh_message_result">%1$d varsling(er) mottatt</string>
<string name="channel_notifications_max_name">Maks prioritet</string>
<string name="refresh_message_error_one">Kunne ikke oppdatere abonnement: %1$s</string>
<string name="main_menu_notifications_enabled">Varsler påslått</string>
<string name="main_menu_notifications_disabled_forever">Varsler dempet</string>
<string name="channel_subscriber_notification_title">Lytter etter innkommende merknader</string>
<string name="channel_subscriber_notification_instant_text">Du abonnerer på emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_one">Du abonnerer på ett emne med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_four">Du abonnerer på fire emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_more">Du abonnerer på %1$d emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_one">Du abonnerer på ett emne</string>
<string name="channel_subscriber_notification_noinstant_text_two">Du abonnerer på to emner</string>
<string name="channel_subscriber_notification_noinstant_text">Du abonnerer på emner</string>
<string name="channel_subscriber_notification_noinstant_text_three">Du abonnerer på tre emner</string>
<string name="channel_subscriber_notification_noinstant_text_four">Du abonnerer på fire emner</string>
<string name="refresh_message_result">%1$d merknad(er) mottatt</string>
<string name="channel_notifications_max_name">Merknader (maks.-prioritet)</string>
<string name="refresh_message_error_one">Kunne ikke gjenoppfriske abonnementet: %1$s</string>
<string name="main_menu_notifications_enabled">Merknader påslått</string>
<string name="main_menu_notifications_disabled_forever">Merknader avslått</string>
<string name="main_menu_docs_title">Les dokumentasjonen</string>
<string name="main_menu_rate_title">Vurder appen</string>
<string name="main_action_mode_menu_unsubscribe">Avslutt abonnement</string>
<string name="main_menu_rate_title">Vurder programmet</string>
<string name="main_action_mode_menu_unsubscribe">Opphev abonnement</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Slett for godt</string>
<string name="main_action_mode_delete_dialog_cancel">Avbryt</string>
<string name="main_item_status_text_one">%1$d varsling</string>
<string name="main_item_status_text_not_one">%1$d varsler</string>
<string name="main_item_status_reconnecting">kobler til på nytt</string>
<string name="main_item_status_text_one">%1$d merknad</string>
<string name="main_item_status_text_not_one">%1$d merknader</string>
<string name="main_item_status_reconnecting">kobler til igjen</string>
<string name="main_item_date_yesterday">i går</string>
<string name="main_add_button_description">Legg til abonnement</string>
<string name="main_banner_websocket_button_remind_later">Spør senere</string>
@ -36,41 +36,41 @@
<string name="add_dialog_instant_delivery">Umiddelbar varsling i slumremodus</string>
<string name="main_banner_battery_button_remind_later">Spør senere</string>
<string name="main_banner_battery_button_fix_now">Fiks nå</string>
<string name="main_action_mode_delete_dialog_message">Avslutt abonnementet på de valgte emnene og slett alle varsler permanent\?</string>
<string name="main_no_subscriptions_text">Det ser ut til at du ikke har noen abonnementer ennå.</string>
<string name="main_banner_battery_text">Batterioptimalisering bør være av for å unngå problemer med varsellevering.</string>
<string name="main_action_mode_delete_dialog_message">Opphev abonnement på valgte emne(r) og slett alle merknader du har mottatt for godt\?</string>
<string name="main_no_subscriptions_text">Abonner på noe først</string>
<string name="main_banner_battery_text">Batterioptimalisering bør skrus av for å unngå problemer med merknadsleveringen.</string>
<string name="main_banner_battery_button_dismiss">Avfei</string>
<string name="main_banner_websocket_button_dismiss">Avfei</string>
<string name="add_dialog_description_below">Emner er kanskje ikke passordbeskyttet, så velg et navn som er vanskelig å gjette. Når du har abonnert, kan du sende PUT/POST-varsler.</string>
<string name="add_dialog_use_another_server_description">Skriv inn tjeneste-URLer nedenfor for å abonnere på emner fra andre servere.</string>
<string name="add_dialog_description_below">Det kan hende emner ikke er passordsbeskyttet, så velg et navn som ikke er enkelt å gjette. Når du har abonnert kan du utføre PUT/POST av merknader.</string>
<string name="add_dialog_use_another_server_description">Du kan abonnere på emner fra en annen tjener. Skriv inn tjener-nettadressen nedenfor.</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="add_dialog_button_login">Logg inn</string>
<string name="add_dialog_error_connection_failed">Tilkobling mislyktes: %1$s</string>
<string name="add_dialog_login_username_hint">Brukernavn</string>
<string name="add_dialog_login_password_hint">Passord</string>
<string name="add_dialog_login_error_not_authorized">Innlogging mislyktes. Bruker %1$s har ikke tilgang.</string>
<string name="add_dialog_login_error_not_authorized">Innlogging mislyktes. Brukeren %1$s er ikke identitetsbekreftet.</string>
<string name="detail_no_notifications_text">Du har ikke mottatt noen merknader om dette emnet enda.</string>
<string name="detail_clear_dialog_message">Slett alle varsler i dette emnet\?</string>
<string name="detail_clear_dialog_message">Slett alle andre merknader i emnet\?</string>
<string name="detail_delete_dialog_permanently_delete">Slett for godt</string>
<string name="detail_delete_dialog_cancel">Avbryt</string>
<string name="detail_test_title">Test: Du kan sette en tittel hvis du vil.</string>
<string name="detail_test_title">Test: Du kan sette en tittel hvis du vil</string>
<string name="detail_test_message_error">Kan ikke sende melding: %1$s</string>
<string name="detail_how_to_link">Detaljerte instruksjoner er tilgjengelig på ntfy.sh, og i dokumentasjonen.</string>
<string name="detail_how_to_link">Mer detaljert instruks er å finne på ntfy.sh-nettsiden og i dokumentasjonen.</string>
<string name="detail_delete_dialog_message">Opphev abonnement på dette emnet og slett alle merknader du har mottatt\?</string>
<string name="detail_test_message_error_unauthorized_anon">Kan ikke sende melding: Anonym publisering er ikke tillatt.</string>
<string name="detail_test_message_error_unauthorized_anon">Kan ikke sende melding: Anonym publisering tillates ikke</string>
<string name="add_dialog_instant_delivery_description">Forsikrer at meldinger blir levert umiddelbart, selv når enheten er inaktiv.</string>
<string name="add_dialog_login_description">Dette emnet krever at du logger inn. Skriv inn et brukernavn og passord.</string>
<string name="detail_how_to_intro">For å sende merknader til dette emnet kan du utføre PUT eller POST til emne-nettadressen.</string>
<string name="detail_how_to_example">Eksempel (ved bruk av curl):<br/><tt>$ curl -d \"Hei\" %1$s</tt></string>
<string name="detail_how_to_example">Eksempel (ved bruk av Curl):<br/><tt>$ curl -d «Hei» %1$s</tt></string>
<string name="detail_item_snack_deleted">Merknad slettet</string>
<string name="detail_item_menu_cancel">Avbryt nedlasting</string>
<string name="detail_item_menu_save_file">Lagre fil</string>
<string name="detail_item_menu_copy_url">Kopier nettadresse</string>
<string name="detail_item_menu_copy_url_copied">URL kopiert til utklippstavlen</string>
<string name="detail_item_menu_copy_url_copied">Nettadresse kopiert til utklippstavlen</string>
<string name="detail_item_menu_copy_contents">Kopier merknad</string>
<string name="detail_item_cannot_download">Kan ikke åpne eller laste ned vedlegg. Lenken utløp og ingen lokal fil ble funnet.</string>
<string name="detail_item_cannot_open">Kan ikke åpne vedlegg: %1$s</string>
<string name="detail_item_cannot_open_not_found">Kan ikke åpne vedlegg: Filen kan ha blitt slettet, eller ingen installerte apper kan åpne filen.</string>
<string name="detail_item_cannot_open_not_found">Kan ikke åpne vedlegg: Filen kan ha blitt slettet, eller så mangler det et program til å åpne filen.</string>
<string name="detail_item_cannot_open_url">Kan ikke åpne klikkbar nettadresse: %1$s</string>
<string name="detail_item_cannot_delete">Kan ikke slette vedlegg: %1$s</string>
<string name="detail_item_download_info_not_downloaded">ikke nedlastet</string>
@ -81,8 +81,8 @@
<string name="detail_item_download_info_download_failed">nedlasting mislyktes</string>
<string name="detail_item_download_info_download_failed_expired">nedlasting mislyktes, utløpt lenke</string>
<string name="detail_item_download_info_download_failed_expires_x">nedlasting mislyktes, lenke utløper %1$s</string>
<string name="detail_menu_notifications_enabled">Varsler på</string>
<string name="detail_menu_notifications_disabled_forever">Varsler dempet</string>
<string name="detail_menu_notifications_enabled">Merknader påslått</string>
<string name="detail_menu_notifications_disabled_forever">Merknader avslått</string>
<string name="detail_menu_enable_instant">Skru på umiddelbar levering</string>
<string name="detail_menu_disable_instant">Skru av umiddelbar levering</string>
<string name="detail_menu_test">Send testmerknad</string>
@ -91,17 +91,17 @@
<string name="detail_menu_settings">Abonnementsinnstillinger</string>
<string name="detail_menu_unsubscribe">Opphev abonnement</string>
<string name="detail_instant_delivery_disabled">Umiddelbar levering avskrudd</string>
<string name="detail_item_menu_copy_contents_copied">Varsel kopiert til utklippstavlen</string>
<string name="detail_test_message_error_unauthorized_user">Kan ikke sende melding: Brukeren \"%1$s\" er ikke autorisert.</string>
<string name="detail_test_message_error_too_large">Kan ikke sende melding: Vedlegget er for stort.</string>
<string name="detail_item_menu_copy_contents_copied">Merknad kopiert til utklippstavlen</string>
<string name="detail_test_message_error_unauthorized_user">Kan ikke sende melding: Brukeren «%1$s» er ikke identitetsbekreftet</string>
<string name="detail_test_message_error_too_large">Kan ikke sende melding: Vedlegget er for stort</string>
<string name="detail_copied_to_clipboard_message">Kopiert til utklippstavlen</string>
<string name="detail_instant_delivery_enabled">Umiddelbar levering påskrudd</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Slett permanent</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Slett for godt</string>
<string name="detail_action_mode_delete_dialog_cancel">Avbryt</string>
<string name="share_title">Del</string>
<string name="share_menu_send">Del</string>
<string name="share_content_title">Meldingsforhåndsvisning</string>
<string name="share_content_text_hint">Legg til innhold for å dele her</string>
<string name="share_content_text_hint">Legg innhold du ønsker å dele her</string>
<string name="share_content_image_text">Et bilde ble delt med deg</string>
<string name="share_content_file_text">En fil ble delt med deg</string>
<string name="share_topic_title">Del til</string>
@ -112,33 +112,33 @@
<string name="notification_dialog_2h">2 timer</string>
<string name="notification_dialog_8h">8 timer</string>
<string name="notification_dialog_tomorrow">Til i morgen</string>
<string name="notification_dialog_forever">Inntil gjenopptatt</string>
<string name="notification_dialog_forever">Til de blir slått på igjen</string>
<string name="notification_popup_action_open">Åpne</string>
<string name="settings_title">Innstillinger</string>
<string name="settings_notifications_header">Merknader</string>
<string name="settings_notifications_muted_until_title">Skru av varsler</string>
<string name="settings_notifications_muted_until_show_all">Viser alle varsler</string>
<string name="settings_notifications_muted_until_forever">Varsler er dempet til de gjenopptas</string>
<string name="settings_notifications_muted_until_x">Varsler avslått til %1$s</string>
<string name="settings_notifications_muted_until_title">Sett merknader på pause</string>
<string name="settings_notifications_muted_until_show_all">Alle merknader vil bli vist</string>
<string name="settings_notifications_muted_until_forever">Merknader forstummet til de blir skrudd på igjen</string>
<string name="settings_notifications_muted_until_x">Merknader forstummet til %1$s</string>
<string name="settings_notifications_min_priority_min">Alle prioriteter</string>
<string name="settings_notifications_min_priority_summary_max">Vis varsler hvis prioritet er 5 (maks.)</string>
<string name="settings_notifications_min_priority_default">Standardprioritet og over</string>
<string name="settings_notifications_min_priority_summary_max">Vis merknader hvis prioritet er 5 (maks.)</string>
<string name="settings_notifications_min_priority_default">Forvalgt prioritet</string>
<string name="settings_notifications_min_priority_low">Lav prioritet og høyere</string>
<string name="settings_notifications_min_priority_high">Høy prioritet og over</string>
<string name="settings_notifications_min_priority_high">Høy prioritet og høyere</string>
<string name="settings_notifications_min_priority_max">Kun maks.-prioritet</string>
<string name="settings_notifications_auto_download_title">Last ned vedlegg</string>
<string name="settings_notifications_auto_download_summary_always">Last ned alle vedlegg automatisk</string>
<string name="settings_notifications_auto_download_summary_never">Last aldri ned vedlegg automatisk</string>
<string name="settings_notifications_auto_download_summary_never">Aldri last ned vedlegg automatisk</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Last ned vedlegg opptil %1$s automatisk</string>
<string name="settings_notifications_auto_download_never">Aldri last ned noe automatisk</string>
<string name="settings_notifications_auto_download_never">Aldri last ned automatisk</string>
<string name="settings_notifications_auto_download_always">Alltid last ned automatisk</string>
<string name="settings_notifications_auto_download_100k">Hvis under 100 kB</string>
<string name="settings_notifications_auto_download_1m">Hvis under 1 MB</string>
<string name="settings_notifications_auto_download_5m">Hvis under 5 MB</string>
<string name="settings_notifications_auto_download_10m">Hvis under 10 MB</string>
<string name="settings_notifications_min_priority_summary_any">Viser alle varsler</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Vis varsler hvis prioritet er %1$d (%2$s) eller høyere</string>
<string name="settings_notifications_auto_delete_summary_never">Slett aldri varsler automatisk</string>
<string name="settings_notifications_auto_download_100k">Hvis mindre enn 100 KB</string>
<string name="settings_notifications_auto_download_1m">Hvis mindre enn 1 MB</string>
<string name="settings_notifications_auto_download_5m">Hvis mindre enn 5 MB</string>
<string name="settings_notifications_auto_download_10m">Hvis mindre enn 10 MB</string>
<string name="settings_notifications_min_priority_summary_any">Merknader av alle prioriteter vises</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Vis merknader hvis prioritet er %1$d (%2$s) eller høyere</string>
<string name="settings_notifications_auto_delete_summary_never">Aldri slett merknader automatisk</string>
<string name="settings_notifications_auto_delete_one_week">Etter én uke</string>
<string name="settings_notifications_auto_delete_summary_one_month">Slett merknader automatisk etter én måned</string>
<string name="settings_notifications_auto_delete_one_month">Etter én måned</string>
@ -149,37 +149,37 @@
<string name="settings_general_users_summary">Legg til/fjern brukere for beskyttede emner</string>
<string name="settings_general_users_prefs_title">Brukere</string>
<string name="settings_general_users_prefs_user_not_used">Ikke brukt av noen emner</string>
<string name="settings_general_users_prefs_user_used_by_one">Brukt av emnet \"%1$s\"</string>
<string name="settings_general_users_prefs_user_used_by_many">Brukt av emnene %1$s</string>
<string name="settings_general_users_prefs_user_used_by_one">Brukt av emnet «%1$s»</string>
<string name="settings_general_users_prefs_user_used_by_many">Brukt av emnene «%1$s»</string>
<string name="settings_general_users_prefs_user_add">Legg til brukere</string>
<string name="settings_general_users_prefs_user_add_title">Legg til ny bruker</string>
<string name="settings_general_users_prefs_user_add_summary">Opprett en ny bruker for en ny tjener</string>
<string name="settings_general_dark_mode_title">Mørk drakt</string>
<string name="settings_general_dark_mode_summary_system">Bruker systemets standard</string>
<string name="settings_general_dark_mode_summary_light">Lys modus på</string>
<string name="settings_general_dark_mode_summary_dark">Mørk modus på. Er du en vampyr\?</string>
<string name="settings_general_dark_mode_summary_system">Ikled systemets drakt</string>
<string name="settings_general_dark_mode_summary_light">Lys drakt iført</string>
<string name="settings_general_dark_mode_summary_dark">Mørk dra iført. Er du en mørkets fyrste\?</string>
<string name="settings_general_dark_mode_entry_system">Bruk systemets forvalg</string>
<string name="settings_general_dark_mode_entry_light">Lys drakt</string>
<string name="settings_general_dark_mode_entry_dark">Mørk drakt</string>
<string name="settings_backup_restore_header">Sikkerhetskopiering og gjenoppretting</string>
<string name="settings_notifications_auto_delete_summary_one_day">Slett merknader automatisk etter én dag</string>
<string name="settings_general_default_base_url_message">Skriv inn serverens rot-URL for å bruke din egen server som standard når du abonnerer på nye emner og/eller deler til emner.</string>
<string name="settings_general_default_base_url_message">For å bruke din egen tjener som forvalg når du abonnerer på nye emner og/eller deler til emner, kan du skrive inn tjenerens grunn-nettadresse.</string>
<string name="settings_backup_restore_restore_title">Gjenopprett fra fil</string>
<string name="settings_advanced_header">Avansert</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Kopier til utklippstavlen (sensurert)</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Last opp og kopier lenke (sensurert)</string>
<string name="settings_advanced_export_logs_copied_logs">Loggføring kopiert til utklippstavlen</string>
<string name="settings_advanced_export_logs_uploading">Laster opp logg …</string>
<string name="settings_advanced_export_logs_copied_url">Logger lastet opp og URL kopiert</string>
<string name="settings_backup_restore_backup_title">Sikkerhetskopier til fil</string>
<string name="settings_backup_restore_backup_summary">Eksporter konfigurasjon, varsler og brukere</string>
<string name="settings_advanced_export_logs_copied_url">Loggføring opplastet og nettadresse kopiert</string>
<string name="settings_backup_restore_backup_title">Sikkerhetskopiering til fil</string>
<string name="settings_backup_restore_backup_summary">Eksporter oppsett, merknader og brukere</string>
<string name="settings_backup_restore_backup_entry_everything">Alt</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Alt, unntatt brukere</string>
<string name="settings_advanced_broadcast_summary_enabled">Programmer kan motta innkommende merknader som kringkastinger</string>
<string name="settings_advanced_broadcast_summary_disabled">Programmer kan motta merknader som kringkastinger</string>
<string name="settings_advanced_record_logs_title">Registrer logger</string>
<string name="settings_advanced_record_logs_summary_enabled">Logger (opptil 1000 oppføringer) til enheten …</string>
<string name="settings_advanced_record_logs_summary_disabled">Slå på logging, slik at du kan dele logger senere for å diagnostisere problemer.</string>
<string name="settings_advanced_record_logs_title">Loggføring</string>
<string name="settings_advanced_record_logs_summary_enabled">Logger blir registrert på enheten din. Opptil 1000 oppføringer lagres.</string>
<string name="settings_advanced_record_logs_summary_disabled">Skru på registrering av logger, slik at du kan dele dem senere. Dette er nyttig i avlusingsøyemed.</string>
<string name="settings_advanced_export_logs_title">Kopier/last opp logger</string>
<string name="settings_advanced_export_logs_entry_copy_original">Kopier til utklippstavlen</string>
<string name="settings_advanced_export_logs_error_uploading">Kunne ikke laste opp logger: %1$s</string>
@ -188,43 +188,43 @@
\n
\n%1$s
\n
\nPassord er fjernet, men er ikke opplistet her.</string>
\nPassord vil alltid fjernes, men er ikke opplistet her.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Ingen emner/vertsnavn ble fjernet. Kanskje du ikke har noen abonnementer\?</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">Skjønner</string>
<string name="settings_advanced_clear_logs_title">Tøm loggføring</string>
<string name="settings_advanced_clear_logs_summary">Slett tidligere registrert loggføring, og start på ny</string>
<string name="settings_advanced_clear_logs_deleted_toast">Logger slettet</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Bruk en JSON-strøm over HTTP for å koble til tjeneren. Dette er en godt utprøvd metode, men kan bruke mer batteri.</string>
<string name="settings_advanced_clear_logs_deleted_toast">Loggføring slettet</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Bruk en JSON-strøm over HTTP for å koble til tjeneren. Dette er en godt utprøvd metode, selv om den kan bruke mer batteri.</string>
<string name="settings_about_header">Om</string>
<string name="settings_about_version_copied_to_clipboard_message">Kopiert til utklippstavlen</string>
<string name="user_dialog_title_add">Legg til bruker</string>
<string name="user_dialog_title_edit">Rediger bruker</string>
<string name="user_dialog_base_url_hint">Tjeneste-URL</string>
<string name="user_dialog_base_url_hint">Tjener-nettadresse</string>
<string name="user_dialog_description_edit">Du kan redigere brukernavn/passord for valgt bruker, eller slette den helt.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">JSON-strøm over HTTP</string>
<string name="settings_advanced_connection_protocol_entry_ws">Vev-sockets</string>
<string name="user_dialog_description_add">Du kan legge til en bruker her. Alle emner for den gitte serveren vil bruke denne brukeren.</string>
<string name="user_dialog_description_add">Du kan legge til en bruker her som du kan tilknytte et gitt emne senere.</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="user_dialog_password_hint_edit">Passord (uendret hvis tomt)</string>
<string name="user_dialog_button_add">Legg til bruker</string>
<string name="user_dialog_button_cancel">Avbryt</string>
<string name="user_dialog_button_delete">Slett bruker</string>
<string name="user_dialog_button_save">Lagre</string>
<string name="channel_subscriber_notification_instant_text_three">Abonnert på tre emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_more">Abonnert på %1$d emner</string>
<string name="channel_subscriber_notification_instant_text_three">Du abonnerer på tre emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_more">Du abonnerer på %1$d emner</string>
<string name="main_menu_settings_title">Innstillinger</string>
<string name="channel_notifications_min_name">Minste prioritet</string>
<string name="channel_notifications_high_name">Høy prioritet</string>
<string name="channel_subscriber_notification_instant_text_two">Abonnert på to emner med umiddelbar levering</string>
<string name="refresh_message_error">Kunne ikke oppdatere %1$d abonnement(er)
<string name="channel_notifications_min_name">Merknader (min.-prioritet)</string>
<string name="channel_notifications_high_name">Merknader (høy prioritet)</string>
<string name="channel_subscriber_notification_instant_text_two">Du abonnerer på to emner med umiddelbar levering</string>
<string name="refresh_message_error">Kunne ikke gjenoppfriske %1$d abonnement(er)
\n
\n%2$s</string>
<string name="add_dialog_button_back">Tilbake</string>
<string name="refresh_message_no_results">Alt er oppdatert</string>
<string name="refresh_message_no_results">Alt er av nyeste dato</string>
<string name="main_action_bar_title">Abonnerte emner</string>
<string name="main_menu_notifications_disabled_until">Varsler dempet til %1$s</string>
<string name="add_dialog_login_title">Innlogging nødvendig</string>
<string name="main_menu_report_bug_title">Rapporter en feil</string>
<string name="main_menu_notifications_disabled_until">Merknader avslått til %1$s</string>
<string name="add_dialog_login_title">Innlogging kreves</string>
<string name="main_menu_report_bug_title">Innrapporter en feil</string>
<string name="add_dialog_button_subscribe">Abonner</string>
<string name="detail_clear_dialog_permanently_delete">Slett for godt</string>
<string name="detail_item_tags">Etiketter: %1$s</string>
@ -234,10 +234,10 @@
<string name="detail_item_menu_delete">Slett fil</string>
<string name="detail_item_menu_download">Last ned fil</string>
<string name="detail_item_menu_open">Åpne fil</string>
<string name="detail_item_saved_successfully">Lagret som \"%1$s\" i nedlastingsmappen</string>
<string name="detail_item_saved_successfully">Lagret som «%1$s» i nedlastingsmappen</string>
<string name="detail_item_download_info_not_downloaded_expired">ikke nedlastet, utløpt lenke</string>
<string name="detail_item_download_info_not_downloaded_expires_x">ikke nedlastet, utløper %1$s</string>
<string name="detail_menu_notifications_disabled_until">Varsler avslått til %1$s</string>
<string name="detail_menu_notifications_disabled_until">Merknader avslått til %1$s</string>
<string name="detail_item_cannot_save">Kan ikke lagre vedlegg: %1$s</string>
<string name="detail_action_mode_menu_copy">Kopier</string>
<string name="notification_popup_action_cancel">Avbryt</string>
@ -245,9 +245,9 @@
\nFil: %2$s</string>
<string name="notification_popup_file_downloading">Laster ned %1$s, %2$d%%
\n%3$s</string>
<string name="detail_item_download_failed">Kunne ikke laste ned vedlegg: %1$s</string>
<string name="detail_item_download_failed">Nedlasting av vedlegg mislyktes: %1$s</string>
<string name="detail_action_mode_menu_delete">Slett</string>
<string name="detail_action_mode_delete_dialog_message">Vil du slette valgt(e) varsling(er) permanent\?</string>
<string name="detail_action_mode_delete_dialog_message">Slett valgt(e) merknad(er)\?</string>
<string name="detail_settings_title">Abonnementsinnstillinger</string>
<string name="share_suggested_topics">Foreslåtte emner</string>
<string name="share_successful">Melding publisert</string>
@ -256,27 +256,27 @@
<string name="notification_popup_file_download_successful">%1$s
\nFil: %2$s, nedlastet</string>
<string name="share_content_image_error">Kan ikke lese bilde: %1$s</string>
<string name="notification_dialog_enabled_toast_message">Varsler gjenopptatt</string>
<string name="notification_dialog_muted_until_toast_message">Varsler avslått til %1$s</string>
<string name="settings_notifications_min_priority_title">Minste prioritet</string>
<string name="share_content_file_error">Kan ikke lese filinformasjon: %1$s</string>
<string name="notification_dialog_title">Skru av varsler</string>
<string name="notification_dialog_muted_forever_toast_message">Varsler dempet</string>
<string name="notification_dialog_enabled_toast_message">Merknader skrudd på igjen</string>
<string name="notification_dialog_muted_until_toast_message">Merknader satt på pause til %1$s</string>
<string name="settings_notifications_min_priority_title">Min.-prioritet</string>
<string name="share_content_file_error">Kan ikke lese filinfo: %1$s</string>
<string name="notification_dialog_title">Sett merknader på pause</string>
<string name="notification_dialog_muted_forever_toast_message">Merknader satt på pause</string>
<string name="notification_dialog_1h">1 time</string>
<string name="notification_popup_file_download_failed">%1$s
\nFil: %2$s, nedlasting mislyktes</string>
<string name="user_dialog_username_hint">Brukernavn</string>
<string name="settings_notifications_auto_download_50m">Hvis under 50 MB</string>
<string name="settings_notifications_auto_download_50m">Hvis mindre enn 50 MB</string>
<string name="settings_notifications_auto_delete_title">Slett merknader</string>
<string name="settings_notifications_auto_download_500k">Hvis under 500 kB</string>
<string name="settings_notifications_auto_download_500k">Hvis mindre enn 500 KB</string>
<string name="settings_backup_restore_backup_failed">Sikkerhetskopiering mislyktes: %1$s</string>
<string name="settings_backup_restore_restore_successful">Gjenoppretting vellykket</string>
<string name="settings_backup_restore_restore_successful">Gjenopprettet</string>
<string name="user_dialog_password_hint_add">Passord</string>
<string name="settings_backup_restore_restore_failed">Gjenoppretting mislyktes: %1$s</string>
<string name="settings_advanced_export_logs_entry_upload_original">Last opp og kopier lenke</string>
<string name="settings_about_version_title">Versjon</string>
<string name="settings_advanced_broadcast_title">Kringkast meldinger</string>
<string name="settings_notifications_auto_delete_summary_three_days">Slett varsler automatisk etter tre dager</string>
<string name="settings_notifications_auto_delete_summary_three_days">Slett merknader automatisk etter tre dager</string>
<string name="settings_notifications_auto_delete_summary_three_months">Slett merknader automatisk etter tre måneder</string>
<string name="settings_notifications_auto_delete_one_day">Etter én dag</string>
<string name="settings_notifications_auto_delete_summary_one_week">Slett merknader automatisk etter én uke</string>
@ -285,12 +285,12 @@
<string name="settings_general_default_base_url_default_summary">%1$s (forvalg)</string>
<string name="settings_backup_restore_backup_entry_settings_only">Kun innstillinger</string>
<string name="settings_backup_restore_restore_summary">Importer oppsett, merknader og brukere</string>
<string name="detail_test_message">Dette er et testvarsel fra ntfy Android-appen. Den har en nivå %1$d prioritet. Hvis du sender en annen, kan den se annerledes ut.</string>
<string name="settings_backup_restore_backup_successful">Sikkerhetskopiering opprettet</string>
<string name="settings_advanced_export_logs_summary">Kopier logger til utklippstavlen, eller last opp til nopaste.net (eid av ntfy-utvikleren). Vertsnavn og emner kan sensureres, men varsler vil aldri bli det.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Bruk WebSockets for å koble til serveren. Dette er den anbefalte metoden, men kan kreve ytterligere konfigurasjon i proxyen din.</string>
<string name="main_how_to_intro">Klikk på + for å opprette eller abonnere på et emne. Etterpå mottar du varsler på enheten din når du sender meldinger via PUT eller POST.</string>
<string name="main_how_to_link">Detaljerte instruksjoner er tilgjengelig på ntfy.sh, og i dokumentasjonen.</string>
<string name="detail_test_message">Dette er en testmerknad fra ntfy-Androidprogrammet. Det har %1$d-prioritet. vis du sender en ny kan det hende den ser annerledes ut.</string>
<string name="settings_backup_restore_backup_successful">Sikkerhetskopi utført</string>
<string name="settings_advanced_export_logs_summary">Kopier logger til utklippstavlen, eller last opp til nopaste.net (eid av ntfy-utvikleren). Vertsnavn og emner kan sensureres, men merknader vil aldri bli det.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Bruk Vev-socket-er for å koble til tjeneren. Dette er eksperimentelt. Si ifra hvis det bruker mindre batteri eller er ustabilt.</string>
<string name="main_how_to_intro">Abonner på et emne ved å klikke på knappen nedenfor. Etter dette kan du sende meldinger via PUT eller POST, og du kan motta merknader på enheten din.</string>
<string name="main_how_to_link">Mer detaljert instruks er å finne på ntfy.sh-nettsiden og i dokumentasjonen.</string>
<string name="main_unified_push_toast">Dette abonnementet håndteres av %1$s via UnifiedPush</string>
<string name="add_dialog_foreground_description">Umiddelbar levering er alltid påskrudd for andre verter enn %1$s.</string>
<string name="settings_notifications_priority_min">min</string>
@ -298,49 +298,8 @@
<string name="settings_notifications_priority_default">forvalg</string>
<string name="settings_notifications_priority_high">høy</string>
<string name="settings_notifications_priority_max">maks.</string>
<string name="channel_subscriber_notification_instant_text_six">Abonnert på seks emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_five">Abonnert på fem emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_five">Abonnert på fem emner</string>
<string name="channel_subscriber_notification_noinstant_text_six">Abonnert på seks emner</string>
<string name="channel_notifications_group_default_name">Standard</string>
<string name="add_dialog_base_urls_dropdown_choose">Velg tjenestens URL</string>
<string name="add_dialog_base_urls_dropdown_clear">Fjern tjeneste-URL</string>
<string name="settings_notifications_insistent_max_priority_title">Fortsett å varsle for høyeste prioritet</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Varslinger med maksimal prioritet varsler kontinuerlig til de blir avvist</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Maks prioriterte varsler varsles bare én gang</string>
<string name="detail_settings_notifications_instant_title">Umiddelbar levering</string>
<string name="detail_settings_notifications_instant_summary_on">Varsler leveres umiddelbart. Krever en forgrunnsservice og bruker mer batteri.</string>
<string name="detail_settings_notifications_instant_summary_off">Varsler leveres med Firebase. Leveringen kan bli forsinket, men bruker mindre batteri.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Egendefinerte varslingsinnstillinger</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Bruker egendefinerte innstillinger for dette abonnementet</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Bruker standardinnstillinger (lyder, Ikke forstyrr-overstyring osv.)</string>
<string name="detail_settings_notifications_open_channels_title">Konfigurer varslingsinnstillinger</string>
<string name="detail_settings_notifications_open_channels_summary">Ikke forstyrr (DND) overstyring, lyder osv.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Fortsett å varsle</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Varsle bare én gang</string>
<string name="detail_settings_appearance_icon_remove_summary">Ikon som vises i varsler for dette emnet</string>
<string name="detail_settings_appearance_icon_error_saving">Kan ikke lagre ikon: %1$s</string>
<string name="detail_settings_appearance_display_name_title">Visningsnavn</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (standard)</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Kopier til utklippstavlen</string>
<string name="detail_settings_appearance_display_name_message">Angi et tilpasset visningsnavn for dette abonnementet. La stå tomt for standard (%1$s).</string>
<string name="main_menu_donate_title">Doner 💸</string>
<string name="main_banner_websocket_text">Å bytte til WebSockets er den anbefalte måten å koble til serveren på, og kan forbedre batterilevetiden, men kan kreve <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">ytterligere konfigurasjon i proxy-serveren</a>. Dette kan endres i innstillingene.</string>
<string name="main_banner_websocket_button_enable_now">Aktiver nå</string>
<string name="detail_deep_link_subscribed_toast_message">Abonnerte på emnet %1$s</string>
<string name="detail_settings_appearance_header">Utseende</string>
<string name="detail_settings_appearance_icon_set_summary">Angi et ikon som skal vises i varsler</string>
<string name="detail_settings_appearance_icon_set_title">Abonnement-ikon</string>
<string name="detail_settings_global_setting_title">Bruk globale innstillinger</string>
<string name="detail_settings_about_header">Om</string>
<string name="detail_settings_about_topic_url_title">Emne-URL</string>
<string name="notification_popup_user_action_failed">%1$s mislyktes: %2$s</string>
<string name="detail_item_cannot_open_apk">Apper kan ikke installeres lenger. Last ned via nettleseren i stedet. Se feilrapport #531 for detaljer.</string>
<string name="detail_settings_appearance_icon_remove_title">Abonnement-ikon (trykk for å fjerne)</string>
<string name="settings_notifications_channel_prefs_summary">Ikke forstyrr (DND) overstyring, lyder osv.</string>
<string name="settings_notifications_channel_prefs_title">Kanalinnstillinger</string>
<string name="detail_settings_global_setting_suffix">ved hjelp av globale innstillinger</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy vil ikke opptre som UnifiedPush-distributør</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy vil opptre som UnifiedPush-distributør</string>
<string name="settings_advanced_unifiedpush_title">Skru på UnifiedPush</string>
<string name="channel_subscriber_notification_instant_text_six">Du abonnerer på seks emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_instant_text_five">Du abonnerer på fem emner med umiddelbar levering</string>
<string name="channel_subscriber_notification_noinstant_text_five">Du abonnerer på fem emner</string>
<string name="channel_subscriber_notification_noinstant_text_six">Du abonnerer på seks emner</string>
</resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Lage prioriteit</string>
<string name="channel_notifications_max_name">Maximum prioriteit</string>
<string name="channel_notifications_low_name">Meldingen (lage prioriteit)</string>
<string name="channel_notifications_max_name">Meldingen (max. prioriteit)</string>
<string name="channel_subscriber_notification_instant_text">Geabonneerd op onderwerpen voor directe levering</string>
<string name="channel_subscriber_notification_instant_text_one">Geabonneerd op één onderwerp voor directe levering</string>
<string name="channel_subscriber_notification_instant_text_four">Geabonneerd op vier onderwerpen voor directe levering</string>
@ -37,8 +37,8 @@
<string name="add_dialog_button_login">Inloggen</string>
<string name="add_dialog_use_another_server">Gebruik een andere server</string>
<string name="channel_notifications_min_name">Meldingen (min. prioriteit)</string>
<string name="channel_notifications_default_name">Standaard prioriteit</string>
<string name="channel_notifications_high_name">Hoge prioriteit</string>
<string name="channel_notifications_default_name">Meldingen (standaard prioriteit)</string>
<string name="channel_notifications_high_name">Meldingen (hoge prioriteit)</string>
<string name="channel_subscriber_service_name">Abonnementenservice</string>
<string name="main_how_to_intro">Klik op de + om een onderwerp aan te maken of erop te abonneren. Nadien ontvang je meldingen op je toestel bij het verzenden van berichten via PUT or POST.</string>
<string name="channel_subscriber_notification_instant_text_two">Geabonneerd op twee onderwerpen voor directe levering</string>
@ -226,7 +226,7 @@
<string name="settings_advanced_header">Geavanceerd</string>
<string name="settings_advanced_record_logs_title">Logs opnemen</string>
<string name="settings_advanced_record_logs_summary_enabled">Loggen (tot 1,000 vermeldingen) naar apparaat …</string>
<string name="settings_advanced_record_logs_summary_disabled">Loggen inschakelen, deze kan later gedeeld worden om problemen te analyseren.</string>
<string name="settings_advanced_record_logs_summary_disabled">Schakel loggen in zodat je logs later kunt delen om problemen te diagnosticeren.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Er zijn geen onderwerpen/hostnamen gecensureerd. Misschien heb je geen abonnementen\?</string>
<string name="detail_item_download_info_deleted">verwijderd</string>
<string name="settings_notifications_auto_download_always">Alles automatisch downloaden</string>
@ -327,20 +327,4 @@
<string name="add_dialog_base_urls_dropdown_clear">Service URL verwijderen</string>
<string name="main_banner_websocket_button_enable_now">Nu inschakelen</string>
<string name="main_banner_websocket_text">WebSockets is de aangeraden manier om te verbinden met uw server en kan batterij verbruik verminderen. Het kan <a href="https://ntfy.sh/docs/config/#nginxapache2caddy"> extra configuratie in uw proxy</a> vereisen. Dit kan omgeschakeld worden in de instellingen.</string>
<string name="channel_notifications_group_default_name">Standaard</string>
<string name="main_menu_donate_title">Doneer 💸</string>
<string name="detail_item_cannot_open_apk">Apps kunnen niet meer worden geïnstalleerd. Download deze via de browser. Raadpleeg issue #531 voor meer details.</string>
<string name="settings_notifications_insistent_max_priority_title">Behoud meldingen voor hoogste prioriteit</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Max prioriteit berichten geven continue een melding totdat deze worden gesloten</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Max prioriteit berichten geven eenmalig een melding</string>
<string name="detail_settings_notifications_dedicated_channels_title">Instellingen voor aangepaste melding</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Aangepaste instellingen in gebruik voor dit abonnement</string>
<string name="detail_settings_notifications_open_channels_title">Aanpassen instellingen voor meldingen</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Blijven melden</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Eenmalig melden</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Standaard instellingen in gebruik (geluiden, Niet storen, etc.)</string>
<string name="detail_settings_notifications_open_channels_summary">Niet storen (DND) negeren, geluiden, etc.</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy zal optreden als UnifiedPush-distributeur</string>
<string name="settings_advanced_unifiedpush_title">UnifiedPush inschakelen</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy treedt niet op als UnifiedPush-distributeur</string>
</resources>

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Minimalny priorytet</string>
<string name="channel_notifications_low_name">Niski priorytet</string>
<string name="channel_notifications_default_name">Domyślny priorytet</string>
<string name="channel_notifications_max_name">Maksymalny priorytet</string>
<string name="channel_notifications_min_name">Powiadomienia (minimalny priorytet)</string>
<string name="channel_notifications_low_name">Powiadomienia (niski priorytet)</string>
<string name="channel_notifications_default_name">Powiadomienia (domyślny priorytet)</string>
<string name="channel_notifications_max_name">Powiadomienia (maksymalny priorytet)</string>
<string name="channel_subscriber_notification_title">Oczekiwanie na przychodzące powiadomienia</string>
<string name="channel_subscriber_notification_instant_text">Subskrybujesz tematy z natychmiastowym dostarczaniem</string>
<string name="channel_notifications_high_name">Wysoki priorytet</string>
<string name="channel_notifications_high_name">Powiadomienia (wysoki priorytet)</string>
<string name="channel_subscriber_service_name">Usługa subskrypcji</string>
<string name="add_dialog_login_username_hint">Nazwa użytkownika</string>
<string name="detail_action_mode_delete_dialog_message">Usunąć wybrane powiadomienie(a) trwale\?</string>
@ -61,10 +61,10 @@
\n
\nHasła zostały usunięte, ale nie są tutaj wymienione.</string>
<string name="settings_advanced_record_logs_summary_disabled">Włącz rejestrowanie, aby móc później udostępnić logi w celu zdiagnozowania problemów.</string>
<string name="channel_subscriber_notification_instant_text_two">Zasubskrybowano do dwóch tematów z natychmiastową dostawą</string>
<string name="channel_subscriber_notification_instant_text_two">Zasubskrybowano do dwóch tematów z natychmiastowym dostarczaniem</string>
<string name="settings_advanced_export_logs_summary">Kopiuj logi do schowka, lub prześlij na nopaste.net (własność autora ntfy). Nazwy hostów i tematy mogą być cenzurowane, powiadomienia nigdy nie będą.</string>
<string name="channel_subscriber_notification_noinstant_text_six">Zasubskrybowano sześć tematów</string>
<string name="channel_subscriber_notification_instant_text_more">Zasubskrybowano do %1$d tematów z natychmiastową dostawą</string>
<string name="channel_subscriber_notification_instant_text_more">Zasubskrybowano do %1$d tematów z natychmiastowym dostarczaniem</string>
<string name="detail_settings_notifications_instant_summary_off">Powiadomienia są dostarczane za pomocą Firebase. Dostarczanie może być opóźnione, ale zużywa mniej baterii.</string>
<string name="channel_subscriber_notification_noinstant_text_five">Zasubskrybowano pięć tematów</string>
<string name="add_dialog_use_another_server_description">Wpisz poniżej adresy URL serwisów, aby subskrybować tematy z innych serwerów.</string>
@ -92,7 +92,7 @@
<string name="settings_backup_restore_header">Kopia zapasowa &amp; Przywracanie</string>
<string name="settings_backup_restore_backup_summary">Eksportuj konfigurację, powiadomienia i użytkowników</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Prześlij i kopiuj łącze (ocenzurowane)</string>
<string name="channel_subscriber_notification_noinstant_text">Zasubskrybowane tematy</string>
<string name="channel_subscriber_notification_noinstant_text">Subskrybowane tematy</string>
<string name="main_how_to_link">Szczegółowe instrukcje są dostępne w ntfy.sh, oraz w dokumentacji.</string>
<string name="main_banner_battery_text">Optymalizacja baterii powinna być wyłączona dla aplikacji, aby uniknąć problemów z dostarczaniem powiadomień.</string>
<string name="main_menu_rate_title">Oceń aplikację ⭐</string>
@ -169,7 +169,7 @@
<string name="settings_general_users_prefs_user_used_by_one">Używane przez temat %1$s</string>
<string name="settings_general_users_prefs_user_not_used">Nieużywane przez żadne tematy</string>
<string name="settings_advanced_clear_logs_title">Wyczyść logi</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockety</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="detail_settings_global_setting_suffix">przy użyciu ustawienia globalnego</string>
<string name="detail_settings_about_header">Informacje o</string>
<string name="detail_settings_about_topic_url_title">Adres URL tematu</string>
@ -186,9 +186,9 @@
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_menu_report_bug_title">Zgłoś błąd</string>
<string name="main_action_mode_menu_unsubscribe">Zrezygnuj z subskrypcji</string>
<string name="channel_subscriber_notification_instant_text_one">Zasubskrybowano jeden temat z natychmiastową dostawą</string>
<string name="channel_subscriber_notification_instant_text_three">Zasubskrybowano do trzech tematów z natychmiastową dostawą</string>
<string name="channel_subscriber_notification_instant_text_four">Zasubskrybowano do czterech tematów z natychmiastową dostawą</string>
<string name="channel_subscriber_notification_instant_text_one">Zasubskrybowano do jednego tematu z natychmiastowym dostarczaniem</string>
<string name="channel_subscriber_notification_instant_text_three">Zasubskrybowano do trzech tematów z natychmiastowym dostarczaniem</string>
<string name="channel_subscriber_notification_instant_text_four">Zasubskrybowano do czterech tematów z natychmiastowym dostarczaniem</string>
<string name="refresh_message_result">Otrzymano %1$d powiadomień</string>
<string name="main_item_status_text_one">%1$d powiadomienie</string>
<string name="main_unified_push_toast">Ta subskrypcja jest zarządzana przez %1$s poprzez UnifiedPush</string>
@ -279,7 +279,7 @@
<string name="settings_general_default_base_url_default_summary">%1$s (domyślny)</string>
<string name="settings_general_users_title">Zarządzaj użytkownikami</string>
<string name="settings_general_users_summary">Dodaj/usuń użytkowników dla tematów chronionych</string>
<string name="settings_general_users_prefs_user_used_by_many">Używane przez tematy %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Używane przez tematy %1$s%1$s</string>
<string name="settings_general_users_prefs_user_add">Dodaj użytkowników</string>
<string name="settings_general_users_prefs_user_add_title">Dodaj nowego użytkownika</string>
<string name="settings_general_users_prefs_user_add_summary">Stwórz nowego użytkownika dla nowego serwera</string>
@ -327,20 +327,4 @@
<string name="main_banner_websocket_button_dismiss">Odrzuć</string>
<string name="main_banner_websocket_button_enable_now">Aktywuj teraz</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Użyj strumienia JSON przez HTTP, aby połączyć się z serwerem. Ta metoda jest sprawdzona, ale może zużywać więcej baterii.</string>
<string name="main_menu_donate_title">Wspomóż💸</string>
<string name="detail_item_cannot_open_apk">Aplikacja nie może zostać zainstalowana. Pobierz ją poprzez przeglądarkę. Sprawdź problem #531 po więcej informacji.</string>
<string name="settings_notifications_insistent_max_priority_title">Nadal wysyłaj powiadomienia dla najwyższych priorytetów</string>
<string name="detail_settings_notifications_dedicated_channels_title">Własne ustawienia powiadomień</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Używa własnych ustawień dla tej subskrypcji</string>
<string name="detail_settings_notifications_open_channels_title">Skonfiguruj ustawienia powiadomień</string>
<string name="detail_settings_notifications_open_channels_summary">Nadpisanie trybu nie przeszkadzać, dźwięki, itp.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Cały czas alarmuj</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Wyślij alarm tylko raz</string>
<string name="channel_notifications_group_default_name">Domyślne</string>
<string name="settings_advanced_unifiedpush_title">Załącz</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Powiadomienia o najwyższym priorytecie wysyłają alarm do czasu ich potwierdzenia</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Powiadomienia o najwyższym priorytecie wysyłają powiadomienie tylko raz</string>
<string name="settings_advanced_unifiedpush_summary_enabled">Ntfy będzie działać jako dystrybutor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">Ntfy nie będzie dystrybutorem UnifiedPush</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Używa domyślnych ustawień (dźwięki, nadpisanie trybu nie przeszkadzać, itp.)</string>
</resources>

View file

@ -4,8 +4,8 @@
<string name="detail_menu_test">Enviar notificação de teste</string>
<string name="detail_menu_copy_url">Copiar endereço do tema</string>
<string name="notification_dialog_show_all">Mostrar todas notificações</string>
<string name="channel_subscriber_notification_instant_text_three">Inscrito em três tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_four">Inscrito em quatro tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_three">Inscrito em três temas de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_four">Inscrito em quatro temas de entrega instantânea</string>
<string name="channel_notifications_default_name">Notificações (prioridade padrão)</string>
<string name="channel_notifications_min_name">Notificações (prioridade mínima)</string>
<string name="main_menu_notifications_enabled">Notificações ativadas</string>
@ -19,14 +19,14 @@
<string name="channel_subscriber_service_name">Serviço de Assinatura</string>
<string name="channel_subscriber_notification_title">Aguardando notificações</string>
<string name="channel_subscriber_notification_instant_text">Inscrito em temas de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_one">Inscrito em um tópico de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_more">Inscrito em %1$d tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_one">Inscrito em um tema de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_more">Inscrito em %1$d temas de entrega instantânea</string>
<string name="channel_subscriber_notification_noinstant_text_two">Inscrito em dois tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_four">Inscrito em quatro tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_more">Inscrito em %1$d tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_four">Inscrito em quatro temas</string>
<string name="channel_subscriber_notification_noinstant_text_more">Inscrito em %1$d temas</string>
<string name="refresh_message_result">%1$d notificação(ões) recebida(s)</string>
<string name="refresh_message_no_results">Tudo está atualizado</string>
<string name="refresh_message_error">Não foi possível atualizar %1$d subscrições
<string name="refresh_message_error">Não foi possível atualizar %1$d inscrições
\n
\n%2$s</string>
<string name="main_action_bar_title">Temas inscritos</string>
@ -36,18 +36,18 @@
<string name="main_action_mode_delete_dialog_permanently_delete">Remover permanentemente</string>
<string name="main_action_mode_delete_dialog_cancel">Cancelar</string>
<string name="main_item_date_yesterday">ontem</string>
<string name="main_add_button_description">Adicionar Subscrição</string>
<string name="main_add_button_description">Inscrever-se</string>
<string name="main_no_subscriptions_text">Parece que você não tem nenhuma inscrição ainda.</string>
<string name="main_how_to_link">Instruções detalhadas disponíveis em ntfy.sh, e na documentação.</string>
<string name="main_banner_battery_text">O modo Economia de Energia deve estar desligado para evitar problemas de entrega de notificação no aplicativo.</string>
<string name="main_item_status_unified_push">%1$s(UnifiedPush)</string>
<string name="main_banner_websocket_button_remind_later">Perguntar depois</string>
<string name="main_banner_websocket_button_dismiss">Dispensar</string>
<string name="add_dialog_title">Inscrever-se no tópico</string>
<string name="add_dialog_description_below">Os tópicos podem não ser protegidos por senha, escolha um nome difícil de adivinhar. Uma vez inscrito, você pode usar as notificações PUT/POST.</string>
<string name="add_dialog_topic_name_hint">Nome do tópico, ex: alertas_jose</string>
<string name="add_dialog_title">Inscrever-se no tema</string>
<string name="add_dialog_description_below">Temas podem não ser protegidos por senha, escolha um nome difícil de adivinhar. Uma vez inscrito, você pode usar as notificações PUT/POST.</string>
<string name="add_dialog_topic_name_hint">Nome do tema, ex: alertas_jose</string>
<string name="add_dialog_use_another_server">Usar outro servidor</string>
<string name="add_dialog_use_another_server_description">Insira as URLs do servidor abaixo para inscrever-se nos tópicos de outros servidores.</string>
<string name="add_dialog_use_another_server_description">Insira as URLs do servidor abaixo para inscrever-se nos temas de outros servidores.</string>
<string name="add_dialog_foreground_description">Entrega instantânea está sempre ligada para hosts, exceto %1$s.</string>
<string name="add_dialog_button_back">Voltar</string>
<string name="add_dialog_error_connection_failed">Conexão falhou: %1$s</string>
@ -55,9 +55,9 @@
<string name="add_dialog_login_username_hint">Nome de usuário</string>
<string name="add_dialog_login_error_not_authorized">Login falhou. Usuário %1$s não autorizado.</string>
<string name="add_dialog_login_new_user">Novo usuário</string>
<string name="detail_no_notifications_text">Você não recebeu nenhuma notificação desse tópico ainda.</string>
<string name="detail_no_notifications_text">Você não recebeu nenhuma notificação desse tema ainda.</string>
<string name="detail_how_to_example">Exemplo (usando curl): <br/><tt>$ curl -d \"Oi\" %1$s</tt></string>
<string name="detail_clear_dialog_message">Apagar todas as notificações desse tópico\?</string>
<string name="detail_clear_dialog_message">Apagar todas as notificações desse tema\?</string>
<string name="detail_clear_dialog_permanently_delete">Apagar permanentemente</string>
<string name="detail_delete_dialog_message">Cancelar inscrição desse tema e apagar todas as notificações recebidas\?</string>
<string name="detail_delete_dialog_cancel">Cancelar</string>
@ -199,7 +199,7 @@
<string name="user_dialog_button_cancel">Cancelar</string>
<string name="user_dialog_button_delete">Apagar usuário</string>
<string name="channel_notifications_low_name">Notificações (prioridade baixa)</string>
<string name="channel_subscriber_notification_instant_text_two">Inscrito em dois tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_two">Inscrito em dois temas de entrega instantânea</string>
<string name="user_dialog_button_save">Salvar</string>
<string name="main_item_status_text_one">%1$d notificação</string>
<string name="channel_subscriber_notification_noinstant_text_one">Inscrito em um tópico</string>
@ -214,14 +214,14 @@
<string name="main_banner_battery_button_dismiss">Dispensar</string>
<string name="add_dialog_button_subscribe">Inscrever-se</string>
<string name="main_banner_battery_button_fix_now">Consertar agora</string>
<string name="add_dialog_instant_delivery">Entrega instantânea em modo descanso</string>
<string name="add_dialog_instant_delivery">Entrega instantânea em modo soneca</string>
<string name="add_dialog_button_cancel">Cancelar</string>
<string name="add_dialog_instant_delivery_description">Garante que as mensagens são entregues imediatamente, mesmo se o dispositivo estiver inativo.</string>
<string name="add_dialog_button_login">Entrar</string>
<string name="add_dialog_login_password_hint">Senha</string>
<string name="add_dialog_login_description">Este tópico requer login. Insira um nome de usuário e senha.</string>
<string name="add_dialog_login_description">Esse tema requer login. Insira um nome de usuário e senha.</string>
<string name="detail_item_snack_deleted">Notificação removida</string>
<string name="detail_how_to_intro">Para enviar notificações para esse tópico, basta usar os métodos PUT ou POST na URL do tema.</string>
<string name="detail_how_to_intro">Para enviar notificações para esse tema, basta usar os métodos PUT ou POST na URL do tema.</string>
<string name="detail_how_to_link">Instruções detalhadas disponíveis em ntfy.sh e na documentação.</string>
<string name="detail_clear_dialog_cancel">Cancelar</string>
<string name="detail_delete_dialog_permanently_delete">Apagar permanentemente</string>
@ -327,20 +327,4 @@
<string name="add_dialog_base_urls_dropdown_choose">Escolha o URL do serviço</string>
<string name="add_dialog_base_urls_dropdown_clear">Limpar o URL do serviço</string>
<string name="main_banner_websocket_button_enable_now">Habilitar agora</string>
<string name="channel_notifications_group_default_name">Padrão</string>
<string name="main_menu_donate_title">Doar 💸</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Notificações de prioridade máxima alertam apenas uma vez</string>
<string name="detail_settings_notifications_open_channels_title">Definir configurações de notificação</string>
<string name="detail_settings_notifications_open_channels_summary">Sobrepor Não Perturbe (DND), sons, etc.</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy não atuará como distribuidor UnifiedPush</string>
<string name="detail_settings_notifications_dedicated_channels_title">Configurações de notificação personalizadas</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alertar apenas uma vez</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Usando configurações personalizadas para esta assinatura</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Usando configurações padrão (sons, substituição de Não perturbe, etc.)</string>
<string name="detail_item_cannot_open_apk">Apps não podem mais ser instalados, baixe pelo navegador. Veja a issue #531 para detalhes.</string>
<string name="settings_notifications_insistent_max_priority_title">Continue alertando para a prioridade mais alta</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Notificações de prioridade máxima alertam continuamente até serem dispensadas</string>
<string name="settings_advanced_unifiedpush_title">Habilitar UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy vai agir como um distribuidor UnifiedPush</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Continuar alertando</string>
</resources>

View file

@ -1,121 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_subscriber_notification_instant_text_three">Três tópicos de entrega instantânea subscritos</string>
<string name="channel_subscriber_notification_instant_text_four">Quatro tópicos de entrega instantânea subscritos</string>
<string name="channel_subscriber_notification_instant_text_five">Cinco tópicos de entrega instantânea subscritos</string>
<string name="channel_subscriber_notification_instant_text_six">Seis tópicos de entrega instantânea subscritos</string>
<string name="channel_subscriber_notification_instant_text_more">%1$d tópico(s) de entrega instantânea subscrito(s)</string>
<string name="channel_subscriber_notification_noinstant_text">Tópicos subscritos</string>
<string name="channel_subscriber_notification_noinstant_text_one">Um tópico subscrito</string>
<string name="channel_subscriber_notification_noinstant_text_two">Dois tópicos subscritos</string>
<string name="channel_subscriber_notification_noinstant_text_three">Três tópicos subscritos</string>
<string name="channel_subscriber_notification_noinstant_text_six">Seis tópicos subscritos</string>
<string name="channel_subscriber_notification_noinstant_text_more">%1$d tópico(s) subscrito(s)</string>
<string name="channel_subscriber_notification_instant_text_three">Inscrito em três tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_four">Inscrito em quatro tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_five">Inscrito em cinco tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_six">Inscrito em seis tópicos de entrega instantânea</string>
<string name="channel_subscriber_notification_instant_text_more">Inscrito em %1$d tópico(s) de entrega instantânea</string>
<string name="channel_subscriber_notification_noinstant_text">Inscrito em tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_one">Inscrito em um tópico</string>
<string name="channel_subscriber_notification_noinstant_text_two">Inscrito em dois tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_three">Inscrito em três tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_six">Inscrito em seis tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_more">Inscrito em %1$d tópico(s)</string>
<string name="refresh_message_result">%1$d notificação(ões) recebida(s)</string>
<string name="refresh_message_no_results">Está tudo atualizado</string>
<string name="refresh_message_error">Não foi possível atualizar %1$d subscrição(ões)
<string name="refresh_message_no_results">Tudo está atualizado</string>
<string name="refresh_message_error">Não foi possível atualizar %1$d inscrição(ões)
\n
\n%2$s</string>
<string name="refresh_message_error_one">Não foi possível atualizar a subscrição: %1$s</string>
<string name="main_action_bar_title">Tópicos subscritos</string>
<string name="main_menu_notifications_enabled">Notificações ativadas</string>
<string name="refresh_message_error_one">Não foi possível atualizar a inscrição: %1$s</string>
<string name="main_action_bar_title">Tópicos inscritos</string>
<string name="main_menu_notifications_enabled">Notificações ligadas</string>
<string name="main_menu_notifications_disabled_forever">Notificações silenciadas</string>
<string name="channel_notifications_min_name">Prioridade mínima</string>
<string name="channel_notifications_low_name">Prioridade baixa</string>
<string name="channel_subscriber_service_name">Serviço de subscrição</string>
<string name="channel_subscriber_notification_title">À escuta de novas notificações</string>
<string name="channel_subscriber_notification_instant_text">Tópicos de entrega instantânea subscritos</string>
<string name="channel_notifications_min_name">Notificações (prioridade mínima)</string>
<string name="channel_notifications_low_name">Notificações (baixa prioridade)</string>
<string name="channel_subscriber_service_name">Serviço de Assinatura</string>
<string name="channel_subscriber_notification_title">Escutando recebimento de notificações</string>
<string name="channel_subscriber_notification_instant_text">Inscrito em tópicos de entrega instantânea</string>
<string name="main_menu_notifications_disabled_until">Notificações silenciadas até %1$s</string>
<string name="main_menu_settings_title">Configurações</string>
<string name="main_menu_report_bug_title">Reportar um problema</string>
<string name="main_menu_docs_title">Ler a documentação</string>
<string name="main_menu_rate_title">Avaliar a aplicação </string>
<string name="main_action_mode_menu_unsubscribe">Cancelar subscrição</string>
<string name="main_action_mode_delete_dialog_message">Cancelar a subscrição do(s) tópico(s) selecionado(s) e eliminar permanentemente todas as notificações\?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="main_menu_docs_title">Leia os documentos</string>
<string name="main_menu_rate_title">Avalie o aplicativo</string>
<string name="main_action_mode_menu_unsubscribe">Cancelar inscrição</string>
<string name="main_action_mode_delete_dialog_message">Cancelar a inscrição do(s) tópico(s) selecionado(s) e excluir permanentemente todas as notificações\?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Excluir permanentemente</string>
<string name="main_action_mode_delete_dialog_cancel">Cancelar</string>
<string name="main_item_status_text_one">%1$d notificação</string>
<string name="main_item_status_text_not_one">%1$d notificações</string>
<string name="main_item_status_reconnecting">A restabelecer ligação </string>
<string name="main_item_status_reconnecting">reconectando</string>
<string name="main_item_date_yesterday">ontem</string>
<string name="main_add_button_description">Adicionar subscrição</string>
<string name="main_no_subscriptions_text">Parece que ainda não tem subscrições.</string>
<string name="main_how_to_link">Instruções detalhadas disponíveis em ntfy.sh, e na documentação.</string>
<string name="main_unified_push_toast">Esta subscrição é controlada por %1$s via UnifiedPush</string>
<string name="main_banner_battery_text">A otimização de bateria deve estar desativada para a aplicação, de modo a evitar problemas na receção de notificações.</string>
<string name="main_add_button_description">Adicionar inscrição</string>
<string name="main_no_subscriptions_text">Parece que você não possui inscrições ainda.</string>
<string name="main_how_to_link">Instruções detalhadas disponíveis em ntfy.sh, e nos documentos.</string>
<string name="main_unified_push_toast">Esta inscrição é controlada por %1$s via UnifiedPush</string>
<string name="main_banner_battery_text">Economia de Energia deve estar desligada para que o aplicativo evite problemas no envio de notificações.</string>
<string name="main_banner_battery_button_remind_later">Perguntar depois</string>
<string name="main_banner_battery_button_dismiss">Dispensar</string>
<string name="main_banner_battery_button_fix_now">Corrigir agora</string>
<string name="main_banner_websocket_button_remind_later">Perguntar depois</string>
<string name="add_dialog_title">Subscrever tópico</string>
<string name="add_dialog_topic_name_hint">Nome do tópico, por exemplo: \"alertas_do_filipe\"</string>
<string name="channel_subscriber_notification_noinstant_text_four">Quatro tópicos subscritos</string>
<string name="channel_subscriber_notification_noinstant_text_five">Cinco tópicos subscritos</string>
<string name="main_how_to_intro">Clique no + para subscrever um tópico. Depois, receberá notificações no seu dispositivo quando enviar mensagens via PUT ou POST.</string>
<string name="channel_notifications_max_name">Prioridade máxima</string>
<string name="main_banner_websocket_text">Trocar para WebSockets é a forma recomendada de se ligar ao seu servidor, podendo melhorar a duração da bateria, mas pode necessitar <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configurações adicionais no seu \"proxy\"</a>. Isto pode ser alterado nas Configurações.</string>
<string name="add_dialog_title">Inscrever-se para o tópico</string>
<string name="add_dialog_topic_name_hint">Nome do tópico, ex: alertas_do_jose</string>
<string name="channel_subscriber_notification_noinstant_text_four">Inscrito em quatro tópicos</string>
<string name="channel_subscriber_notification_noinstant_text_five">Inscrito em cinco tópicos</string>
<string name="main_how_to_intro">Clique em + para criar uma inscrição em um tópico. Em seguida você receberá notificações no seu dispositivo quando enviar mensagens via PUT ou POST.</string>
<string name="channel_notifications_max_name">Notificações (prioridade máxima)</string>
<string name="main_banner_websocket_text">Alternar para WebSockets é o jeito recomendado de conectar no seu servidor, podendo melhorar a vida da bateria, mas requer <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configurações adicionais no seu proxy</a>. Isto pode ser alterado nas Configurações.</string>
<string name="main_banner_websocket_button_dismiss">Dispensar</string>
<string name="channel_notifications_default_name">Prioridade padrão</string>
<string name="channel_notifications_high_name">Prioridade alta</string>
<string name="channel_subscriber_notification_instant_text_one">Um tópico de entrega instantânea subscrito</string>
<string name="main_banner_websocket_button_enable_now">Ativar agora</string>
<string name="channel_subscriber_notification_instant_text_two">Dois tópicos de entrega instantânea subscritos</string>
<string name="add_dialog_description_below">Tópicos podem não ser protegidos por palavra-passe, portanto escolha um nome que seja difícil de adivinhar. Uma vez inscrito, pode enviar notificações PUT/POST.</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="add_dialog_use_another_server">Utilizar outro servidor</string>
<string name="add_dialog_button_login">Entrar</string>
<string name="add_dialog_login_title">Autenticação necessária</string>
<string name="detail_clear_dialog_message">Deseja eliminar todas as notificações nesse tópico\?</string>
<string name="detail_clear_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="detail_delete_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="channel_notifications_default_name">Notificações (prioridade padrão)</string>
<string name="channel_notifications_high_name">Notificações (alta prioridade)</string>
<string name="channel_subscriber_notification_instant_text_one">Inscrito em um tópico de entrega instantânea</string>
<string name="main_banner_websocket_button_enable_now">Habilitar agora</string>
<string name="channel_subscriber_notification_instant_text_two">Inscrito em dois tópicos de entrega instantânea</string>
<string name="add_dialog_description_below">Tópicos podem não ser protegidos por senha, portanto escolha um nome que seja difícil de adivinhar. Uma vez inscrito, você pode enviar notificações PUT/POST.</string>
<string name="main_item_status_unified_push">%1$s (Push Unificado)</string>
<string name="add_dialog_use_another_server">Utilize outro servidor</string>
<string name="add_dialog_button_login">Log in</string>
<string name="add_dialog_login_title">É necesário fazer login</string>
<string name="detail_clear_dialog_message">Deseja deletar todas as notificações nesse tópico\?</string>
<string name="detail_clear_dialog_permanently_delete">Deletar permanentemente</string>
<string name="detail_delete_dialog_permanently_delete">Deletar permanentemente</string>
<string name="detail_delete_dialog_cancel">Cancelar</string>
<string name="detail_test_title">Teste: Pode definir um título se quiser.</string>
<string name="detail_test_title">Teste: Você pode definir um título se quiser.</string>
<string name="detail_test_message_error">Não foi possível enviar a mensagem: %1$s</string>
<string name="detail_test_message_error_unauthorized_anon">Não foi possível enviar a mensagem: Publicações anónimas não são permitidas.</string>
<string name="detail_test_message_error_unauthorized_anon">Não foi possível enviar a mensagem: Publicações anônimas não são permitidas.</string>
<string name="detail_copied_to_clipboard_message">Copiado para a área de transferência</string>
<string name="detail_deep_link_subscribed_toast_message">Tópico \"%1$s\" subscrito</string>
<string name="detail_item_tags">Etiquetas: %1$s</string>
<string name="detail_item_snack_deleted">Notificação eliminada</string>
<string name="detail_deep_link_subscribed_toast_message">Inscrito no tópico %1$s</string>
<string name="detail_item_tags">Tags: %1$s</string>
<string name="detail_item_snack_deleted">Notificação deletada</string>
<string name="detail_item_snack_undo">Desfazer</string>
<string name="detail_item_menu_download">Descarregar ficheiro</string>
<string name="detail_item_menu_cancel">Cancelar a descarga</string>
<string name="detail_item_menu_download">Fazer download do arquivo</string>
<string name="detail_item_menu_cancel">Cancelar o download</string>
<string name="detail_item_cannot_open">Não foi possível abrir o anexo: %1$s</string>
<string name="detail_item_cannot_open_not_found">Não foi possível abrir o anexo: O ficheiro pode ter sido eliminado, ou não existe nenhuma aplicação instalada que o consiga abrir.</string>
<string name="detail_item_cannot_open_url">Não foi possível abrir o URL: %1$s</string>
<string name="detail_item_cannot_save">Não foi possível guardar o anexo: %1$s</string>
<string name="detail_item_cannot_delete">Não foi possível eliminar o anexo: %1$s</string>
<string name="detail_item_download_failed">Não foi possível descarregar o anexo: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expires_x">não foi decarregado, expira em %1$s</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% decarregado</string>
<string name="detail_item_download_info_deleted">eliminado</string>
<string name="detail_item_download_info_deleted_expired">eliminado, a ligação expirou</string>
<string name="detail_item_download_info_deleted_expires_x">eliminado, a ligação expira em %1$s</string>
<string name="detail_item_download_info_download_failed">falha ao descarregar</string>
<string name="detail_item_download_info_download_failed_expired">falha ao descarregar, a ligação expirou</string>
<string name="detail_item_download_info_download_failed_expires_x">falha ao descarregar, a ligação expira em %1$s</string>
<string name="detail_menu_notifications_enabled">Notificações atvadas</string>
<string name="detail_item_cannot_open_not_found">Não foi possível abrir o anexo: O arquivo pode ter sido deletado, ou não existe app instalado que consiga abrir o arquivo.</string>
<string name="detail_item_cannot_open_url">Não foi possível abrir a URL: %1$s</string>
<string name="detail_item_cannot_save">Não foi possível salvar o anexo: %1$s</string>
<string name="detail_item_cannot_delete">Não foi possível deletar o anexo: %1$s</string>
<string name="detail_item_download_failed">Não foi possível baixar o anexo: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expires_x">não foi baixado, expira em %1$s</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% baixado</string>
<string name="detail_item_download_info_deleted">apagado</string>
<string name="detail_item_download_info_deleted_expired">apagado, link expirou</string>
<string name="detail_item_download_info_deleted_expires_x">apagado, link expira em %1$s</string>
<string name="detail_item_download_info_download_failed">download falhou</string>
<string name="detail_item_download_info_download_failed_expired">download falhou, link expirou</string>
<string name="detail_item_download_info_download_failed_expires_x">download falhou, link expira em %1$s</string>
<string name="detail_menu_notifications_enabled">Notificações ligadas</string>
<string name="detail_menu_notifications_disabled_forever">Notificações silenciadas</string>
<string name="detail_menu_enable_instant">Ativar a entrega instantânea</string>
<string name="detail_menu_disable_instant">Desativar a entrega instantânea</string>
<string name="detail_menu_enable_instant">Ligar a entrega instantânea</string>
<string name="detail_menu_disable_instant">Desligar a entrega instantânea</string>
<string name="detail_menu_test">Enviar uma notificação de teste</string>
<string name="detail_menu_copy_url">Copiar o endereço do tópico</string>
<string name="detail_menu_clear">Limpar todas as notificações</string>
<string name="detail_menu_settings">Configurações das subscrições</string>
<string name="detail_menu_unsubscribe">Anular subscrição</string>
<string name="detail_action_mode_menu_delete">Eliminar</string>
<string name="detail_action_mode_delete_dialog_message">Deseja eliminar permanentemente a(s) notificação(ões) selecionada(s)\?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Eliminar permanentemente</string>
<string name="detail_menu_settings">Configurações das inscrições</string>
<string name="detail_menu_unsubscribe">Desinscrever</string>
<string name="detail_action_mode_menu_delete">Apagar</string>
<string name="detail_action_mode_delete_dialog_message">Deseja apagar a(s) notificação(ões) selecionada(s) permanentemente\?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Apagar permanentemente</string>
<string name="detail_action_mode_delete_dialog_cancel">Cancelar</string>
<string name="detail_settings_title">Configurações das subscrições</string>
<string name="share_title">Partilhar</string>
<string name="share_menu_send">Partilhar</string>
<string name="share_content_title">Pré-visualização da mensagem</string>
<string name="share_content_image_text">Uma imagem foi partilhada consigo</string>
<string name="share_topic_title">Partilhar para</string>
<string name="detail_settings_title">Configurações das inscrições</string>
<string name="share_title">Compartilhar</string>
<string name="share_menu_send">Compartilhar</string>
<string name="share_content_title">Prévia da mensagem</string>
<string name="share_content_image_text">Uma imagem foi compartilhada com você</string>
<string name="share_topic_title">Compartilhar para</string>
<string name="share_suggested_topics">Tópicos sugeridos</string>
<string name="share_successful">Mensagem publicada</string>
<string name="notification_dialog_cancel">Cancelar</string>
<string name="notification_dialog_save">Guardar</string>
<string name="notification_dialog_save">Salvar</string>
<string name="notification_dialog_enabled_toast_message">Notificações retomadas</string>
<string name="notification_dialog_muted_until_toast_message">Notificações silenciadas até %1$s</string>
<string name="notification_dialog_show_all">Mostrar todas as notificações</string>
@ -124,220 +124,138 @@
<string name="notification_dialog_tomorrow">Até amanhã</string>
<string name="notification_dialog_forever">Até serem retomadas</string>
<string name="notification_popup_action_browse">Navegar</string>
<string name="notification_popup_action_download">Descarregar</string>
<string name="notification_popup_action_download">Baixar</string>
<string name="notification_popup_action_cancel">Cancelar</string>
<string name="notification_popup_file">%1$s
\nFicheiro: %2$s</string>
<string name="notification_popup_file_downloading">A descarregar %1$s, %2$d%%
\nArquivo: %2$s</string>
<string name="notification_popup_file_downloading">Baixando %1$s, %2$d%%
\n%3$s</string>
<string name="notification_popup_file_download_successful">%1$s
\nFicheiro: %2$s, descarregado</string>
\nArquivo: %2$s, baixado</string>
<string name="notification_popup_file_download_failed">%1$s
\nFicheiro: %2$s, falha ao descarregar</string>
\nArquivo: %2$s, download falhou</string>
<string name="notification_popup_user_action_failed">%1$s falhou: %2$s</string>
<string name="settings_title">Configurações</string>
<string name="settings_notifications_header">Notificações</string>
<string name="settings_notifications_muted_until_title">Silenciar as notificações</string>
<string name="settings_notifications_muted_until_show_all">A mostrar todas as notificações</string>
<string name="settings_notifications_muted_until_show_all">Mostrando todas as notificações</string>
<string name="settings_notifications_muted_until_forever">Notificações silenciadas até serem retomadas</string>
<string name="settings_notifications_muted_until_x">Notificações silenciadas até %1$s</string>
<string name="settings_notifications_min_priority_title">Prioridade mínima</string>
<string name="settings_notifications_min_priority_summary_any">A mostrar todas as notificações</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Mostrar notificações se a prioridade for %1$d (%2$s) ou superior</string>
<string name="settings_notifications_min_priority_summary_max">Mostrar notificações se a prioridade for 5 (máxima)</string>
<string name="settings_notifications_min_priority_summary_any">Mostrando todas as notificações</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Mostrar as notificações se a prioridade é %1$d (%2$s) ou superior</string>
<string name="settings_notifications_min_priority_summary_max">Mostrar as notificações se a prioridade for 5 (máxima)P</string>
<string name="settings_notifications_min_priority_min">Qualquer prioridade</string>
<string name="settings_notifications_min_priority_low">Prioridade baixa ou superior</string>
<string name="settings_notifications_min_priority_default">Prioridade padrão ou superior</string>
<string name="settings_notifications_min_priority_high">Prioridade alta ou superior</string>
<string name="settings_notifications_min_priority_max">Apenas prioridade máxima</string>
<string name="settings_notifications_min_priority_low">Prioridade baixa e superior</string>
<string name="settings_notifications_min_priority_default">Prioridade pradão ou superior</string>
<string name="settings_notifications_min_priority_high">Altra prioridade ou superior</string>
<string name="settings_notifications_min_priority_max">Apenas a prioridade máxima</string>
<string name="settings_notifications_priority_min">mínima</string>
<string name="settings_notifications_priority_low">baixa</string>
<string name="settings_notifications_priority_default">padrão</string>
<string name="settings_notifications_priority_high">alta</string>
<string name="settings_notifications_priority_max">máxima</string>
<string name="settings_notifications_channel_prefs_title">Configurações de canal</string>
<string name="settings_notifications_channel_prefs_summary">Sobrescrever modo \"Não incomodar\" (NI), sons, etc.</string>
<string name="settings_notifications_auto_download_title">Descarregar os anexos</string>
<string name="settings_notifications_auto_download_summary_always">Descarregar todos os anexos automaticamente</string>
<string name="settings_notifications_auto_download_summary_never">Nunca descarregar todos os anexos automaticamente</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Descarregar os anexos automaticamente até %1$s</string>
<string name="settings_notifications_auto_download_never">Nunca descarregar nada automaticamente</string>
<string name="settings_notifications_auto_download_always">Descarregar tudo automaticamente</string>
<string name="settings_notifications_channel_prefs_title">Configuraçoes do canal</string>
<string name="settings_notifications_channel_prefs_summary">Sobrescrever modo Não Perturbe (NP), sons, etc.</string>
<string name="settings_notifications_auto_download_title">Baixar os anexos</string>
<string name="settings_notifications_auto_download_summary_always">Baixar todos os anexos automaticamente</string>
<string name="settings_notifications_auto_download_summary_never">Nunca baixar todos os anexos automaticamente</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Baixar os anexos automaticamente até %1$s</string>
<string name="settings_notifications_auto_download_never">Nunca baixar nada automaticamente</string>
<string name="settings_notifications_auto_download_always">Baixar tudo automaticamente</string>
<string name="settings_notifications_auto_download_100k">Se abaixo de 100kB</string>
<string name="settings_notifications_auto_download_500k">Se abaixo de 500 kB</string>
<string name="settings_notifications_auto_download_1m">Se abaixo de 1 MB</string>
<string name="settings_notifications_auto_delete_title">Elminar as notificações</string>
<string name="settings_notifications_auto_delete_summary_never">Nunca eliminar as notificações automaticamente</string>
<string name="settings_notifications_auto_delete_summary_one_day">Elminar as notificações automaticamente após um dia</string>
<string name="settings_notifications_auto_delete_summary_three_days">Eliminar as notificações automaticamente após 3 dias</string>
<string name="settings_notifications_auto_delete_summary_one_week">Eliminar as notificações automaticamente após uma semana</string>
<string name="settings_notifications_auto_delete_summary_one_month">Eliminar as notificações automaticamente após um mês</string>
<string name="settings_notifications_auto_delete_summary_three_months">Eliminar as notificações automaticamente após 3 meses</string>
<string name="settings_notifications_auto_delete_title">Apagar as notificações</string>
<string name="settings_notifications_auto_delete_summary_never">Nunca apagar as notificações automaticamente</string>
<string name="settings_notifications_auto_delete_summary_one_day">Apagar as notificações automaticamente depois de um dia</string>
<string name="settings_notifications_auto_delete_summary_three_days">Apagar as notificações automaticamente depois de 3 dias</string>
<string name="settings_notifications_auto_delete_summary_one_week">Apagar as notificações automaticamente depois de uma semana</string>
<string name="settings_notifications_auto_delete_summary_one_month">Apagar as notificações automaticamente depois de um mês</string>
<string name="settings_notifications_auto_delete_summary_three_months">Apagar as notificações automaticamente depois de 3 meses</string>
<string name="settings_notifications_auto_delete_never">Nunca</string>
<string name="settings_notifications_auto_delete_one_day">Após um dia</string>
<string name="settings_notifications_auto_delete_three_days">Após 3 dias</string>
<string name="settings_notifications_auto_delete_one_week">Após uma semana</string>
<string name="settings_notifications_auto_delete_one_month">Após um mês</string>
<string name="settings_notifications_auto_delete_three_months">Após 3 meses</string>
<string name="settings_notifications_auto_delete_one_day">Depois de um dia</string>
<string name="settings_notifications_auto_delete_three_days">Depois de 3 dias</string>
<string name="settings_notifications_auto_delete_one_week">Depois de uma semana</string>
<string name="settings_notifications_auto_delete_one_month">Depois de um mês</string>
<string name="settings_notifications_auto_delete_three_months">Depois de 3 meses</string>
<string name="settings_general_header">Geral</string>
<string name="settings_general_default_base_url_title">Servidor padrão</string>
<string name="settings_general_default_base_url_message">Insira o URL raíz do servidor para utilizar seu próprio como padrão ao subscrever novos tópicos e/ou partilhar em tópicos.</string>
<string name="settings_general_default_base_url_message">Insira a URL raíz do servidor para utilizar seu próprio servidor como padrão ao se inscrever em novos tópicos e/ou compartilhar para tópicos.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (padrão)</string>
<string name="settings_general_users_title">Gerir utilizadores</string>
<string name="settings_general_users_summary">Adicionar/remover utilizadores em tópicos protegidos</string>
<string name="settings_general_users_prefs_title">Utilizadores</string>
<string name="settings_general_users_title">Gerenciar usuários</string>
<string name="settings_general_users_summary">Adicionar/remover usuários em tópicos protegidos</string>
<string name="settings_general_users_prefs_title">Usuários</string>
<string name="settings_general_users_prefs_user_not_used">Não utilizado por nenhum tópico</string>
<string name="settings_general_users_prefs_user_used_by_one">Utilizado pelo tópico %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Utilizado pelos tópicos %1$s</string>
<string name="settings_general_users_prefs_user_add">Adicionar utilizadores</string>
<string name="settings_general_users_prefs_user_add_title">Adicionar novo utilizador</string>
<string name="settings_general_users_prefs_user_add_summary">Crie um novo utilizador para um novo servidor</string>
<string name="settings_general_dark_mode_summary_dark">Modo escuro ligado. Por acaso é um vampiro\?</string>
<string name="settings_general_dark_mode_entry_system">Usar a predefinição do sistema</string>
<string name="settings_general_users_prefs_user_add">Adicionar usuários</string>
<string name="settings_general_users_prefs_user_add_title">Adicionar novo usuário</string>
<string name="settings_general_users_prefs_user_add_summary">Crie um novo usuário para um novo servidor</string>
<string name="settings_general_dark_mode_summary_dark">Modo escuro ligado. Você por acaso é um vampiro\?</string>
<string name="settings_general_dark_mode_entry_system">Usar o padrão do sistema</string>
<string name="settings_general_dark_mode_entry_light">Modo claro</string>
<string name="settings_general_dark_mode_entry_dark">Modo escuro</string>
<string name="settings_backup_restore_header">Cópias de segurança e restauro</string>
<string name="settings_backup_restore_backup_title">Fazer cópia de segurança para um ficheiro</string>
<string name="settings_backup_restore_backup_summary">Exportar as configurações, notificações e utilizadores</string>
<string name="settings_backup_restore_header">Fazer backup e Restaurar</string>
<string name="settings_backup_restore_backup_title">Fazer backup para um arquivo</string>
<string name="settings_backup_restore_backup_summary">Exportar as configurações, notificações e usuários</string>
<string name="settings_backup_restore_backup_entry_everything">Tudo</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Tudo, exceto os utilizadores</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Tudo, exceto os usuários</string>
<string name="settings_backup_restore_backup_entry_settings_only">Apenas as configurações</string>
<string name="settings_backup_restore_backup_successful">Cópia criada</string>
<string name="settings_backup_restore_backup_failed">Falha ao criar cópia: %1$s</string>
<string name="detail_item_saved_successfully">Guardado como \"%1$s\" na pasta \"Downloads\" (\"Transferências\")</string>
<string name="settings_backup_restore_backup_successful">Backup criado</string>
<string name="settings_backup_restore_backup_failed">Backup falhou: %1$s</string>
<string name="detail_item_saved_successfully">Salvo como \"%1$s\" na pasta \"Downloads\"</string>
<string name="detail_item_menu_copy_contents_copied">Notificação copiada para a área de transferência</string>
<string name="detail_item_cannot_download">Não foi possível abrir ou descarregar o anexo. A ligação expirou e nenhum ficheiro local foi encontrado.</string>
<string name="detail_item_download_info_not_downloaded_expired">não foi descarregado, a ligação expirou</string>
<string name="detail_item_cannot_download">Não foi possível abrir ou baixar o anexo. O link expirou e nenhum arquivo local foi encontrado.</string>
<string name="detail_item_download_info_not_downloaded_expired">não foi baixado, link expirou</string>
<string name="detail_menu_notifications_disabled_until">Notificações silenciadas até %1$s</string>
<string name="share_content_image_error">Não foi possível ler a imagem: %1$s</string>
<string name="settings_notifications_auto_download_10m">Se abaixo de 10 MB</string>
<string name="add_dialog_foreground_description">A entrega instantânea está sempre ligada para \"hosts\" que não sejam %1$s.</string>
<string name="add_dialog_use_another_server_description">Insira os URLs de serviço abaixo para subscrever tópicos de outros servidores.</string>
<string name="add_dialog_foreground_description">A entrega instantânea está sempre ligada para os hosts que não sejam %1$s.</string>
<string name="add_dialog_use_another_server_description">Insira as URLs de serviço abaixo para se inscrever em tópicos de outros servidores.</string>
<string name="add_dialog_button_cancel">Cancelar</string>
<string name="add_dialog_button_subscribe">Subscrever</string>
<string name="add_dialog_error_connection_failed">A ligação falhou: %1$s</string>
<string name="add_dialog_login_description">Esse tópico necessita autenticação. Por favor, insira um nome de utilizador e palavra-passe.</string>
<string name="add_dialog_login_new_user">Novo utilizador</string>
<string name="add_dialog_base_urls_dropdown_choose">Escolha URL de serviço</string>
<string name="detail_how_to_example">Exemplo (utilizando curl): <br/><tt>$ curl -d \"Olá\" %1$s</tt></string>
<string name="detail_delete_dialog_message">Deseja anular a subscrição deste tópico e eliminar todas as notificações recebidas\?</string>
<string name="detail_test_message">Esta é uma notificação de teste da aplicação Android do ntfy. Tem uma prioridade de nível %1$d. Se enviar outra notificação, poderá ser diferente.</string>
<string name="add_dialog_button_subscribe">Se inscrever</string>
<string name="add_dialog_error_connection_failed">A conexão falhou: %1$s</string>
<string name="add_dialog_login_description">Esse tópico neccessita que você faça login. Por favor, insira um nome de usuário e senha.</string>
<string name="add_dialog_login_new_user">Novo usuário</string>
<string name="add_dialog_base_urls_dropdown_choose">Escolha a URL do serviço</string>
<string name="detail_how_to_example">Exemplo (utilizando curl): <br/><tt>$ curl -d \"Olá\"%1$s</tt></string>
<string name="detail_delete_dialog_message">Deseja se desinscrever deste tópico e deletar todas as notificações recebidas\?</string>
<string name="detail_test_message">Essa é uma notificação de teste do aplicativo Android do ntfy. Ela tem prioridade nível %1$d. Se você enviar outra notificação, ela pode ser diferente.</string>
<string name="detail_test_message_error_too_large">Não foi possível enviar a mensagem: O anexo é grande demais.</string>
<string name="detail_instant_delivery_enabled">Entrega instantânea ativada</string>
<string name="detail_item_menu_open">Abrir ficheiro</string>
<string name="detail_item_menu_save_file">Guardar o ficheiro</string>
<string name="detail_item_menu_copy_url">Copiar URL</string>
<string name="detail_item_download_info_not_downloaded">não foi descarregado</string>
<string name="detail_item_menu_open">Abrir arquivo</string>
<string name="detail_item_menu_save_file">Salvar o arquivo</string>
<string name="detail_item_menu_copy_url">Copiar a URL</string>
<string name="detail_item_download_info_not_downloaded">não foi baixado</string>
<string name="add_dialog_instant_delivery">Entrega instantânea em modo soneca</string>
<string name="add_dialog_instant_delivery_description">Garante que as mensagens são entregues imediatamente, mesmo que o dispositivo esteja inativo.</string>
<string name="add_dialog_instant_delivery_description">Garante que as mensagens sejam entregues imediatamente, mesmo que o dispositivo esteja inativo.</string>
<string name="add_dialog_button_back">Voltar</string>
<string name="add_dialog_login_username_hint">Nome de utilizador</string>
<string name="add_dialog_login_password_hint">Palavra-passe</string>
<string name="add_dialog_login_error_not_authorized">A autenticação falhou. O utilizador \"%1$s\" não foi autorizado.</string>
<string name="add_dialog_base_urls_dropdown_clear">Limpar URL de serviço</string>
<string name="detail_no_notifications_text">Ainda não recebeu nenhuma notificação neste tópico.</string>
<string name="detail_how_to_intro">Para enviar notificações deste tópico, simplesmente faça um pedido PUT ou POST para o URL do tópico.</string>
<string name="detail_how_to_link">Instruções detalhadas disponíveis em ntfy.sh, e na documentação.</string>
<string name="add_dialog_login_username_hint">Nome de usuário</string>
<string name="add_dialog_login_password_hint">Senha</string>
<string name="add_dialog_login_error_not_authorized">O login falhou. O usuário %1$s não foi autorizado.</string>
<string name="add_dialog_base_urls_dropdown_clear">Limpar a URL do serviço</string>
<string name="detail_no_notifications_text">Você ainda não recebeu nenhuma notificação neste tópico.</string>
<string name="detail_how_to_intro">Para enviar notificações para esse tópico, simplesmente faça um PUT ou POST para a URL do tópico.</string>
<string name="detail_how_to_link">Instruções detalhadas disponíveis em ntfy.sh, e nas documentações.</string>
<string name="detail_clear_dialog_cancel">Cancelar</string>
<string name="detail_test_message_error_unauthorized_user">Não foi possível enviar a mensagem: O utilizador \"%1$s\" não está autorizado.</string>
<string name="detail_test_message_error_unauthorized_user">Não foi possível enviar a mensagem: O usuário \"%1$s\" não está autorizado.</string>
<string name="detail_instant_delivery_disabled">Entrega instantânea desativada</string>
<string name="detail_item_menu_delete">Eliminar ficheiro</string>
<string name="detail_item_menu_copy_url_copied">URL copiado para a área de transferência</string>
<string name="detail_item_menu_delete">Deletar arquivo</string>
<string name="detail_item_menu_copy_url_copied">URL copiada para a área de transferência</string>
<string name="detail_item_menu_copy_contents">Copiar notificação</string>
<string name="notification_dialog_30min">30 minutos</string>
<string name="notification_popup_action_open">Abrir</string>
<string name="detail_action_mode_menu_copy">Copiar</string>
<string name="share_content_text_hint">Adicione conteúdo a partilhar aqui</string>
<string name="share_content_file_error">Não foi possível ler as informações do ficheiro: %1$s</string>
<string name="share_content_text_hint">Adicone conteúdo a ser compartilhado aqui</string>
<string name="share_content_file_error">Não foi possível ler as informações do arquivo: %1$s</string>
<string name="notification_dialog_muted_forever_toast_message">Notificações silenciadas</string>
<string name="settings_notifications_auto_download_5m">Se abaixo de 5 MB</string>
<string name="share_content_file_text">Um ficheiro foi partilhado consigo</string>
<string name="share_content_file_text">Um arquivo foi compartilhado com você</string>
<string name="notification_dialog_1h">1 hora</string>
<string name="settings_notifications_auto_download_50m">Se abaixo de 50 MB</string>
<string name="notification_dialog_title">Silenciar notificações</string>
<string name="settings_general_dark_mode_summary_light">Modo claro</string>
<string name="settings_general_dark_mode_title">Modo escuro</string>
<string name="settings_general_dark_mode_summary_system">Usar a predefinição do sistema</string>
<string name="main_menu_donate_title">Doar 💸</string>
<string name="settings_backup_restore_restore_failed">Falha ao restaurar %1$s</string>
<string name="settings_advanced_header">Avançado</string>
<string name="settings_advanced_broadcast_title">Messagens de transmissão</string>
<string name="settings_advanced_broadcast_summary_disabled">As aplicações não podem receber notificações como transmissões</string>
<string name="settings_advanced_broadcast_summary_enabled">As aplicações podem receber notificações como transmissões</string>
<string name="settings_advanced_export_logs_entry_copy_original">Copiar para área de transferência</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Copiar para área de transferência (censurado)</string>
<string name="settings_advanced_export_logs_entry_upload_original">Enviar e copiar ligação</string>
<string name="settings_advanced_export_logs_uploading">A enviar registos …</string>
<string name="settings_advanced_export_logs_copied_url">Registos enviados e URL copiado</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Utilizar uma \"stream\" de JSON através de HTTP para se ligar ao servidor. Este método foi bem testado na pratica, mas pode consumir mais bateria.</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_notifications_instant_summary_off">As notificações são entregues utilizando o Firebase. A entrega pode atrasar, mas consome menos bateria.</string>
<string name="detail_settings_appearance_header">Aparência</string>
<string name="detail_settings_appearance_icon_set_title">Ícone de subscrição</string>
<string name="detail_settings_appearance_icon_set_summary">Defina um ícone para ser exibido nas notificações</string>
<string name="detail_settings_appearance_icon_remove_title">Ícone de subscrição (toque para remover)</string>
<string name="detail_settings_appearance_display_name_message">Defina um nome de exibição personalizado para esta subscrição. Deixe em branco para o padrão (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (padrão)</string>
<string name="detail_settings_global_setting_title">Usar configuração global</string>
<string name="detail_settings_global_setting_suffix">usar configuração global</string>
<string name="detail_settings_about_header">Sobre a aplicação</string>
<string name="detail_settings_about_topic_url_title">URL do tópico</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Copiado para a área de transferência</string>
<string name="user_dialog_title_add">Adicionar utilizador</string>
<string name="settings_backup_restore_restore_title">Restaurar de um ficheiro</string>
<string name="settings_backup_restore_restore_summary">Importar configurações, notificações e usuários</string>
<string name="settings_backup_restore_restore_successful">Restauração concluída</string>
<string name="settings_advanced_record_logs_summary_enabled">A registar (até 1000 entradas) no dispositivo …</string>
<string name="settings_advanced_record_logs_summary_disabled">Ative os registos para os poder partilhar mais tarde e diagnosticar problemas.</string>
<string name="settings_advanced_record_logs_title">Registos</string>
<string name="settings_advanced_export_logs_title">Copiar/enviar registos</string>
<string name="settings_advanced_export_logs_summary">Copie os registos para a área de transferência ou faça envie para nopaste.net (propriedade do autor do ntfy). \"Hostnames\" e tópicos podem ser censurados, as notificações não.</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Enviar e copiar ligação (censurado)</string>
<string name="settings_advanced_export_logs_copied_logs">Registos copiados para área de transferência</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Esses tópicos/\"hostnames\" foram substituídos por nomes de frutas, portanto pode partilhar os registos sem se preocupar:
\n
\n%1$s
\n
\nAs palavras-passe são retiradas e não são listadas aqui.</string>
<string name="settings_advanced_export_logs_error_uploading">Não foi possível enviar os registos: %1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Nenhum tópico/\"hostname\" foi editado. Talvez não tenha nenhuma subscrição\?</string>
<string name="settings_advanced_clear_logs_title">Limpar registos</string>
<string name="settings_advanced_clear_logs_deleted_toast">Registos excluídos</string>
<string name="settings_advanced_connection_protocol_title">Protocolo de ligação</string>
<string name="settings_advanced_clear_logs_summary">Eliminar registos gravados anteriormente e começar de novo</string>
<string name="settings_advanced_connection_protocol_summary_ws">Utilizar WebSockets para se ligar ao servidor. Este é o método recomendado, mas pode exigir configuração adicional no seu proxy.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">\"Stream\" JSON através de HTTP</string>
<string name="settings_about_header">Sobre a aplicação</string>
<string name="settings_about_version_title">Versão</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="detail_settings_notifications_instant_title">Entrega instantânea</string>
<string name="detail_settings_notifications_instant_summary_on">As notificações são entregues instantaneamente. Requer um serviço que corre em primeiro plano e consome mais bateria.</string>
<string name="settings_about_version_copied_to_clipboard_message">Copiado para área de transferência</string>
<string name="detail_settings_appearance_icon_error_saving">Não foi possível guardar o ícone: %1$s</string>
<string name="detail_settings_appearance_icon_remove_summary">Ícone exibido nas notificações deste tópico</string>
<string name="detail_settings_appearance_display_name_title">Nome de exibição</string>
<string name="user_dialog_description_edit">Pode editar o nome/palavra-passe do utilizador selecionado ou eliminá-lo.</string>
<string name="user_dialog_base_url_hint">URL do serviço</string>
<string name="user_dialog_title_edit">Editar utilizador</string>
<string name="user_dialog_description_add">Pode adicionar um utilizador aqui. Todos os tópicos para o servidor fornecido usarão esse utilizador.</string>
<string name="user_dialog_username_hint">Nome de utilizador</string>
<string name="user_dialog_password_hint_add">Palavra-passe</string>
<string name="user_dialog_password_hint_edit">Palavra-passe (se deixada em branco não será alterada)</string>
<string name="user_dialog_button_cancel">Cancelar</string>
<string name="user_dialog_button_add">Adicionar utilizador</string>
<string name="user_dialog_button_delete">Eliminar utilizador</string>
<string name="user_dialog_button_save">Guardar</string>
<string name="settings_notifications_insistent_max_priority_title">Continuar a alertar para a prioridade máxima</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Continuar a alertar</string>
<string name="channel_notifications_group_default_name">Padrão</string>
<string name="detail_item_cannot_open_apk">As aplicações já não podem ser instaladas. Em vez disso, descarregue pelo navegador. Consulte a questão #531 no GitHub para mais detalhes.</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">As notificações de prioridade máxima alertam continuamente até serem descartadas</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">As notificações de prioridade máxima alertam apenas uma vez</string>
<string name="detail_settings_notifications_dedicated_channels_title">Configurações de notificação personalizadas</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">A usar configurações personalizadas para esta subscrição</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">A usar as configurações padrão (sons, substituição de \"Não incomodar\", etc.)</string>
<string name="detail_settings_notifications_open_channels_title">Definir configurações de notificação</string>
<string name="detail_settings_notifications_open_channels_summary">Sobreposição de \"Não incomodar\" (NI), sons, etc.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alertar apenas uma vez</string>
<string name="settings_general_dark_mode_summary_system">Usar o padrão do sistema</string>
</resources>

View file

@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="settings_backup_restore_restore_successful">Restaurat cu succes</string>
<string name="settings_advanced_record_logs_title">Înregistrează jurnale</string>
<string name="settings_advanced_export_logs_summary">Copiază jurnal în clipboard, sau uploadează pe nopaste.net (deținut de autorul ntfy). Numele gazdelor sau topicele pot fi cenzurate, notificările nu vor fi niciodată.</string>
<string name="settings_advanced_export_logs_error_uploading">Nu s-au putut încărca jurnalele: %1$s</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_about_version_copied_to_clipboard_message">Copiat în clipboard</string>
<string name="detail_settings_notifications_instant_summary_on">Notificările sunt primite instantaneu. Necesită un serviciu în prim plan și consumă mai multă baterie.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Setări personalizate pentru notificări</string>
<string name="detail_settings_appearance_icon_set_summary">Setează o pictogramă care să fie afișată în notificări</string>
<string name="channel_subscriber_notification_instant_text_three">Abonat la trei topice cu livrare instantanee</string>
<string name="detail_settings_about_topic_url_title">URL-ul topicului</string>
<string name="channel_subscriber_service_name">Serviciul abonărilor</string>
<string name="user_dialog_password_hint_edit">Parolă (neschimbată dacă este lăsată necompletată)</string>
<string name="channel_subscriber_notification_instant_text_two">Abonat la două topice cu livrare instantanee</string>
<string name="channel_subscriber_notification_instant_text">Abonat pentru primirea topicelor cu livrare instantanee</string>
<string name="channel_subscriber_notification_instant_text_five">Abonat la cinci topice cu livrare instantanee</string>
<string name="channel_subscriber_notification_instant_text_more">Abonat la %1$d topice cu livrare instantanee</string>
<string name="channel_subscriber_notification_noinstant_text_three">Abonat la trei topice</string>
<string name="channel_subscriber_notification_noinstant_text_two">Abonat la două topice</string>
<string name="channel_subscriber_notification_noinstant_text_four">Abonat la patru topice</string>
<string name="main_banner_websocket_text">Trecerea la WebSockets este modalitatea recomandată de a vă conecta la serverul dumneavostră, și poate îmbunătăți durata de viață a bateriei, dar poate necesita <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">configurare suplimentară în proxy-ul dumneavostră</a>. Acest lucru poate fi comutat în setări.</string>
<string name="detail_item_cannot_download">Nu se poate deschide sau descărca atașamentul. Link-ul a expirat și nu s-a găsit niciun fișier local.</string>
<string name="notification_dialog_muted_until_toast_message">Notificări oprite până la %1$s</string>
<string name="notification_popup_file">%1$s
\nFișier: %2$s</string>
<string name="notification_popup_file_download_successful">%1$s
\nFișier: %2$s, descărcat</string>
<string name="notification_popup_file_download_failed">%1$s
\nFile: %2$s, descărcare eșuată</string>
<string name="settings_notifications_muted_until_show_all">Se afișează toate notificările</string>
<string name="settings_notifications_min_priority_summary_any">Se afișează toate notificările</string>
<string name="settings_notifications_priority_low">mică</string>
<string name="settings_notifications_priority_high">mare</string>
<string name="settings_notifications_priority_max">maximă</string>
<string name="settings_notifications_channel_prefs_summary">Suprascriere nu deranjați (DND), sunete, etc.</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Notificările cu prioritate maximă se alertă continuu până la respingere</string>
<string name="settings_advanced_broadcast_summary_enabled">Aplicațiile pot primi notificări primite ca difuzări</string>
<string name="settings_advanced_broadcast_summary_disabled">Aplicațiile nu pot primi notificări ca difuzări</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Aceste topice/nume de gazde au fost înlocuite cu nume de fructe, ca să puteți distribui jurnalul fără griji:
\n
\n%1$s
\n
\nParolele sunt criptate, dar nu sunt listate aici.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Folosește WebSockets pentru conectarea la server. Asta este metoda recomandată, dar ar putea necesita setări adiționale în proxy-ul dumneavoastră</string>
<string name="detail_settings_appearance_icon_remove_title">Pictogramă abonament (apăsați pentru a elimina)</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">Flux JSON prin HTTP</string>
<string name="settings_notifications_auto_delete_title">Șterge notificări</string>
<string name="settings_notifications_auto_download_always">Descarcă totul automat</string>
<string name="settings_notifications_auto_download_100k">Dacă e mai mic de 100 kB</string>
<string name="settings_notifications_auto_download_500k">Dacă e mai mic de 500 kB</string>
<string name="settings_notifications_auto_download_1m">Dacă e mai mic de 1 MB</string>
<string name="settings_notifications_auto_download_5m">Dacă e mai mic de 5 MB</string>
<string name="settings_notifications_auto_download_10m">Dacă e mai mic de 10 MB</string>
<string name="settings_notifications_auto_download_50m">Dacă e mai mic de 50 MB</string>
<string name="settings_notifications_auto_delete_never">Niciodată</string>
<string name="settings_notifications_auto_delete_three_days">Peste 3 zile</string>
<string name="settings_notifications_insistent_max_priority_title">Păstrează alertele pentru prioritatea maximă</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Notificările cu prioritate maximă se alertă o singură dată</string>
<string name="settings_general_header">General</string>
<string name="settings_general_default_base_url_title">Server implicit</string>
<string name="settings_general_default_base_url_message">Introduceți URL-ul rădăcinii a serverului dvs. pentru utilizarea implicită atunci când vă abonați la topice noi și/sau când partajați în topice.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (implicit)</string>
<string name="settings_general_users_prefs_user_add">Adaugă utilizatori</string>
<string name="settings_general_users_prefs_user_add_summary">Crează un utilizator nou pentru un server nou</string>
<string name="settings_general_users_title">Gestionați utilizatorii</string>
<string name="settings_general_users_summary">Adaugă/șterge utilizatori pentru subiecte protejate</string>
<string name="settings_general_users_prefs_user_not_used">Nu este folosit de niciun topic</string>
<string name="settings_general_users_prefs_user_used_by_one">Folosit de topicul %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Folosit de topicele %1$s</string>
<string name="settings_general_dark_mode_summary_system">Folosește implicitul sistemului</string>
<string name="settings_general_dark_mode_summary_light">Modul luminos pornit</string>
<string name="settings_general_dark_mode_summary_dark">Mod întunecat pornit. Ești un vampir\?</string>
<string name="settings_general_dark_mode_entry_system">Folosește implicitul sistemului</string>
<string name="settings_general_dark_mode_entry_light">Mod luminos</string>
<string name="settings_general_dark_mode_entry_dark">Mod întunecat</string>
<string name="settings_backup_restore_backup_entry_everything">Totul</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Totul, înafară de utilizatori</string>
<string name="settings_backup_restore_header">Backup și restaurare</string>
<string name="settings_backup_restore_backup_title">Back up în fișier</string>
<string name="settings_backup_restore_backup_summary">Exportați configurația, notificările și utilizatorii</string>
<string name="settings_backup_restore_backup_entry_settings_only">Doar setări</string>
<string name="settings_backup_restore_backup_successful">Backup creat</string>
<string name="settings_backup_restore_backup_failed">Backup eșuat: %1$s</string>
<string name="settings_backup_restore_restore_title">Restaurează din fișier</string>
<string name="settings_backup_restore_restore_failed">Restaurare eșuată: %1$s</string>
<string name="settings_advanced_header">Avansat</string>
<string name="settings_advanced_broadcast_title">Difuzați mesaje</string>
<string name="settings_advanced_record_logs_summary_enabled">Se salvează (până la 1,000 de intrări) pe dispozitiv…</string>
<string name="settings_advanced_export_logs_title">Copiază/uploadează jurnale</string>
<string name="settings_advanced_export_logs_entry_copy_original">Copiază în clipboard</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Copiază în clipboard (cenzurat)</string>
<string name="settings_advanced_export_logs_entry_upload_original">Uploadează și copiază linkul</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Uploadează și copiază linkul (cenzurat)</string>
<string name="settings_advanced_export_logs_copied_logs">Jurnale copiate în clipboard</string>
<string name="settings_advanced_export_logs_uploading">Încărcare jurnal …</string>
<string name="settings_advanced_export_logs_copied_url">Jurnal încărcat și URL copiat</string>
<string name="settings_advanced_record_logs_summary_disabled">Activați înregistrarea în jurnal, astfel încât să puteți partaja jurnalele mai târziu pentru a diagnostica probleme.</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Niciun topic sau nume de gazde au fost redactate. Poate nu ai niciun abonament\?</string>
<string name="settings_advanced_clear_logs_summary">Șterge jurnalele înregistrate anterior, și începe de la capăt</string>
<string name="settings_advanced_clear_logs_deleted_toast">Jurnale șterse</string>
<string name="settings_advanced_connection_protocol_title">Protocolul conexiunii</string>
<string name="settings_advanced_clear_logs_title">Șterge jurnale</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Utilizați un flux JSON prin HTTP pentru conectarea la server. Această metodă este efectivă, dar poate folosi mai multă baterie.</string>
<string name="settings_about_header">Despre</string>
<string name="settings_about_version_title">Versiune</string>
<string name="detail_settings_notifications_instant_title">Primire instantanee</string>
<string name="detail_settings_notifications_instant_summary_off">Notificările sunt primite cu Firebase. Primirea poate fi întârziată, dar folosește mai puțină baterie.</string>
<string name="detail_settings_notifications_open_channels_title">Configurează setările pentru notificări</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Se folosesc setări personalizate pentru acest abonament</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Folosește setările implicite (sunete, trece peste Nu deranjați, etc.)</string>
<string name="detail_settings_appearance_header">Aparență</string>
<string name="detail_settings_notifications_open_channels_summary">Suprascrierea \"nu deranjați\" (DND), sunete, etc.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Alertează în continuare</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alertează doar o dată</string>
<string name="detail_settings_appearance_icon_remove_summary">Pictograma afișată în notificări pentru acest topic</string>
<string name="detail_settings_appearance_display_name_title">Nume de afișare</string>
<string name="detail_settings_appearance_icon_set_title">Pictogramă abonament</string>
<string name="detail_settings_appearance_icon_error_saving">Nu s-a putut salva pictograma: %1$s</string>
<string name="detail_settings_appearance_display_name_message">Setează un nume de afișare personalizat pentru acest abonament. Lăsați necompletat pentru numele implicit (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (implicit)</string>
<string name="detail_settings_global_setting_title">Folosește setarea globală</string>
<string name="detail_settings_about_header">Despre</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Copiat în clipboard</string>
<string name="detail_settings_global_setting_suffix">folosind setarea globală</string>
<string name="user_dialog_title_add">Adaugă utilizator</string>
<string name="user_dialog_title_edit">Modifică utilizator</string>
<string name="user_dialog_description_add">Poți adaugă un utilizator aici. Toate topicele pentru serverul specificat vor folosi acest utilizator.</string>
<string name="user_dialog_description_edit">Puteți edita numele de utilizator/parola pentru utilizatorul selectat, sau îl puteți șterge.</string>
<string name="user_dialog_base_url_hint">URL-ul serviciului</string>
<string name="user_dialog_username_hint">Nume de utilizator</string>
<string name="user_dialog_password_hint_add">Parolă</string>
<string name="user_dialog_button_add">Adaugă utilizator</string>
<string name="user_dialog_button_cancel">Anulează</string>
<string name="user_dialog_button_delete">Șterge utilizator</string>
<string name="user_dialog_button_save">Salvează</string>
<string name="channel_notifications_default_name">Prioritate normală</string>
<string name="channel_subscriber_notification_title">Ascultând pentru notificări primite</string>
<string name="channel_notifications_max_name">Prioritate maximă</string>
<string name="channel_notifications_group_default_name">Implicit</string>
<string name="channel_subscriber_notification_instant_text_one">Abonat la un subiect cu livrare instantanee</string>
<string name="channel_subscriber_notification_instant_text_four">Abonat la patru topice cu livrare instantanee</string>
<string name="channel_subscriber_notification_instant_text_six">Abonat la șase topice cu livrare instantanee</string>
<string name="channel_subscriber_notification_noinstant_text">Abonat la topice</string>
<string name="channel_subscriber_notification_noinstant_text_one">Abonat la un topic</string>
<string name="channel_subscriber_notification_noinstant_text_five">Abonat la cinci topice</string>
<string name="channel_subscriber_notification_noinstant_text_six">Abonat la șase topice</string>
<string name="channel_subscriber_notification_noinstant_text_more">Abonat la %1$d topice</string>
<string name="refresh_message_result">%1$d notificări primite</string>
<string name="refresh_message_no_results">Totul este la zi</string>
<string name="refresh_message_error">Nu s-au putut actualiza %1$d abonări
\n
\n%2$s</string>
<string name="refresh_message_error_one">Nu s-a putut actualiza abonarea: %1$s</string>
<string name="main_action_bar_title">Topice abonate</string>
<string name="main_menu_rate_title">Evaluează aplicația</string>
<string name="main_menu_notifications_disabled_forever">Notificări dezactivate</string>
<string name="main_menu_notifications_disabled_until">Notificări dezactivate până la %1$s</string>
<string name="main_menu_report_bug_title">Raportează o problemă</string>
<string name="main_menu_docs_title">Citește documentația</string>
<string name="main_action_mode_delete_dialog_message">Dezabonează-te de la topicele selectate și șterge notificările permanent\?</string>
<string name="main_menu_donate_title">Donează 💸</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_add_button_description">Adaugă abonament</string>
<string name="main_item_status_text_not_one">%1$d notificări</string>
<string name="main_item_status_reconnecting">reconectare …</string>
<string name="main_item_date_yesterday">ieri</string>
<string name="main_no_subscriptions_text">Se pare că nu încă ești abonat la nimic.</string>
<string name="main_banner_battery_text">Optimizarea bateriei ar trebui să fie oprită pentru a preveni probleme de livrare a notificărilor.</string>
<string name="main_banner_battery_button_remind_later">Întreabă mai târziu</string>
<string name="main_how_to_intro">Apasă pe + pentru a crea sau pentru a te abona la un topic. Apoi primiți notificări pe dispozitivul dvs. atunci când trimiteți mesaje prin intermediul PUT sau POST.</string>
<string name="main_how_to_link">Instrucțiuni detaliate disponibile pe ntfy.sh, și pe documentație.</string>
<string name="main_unified_push_toast">Această abonare este gestionat de %1$s prin UnifiedPush</string>
<string name="main_banner_battery_button_dismiss">Ignoră</string>
<string name="detail_deep_link_subscribed_toast_message">Abonat la topicul %1$s</string>
<string name="detail_item_snack_deleted">Notificare ștearsă</string>
<string name="detail_item_tags">Etichete: %1$s</string>
<string name="detail_item_snack_undo">Anulează</string>
<string name="detail_item_menu_delete">Șterge fișierul</string>
<string name="detail_item_menu_cancel">Oprește descărcarea</string>
<string name="detail_item_menu_save_file">Salvează fișierul</string>
<string name="detail_item_saved_successfully">Salvat ca \"%1$s\" în directorul \"Downloads\"</string>
<string name="detail_item_menu_copy_contents">Copiază notificarea</string>
<string name="detail_item_menu_copy_contents_copied">Notificare copiată în clipboard</string>
<string name="detail_item_cannot_open">Nu se poate deschide atașametul: %1$s</string>
<string name="detail_item_cannot_open_url">Nu se poate deschide URL-ul: %1$s</string>
<string name="detail_item_cannot_open_apk">Aplicațiile nu mai pot fi instalate. Descarcă prin intermediul browser-ului. Consultați problema #531 pentru detalii.</string>
<string name="detail_item_download_info_deleted_expired">șters, link expirat</string>
<string name="detail_item_download_info_deleted_expires_x">șters, link expiră la %1$s</string>
<string name="detail_item_download_info_download_failed_expires_x">descărcare eșuată, linkul expiră la %1$s</string>
<string name="detail_menu_notifications_enabled">Notificări pornite</string>
<string name="detail_menu_enable_instant">Pornire primire instantanee</string>
<string name="detail_menu_notifications_disabled_forever">Notificări oprite</string>
<string name="detail_menu_notifications_disabled_until">Notificări oprite până la %1$s</string>
<string name="detail_menu_copy_url">Copiază adresa topicului</string>
<string name="detail_menu_clear">Șterge toate notificările</string>
<string name="detail_menu_unsubscribe">Dezabonează-te</string>
<string name="detail_action_mode_menu_copy">Copiază</string>
<string name="detail_menu_settings">Setări abonament</string>
<string name="detail_action_mode_menu_delete">Șterge</string>
<string name="detail_action_mode_delete_dialog_message">Șterge notificarea/notificările selectate permanent\?</string>
<string name="detail_settings_title">Setări abonament</string>
<string name="share_menu_send">Distribuie</string>
<string name="share_content_text_hint">Adaugă conținut pentru a distribui aici</string>
<string name="share_content_image_text">O imagine a fost distribuită cu tine</string>
<string name="share_content_file_error">Nu se poate citi informația fișierului: %1$s</string>
<string name="share_topic_title">Distribuie la</string>
<string name="notification_dialog_title">Oprește notificările</string>
<string name="share_successful">Mesaj publicat</string>
<string name="notification_dialog_save">Salvează</string>
<string name="notification_dialog_enabled_toast_message">Notificări reactivate</string>
<string name="notification_dialog_show_all">Arată toate notificările</string>
<string name="notification_dialog_muted_forever_toast_message">Notificări oprite</string>
<string name="notification_dialog_1h">O oră</string>
<string name="notification_dialog_forever">Până la reluare</string>
<string name="notification_dialog_2h">2 ore</string>
<string name="notification_dialog_8h">8 ore</string>
<string name="notification_dialog_tomorrow">Până mâine</string>
<string name="notification_popup_action_open">Deschide</string>
<string name="notification_popup_action_browse">Răsfoiește</string>
<string name="notification_popup_action_download">Descarcă</string>
<string name="notification_popup_file_downloading">Se descarcă %1$s, %2$d%%
\n%3$s</string>
<string name="notification_popup_action_cancel">Anulează</string>
<string name="notification_popup_user_action_failed">%1$s eșuat: %2$s</string>
<string name="settings_notifications_muted_until_title">Oprire notificări</string>
<string name="settings_notifications_muted_until_forever">Notificări oprite până la reluare</string>
<string name="settings_notifications_muted_until_x">Notificări oprite până la %1$s</string>
<string name="settings_notifications_header">Notificări</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Arată notificările dacă prioritatea este %1$d (%2$s) sau mai înaltă</string>
<string name="settings_notifications_min_priority_summary_max">Arată notificările dacă prioritatea este 5 (maximă)</string>
<string name="settings_notifications_min_priority_min">Orice prioritate</string>
<string name="settings_notifications_min_priority_default">Prioritate implicită sau mai înaltă</string>
<string name="settings_notifications_min_priority_low">Prioritate mică sau mai mare</string>
<string name="settings_notifications_priority_min">minim</string>
<string name="settings_notifications_auto_download_title">Descarcă atașamentele</string>
<string name="settings_notifications_priority_default">implicită</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Descărcare automată a atașamentelor până la %1$s</string>
<string name="settings_notifications_auto_download_never">Niciodată să nu se descarce automat ceva</string>
<string name="channel_notifications_min_name">Prioritate minimă</string>
<string name="channel_notifications_low_name">Prioritate mică</string>
<string name="channel_notifications_high_name">Prioritate mare</string>
<string name="main_menu_notifications_enabled">Notificări pornite</string>
<string name="main_menu_settings_title">Setări</string>
<string name="main_action_mode_menu_unsubscribe">Dezabonează-te</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Șterge permanent</string>
<string name="main_item_status_text_one">%1$d notificare</string>
<string name="main_action_mode_delete_dialog_cancel">Anulare</string>
<string name="main_banner_battery_button_fix_now">Rezolvă acum</string>
<string name="main_banner_websocket_button_remind_later">Întreabă mai târziu</string>
<string name="main_banner_websocket_button_enable_now">Activează acum</string>
<string name="add_dialog_title">Abonează-te la topic</string>
<string name="detail_how_to_link">Instrucțiuni detaliate disponibile pe ntfy.sh, și în documentație.</string>
<string name="detail_clear_dialog_message">Șterge toate notificările în acest topic\?</string>
<string name="detail_delete_dialog_message">Dezabonează-te de la acest topic și șterge toate notificările primite\?</string>
<string name="detail_clear_dialog_permanently_delete">Șterge permanent</string>
<string name="detail_clear_dialog_cancel">Anulează</string>
<string name="detail_item_menu_open">Deschide fișier</string>
<string name="detail_item_menu_copy_url_copied">URL copiat în clipboard</string>
<string name="detail_item_download_info_deleted">șters</string>
<string name="detail_item_download_info_download_failed">descărcare eșuată</string>
<string name="detail_item_download_info_download_failed_expired">descărcare eșuată, linkul a expirat</string>
<string name="detail_item_menu_download">Descarcă fișierul</string>
<string name="detail_item_menu_copy_url">Copiază URL</string>
<string name="detail_item_cannot_open_not_found">Nu se poate deschide atașamentul: Fișierul s-ar putea să fi fost șters, sau nu există o aplicație instalată pentru a îl deschide.</string>
<string name="detail_item_download_info_not_downloaded">nu s-a descărcat</string>
<string name="detail_item_download_info_not_downloaded_expires_x">nu s-a descărcat, expiră la %1$s</string>
<string name="detail_item_cannot_delete">Nu se poate șterge atașamentul: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expired">nu s-a descărcat, link expirat</string>
<string name="detail_item_download_failed">Nu se poate descărca atașamentul: %1$s</string>
<string name="detail_menu_disable_instant">Oprește primirea instantanee</string>
<string name="share_content_image_error">Nu se poate citi imaginea: %1$s</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Ștergere permanentă</string>
<string name="share_title">Distribuie</string>
<string name="detail_action_mode_delete_dialog_cancel">Anulează</string>
<string name="share_content_title">Previzualizare mesaj</string>
<string name="share_content_file_text">Un fișier a fost distribuit cu tine</string>
<string name="share_suggested_topics">Topice sugerate</string>
<string name="settings_notifications_auto_download_summary_never">Niciodată nu descarcă atașamente automat</string>
<string name="notification_dialog_cancel">Anulează</string>
<string name="notification_dialog_30min">30 de minute</string>
<string name="settings_title">Setări</string>
<string name="settings_notifications_min_priority_title">Prioritate minimă</string>
<string name="settings_notifications_min_priority_high">Prioritate mare sau mai înaltă</string>
<string name="settings_notifications_min_priority_max">Doar prioritate maximă</string>
<string name="settings_notifications_auto_delete_one_week">Peste o saptămână</string>
<string name="settings_notifications_auto_delete_summary_three_days">Șterge notificările automat în 3 zile</string>
<string name="settings_notifications_channel_prefs_title">Setări canal</string>
<string name="settings_notifications_auto_download_summary_always">Descarcă toate atașamentele automat</string>
<string name="settings_notifications_auto_delete_summary_never">Nu șterge niciodată notificarile automat</string>
<string name="settings_notifications_auto_delete_summary_one_month">Șterge notificările automat în o lună</string>
<string name="settings_notifications_auto_delete_summary_three_months">Șterge notificările automat în 3 luni</string>
<string name="settings_general_dark_mode_title">Mod întunecat</string>
<string name="settings_notifications_auto_delete_summary_one_day">Șterge notificările automat în o zi</string>
<string name="settings_general_users_prefs_title">Utilizatori</string>
<string name="settings_general_users_prefs_user_add_title">Adaugă un utilizator nou</string>
<string name="settings_notifications_auto_delete_summary_one_week">Șterge notificările automat în o săptămână</string>
<string name="settings_notifications_auto_delete_one_day">Peste o zi</string>
<string name="settings_notifications_auto_delete_one_month">Peste o lună</string>
<string name="settings_notifications_auto_delete_three_months">Peste 3 luni</string>
<string name="add_dialog_use_another_server">Folosește alt server</string>
<string name="add_dialog_button_cancel">Anulează</string>
<string name="add_dialog_button_back">Înapoi</string>
<string name="add_dialog_button_login">Loghează-te</string>
<string name="add_dialog_error_connection_failed">Conexiunea a eșuat: %1$s</string>
<string name="add_dialog_login_title">Logare necesară</string>
<string name="add_dialog_login_description">Acest topic necesită să te loghezi. Vă rugăm să introduceți un nume de utilizator și o parola.</string>
<string name="add_dialog_login_username_hint">Nume de utilizator</string>
<string name="add_dialog_login_password_hint">Parolă</string>
<string name="add_dialog_login_error_not_authorized">Logare eșuată. Utilizatorul %1$s nu este autorizat.</string>
<string name="add_dialog_login_new_user">Utilizator nou</string>
<string name="detail_no_notifications_text">Nu ai primit încă notificări pentru acest topic.</string>
<string name="detail_how_to_example">Exemplu (folosing curl):<br/><tt>$ curl -d \"Salut\" %1$s</tt></string>
<string name="detail_delete_dialog_cancel">Anulează</string>
<string name="detail_test_title">Test: Poți specifica un titlu dacă dorești.</string>
<string name="detail_test_message">Această este o notificare de test de la aplicația ntfy pentru Android. Are nivelul priorității %1$d. Dacă trimiți altă notificare, s-ar putea să arate altfel.</string>
<string name="detail_test_message_error">Nu se poate trimite mesajul: %1$s</string>
<string name="detail_test_message_error_unauthorized_anon">Nu se poate trimite mesajul: Publicarea anonimă nu este permisă.</string>
<string name="detail_test_message_error_unauthorized_user">Nu se poate trimite mesajul: Utilizatorul \"%1$s\" nu este autorizat.</string>
<string name="detail_test_message_error_too_large">Nu se poate trimite mesajul: Atașamentul este prea mare.</string>
<string name="detail_copied_to_clipboard_message">Copiat în clipboard</string>
<string name="detail_instant_delivery_enabled">Primire instantanee pornită</string>
<string name="detail_instant_delivery_disabled">Primire instantanee oprită</string>
<string name="main_banner_websocket_button_dismiss">Ignoră</string>
<string name="add_dialog_description_below">Topicele nu pot fi protejate cu parolă, așadar alegeți un nume greu de ghicit. Odată abonat, puteți PUT/POST notificări</string>
<string name="add_dialog_topic_name_hint">Numele topicului, exemplu: alertele_lui_phil</string>
<string name="add_dialog_use_another_server_description">Introduceți URL-urile serviciilor mai jos pentru a vă abona la topice de la alte servere.</string>
<string name="add_dialog_instant_delivery">Primire instantanee în modul doze</string>
<string name="add_dialog_foreground_description">Primirea instantanee este întotdeauna pornită pentru gazdele înafară de %1$s.</string>
<string name="add_dialog_button_subscribe">Abonare</string>
<string name="add_dialog_base_urls_dropdown_choose">Alege URL-ul serviciului</string>
<string name="add_dialog_base_urls_dropdown_clear">Șterge URL-ul serviciului</string>
<string name="detail_how_to_intro">Pentru a trimite notificări pentru acest topic, pur și simplu trimiteți o cerere PUT sau POST la URL-ul topicului.</string>
<string name="detail_delete_dialog_permanently_delete">Ștergere permanentă</string>
<string name="add_dialog_instant_delivery_description">Asigură ca mesajele să fie primite imediat, chiar dacă dispozitivul este inactiv.</string>
<string name="detail_item_cannot_save">Nu se poate salva atașamentul: %1$s</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% descărcat</string>
<string name="detail_menu_test">Trimite notificare de probă</string>
<string name="settings_backup_restore_restore_summary">Importă setări, notificări și utilizatori</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy va avea rol de distribuitor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_title">Activează UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy nu va avea rol de distribuitor UnifiedPush</string>
</resources>

View file

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="main_action_mode_delete_dialog_cancel">Отмена</string>
<string name="channel_notifications_default_name">Стандартный приоритет</string>
<string name="channel_notifications_high_name">Высокий приоритет</string>
<string name="channel_notifications_max_name">Максимальный приоритет</string>
<string name="channel_notifications_default_name">Уведомления (приоритет по умолчанию)</string>
<string name="channel_notifications_high_name">Уведомления (высокий приоритет)</string>
<string name="channel_notifications_max_name">Уведомления (макс. приоритет)</string>
<string name="channel_subscriber_service_name">Сервис подписки</string>
<string name="channel_notifications_min_name">Минимальный приоритет</string>
<string name="channel_notifications_low_name">Низкий приоритет</string>
<string name="main_menu_notifications_disabled_forever">Уведомления заглушены</string>
<string name="channel_notifications_min_name">Уведомления (мин. приоритет)</string>
<string name="channel_notifications_low_name">Уведомления (низкий приоритет)</string>
<string name="main_menu_notifications_disabled_forever">Уведомления приостановлены</string>
<string name="main_menu_notifications_enabled">Уведомления включены</string>
<string name="main_menu_report_bug_title">Сообщить об ошибке</string>
<string name="main_menu_settings_title">Настройки</string>
<string name="main_menu_docs_title">Документация</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Удалить навсегда</string>
<string name="detail_clear_dialog_cancel">Отмена</string>
<string name="detail_delete_dialog_message">Отписаться от этой темы и удалить все полученные уведомления\?</string>
<string name="detail_delete_dialog_message">Отписаться от этой темы, и удалить все полученые уведомления\?</string>
<string name="detail_delete_dialog_permanently_delete">Удалить навсегда</string>
<string name="detail_delete_dialog_cancel">Отмена</string>
<string name="detail_test_title">Тест: Вы можете установить заголовок, если хотите.</string>
@ -28,7 +28,7 @@
<string name="detail_item_menu_copy_contents">Скопировать уведомление</string>
<string name="detail_item_menu_copy_contents_copied">Уведомление скопировано</string>
<string name="detail_item_saved_successfully">Сохранён как \"%1$s\" в папке \"Downloads\"</string>
<string name="detail_menu_notifications_disabled_until">Уведомления заглушены до %1$s</string>
<string name="detail_menu_notifications_disabled_until">Уведомления приостановлены до %1$s</string>
<string name="detail_menu_enable_instant">Включить моментальную доставку</string>
<string name="detail_menu_disable_instant">Выключить моментальную доставку</string>
<string name="detail_menu_test">Отправить тестовое уведомление</string>
@ -44,7 +44,7 @@
<string name="detail_settings_title">Настройки подписок</string>
<string name="share_title">Поделиться</string>
<string name="share_menu_send">Поделиться</string>
<string name="notification_dialog_title">Заглушить уведомления</string>
<string name="notification_dialog_title">Приостановить уведомления</string>
<string name="settings_notifications_auto_download_100k">Если меньше 100 кб</string>
<string name="settings_notifications_auto_delete_never">Никогда</string>
<string name="settings_notifications_auto_delete_three_days">Черед три дня</string>
@ -110,36 +110,36 @@
<string name="detail_item_cannot_open">Вложение не открывается: %1$s</string>
<string name="detail_item_cannot_open_not_found">Вложение не открывается: Возможно файл был удалёл, либо нет установленного приложения, способного открыть файл.</string>
<string name="detail_menu_notifications_enabled">Уведомления включены</string>
<string name="detail_menu_notifications_disabled_forever">Уведомления заглушены</string>
<string name="detail_menu_notifications_disabled_forever">Уведомления приостановлены</string>
<string name="notification_dialog_save">Сохранить</string>
<string name="notification_dialog_muted_until_toast_message">Уведомления заглушены до %1$s</string>
<string name="notification_dialog_muted_until_toast_message">Уведомления приостановлены до %1$s</string>
<string name="notification_popup_action_open">Открыть</string>
<string name="notification_popup_action_download">Скачать</string>
<string name="notification_popup_file">%1$s
\nФайл: %2$s</string>
<string name="notification_dialog_cancel">Отмена</string>
<string name="notification_dialog_enabled_toast_message">Уведомления разрешены</string>
<string name="notification_dialog_muted_forever_toast_message">Уведомления заглушены</string>
<string name="notification_dialog_enabled_toast_message">Уведомления возобновлены</string>
<string name="notification_dialog_muted_forever_toast_message">Уведомления приостановлены</string>
<string name="notification_dialog_show_all">Показать все уведомления</string>
<string name="notification_dialog_30min">30 минут</string>
<string name="notification_dialog_8h">8 часов</string>
<string name="notification_dialog_tomorrow">До завтра</string>
<string name="notification_dialog_1h">1 час</string>
<string name="notification_dialog_2h">2 часа</string>
<string name="notification_dialog_forever">До разрешения</string>
<string name="notification_dialog_forever">До возобновления</string>
<string name="settings_title">Настройки</string>
<string name="settings_notifications_min_priority_min">Любой приоритет</string>
<string name="settings_general_users_prefs_user_add">Добавить пользователей</string>
<string name="settings_general_users_prefs_user_add_summary">Создать нового пользователя для нового сервера</string>
<string name="settings_backup_restore_restore_title">Восстановить из файла</string>
<string name="settings_general_users_prefs_user_add_title">Добавить нового пользователя</string>
<string name="main_menu_notifications_disabled_until">Уведомления заглушены до %1$s</string>
<string name="main_menu_notifications_disabled_until">Уведомления приостановлены до %1$s</string>
<string name="refresh_message_error">Не получилось обновить %1$d подписок
\n
\n%2$s</string>
<string name="refresh_message_error_one">Не получилось обновить подписку: %1$s</string>
<string name="refresh_message_error_one">Не получилось обновить подписки: %1$s</string>
<string name="main_action_bar_title">Темы подписок</string>
<string name="main_how_to_intro">Нажмите + чтобы создать или подписаться на тему. Вы будете получать уведомления на вашем устройстве при отправке сообщений через PUT или POST-запросы.</string>
<string name="main_how_to_intro">Нажмите + чтобы создать или подписаться на тему. Вы получите уведомления на вашем устройстве при отправлении сообщений через PUT или POST.</string>
<string name="channel_subscriber_notification_instant_text">Подписан на темы с мгновенной доставкой</string>
<string name="channel_subscriber_notification_instant_text_two">Подписан на две темы с мгновенной доставкой</string>
<string name="channel_subscriber_notification_instant_text_one">Подписан на одну тему с мгновенной доставкой</string>
@ -156,7 +156,7 @@
<string name="add_dialog_login_title">Требуется вход в аккаунт</string>
<string name="add_dialog_login_description">Эта тема требует авторизации. Пожалуйста, введите имя пользователя и пароль.</string>
<string name="add_dialog_description_below">Темы не могут быть защищены паролем. Используйте название которое сложно угадать. После подписки вы сможете отправлять уведомления через PUT/POST.</string>
<string name="detail_test_message">Это тестовое уведомление от Android-приложения ntfy. Оно имеет уровень приоритета %1$d. Если вы отправите ещё одно, оно может выглядеть по-другому.</string>
<string name="detail_test_message">Это тестовое уведомление от Android-приложения ntfy. Уровень приоритета уведомления: %1$d. Если вы отправите ещё одно, оно может выглядеть по-другому.</string>
<string name="add_dialog_login_error_not_authorized">Вход не удался. Пользователь %1$s не авторизован.</string>
<string name="detail_how_to_intro">Чтобы отправить уведомления на данную тему, просто отправьте PUT or POST на URL-адрес темы.</string>
<string name="detail_how_to_link">Подробные инструкции на сайте ntfy.sh и в документации.</string>
@ -165,10 +165,10 @@
<string name="add_dialog_use_another_server_description">Введите URL-адрес сервиса чтобы подписаться на темы с других серверов.</string>
<string name="detail_item_download_info_not_downloaded_expires_x">не скачано, истекает срок действия %1$s</string>
<string name="detail_item_download_info_download_failed_expired">не удалось скачать, срок действия ссылки истёк</string>
<string name="settings_notifications_min_priority_max">Только максимальный приоритет</string>
<string name="settings_notifications_min_priority_max">Только наивысший приоритет</string>
<string name="settings_notifications_priority_low">низкий</string>
<string name="settings_notifications_channel_prefs_title">Настройки канала</string>
<string name="settings_notifications_channel_prefs_summary">Управление режимом \"не беспокоить\", звуками и прочим.</string>
<string name="settings_notifications_channel_prefs_summary">Управление режимом Не беспокоить (DND), настройками звуков, и т.д.</string>
<string name="settings_notifications_auto_delete_summary_three_days">Автоматически удалять уведомления через 3 дня</string>
<string name="settings_notifications_auto_delete_summary_one_month">Автоматически удалять уведомления через месяц</string>
<string name="detail_item_cannot_save">Невозможно сохранить вложение: %1$s</string>
@ -197,14 +197,14 @@
\nФайл: %2$s, скачан</string>
<string name="notification_popup_file_download_failed">%1$s
\nФайл: %2$s, не удалось скачать</string>
<string name="settings_notifications_muted_until_title">Заглушить уведомления</string>
<string name="settings_notifications_muted_until_title">Приостановить уведомления</string>
<string name="settings_notifications_muted_until_show_all">Показываются все уведомления</string>
<string name="settings_notifications_muted_until_forever">Уведомления заглушены пока не будут разрешены</string>
<string name="settings_notifications_muted_until_x">Уведомления заглушены до %1$s</string>
<string name="settings_notifications_muted_until_forever">Уведомления приостановлены до того, как будут возобновлены</string>
<string name="settings_notifications_muted_until_x">Уведомления приостановлены до %1$s</string>
<string name="settings_notifications_min_priority_title">Самый низкий приоритет</string>
<string name="settings_notifications_min_priority_summary_any">Отображаются все уведомления</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Показывать уведомления если приоритет %1$d(%2$s) или выше</string>
<string name="settings_notifications_min_priority_summary_max">Показывать уведомления если приоритет равен 5 (максимальный)</string>
<string name="settings_notifications_min_priority_summary_max">Показывать уведомления если приоритет 5 (наивысший)</string>
<string name="settings_notifications_min_priority_low">Низкий приоритет или выше</string>
<string name="settings_notifications_min_priority_default">Приоритет по умолчанию и выше</string>
<string name="settings_notifications_min_priority_high">Высокий приоритет и выше</string>
@ -255,8 +255,8 @@
<string name="settings_advanced_clear_logs_summary">Удалить ранее записанные журналы, и начать сначала</string>
<string name="settings_advanced_clear_logs_deleted_toast">Журналы удалены</string>
<string name="settings_advanced_connection_protocol_title">Протокол соединения</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Использовать JSON-поток через HTTP чтобы подключаться к серверу. Это надежный метод, но он может потреблять больше энергии.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Использовать WebSockets для подключения к серверу. Это рекомендуемый метод, но может потребовать доплонительной настройки прокси-сервера.</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Использовать JSON поток через HTTP, чтобы подключиться к серверу. Этот метод устарел и будет удален в июле 2022-го года.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Использовать WebSockets для подключения к серверу. Этот метод будет методом по умолчанию начиная с июля 2022-го.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">JSON поток поверх HTTP</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_about_header">О программе</string>
@ -307,40 +307,4 @@
<string name="channel_subscriber_notification_noinstant_text_five">Подписан на пять тем</string>
<string name="channel_subscriber_notification_noinstant_text_six">Подписан на шесть тем</string>
<string name="main_banner_websocket_button_enable_now">Включить сейчас</string>
<string name="detail_settings_notifications_instant_summary_on">Уведомления доставляются сразу. Требует forground сервис и потребляет больше энергии.</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Уведомления с наивысшим приоритетом будут требовать внимания пока не будут прочтены</string>
<string name="channel_notifications_group_default_name">По умолчанию</string>
<string name="detail_item_cannot_open_apk">Установка приложений через уведомления больше не поддерживается. Скачайте приложение через браузер. Подробности смотрите в отчете ntfy #531.</string>
<string name="detail_settings_appearance_icon_set_title">Иконка подписки</string>
<string name="detail_settings_appearance_icon_set_summary">Использовать иконку для отображения в уведомлениях</string>
<string name="main_menu_donate_title">Пожертвовать 💸</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Уведомления с наивысшим приориетом будут давать о себе знать только один раз</string>
<string name="detail_settings_notifications_instant_summary_off">Уведомления будут доставляться с помощью Firebase. Могут быть задержки с доставкой, но потребляет меньше энергии.</string>
<string name="add_dialog_base_urls_dropdown_clear">Очистить URL-адрес сервера</string>
<string name="detail_settings_appearance_header">Внешний вид</string>
<string name="detail_settings_appearance_icon_error_saving">Невозможно сохранить иконку: %1$s</string>
<string name="detail_settings_appearance_display_name_title">Псевдоним</string>
<string name="detail_settings_global_setting_suffix">испольует глобальное значение</string>
<string name="detail_settings_appearance_display_name_message">Выставить произвольный псевдоним для этой подписки. Оставьте пустым чтобы использовать значение по умолчанию (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (по умолчанию)</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Скопирован в буфер обмена</string>
<string name="detail_settings_notifications_instant_title">Мгновенная доставка</string>
<string name="detail_settings_notifications_dedicated_channels_title">Пользовательские настройки уведомлений</string>
<string name="detail_settings_notifications_open_channels_title">Настройки уведомлений</string>
<string name="settings_advanced_unifiedpush_title">Включить UnifiedPush</string>
<string name="detail_settings_about_header">Настройки темы</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Используются настройки по умолчанию (звуки, игнорирование режима \"не беспокоить\", и прочее)</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy будет действовать как сервис доставки UnifiedPush</string>
<string name="detail_settings_about_topic_url_title">URL-адрес темы</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy не будет действовать как сервис доставки UnifiedPush</string>
<string name="detail_settings_appearance_icon_remove_summary">Иконка используемая в уведомлениях от этой темы</string>
<string name="detail_settings_global_setting_title">Использовать глобальное значение</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Продолжать уведомлять</string>
<string name="main_banner_websocket_text">Мы рекомендуем использовать WebSockets для подключения к Вашему серверу; это может продлить время работы от батареи, но может потребовать <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">дополнительной настройки прокси-сервера</a>. Эта опция может быть включена или выключена в Настройках.</string>
<string name="detail_settings_appearance_icon_remove_title">Иконка подписки (коснитесь, чтобы удалить)</string>
<string name="add_dialog_base_urls_dropdown_choose">Выберите URL-адрес сервера</string>
<string name="detail_settings_notifications_open_channels_summary">Игнорирование режима \"не беспокоить\", звуки и прочее.</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Используются пользовательские настройки для этой подписки</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Уведомлять только один раз</string>
<string name="settings_notifications_insistent_max_priority_title">Продолжать уведомлять при наивысшем приоритете</string>
</resources>

View file

@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Nízka priorita</string>
<string name="channel_notifications_default_name">Predvolená priorita</string>
<string name="channel_notifications_high_name">Vysoká priorita</string>
<string name="channel_notifications_max_name">Maximálna priorita</string>
<string name="channel_subscriber_service_name">Služba odberu</string>
<string name="channel_subscriber_notification_title">Počúvanie prichádzajúcich oznámení</string>
<string name="channel_subscriber_notification_instant_text">Prihlásený na okamžité doručovanie tém</string>
<string name="channel_notifications_group_default_name">Predvolená</string>
<string name="refresh_message_error">Nepodarilo sa obnoviť %1$d prihlásení
\n
\n%2$s</string>
<string name="refresh_message_error_one">Nepodarilo sa obnoviť prihlásenie na odber: %1$s</string>
<string name="main_action_bar_title">Odoberané témy</string>
<string name="main_menu_notifications_enabled">Oznámenia zapnuté</string>
<string name="main_menu_notifications_disabled_forever">Oznámenia stlmené</string>
<string name="main_how_to_intro">Kliknutím na tlačidlo + vytvoríte tému alebo sa na ňu prihlásite. Následne budete dostávať upozornenia na svoje zariadenie pri odosielaní správ prostredníctvom PUT alebo POST.</string>
<string name="main_how_to_link">Podrobné pokyny sú k dispozícii na stránke ntfy.sh a v dokumentácií.</string>
<string name="main_unified_push_toast">Toto predplatné spravuje %1$s prostredníctvom služby UnifiedPush</string>
<string name="main_banner_battery_text">Optimalizácia batérie by mala byť pre aplikáciu vypnutá, aby sa predišlo problémom s doručovaním oznámení.</string>
<string name="main_banner_battery_button_remind_later">Opýtať sa neskôr</string>
<string name="main_banner_battery_button_dismiss">Odmietnuť</string>
<string name="main_banner_battery_button_fix_now">Opraviť teraz</string>
<string name="main_banner_websocket_text">Prechod na WebSockets je odporúčaný spôsob pripojenia k serveru, ktorý by mohol zlepšiť výdrž batérie, ale môže vyžadovať <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">ďalšiu konfiguráciu v proxy serveri</a>. Túto možnosť môžete prepnúť v Nastaveniach.</string>
<string name="main_banner_websocket_button_remind_later">Opýtať sa neskôr</string>
<string name="main_banner_websocket_button_dismiss">Odmietnuť</string>
<string name="main_banner_websocket_button_enable_now">Povoliť teraz</string>
<string name="add_dialog_description_below">Témy nemusia byť chránené heslom, preto zvoľte názov, ktorý je ťažké uhádnuť. Po prihlásení sa na odber môžete PUT/POST oznámenia.</string>
<string name="add_dialog_topic_name_hint">Názov témy, napr. phils_alerts</string>
<string name="add_dialog_use_another_server">Použiť iný server</string>
<string name="add_dialog_use_another_server_description">Zadajte adresu URL služby a prihláste sa na odber tém z iných serverov.</string>
<string name="add_dialog_instant_delivery">Okamžité doručenie v režime spánku</string>
<string name="add_dialog_instant_delivery_description">Zabezpečuje okamžité doručenie správ, aj keď je zariadenie neaktívne.</string>
<string name="add_dialog_foreground_description">Okamžité doručenie je vždy zapnuté pre hostiteľov iných ako %1$s.</string>
<string name="add_dialog_button_cancel">Zrušiť</string>
<string name="add_dialog_button_subscribe">Prihlásiť sa na odber</string>
<string name="add_dialog_button_back">Späť</string>
<string name="add_dialog_button_login">Prihlásiť sa</string>
<string name="add_dialog_error_connection_failed">Pripojenie zlyhalo: %1$s</string>
<string name="add_dialog_login_description">Táto téma si vyžaduje prihlásenie. Zadajte prosím používateľské meno a heslo.</string>
<string name="add_dialog_title">Odoberať tému</string>
<string name="add_dialog_login_username_hint">Používateľské meno</string>
<string name="add_dialog_login_password_hint">Heslo</string>
<string name="add_dialog_login_error_not_authorized">Prihlásenie zlyhalo. Používateľ %1$s nie je autorizovaný.</string>
<string name="add_dialog_login_new_user">Nový používateľ</string>
<string name="add_dialog_base_urls_dropdown_choose">Výber URL adresy služby</string>
<string name="add_dialog_base_urls_dropdown_clear">Vymazanie URL adresy služby</string>
<string name="detail_no_notifications_text">K tejto téme ste zatiaľ nedostali žiadne upozornenia.</string>
<string name="detail_how_to_intro">Ak chcete posielať oznámenia do tejto témy, jednoducho zadajte adresu PUT alebo POST na URL adresu témy.</string>
<string name="detail_how_to_example">Príklad (pomocou curl):<br/><tt>$ curl -d \"Ahoj\" %1$s</tt></string>
<string name="detail_clear_dialog_cancel">Zrušiť</string>
<string name="detail_delete_dialog_message">Odhlásiť sa z tejto témy a vymazať všetky prijaté oznámenia\?</string>
<string name="detail_delete_dialog_permanently_delete">Vymazať natrvalo</string>
<string name="detail_delete_dialog_cancel">Zrušiť</string>
<string name="detail_clear_dialog_permanently_delete">Vymazať natrvalo</string>
<string name="detail_test_title">Test: Ak chcete, môžete nastaviť názov.</string>
<string name="detail_test_message">Toto je testovacie oznámenie z Android aplikácie ntfy. Má úroveň priority %1$d. Ak pošlete ďalšie, môže vyzerať inak.</string>
<string name="detail_test_message_error">Nemožno odoslať správu: %1$s</string>
<string name="detail_test_message_error_unauthorized_user">Nemožno odoslať správu: Používateľ \"%1$s\" nie je autorizovaný.</string>
<string name="detail_test_message_error_too_large">Nemožno odoslať správu: Príloha je príliš veľká.</string>
<string name="detail_copied_to_clipboard_message">Skopírované do schránky</string>
<string name="detail_instant_delivery_enabled">Okamžité doručovanie zapnuté</string>
<string name="detail_instant_delivery_disabled">Okamžité doručovanie vypnuté</string>
<string name="detail_deep_link_subscribed_toast_message">Prihlásený na odber témy %1$s</string>
<string name="detail_item_tags">Značky: %1$s</string>
<string name="detail_item_snack_deleted">Oznámenie odstránené</string>
<string name="detail_item_snack_undo">Odvolať</string>
<string name="detail_item_menu_open">Otvoriť súbor</string>
<string name="detail_item_menu_delete">Odstrániť súbor</string>
<string name="detail_item_menu_download">Stiahnuť súbor</string>
<string name="detail_item_menu_cancel">Zrušiť sťahovanie</string>
<string name="detail_item_menu_copy_url">Kopírovať adresu URL</string>
<string name="detail_item_menu_copy_url_copied">URL adresa skopírovaná do schránky</string>
<string name="detail_item_menu_copy_contents">Kopírovať oznámenie</string>
<string name="detail_item_saved_successfully">Uložené ako \"%1$s\" v priečinku \"Stiahnuté\"</string>
<string name="detail_item_cannot_open">Nie je možné otvoriť prílohu: %1$s</string>
<string name="detail_item_cannot_open_not_found">Nie je možné otvoriť prílohu: Súbor mohol byť vymazaný alebo ho nedokáže otvoriť žiadna nainštalovaná aplikácia.</string>
<string name="detail_item_cannot_open_url">Nie je možné otvoriť adresu URL: %1$s</string>
<string name="detail_item_cannot_delete">Nemožno odstrániť prílohu: %1$s</string>
<string name="detail_item_download_failed">Nepodarilo sa stiahnuť prílohu: %1$s</string>
<string name="detail_item_download_info_not_downloaded">nestiahnuté</string>
<string name="detail_item_download_info_not_downloaded_expired">nestiahnuté, odkaz vypršal</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% stiahnuté</string>
<string name="detail_item_download_info_deleted">zmazané</string>
<string name="detail_item_download_info_deleted_expired">zmazané, odkaz vypršal</string>
<string name="detail_item_download_info_deleted_expires_x">zmazané, platnosť odkazu končí %1$s</string>
<string name="detail_item_download_info_download_failed">stiahnutie zlyhalo</string>
<string name="detail_item_download_info_download_failed_expired">stiahnutie zlyhalo, odkaz vypršal</string>
<string name="detail_item_download_info_download_failed_expires_x">stiahnutie zlyhalo, platnosť odkazu končí %1$s</string>
<string name="detail_action_mode_menu_delete">Zmazať</string>
<string name="detail_action_mode_delete_dialog_message">Odstrániť vybrané oznámenie (oznámenia) natrvalo\?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Vymazať natrvalo</string>
<string name="detail_menu_settings">Nastavenia predplatného</string>
<string name="detail_menu_notifications_disabled_forever">Oznámenia stlmené</string>
<string name="detail_menu_notifications_disabled_until">Oznámenia stlmené do %1$s</string>
<string name="detail_menu_unsubscribe">Odhlásiť odber</string>
<string name="detail_menu_enable_instant">Povoliť okamžité doručenie</string>
<string name="detail_menu_disable_instant">Vypnúť okamžité doručenie</string>
<string name="detail_menu_test">Odoslať testovacie oznámenie</string>
<string name="detail_menu_clear">Vymazať všetky oznámenia</string>
<string name="share_menu_send">Zdielať</string>
<string name="share_content_title">Náhľad správy</string>
<string name="share_content_text_hint">Pridajte obsah na zdieľanie sem</string>
<string name="share_content_file_text">Bol s vami zdieľaný súbor</string>
<string name="share_content_file_error">Nie je možné prečítať informácie o súbore: %1$s</string>
<string name="share_topic_title">Zdieľať s</string>
<string name="share_suggested_topics">Navrhované témy</string>
<string name="share_successful">Správa zverejnená</string>
<string name="notification_dialog_title">Stlmiť oznámenia</string>
<string name="notification_dialog_cancel">Zrušiť</string>
<string name="notification_dialog_muted_forever_toast_message">Oznámenia stlmené</string>
<string name="notification_dialog_muted_until_toast_message">Oznámenia stlmené do %1$s</string>
<string name="notification_dialog_save">Uložiť</string>
<string name="notification_dialog_enabled_toast_message">Oznámenia boli obnovené</string>
<string name="notification_dialog_1h">1 hodina</string>
<string name="notification_dialog_2h">2 hodiny</string>
<string name="notification_dialog_8h">8 hodín</string>
<string name="notification_popup_action_cancel">Zrušiť</string>
<string name="settings_title">Nastavenia</string>
<string name="notification_dialog_tomorrow">Do zajtra</string>
<string name="notification_dialog_forever">Do obnovenia</string>
<string name="notification_popup_action_open">Otvoriť</string>
<string name="notification_popup_action_browse">Prehľadávať</string>
<string name="notification_popup_action_download">Stiahnuť</string>
<string name="notification_popup_file">%1$s
\nSúbor: %2$s</string>
<string name="notification_popup_file_downloading">Sťahovanie %1$s, %2$d%%
\n%3$s</string>
<string name="notification_popup_file_download_failed">%1$s
\nSúbor: %2$s, sťahovanie sa nepodarilo</string>
<string name="notification_popup_user_action_failed">%1$s sa nepodarilo: %2$s</string>
<string name="settings_notifications_muted_until_x">Oznámenia stlmené do %1$s</string>
<string name="settings_notifications_muted_until_title">Stlmiť oznámenia</string>
<string name="settings_notifications_header">Oznámenia</string>
<string name="settings_notifications_muted_until_show_all">Zobrazenie všetkých oznámení</string>
<string name="settings_notifications_min_priority_summary_any">Zobrazenie všetkých oznámení</string>
<string name="settings_notifications_muted_until_forever">Oznámenia stlmené až do obnovenia</string>
<string name="settings_notifications_min_priority_title">Najnižšia priorita</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Zobraziť oznámenia, ak je priorita %1$d (%2$s) alebo vyššia</string>
<string name="settings_notifications_min_priority_low">Nízka priorita a väčšia</string>
<string name="settings_notifications_min_priority_default">Predvolená priorita a väčšia</string>
<string name="settings_notifications_min_priority_high">Vysoká priorita a väčšia</string>
<string name="settings_notifications_min_priority_max">Iba maximálna priorita</string>
<string name="settings_notifications_priority_min">najnižšia</string>
<string name="settings_notifications_priority_low">nízka</string>
<string name="settings_notifications_channel_prefs_summary">Vypnutie funkcie Nerušiť (DND), zvuky atď.</string>
<string name="settings_notifications_auto_download_title">Stiahnuť prílohy</string>
<string name="settings_notifications_auto_download_summary_never">Automaticky nesťahovať prílohy</string>
<string name="settings_notifications_auto_download_summary_always">Automaticky sťahovať prílohy</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Automaticky sťahovať prílohy do %1$s</string>
<string name="settings_notifications_auto_download_never">Automaticky nesťahovať všetko</string>
<string name="settings_notifications_auto_download_always">Automaticky sťahovať všetko</string>
<string name="settings_notifications_auto_download_100k">Ak je menší ako 100 kB</string>
<string name="settings_notifications_auto_download_5m">Ak je menší ako 5 MB</string>
<string name="settings_notifications_auto_download_50m">Ak je menší ako 50 MB</string>
<string name="settings_notifications_auto_delete_title">Odstrániť oznámenia</string>
<string name="settings_notifications_auto_delete_summary_never">Nikdy automaticky neodstraňovať oznámenia</string>
<string name="settings_notifications_auto_delete_summary_one_day">Automaticky odstrániť oznámenia po jednom dni</string>
<string name="settings_notifications_auto_delete_summary_three_days">Automaticky odstrániť oznámenia po 3 dňoch</string>
<string name="settings_notifications_auto_delete_summary_one_week">Automaticky odstrániť oznámenia po jednom týždni</string>
<string name="settings_notifications_auto_delete_summary_three_months">Automaticky odstrániť oznámenia po 3 mesiacoch</string>
<string name="settings_notifications_auto_delete_never">Nikdy</string>
<string name="settings_notifications_auto_delete_one_day">Po jednom dni</string>
<string name="settings_notifications_auto_delete_three_days">Po 3 dňoch</string>
<string name="settings_notifications_auto_delete_one_week">Po jednom týždni</string>
<string name="settings_notifications_auto_delete_three_months">Po 3 mesiacoch</string>
<string name="settings_notifications_insistent_max_priority_title">Upozorňovať pre najvyššiu prioritu</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Upozornenia s maximálnou prioritou nepretržite upozorňujú, kým nie sú zrušené</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Oznámenia s maximálnou prioritou upozornia len raz</string>
<string name="settings_general_header">Všeobecné</string>
<string name="settings_general_default_base_url_message">Zadajte koreňovú URL adresu vášho servera, aby ste použili svoj vlastný server ako predvolený pri prihlásení na odber nových tém alebo zdieľaní tém.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (predvolené)</string>
<string name="settings_general_users_title">Správa používateľov</string>
<string name="settings_general_users_summary">Pridávanie/odstraňovanie používateľov pre chránené témy</string>
<string name="settings_general_users_prefs_user_not_used">Nepoužíva sa v žiadnych témach</string>
<string name="settings_general_users_prefs_user_used_by_many">Používa sa v témach %1$s</string>
<string name="settings_general_users_prefs_user_add">Pridať používateľov</string>
<string name="settings_general_users_prefs_user_add_title">Pridať nového používateľa</string>
<string name="settings_general_users_prefs_user_add_summary">Vytvoriť nového používateľa pre nový server</string>
<string name="settings_general_dark_mode_title">Tmavý režim</string>
<string name="settings_general_dark_mode_entry_dark">Tmavý režim</string>
<string name="settings_general_dark_mode_summary_system">Použiť predvolené nastavenia systému</string>
<string name="settings_general_dark_mode_summary_light">Svetlý režim zapnutý</string>
<string name="settings_general_dark_mode_summary_dark">Tmavý režim zapnutý. Ste upír\?</string>
<string name="settings_general_dark_mode_entry_system">Použiť predvolené nastavenie systému</string>
<string name="settings_general_dark_mode_entry_light">Svetlý režim</string>
<string name="settings_backup_restore_backup_entry_everything">Všetko</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Všetko okrem používateľov</string>
<string name="settings_backup_restore_backup_entry_settings_only">Iba nastavenia</string>
<string name="settings_backup_restore_backup_successful">Záloha vytvorená</string>
<string name="settings_backup_restore_backup_failed">Zálohovanie zlyhalo: %1$s</string>
<string name="settings_backup_restore_restore_summary">Importovať konfiguráciu, oznámenia a používateľov</string>
<string name="settings_backup_restore_restore_successful">Obnovenie úspešné</string>
<string name="settings_backup_restore_restore_failed">Obnovenie zlyhalo: %1$s</string>
<string name="settings_advanced_broadcast_title">Vysielanie správ</string>
<string name="settings_advanced_record_logs_title">Denníky záznamov</string>
<string name="settings_advanced_record_logs_summary_enabled">Zaznamenávanie (až 1 000 záznamov) do zariadenia …</string>
<string name="settings_advanced_export_logs_title">Kopírovanie/odosielanie protokolov</string>
<string name="settings_advanced_export_logs_summary">Kopírovať protokoly do schránky alebo nahrať na nopaste.net (vlastní autor ntfy). Názvy hostiteľov a témy môžu byť cenzurované, oznámenia nikdy nebudú.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Kopírovať do schránky</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Kopírovať do schránky (cenzurované)</string>
<string name="settings_advanced_export_logs_entry_upload_original">Nahrať a skopírovať odkaz</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Nahrať a skopírovať odkaz (cenzurované)</string>
<string name="settings_advanced_export_logs_uploading">Nahrávanie záznamu…</string>
<string name="settings_advanced_export_logs_copied_logs">Záznamy skopírované do schránky</string>
<string name="settings_advanced_record_logs_summary_disabled">Zapnite zaznamenávanie, aby ste mohli neskôr zdieľať záznamy a diagnostikovať problémy.</string>
<string name="settings_advanced_export_logs_copied_url">Záznamy nahrané a URL adresa skopírovaná</string>
<string name="settings_advanced_export_logs_error_uploading">Nepodarilo sa nahrať záznamy: %1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Tieto témy/názvy hostiteľov boli nahradené názvami ovocia, takže môžete bez obáv zdieľať záznamy:
\n
\n%1$s
\n
\nHeslá sú vymazané, ale nie sú tu uvedené.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Žiadne témy/názvy hostiteľov neboli redigované. Možno nemáte žiadne odbery\?</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_clear_logs_title">Vymazať záznamy</string>
<string name="settings_advanced_clear_logs_deleted_toast">Záznamy zmazané</string>
<string name="settings_advanced_connection_protocol_title">Protokol pripojenia</string>
<string name="settings_advanced_connection_protocol_summary_ws">Použiť WebSockets na pripojenie k serveru. Je to odporúčaná metóda, ale môže vyžadovať dodatočnú konfiguráciu v proxy serveri.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">Tok JSON cez HTTP</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Použiť tok JSON cez HTTP na pripojenie k serveru. Táto metóda je overená, avšak môže spotrebovať viac batérie.</string>
<string name="settings_about_header">O programe</string>
<string name="settings_advanced_connection_protocol_entry_ws">Protokol WebSockets</string>
<string name="settings_about_version_copied_to_clipboard_message">Skopírované do schránky</string>
<string name="detail_settings_notifications_open_channels_summary">Vypnutie funkcie Nerušiť (DND), zvuky atď.</string>
<string name="settings_about_version_title">Verzia</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_notifications_instant_title">Okamžité doručenie</string>
<string name="detail_settings_notifications_instant_summary_on">Oznámenia sa doručujú okamžite. Vyžaduje službu na popredí a spotrebúva viac batérie.</string>
<string name="detail_settings_notifications_instant_summary_off">Upozornenia sa doručujú pomocou služby Firebase. Doručenie sa môže oneskoriť, ale spotrebuje menej batérie.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Vlastné nastavenia oznámení</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Používanie vlastných nastavení pre toto predplatné</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Používanie predvolených nastavení (zvuky, zrušenie funkcie Nerušiť atď.)</string>
<string name="detail_settings_notifications_open_channels_title">Konfigurácia nastavení oznámení</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Stále upozorňovať</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Upozorniť len raz</string>
<string name="detail_settings_appearance_header">Vzhlad</string>
<string name="detail_settings_appearance_icon_set_title">Ikona odberu</string>
<string name="detail_settings_appearance_icon_set_summary">Nastavenie ikony, ktorá sa má zobrazovať v oznámeniach</string>
<string name="detail_settings_appearance_icon_remove_title">Ikona odberu (ťuknutím na ňu ho odstránite)</string>
<string name="detail_settings_appearance_icon_remove_summary">Ikona zobrazená v oznámeniach pre túto tému</string>
<string name="detail_settings_appearance_icon_error_saving">Ikonu sa nepodarilo uložiť: %1$s</string>
<string name="user_dialog_button_cancel">Zrušiť</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Skopírované do schránky</string>
<string name="user_dialog_button_save">Uložiť</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (predvolené)</string>
<string name="detail_settings_about_header">O programe</string>
<string name="detail_settings_global_setting_title">Použiť globálne nastavenie</string>
<string name="detail_settings_global_setting_suffix">používajú sa globálne nastavenia</string>
<string name="detail_settings_about_topic_url_title">URL Adresa témy</string>
<string name="user_dialog_title_add">Pridať používateľa</string>
<string name="user_dialog_button_add">Pridať používateľa</string>
<string name="user_dialog_description_edit">Môžete upraviť používateľské meno/heslo vybraného používateľa alebo ho vymazať.</string>
<string name="user_dialog_base_url_hint">URL Adresa služby</string>
<string name="user_dialog_username_hint">Používateľské meno</string>
<string name="user_dialog_password_hint_add">Heslo</string>
<string name="user_dialog_password_hint_edit">Heslo (nezmenené, ak zostane prázdne)</string>
<string name="user_dialog_button_delete">Odstrániť používateľa</string>
<string name="detail_settings_appearance_display_name_title">Zobrazený názov</string>
<string name="channel_notifications_min_name">Minimálna priorita</string>
<string name="channel_subscriber_notification_instant_text_four">Prihlásený na odber štyroch tém pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_noinstant_text">Prihlásený na odber tém</string>
<string name="channel_subscriber_notification_instant_text_five">Prihlásený na odber piatich tém pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_instant_text_two">Prihlásený na odber dvoch tém pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_instant_text_six">Prihlásený na odber šiestich tém pre okamžité doručovanie</string>
<string name="refresh_message_result">Prijatých %1$d oznámení</string>
<string name="channel_subscriber_notification_instant_text_one">Prihlásený na odber jednej témy pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_instant_text_three">Prihlásený na odber troch tém pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_instant_text_more">Prihlásený na odber %1$d tém pre okamžité doručovanie</string>
<string name="channel_subscriber_notification_noinstant_text_one">Prihlásený na odber jednej témy</string>
<string name="channel_subscriber_notification_noinstant_text_two">Prihlásený na odber dvoch tém</string>
<string name="channel_subscriber_notification_noinstant_text_three">Prihlásený na odber troch tém</string>
<string name="channel_subscriber_notification_noinstant_text_four">Prihlásený na odber štyroch tém</string>
<string name="channel_subscriber_notification_noinstant_text_five">Prihlásený na odber piatich tém</string>
<string name="channel_subscriber_notification_noinstant_text_six">Prihlásený na odber šiestich tém</string>
<string name="channel_subscriber_notification_noinstant_text_more">Prihlásený na odber %1$d tém</string>
<string name="main_item_status_text_one">%1$d oznámenie</string>
<string name="refresh_message_no_results">Všetko je aktualizované</string>
<string name="main_menu_settings_title">Nastavenia</string>
<string name="main_menu_report_bug_title">Nahlás chybu</string>
<string name="main_menu_rate_title">Ohodnotiť aplikáciu ⭐</string>
<string name="main_menu_docs_title">Prečítať dokumentáciu</string>
<string name="main_menu_notifications_disabled_until">Oznámenia stlmené do %1$s</string>
<string name="main_menu_donate_title">Prispieť 💸</string>
<string name="main_action_mode_delete_dialog_message">Odhlásiť odber z vybraných tém a natrvalo vymazať všetky oznámenia\?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Vymazať natrvalo</string>
<string name="main_action_mode_menu_unsubscribe">Odhlásiť odber</string>
<string name="main_action_mode_delete_dialog_cancel">Zrušiť</string>
<string name="main_item_status_text_not_one">%1$d oznámení</string>
<string name="main_item_status_reconnecting">obnovenie spojenia…</string>
<string name="main_add_button_description">Pridať odber</string>
<string name="main_item_date_yesterday">včera</string>
<string name="main_no_subscriptions_text">Zdá sa, že zatiaľ nemáte žiadne prihlásenia na odber.</string>
<string name="add_dialog_login_title">Vyžaduje sa prihlásenie</string>
<string name="detail_settings_title">Nastavenia predplatného</string>
<string name="share_title">Zdielať</string>
<string name="detail_action_mode_delete_dialog_cancel">Zrušiť</string>
<string name="share_content_image_text">Bol s vami zdieľaný obrázok</string>
<string name="share_content_image_error">Nemožno načítať obrázok: %1$s</string>
<string name="detail_menu_notifications_enabled">Oznámenia zapnuté</string>
<string name="detail_item_menu_save_file">Uložiť súbor</string>
<string name="detail_item_menu_copy_contents_copied">Oznámenie skopírované do schránky</string>
<string name="detail_test_message_error_unauthorized_anon">Nemožno odoslať správu: Anonymné publikovanie nie je povolené.</string>
<string name="detail_item_cannot_download">Nie je možné otvoriť alebo stiahnuť prílohu. Platnosť odkazu vypršala a nepodarilo sa nájsť žiadny miestny súbor.</string>
<string name="detail_item_cannot_open_apk">Aplikácie už nie je možné nainštalovať. Namiesto toho si ich stiahnite cez prehliadač. Podrobnosti nájdete v issue #531.</string>
<string name="detail_item_cannot_save">Nie je možné uložiť prílohu: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expires_x">nestiahnuté, vyprší %1$s</string>
<string name="detail_menu_copy_url">Kopírovať adresu témy</string>
<string name="detail_action_mode_menu_copy">Kopírovať</string>
<string name="settings_notifications_priority_default">predvolená</string>
<string name="notification_dialog_show_all">Zobraziť všetky oznámenia</string>
<string name="notification_popup_file_download_successful">%1$s
\nSúbor: %2$s, stiahnutý</string>
<string name="settings_notifications_min_priority_summary_max">Zobraziť oznámenia, ak je priorita 5 (max.)</string>
<string name="settings_notifications_priority_high">vysoká</string>
<string name="notification_dialog_30min">30 minút</string>
<string name="settings_notifications_min_priority_min">Akákoľvek priorita</string>
<string name="settings_notifications_channel_prefs_title">Nastavenia kanálu</string>
<string name="settings_notifications_priority_max">najvyššia</string>
<string name="settings_notifications_auto_download_500k">Ak je menší ako 500 kB</string>
<string name="settings_notifications_auto_download_1m">Ak je menší ako 1 MB</string>
<string name="settings_notifications_auto_download_10m">Ak je menší ako 10 MB</string>
<string name="settings_notifications_auto_delete_summary_one_month">Automaticky odstrániť oznámenia po jednom mesiaci</string>
<string name="settings_notifications_auto_delete_one_month">Po jednom mesiaci</string>
<string name="settings_general_default_base_url_title">Predvolený server</string>
<string name="settings_general_users_prefs_title">Používatelia</string>
<string name="settings_general_users_prefs_user_used_by_one">Používa sa v téme %1$s</string>
<string name="settings_backup_restore_header">Zálohovanie a obnovenie</string>
<string name="settings_backup_restore_backup_title">Zálohovanie do súboru</string>
<string name="settings_backup_restore_backup_summary">Export konfigurácie, oznámení a používateľov</string>
<string name="settings_backup_restore_restore_title">Obnovenie zo súboru</string>
<string name="settings_advanced_header">Pokročilé</string>
<string name="settings_advanced_broadcast_summary_enabled">Aplikácie môžu prijímať prichádzajúce oznámenia ako vysielanie</string>
<string name="settings_advanced_broadcast_summary_disabled">Aplikácie nemôžu prijímať oznámenia ako vysielanie</string>
<string name="settings_advanced_unifiedpush_title">Povolenie služby UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy nebude fungovať ako distribútor UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy bude fungovať ako distribútor UnifiedPush</string>
<string name="detail_how_to_link">Podrobné pokyny sú k dispozícii na stránke ntfy.sh a v dokumentácií.</string>
<string name="detail_clear_dialog_message">Vymazať všetky oznámenia v tejto téme\?</string>
<string name="settings_advanced_clear_logs_summary">Vymazať predtým zaznamenané záznamy a začať odznova</string>
<string name="detail_settings_appearance_display_name_message">Nastavenie vlastného zobrazovacieho názvu pre tento odber. Pre predvolené nastavenie (%1$s) nechajte prázdne.</string>
<string name="user_dialog_title_edit">Upraviť používateľa</string>
<string name="user_dialog_description_add">Používateľa môžete pridať tu. Tento používateľ bude použitý vo všetkých témach pre daný server.</string>
<string name="main_item_status_unified_push">%1$s (Služba UnifiedPush)</string>
</resources>

View file

@ -87,11 +87,11 @@
<string name="detail_instant_delivery_enabled">Omedelbar leverans på</string>
<string name="detail_instant_delivery_disabled">Omedelbar leverans av</string>
<string name="detail_deep_link_subscribed_toast_message">Prenumererar på ämne %1$s</string>
<string name="channel_notifications_min_name">Lägsta prioritet</string>
<string name="channel_notifications_low_name">Låg prioritet</string>
<string name="channel_notifications_high_name">Hög prioritet</string>
<string name="channel_notifications_default_name">Standard prioritet</string>
<string name="channel_notifications_max_name">Högsta prioritet</string>
<string name="channel_notifications_min_name">Meddelanden (lägsta prioritet)</string>
<string name="channel_notifications_low_name">Meddelanden (låg prioritet)</string>
<string name="channel_notifications_high_name">Meddelanden (hög prioritet)</string>
<string name="channel_notifications_default_name">Meddelanden (standardprioritet)</string>
<string name="channel_notifications_max_name">Meddelanden (högsta prioritet)</string>
<string name="channel_subscriber_notification_instant_text_more">Prenumererar på %1$d ämnen med omedelbar leverans</string>
<string name="main_menu_report_bug_title">Rapportera ett fel</string>
<string name="main_action_mode_delete_dialog_message">Avregistrera mig från de valda ämnena och radera alla meddelanden permanent\?</string>
@ -99,248 +99,4 @@
<string name="add_dialog_login_username_hint">Användarnamn</string>
<string name="add_dialog_login_password_hint">Lösenord</string>
<string name="detail_test_message_error_unauthorized_anon">Kan inte skicka meddelande: Anonym publicering är inte tillåten.</string>
<string name="detail_item_snack_deleted">Notifikation borttagen</string>
<string name="detail_item_menu_copy_url_copied">URL kopierad till urklipp</string>
<string name="detail_item_menu_copy_contents">Kopiera notifikation</string>
<string name="detail_item_menu_copy_contents_copied">Notifikation kopierad till urklipp</string>
<string name="detail_item_cannot_open_url">Kan inte öppna URL: %1$s</string>
<string name="detail_menu_clear">Rensa alla notifikationer</string>
<string name="detail_menu_test">Skicka testnotifikation</string>
<string name="detail_action_mode_menu_copy">Kopiera</string>
<string name="detail_action_mode_menu_delete">Ta bort</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Ta bort permanent</string>
<string name="detail_action_mode_delete_dialog_cancel">Avbryt</string>
<string name="detail_settings_title">Prenumerationsinställningar</string>
<string name="share_title">Dela</string>
<string name="share_menu_send">Dela</string>
<string name="main_menu_donate_title">Donera 💸</string>
<string name="detail_item_snack_undo">Ångra</string>
<string name="detail_item_menu_open">Öppna fil</string>
<string name="detail_item_menu_delete">Ta bort fil</string>
<string name="detail_item_menu_download">Ladda ner fil</string>
<string name="detail_item_menu_cancel">Avbryt nedladdning</string>
<string name="detail_item_menu_save_file">Spara fil</string>
<string name="detail_item_menu_copy_url">Kopiera URL</string>
<string name="detail_item_download_info_download_failed">nedladdning misslyckad</string>
<string name="detail_menu_settings">Prenumerationsinställningar</string>
<string name="channel_notifications_group_default_name">Förval</string>
<string name="detail_item_cannot_open_not_found">Kan inte öppna bifogat dokument: Filen kan ha raderats eller så kan inget installerat program öppna filen.</string>
<string name="detail_item_cannot_open_apk">Appar kan inte installeras längre. Ladda ned dem via webbläsaren istället. See Problem #531 för detaljer.</string>
<string name="add_dialog_topic_name_hint">Ämnesnamn, t. ex. phils_alerts</string>
<string name="detail_item_cannot_open">Kan inte öppna bifogat dokument: %1$s</string>
<string name="user_dialog_button_save">Spara</string>
<string name="detail_item_tags">Taggar: %1$s</string>
<string name="detail_item_saved_successfully">Sparad som \"%1$s\" inuti \"Downloads\" mappen</string>
<string name="detail_item_cannot_download">Kan inte öppna eller ladda ned bifogat dokument. Länken har uphört och ingen lokal fil hittades.</string>
<string name="detail_item_cannot_save">Kan inte spara bifogat dokument: %1$s</string>
<string name="detail_item_cannot_delete">Kan inte radera bifogat dokument: %1$s</string>
<string name="detail_item_download_info_not_downloaded_expires_x">nedladdning misslyckad, utgått %1$s</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% nedladdad</string>
<string name="detail_item_download_info_deleted_expires_x">bortagen, länk ogiltig %1$s</string>
<string name="detail_menu_notifications_enabled">Notifieringar på</string>
<string name="detail_menu_notifications_disabled_until">Notifieringar av till %1$s</string>
<string name="detail_menu_enable_instant">Aktivera direktmeddelande</string>
<string name="share_content_file_text">En fil var delad med dig</string>
<string name="notification_dialog_2h">2 timmar</string>
<string name="notification_popup_action_cancel">Avbryt</string>
<string name="notification_popup_file">%1$s
\nFil:%2$s</string>
<string name="notification_popup_file_downloading">Laddar ner %1$s,%2$d%%
\n%3$s</string>
<string name="notification_popup_file_download_successful">%1$s
\nFil:%2$s, nedladdad</string>
<string name="notification_popup_file_download_failed">%1$s
\nFil:%2$s, nedladdning misslyckad</string>
<string name="notification_popup_user_action_failed">%1$s misslyckad: %2$s</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Visa notifieringar om prioritet är %1$d (%2$s) eller högre</string>
<string name="settings_notifications_channel_prefs_title">Kanalinställningar</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">Ladda automatiskt ner bifogade filer upp till %1$s</string>
<string name="settings_notifications_auto_delete_summary_one_month">Radera notifieringarna efter en månad</string>
<string name="settings_notifications_auto_delete_summary_three_months">Radera notifieringarna efter 3 månader</string>
<string name="settings_notifications_insistent_max_priority_title">Fortsätt visa meddelande med högsta prioritet</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Notifieringar med max prioritet visas tills avvisats</string>
<string name="settings_advanced_clear_logs_title">Rensa loggar</string>
<string name="settings_backup_restore_backup_failed">Säkerhetskopiering%1$ misslyckad: %1$s</string>
<string name="settings_advanced_export_logs_copied_url">Loggfiler uppladdat och URL kopierad</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Använder anpassade inställningar för den här prenumerationen</string>
<string name="detail_settings_notifications_dedicated_channels_title">Egna notfieringsinställningar</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Använder standardinställningar (ljud, Stör ej åsidosättning, etc.)</string>
<string name="detail_settings_appearance_icon_error_saving">Kan ej att spara ikon:%1$s</string>
<string name="user_dialog_password_hint_add">Lösenord</string>
<string name="user_dialog_password_hint_edit">Lösenord (oförändrat om blankt)</string>
<string name="user_dialog_button_add">Lägg till användare</string>
<string name="user_dialog_button_cancel">Avbryt</string>
<string name="user_dialog_button_delete">Radera användare</string>
<string name="detail_item_download_failed">Kunde inte ladda ner bifogad fil: %1$s</string>
<string name="detail_item_download_info_not_downloaded">Nedladdning misslyckad</string>
<string name="detail_item_download_info_not_downloaded_expired">nedladdning misslyckad, länk ej giltig</string>
<string name="detail_item_download_info_deleted">borttagen</string>
<string name="detail_item_download_info_deleted_expired">borttagen, länk ogiltig</string>
<string name="detail_menu_notifications_disabled_forever">Notifieringar av</string>
<string name="detail_item_download_info_download_failed_expired">nedladdning misslyckad, länk ogiltig</string>
<string name="detail_menu_copy_url">Kopiera ämnesraden</string>
<string name="detail_menu_unsubscribe">avslutad prenumeration</string>
<string name="detail_menu_disable_instant">Inaktivera direktmeddelande</string>
<string name="detail_action_mode_delete_dialog_message">Ta bort markerat meddelande(n) permanent\?</string>
<string name="share_content_text_hint">Lägg till innehåll att dela här</string>
<string name="share_content_image_text">En bild har blivit delad med dig</string>
<string name="share_content_title">Förhandsgranska meddelande</string>
<string name="share_content_image_error">Kan inte läsa bild:%1$s</string>
<string name="share_suggested_topics">Ämnesförslag</string>
<string name="notification_dialog_title">Inaktivera notifikationer</string>
<string name="share_topic_title">Dela med</string>
<string name="notification_dialog_enabled_toast_message">Notifikationer aktiverat</string>
<string name="notification_dialog_muted_forever_toast_message">Notifikationer inaktiverat</string>
<string name="notification_dialog_muted_until_toast_message">Notifikationer inaktiverat till %1$s</string>
<string name="notification_dialog_save">Spara</string>
<string name="notification_popup_action_browse">Bläddra</string>
<string name="notification_dialog_forever">Tills återaktiverad</string>
<string name="notification_popup_action_open">Öppna</string>
<string name="notification_popup_action_download">Ladda ner</string>
<string name="settings_notifications_muted_until_title">Inaktivera notifieringar</string>
<string name="settings_notifications_muted_until_show_all">Visa alla notifieringar</string>
<string name="settings_notifications_muted_until_forever">Notifieringar inaktiverade tillsvidare</string>
<string name="settings_title">Inställningar</string>
<string name="settings_notifications_header">Notifieringar</string>
<string name="settings_notifications_min_priority_high">Hög prioritet eller högre</string>
<string name="settings_notifications_min_priority_max">Bara högsta prioritet</string>
<string name="settings_notifications_priority_min">min</string>
<string name="settings_notifications_priority_low">låg</string>
<string name="settings_notifications_priority_default">standard</string>
<string name="settings_notifications_priority_high">hög</string>
<string name="settings_notifications_min_priority_summary_max">Visa notifieringar om prioritet är 5 (max)</string>
<string name="settings_notifications_min_priority_min">Alla prioriteringar</string>
<string name="settings_notifications_min_priority_low">Låg prioritet eller högre</string>
<string name="settings_notifications_min_priority_default">Normal prioritet eller högre</string>
<string name="settings_notifications_priority_max">max</string>
<string name="settings_notifications_channel_prefs_summary">Stör ej (DND) åsidosätt ljud, etc.</string>
<string name="settings_notifications_auto_download_title">Ladda ner filer</string>
<string name="settings_notifications_auto_download_summary_never">Ladda inte automatiskt ner alla filer</string>
<string name="settings_notifications_auto_download_summary_always">Automatiskt ladda ner alla filer</string>
<string name="settings_notifications_auto_download_100k">Om mindre än 100 KB</string>
<string name="settings_notifications_auto_download_500k">Om mindre än 500 KB</string>
<string name="settings_notifications_auto_download_50m">Om mindre än 50 MB</string>
<string name="settings_notifications_auto_delete_title">Radera notifieringarna</string>
<string name="settings_notifications_auto_download_never">Ladda aldrig ner något automatiskt</string>
<string name="settings_notifications_auto_download_1m">Om mindre än 1 MB</string>
<string name="settings_notifications_auto_download_5m">Om mindre än 5 MB</string>
<string name="settings_notifications_auto_delete_summary_one_day">Radera notifieringarna efter 1 dag</string>
<string name="settings_notifications_auto_delete_summary_three_days">Radera notifieringarna efter 3 dagar</string>
<string name="settings_notifications_auto_delete_never">Aldrig</string>
<string name="settings_notifications_auto_delete_one_day">Efter en dag</string>
<string name="settings_notifications_auto_delete_three_days">Efter 3 dagar</string>
<string name="settings_general_users_summary">Lägg till/ta bort användare för privata ämnen</string>
<string name="settings_general_users_prefs_title">Användare</string>
<string name="settings_general_default_base_url_message">Ange din servers rot-URL för att använda din egen server som standard när du prenumererar på nya ämnen och/eller delar ämnen.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (standard)</string>
<string name="settings_general_users_title">Hantera användare</string>
<string name="settings_general_users_prefs_user_used_by_one">Används i ämne %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Används i ämnen %1$s</string>
<string name="settings_general_users_prefs_user_add">Lägg till användare</string>
<string name="settings_general_users_prefs_user_add_title">Lägg till ny användare</string>
<string name="settings_general_users_prefs_user_add_summary">Lägg till en ny användare för ny server</string>
<string name="settings_general_dark_mode_entry_light">Ljust tema</string>
<string name="settings_general_dark_mode_entry_dark">Mörkt tema</string>
<string name="settings_backup_restore_header">Säkerhetskopia &amp; återställning</string>
<string name="settings_backup_restore_backup_summary">Exportera inställningar, notifieringar och användare</string>
<string name="settings_general_dark_mode_summary_dark">Mörkt läge aktivt. Är du en vampyr\?</string>
<string name="settings_general_dark_mode_entry_system">Används systemstandard</string>
<string name="settings_backup_restore_backup_title">Säkerhetskopiera till fil</string>
<string name="settings_advanced_broadcast_title">Sända meddelanden</string>
<string name="settings_advanced_broadcast_summary_disabled">Appar kan inte ta emot meddelanden som sändningar</string>
<string name="settings_advanced_broadcast_summary_enabled">Appar kan ta emot inkommande meddelanden som sändningar</string>
<string name="settings_advanced_export_logs_summary">Kopiera loggtext till urklipp, eller ladda upp till nopaste.net (ägs av skaparen av ntfy). Datornamn och ämnen kan censureras, meddelandetext censureras aldrig.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Kopiera till urklipp</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Kopiera till urklipp (censurerat)</string>
<string name="settings_advanced_export_logs_error_uploading">Kunde inte ladda upp loggar:%1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Dessa ämnen/hostnamn ersattes med fruktnamn, så att du kan dela loggen utan att vara orolig:
\n
\n%1$s
\n
\nLösenord har rensats, men de finns inte med här.</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Inga ämnen eller värdnamn har redigerats. Du kanske inte har några prenumerationer\?</string>
<string name="settings_advanced_clear_logs_deleted_toast">Loggar raderade</string>
<string name="settings_advanced_connection_protocol_title">Anslutningsprotokoll</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Använd en JSON-ström över HTTP för att ansluta till servern. Den här metoden är beprövad, men kan förbruka mer batteri.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">JSON stream över HTTP</string>
<string name="detail_settings_notifications_instant_summary_on">Notifieringarna levereras direkt. Kräver att appen aktivt körs vilket kräver mer batteri.</string>
<string name="settings_about_version_title">Version</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="settings_about_version_copied_to_clipboard_message">Kopierad till urklipp</string>
<string name="detail_settings_appearance_header">Utseende</string>
<string name="detail_settings_notifications_instant_title">Omedelbar leverans</string>
<string name="detail_settings_appearance_icon_set_title">Prenumerationsikon</string>
<string name="detail_settings_appearance_icon_set_summary">Välj en ikon att visa i notifieringarna</string>
<string name="detail_settings_appearance_icon_remove_title">Prenumerationsikon (tryck för att radera)</string>
<string name="detail_settings_global_setting_suffix">Använder de globala inställningarna</string>
<string name="detail_settings_about_header">Om</string>
<string name="detail_item_download_info_download_failed_expires_x">nedladdning misslyckad, länk ogiltig %1$s</string>
<string name="notification_dialog_show_all">Visa alla notifikationer</string>
<string name="share_content_file_error">Kan inte läsa filinformation:%1$s</string>
<string name="notification_dialog_30min">30 minuter</string>
<string name="notification_dialog_8h">8 timmar</string>
<string name="notification_dialog_tomorrow">Tills imorgon</string>
<string name="settings_notifications_min_priority_title">Låg prioritet</string>
<string name="settings_notifications_muted_until_x">Notifieringar inaktiverad till %1$s</string>
<string name="settings_notifications_min_priority_summary_any">Visa alla notifieringar</string>
<string name="settings_notifications_auto_delete_summary_never">Radera aldrig notifieringarna</string>
<string name="settings_notifications_auto_delete_one_week">Efter en vecka</string>
<string name="settings_notifications_auto_delete_one_month">Efter en månad</string>
<string name="settings_notifications_auto_delete_three_months">Efter 3 månader</string>
<string name="settings_general_header">Allmänt</string>
<string name="settings_general_default_base_url_title">Standardserver</string>
<string name="settings_general_users_prefs_user_not_used">Används inte av något ämne</string>
<string name="settings_general_dark_mode_title">Mörkt tema</string>
<string name="settings_general_dark_mode_summary_system">Använd enhetens standardinställning</string>
<string name="settings_general_dark_mode_summary_light">Ljust tema aktivt</string>
<string name="settings_backup_restore_backup_entry_everything">Allt</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Allt, förutom användare</string>
<string name="settings_backup_restore_backup_successful">Säkerhetskopia skapad</string>
<string name="settings_backup_restore_backup_entry_settings_only">Endast inställningar</string>
<string name="settings_backup_restore_restore_summary">Importera inställningar, notifieringar och användare</string>
<string name="settings_backup_restore_restore_successful">Återställning slutförd</string>
<string name="settings_advanced_export_logs_title">Kopiera/ladda upp loggar</string>
<string name="settings_backup_restore_restore_failed">Återställning misslyckades: %1$s</string>
<string name="settings_advanced_header">Avancerat</string>
<string name="settings_advanced_record_logs_title">Spara loggar</string>
<string name="settings_advanced_clear_logs_summary">Rensa alla gamla loggar, börja på nytt</string>
<string name="user_dialog_title_edit">Editera användare</string>
<string name="user_dialog_description_edit">Du kan redigera användarnamn/lösenord för den valda användaren eller ta bort den.</string>
<string name="settings_advanced_record_logs_summary_enabled">Loggar (upp till 1 000 poster) till enhet …</string>
<string name="settings_advanced_record_logs_summary_disabled">Aktivera loggning, så du kan dela loggar för felsökning.</string>
<string name="settings_advanced_export_logs_entry_upload_original">Ladda upp och kopiera länk</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Ladda upp och kopiera länk (censurerat)</string>
<string name="settings_advanced_export_logs_copied_logs">Loggar kopierat till urklipp</string>
<string name="settings_advanced_export_logs_uploading">Laddar upp loggfil…</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSockets</string>
<string name="settings_about_header">Om</string>
<string name="detail_settings_notifications_instant_summary_off">Notifieringar levereras genom Firebase. Viss fördröjning kan förekomma, men kräver mindre batteri.</string>
<string name="detail_settings_notifications_open_channels_title">Anpassa notifieringsinställningarna</string>
<string name="detail_settings_notifications_open_channels_summary">Stör ej (DND) åsidosätts, ljud, etc.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Fortsätt meddela</string>
<string name="detail_settings_appearance_display_name_title">Visningsnamn</string>
<string name="detail_settings_appearance_display_name_message">Sätt ett eget visningsnamn för denna prenumeration. Lämna blank för standard (%1$s).</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (standard)</string>
<string name="detail_settings_about_topic_url_title">Ämnes-URL</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Kopierad till urklipp</string>
<string name="user_dialog_title_add">Lägg till användare</string>
<string name="user_dialog_description_add">Du kan lägga till en användare här. Alla ämnen för den givna servern kommer att använda den här användaren.</string>
<string name="user_dialog_base_url_hint">Service-URL</string>
<string name="user_dialog_username_hint">Användarnamn</string>
<string name="share_successful">Meddelande publicerat</string>
<string name="notification_dialog_cancel">Avbryt</string>
<string name="notification_dialog_1h">1 timme</string>
<string name="settings_notifications_auto_delete_summary_one_week">Radera notifieringarna efter en vecka</string>
<string name="settings_notifications_auto_download_always">Ladda automatiskt ner allt</string>
<string name="settings_notifications_auto_download_10m">Om mindre än 10 MB</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Notifieringar med max prioritet visas endast en gång</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy kommer att fungera som distributör av notifieringar</string>
<string name="settings_backup_restore_restore_title">Återställ från fil</string>
<string name="settings_advanced_unifiedpush_title">Aktivera pushnotiser</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy kommer inte att fungera som distributör av notifieringar</string>
<string name="settings_advanced_connection_protocol_summary_ws">Använd WebSockets för att ansluta till servern. Detta är den rekommenderade metoden, men kan kräva ytterligare konfiguration i din proxy.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Meddela endast en gång</string>
<string name="detail_settings_global_setting_title">Använd de globala inställningarna</string>
<string name="detail_settings_appearance_icon_remove_summary">Ikon som visas i meddelanden för detta ämne</string>
</resources>

View file

@ -2,8 +2,8 @@
<resources>
<string name="main_item_status_text_one">%1$d bildirim</string>
<string name="detail_how_to_intro">Bu konuya bildirim göndermek için konu URL\'sine PUT veya POST göndermeniz yeterlidir.</string>
<string name="channel_notifications_low_name">Düşük öncelik</string>
<string name="channel_notifications_default_name">Öntanımlı öncelik</string>
<string name="channel_notifications_low_name">Bildirimler (düşük öncelik)</string>
<string name="channel_notifications_default_name">Bildirimler (öntanımlı öncelik)</string>
<string name="channel_subscriber_service_name">Abonelik Hizmeti</string>
<string name="channel_subscriber_notification_title">Gelen bildirimler için dinleniyor</string>
<string name="channel_subscriber_notification_instant_text">Anında teslimat konularına abone olundu</string>
@ -13,7 +13,7 @@
<string name="channel_subscriber_notification_instant_text_more">%1$d anında teslimat konusuna abone olundu</string>
<string name="channel_subscriber_notification_noinstant_text">Konulara abone olundu</string>
<string name="channel_subscriber_notification_noinstant_text_one">Bir konuya abone olundu</string>
<string name="channel_notifications_min_name">En düşük öncelik</string>
<string name="channel_notifications_min_name">Bildirimler (en düşük öncelik)</string>
<string name="channel_subscriber_notification_instant_text_four">Dört anında teslimat konusuna abone olundu</string>
<string name="channel_subscriber_notification_noinstant_text_four">Dört konuya abone olundu</string>
<string name="refresh_message_no_results">Her şey güncel</string>
@ -174,7 +174,7 @@
<string name="settings_advanced_connection_protocol_title">Bağlantı protokolü</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Sunucuya bağlanmak için HTTP üzerinden bir JSON akışı kullanın. Bu yöntem iyi test edilmiştir, ancak daha fazla pil tüketebilir.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Sunucuya bağlanmak için WebSockets kullanın. Bu tavsiye edilen yöntemdir, ancak vekilinizde ek yapılandırma gerektirebilir.</string>
<string name="channel_notifications_max_name">En yüksek öncelik</string>
<string name="channel_notifications_max_name">Bildirimler (en yüksek öncelik)</string>
<string name="channel_subscriber_notification_noinstant_text_two">İki konuya abone olundu</string>
<string name="main_add_button_description">Abonelik ekle</string>
<string name="detail_clear_dialog_message">Bu konudaki tüm bildirimler silinsin mi\?</string>
@ -195,7 +195,7 @@
<string name="user_dialog_button_cancel">İptal</string>
<string name="user_dialog_button_delete">Kullanıcı sil</string>
<string name="user_dialog_button_save">Kaydet</string>
<string name="channel_notifications_high_name">Yüksek öncelik</string>
<string name="channel_notifications_high_name">Bildirimler (yüksek öncelik)</string>
<string name="channel_subscriber_notification_noinstant_text_three">Üç konuya abone olundu</string>
<string name="refresh_message_result">%1$d bildirim alındı</string>
<string name="main_action_mode_delete_dialog_cancel">İptal</string>
@ -327,20 +327,4 @@
<string name="detail_settings_about_header">Hakkında</string>
<string name="detail_settings_about_topic_url_title">Konu URL\'si</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Panoya kopyalandı</string>
<string name="main_menu_donate_title">Bağış yap 💸</string>
<string name="detail_item_cannot_open_apk">Uygulamalar artık kurulamıyor. Bunun yerine tarayıcı üzerinden indirin. Ayrıntılar için sorun #531\'e bakın.</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">En yüksek öncelikli bildirimler yalnızca bir kez uyarı verir</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Bu abonelik için özel ayarları kullan</string>
<string name="detail_settings_notifications_open_channels_title">Bildirim ayarlarını yapılandır</string>
<string name="detail_settings_notifications_open_channels_summary">Rahatsız Etmeyin (DND) özelliğini geçersiz kıl, sesler vb.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Uyarmaya devam et</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Yalnızca bir kez uyar</string>
<string name="settings_notifications_insistent_max_priority_title">En yüksek öncelik için uyarmaya et</string>
<string name="detail_settings_notifications_dedicated_channels_title">Özel bildirim ayarları</string>
<string name="channel_notifications_group_default_name">Öntanımlı</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">En yüksek öncelikli bildirimler kapatılana kadar sürekli uyarı verir</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Öntanımlı ayarları kullan (sesler, Rahatsız Etmeyin özelliğini geçersiz kıl, vb.)</string>
<string name="settings_advanced_unifiedpush_title">UnifiedPush\'u etkinleştir</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy bir UnifiedPush dağıtıcısı olarak davranmayacaktır</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy bir UnifiedPush dağıtıcısı olarak davranacaktır</string>
</resources>

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Мінімальний пріоритет</string>
<string name="channel_notifications_default_name">Звичайний пріоритет</string>
<string name="channel_notifications_low_name">Низький пріоритет</string>
<string name="channel_notifications_high_name">Високий пріоритет</string>
<string name="channel_notifications_max_name">Максимальний пріоритет</string>
<string name="channel_notifications_min_name">Сповіщення (мінімальний пріоритет)</string>
<string name="channel_notifications_default_name">Сповіщення (звичайний пріоритет)</string>
<string name="channel_notifications_low_name">Сповіщення (низький пріоритет)</string>
<string name="channel_notifications_high_name">Сповіщення (високий пріоритет)</string>
<string name="channel_notifications_max_name">Сповіщення (максимальний пріоритет)</string>
<string name="channel_subscriber_service_name">Абонементна Послуга</string>
<string name="channel_subscriber_notification_title">Очікую вхідні сповіщення</string>
<string name="channel_subscriber_notification_instant_text">Підписався на теми миттєвої доставки</string>
@ -12,7 +12,7 @@
<string name="detail_settings_appearance_display_name_default_summary">%1$s (за умовчанням)</string>
<string name="detail_settings_appearance_display_name_message">Встановіть спеціальну відображувану назву для цієї підписки. Залиште поле порожнім для умовчання (%1$s).</string>
<string name="user_dialog_base_url_hint">URL служби</string>
<string name="add_dialog_use_another_server_description">Введіть URL-адресу сервісу нижче, щоб підписатися на теми з інших серверів.</string>
<string name="add_dialog_use_another_server_description">Введіть URL-адреси служби нижче, щоб підписатися на теми з інших серверів.</string>
<string name="detail_item_cannot_open_url">Неможливо відкрити URL: %1$s</string>
<string name="detail_item_menu_cancel">Скасувати завантаження</string>
<string name="share_topic_title">Поділитися з</string>
@ -67,15 +67,15 @@
<string name="main_banner_battery_button_remind_later">Запитайте пізніше</string>
<string name="main_banner_battery_button_dismiss">Відхилити</string>
<string name="main_banner_battery_button_fix_now">Виправ зараз</string>
<string name="add_dialog_title">Підписатися на тему</string>
<string name="add_dialog_title">Підпишіться на тему</string>
<string name="add_dialog_description_below">Теми можуть не бути захищені паролем, тому виберіть назву, яку важко вгадати. Після підписки ви можете PUT/POST сповіщення.</string>
<string name="add_dialog_topic_name_hint">Назва теми, наприклад phils_alerts</string>
<string name="add_dialog_use_another_server">Використовувати інший сервер</string>
<string name="add_dialog_use_another_server">Використовуйте інший сервер</string>
<string name="add_dialog_instant_delivery">Миттєва доставка в режимі дрімання</string>
<string name="add_dialog_instant_delivery_description">Забезпечує миттєву доставку повідомлень, навіть якщо пристрій неактивний.</string>
<string name="add_dialog_foreground_description">Миттєва доставка завжди ввімкнена для хостів, відмінних від %1$s.</string>
<string name="add_dialog_button_cancel">Скасувати</string>
<string name="add_dialog_button_subscribe">Підписатися</string>
<string name="add_dialog_button_subscribe">Підпишіться</string>
<string name="add_dialog_button_back">Назад</string>
<string name="detail_clear_dialog_cancel">Скасувати</string>
<string name="detail_delete_dialog_message">Скасувати підписку на цю тему та видалити всі отримані сповіщення\?</string>
@ -93,10 +93,10 @@
<string name="detail_settings_global_setting_suffix">за допомогою глобальних налаштувань</string>
<string name="channel_subscriber_notification_noinstant_text">Підписався на теми</string>
<string name="channel_subscriber_notification_instant_text_one">Підписався на одну тему миттєвої доставки</string>
<string name="channel_subscriber_notification_instant_text_two">Підписався на дві теми миттєвої доставки</string>
<string name="channel_subscriber_notification_instant_text_two">Підписався на дві теми моментальної доставки</string>
<string name="channel_subscriber_notification_noinstant_text_one">Підписався на одну тему</string>
<string name="channel_subscriber_notification_noinstant_text_more">Підписано на %1$d тем</string>
<string name="channel_subscriber_notification_instant_text_three">Підписався на три теми миттєвої доставки</string>
<string name="channel_subscriber_notification_instant_text_three">Підписався на три теми моментальної доставки</string>
<string name="channel_subscriber_notification_instant_text_four">Підписався на чотири теми миттєвої доставки</string>
<string name="channel_subscriber_notification_instant_text_more">Підписано на %1$d тем миттєвої доставки</string>
<string name="channel_subscriber_notification_noinstant_text_two">Підписався на дві теми</string>
@ -327,20 +327,4 @@
<string name="main_banner_websocket_button_dismiss">Відхилити</string>
<string name="main_banner_websocket_button_enable_now">Увімкнути зараз</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Використовуйте потік JSON через HTTP для підключення до сервера. Цей метод перевірено в боях, але може споживати більше заряду батареї.</string>
<string name="channel_notifications_group_default_name">За замовчуванням</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Використання налаштувань за замовчуванням (звуки, \"Не турбувати\" тощо)</string>
<string name="detail_settings_notifications_open_channels_summary">Перевизначення режиму \"Не турбувати\" (DND), звуки тощо.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Продовжувати сповіщати</string>
<string name="main_menu_donate_title">Пожертвувати 💸</string>
<string name="settings_notifications_insistent_max_priority_title">Безперервне сповіщення для найвищого пріоритету</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Сповіщення з максимальним пріоритетом безперервно сповіщають, доки не будуть закриті</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Сповіщення з максимальним пріоритетом сповіщають лише один раз</string>
<string name="detail_settings_notifications_dedicated_channels_title">Користувацькі налаштування сповіщень</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Використання користувацьких налаштувань для цієї підписки</string>
<string name="detail_settings_notifications_open_channels_title">Налаштування параметрів сповіщень</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Сповіщати лише один раз</string>
<string name="detail_item_cannot_open_apk">Додаток більше не можна встановити. Натомість завантажуйте через браузер. Подробиці читайте у проблемі #531.</string>
<string name="settings_advanced_unifiedpush_title">Увімкнути UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy буде виступати в якості дистриб\'ютора UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy не буде виступати в ролі дистриб\'ютора UnifiedPush</string>
</resources>

View file

@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_min_name">Minimal ustuvorlik</string>
<string name="channel_notifications_low_name">Kam ustuvorlik</string>
<string name="channel_notifications_default_name">Standart ustuvorlik</string>
<string name="channel_notifications_high_name">Yuqori ustuvorlik</string>
<string name="channel_notifications_max_name">Maksimal ustuvorlik</string>
<string name="channel_notifications_group_default_name">Standart</string>
<string name="channel_subscriber_service_name">Obuna xizmati</string>
<string name="channel_subscriber_notification_title">Kiruvchi bildirishnomalar tinglanmoqda</string>
<string name="channel_subscriber_notification_instant_text">Darhol yuborish mavzulariga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_one">Darhol yuborish mavzusiga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_four">To\'rtta darhol yuborish mavzulariga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_five">Beshta darhol yuborish mavzulariga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_six">Oltita darhol yuborish mavzulariga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_more">%1$d ta darhol yuborish mavzulariga obuna boldik</string>
<string name="channel_subscriber_notification_noinstant_text">Mavzularga obuna boldik</string>
<string name="channel_subscriber_notification_noinstant_text_one">Bitta mavzuga obuna boldik</string>
<string name="channel_subscriber_notification_noinstant_text_two">Ikkita mavzuga obuna boldik</string>
<string name="channel_subscriber_notification_noinstant_text_three">Uchta mavzuga obuna boldik</string>
<string name="refresh_message_no_results">Hammasi yangilangan</string>
<string name="refresh_message_error">%1$d ta obunani yangilab bolmadi
\n
\n%2$s</string>
<string name="channel_subscriber_notification_noinstant_text_more">%1$d ta mavzuga obuna boldik</string>
<string name="refresh_message_error_one">Obunani yangilab bolmadi: %1$s</string>
<string name="main_action_bar_title">Obuna bolgan mavzular</string>
<string name="main_menu_notifications_enabled">Bildirishnomalar yoqilgan</string>
<string name="main_menu_notifications_disabled_forever">Bildirishnomalar ovozi ochirilgan</string>
<string name="main_menu_settings_title">Sozlamalar</string>
<string name="main_menu_report_bug_title">Xatolik haqida xabar berish</string>
<string name="main_menu_docs_title">Hujjatlarni oqish</string>
<string name="main_menu_rate_title">Ilovani baholang ⭐</string>
<string name="main_action_mode_menu_unsubscribe">Obunani bekor qilish</string>
<string name="main_action_mode_delete_dialog_message">Tanlangan mavzu(lar)ga obunani bekor qilib barcha bildirishnomalarni butunlay ochirib tashlaysizmi?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">Butunlay ochirish</string>
<string name="main_item_status_text_one">%1$d ta bildirishnoma</string>
<string name="main_item_status_text_not_one">%1$d ta bildirishnomalar</string>
<string name="main_item_status_reconnecting">qayta ulanmoqda…</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_item_date_yesterday">kecha</string>
<string name="main_add_button_description">Obuna qoshish</string>
<string name="main_no_subscriptions_text">Sizda hali obuna yoqga oxshaydi.</string>
<string name="main_how_to_intro">Mavzu yaratish yoki unga obuna bolish uchun + belgisini bosing. Shundan song siz PUT yoki POST orqali xabarlarni yuborishda qurilmangizga bildirishnomalarni olasiz.</string>
<string name="main_how_to_link">Batafsil korsatmalar ntfy.sh saytida va hujjatlarda mavjud.</string>
<string name="main_unified_push_toast">Bu obuna %1$s tomonidan UnifiedPush orqali boshqariladi</string>
<string name="main_banner_battery_text">Bildirishnomalarni yetkazib berish bilan bogliq muammolarni oldini olish uchun ilovada batareya quvvatini optimallashtirish ochirilgan bolishi kerak.</string>
<string name="main_banner_battery_button_remind_later">Keyinroq sorang</string>
<string name="main_banner_battery_button_dismiss">Rad etish</string>
<string name="main_banner_battery_button_fix_now">Hozir tuzatish</string>
<string name="main_banner_websocket_text">WebSocketlarga otish serveringizga ulanishning tavsiya etilgan usuli bolib, batareya quvvatini oshirishi mumkin, lekin bu <a href="https://ntfy.sh/docs/config/#nginxapache2caddy">proksi-serveringizda qoshimcha sozlash</a>larni talab qiladi. Sozlamalarda ozgartirish mumkin.</string>
<string name="main_banner_websocket_button_remind_later">Keyinroq so\'rang</string>
<string name="main_banner_websocket_button_dismiss">Rad etish</string>
<string name="main_banner_websocket_button_enable_now">Hozir yoqish</string>
<string name="add_dialog_title">Mavzuga obuna bolish</string>
<string name="add_dialog_description_below">Mavzular parol bilan himoyalanmagan bolishi mumkin, shuning uchun taxmin qilish qiyin bolgan nomni tanlang. Obuna bolganingizdan song siz bildirishnomalarni PUT/POST qilishingiz mumkin.</string>
<string name="add_dialog_topic_name_hint">Mavzu nomi, masalan, phils_alerts</string>
<string name="add_dialog_use_another_server">Boshqa serverdan foydalanish</string>
<string name="add_dialog_instant_delivery">Darhol yuborish doze rejimida</string>
<string name="add_dialog_instant_delivery_description">Qurilma nofaol bolsa ham, xabarlar darhol yetkazilishini taminlaydi.</string>
<string name="add_dialog_foreground_description">Darhol yetkazish har doim %1$s dan boshqa hostlar uchun yoqilgan.</string>
<string name="add_dialog_button_cancel">Bekor qilish</string>
<string name="add_dialog_button_subscribe">Obuna bolish</string>
<string name="add_dialog_button_back">Orqaga</string>
<string name="add_dialog_button_login">Tizimga kirish</string>
<string name="add_dialog_error_connection_failed">Ulanish amalga oshmadi: %1$s</string>
<string name="add_dialog_login_title">Tizimga kirish talab qilinadi</string>
<string name="add_dialog_login_username_hint">Foydalanuvchi nomi</string>
<string name="add_dialog_login_password_hint">Parol</string>
<string name="add_dialog_login_new_user">Yangi foydalanuvchi</string>
<string name="add_dialog_base_urls_dropdown_choose">URL manzilini tanlang</string>
<string name="add_dialog_base_urls_dropdown_clear">URL manzilini tozalang</string>
<string name="detail_how_to_intro">Ushbu mavzu boyicha bildirishnomalarni yuborish uchun, mavzu URL manziliga PUT yoki POST sorov yuboring.</string>
<string name="detail_how_to_example">Misol (curl yordamida):<br/><tt>$ curl -d \"Salom\" %1$s</tt></string>
<string name="detail_how_to_link">Batafsil korsatmalar ntfy.sh saytida va hujjatlarda mavjud.</string>
<string name="detail_clear_dialog_message">Ushbu mavzudagi barcha bildirishnomalar ochirilsinmi?</string>
<string name="detail_clear_dialog_permanently_delete">Butunlay ochirish</string>
<string name="detail_delete_dialog_message">Ushbu mavzuga obunani bekor qilib, barcha qabul qilingan bildirishnomalar ochirilsinmi?</string>
<string name="detail_delete_dialog_cancel">Bekor qilish</string>
<string name="detail_test_title">Test: Agar xohlasangiz, sarlavha ornatishingiz mumkin.</string>
<string name="detail_test_message">Bu ntfy Android ilovasining sinov bildirishnomasidir. U %1$d darajadagi ustuvorlikka ega. Agar siz boshqasini yuborsangiz, u boshqacha korinishi mumkin.</string>
<string name="detail_test_message_error_too_large">Xabar yuborib bolmadi: biriktirma juda katta.</string>
<string name="detail_copied_to_clipboard_message">Xotiraga nusxa olindi</string>
<string name="detail_instant_delivery_enabled">Darhol yuborish yoqilgan</string>
<string name="detail_instant_delivery_disabled">Darhol yuborish ochirilgan</string>
<string name="detail_deep_link_subscribed_toast_message">%1$s mavzusiga obuna bolindi</string>
<string name="detail_item_tags">Teglar: %1$s</string>
<string name="detail_item_snack_deleted">Bildirishnoma ochirildi</string>
<string name="detail_item_menu_open">Faylni ochish</string>
<string name="detail_item_menu_delete">Faylni ochirish</string>
<string name="detail_item_menu_download">Faylni yuklab olish</string>
<string name="detail_item_menu_save_file">Faylni saqlash</string>
<string name="detail_item_menu_copy_url">URL manzilini nusxalash</string>
<string name="detail_item_menu_copy_url_copied">URL xotiraga nusxalandi</string>
<string name="detail_item_menu_copy_contents">Bildirishnomani nusxalash</string>
<string name="detail_item_saved_successfully">\"Yuklashlar\" jildida \"%1$s\" nomi bilan saqlandi</string>
<string name="detail_item_cannot_download">Biriktirmani ochib yoki yuklab bolmadi. Havola muddati eskirgan va fayl topilmadi.</string>
<string name="detail_item_cannot_open">Biriktirmani ochib bolmadi: %1$s</string>
<string name="detail_item_cannot_open_not_found">Biriktirmani ochib bolmadi: fayl ochirilgan bolishi mumkin yoki hech bir ornatilgan ilova faylni ocholmaydi.</string>
<string name="detail_item_cannot_open_apk">Ilovalarni boshqa ornatib bolmaydi. Buning orniga brauzer orqali yuklab oling. Tafsilotlar uchun #531 sonli muammoga qarang.</string>
<string name="detail_item_cannot_save">Biriktirma saqlanmadi: %1$s</string>
<string name="detail_item_cannot_delete">Biriktirmani ochirib bolmadi: %1$s</string>
<string name="detail_item_download_info_not_downloaded">yuklab olinmagan</string>
<string name="detail_item_download_info_not_downloaded_expired">yuklab olinmagan, havola eskirgan</string>
<string name="detail_item_download_info_not_downloaded_expires_x">yuklab olinmadi, muddati %1$s da tugaydi</string>
<string name="detail_item_download_info_downloading_x_percent">%1$d%% yuklab olindi</string>
<string name="detail_item_download_info_deleted">ochirildi</string>
<string name="detail_item_download_info_deleted_expired">ochirildi, havola eskirgan</string>
<string name="detail_item_download_info_deleted_expires_x">ochirildi, havola muddati %1$s da tugaydi</string>
<string name="detail_item_download_info_download_failed_expired">yuklash amalga oshmadi, havola eskirgan</string>
<string name="detail_item_download_info_download_failed_expires_x">yuklab olinmadi, havola muddati %1$s da tugaydi</string>
<string name="detail_menu_notifications_disabled_forever">Bildirishnomalar ovozi ochirildi</string>
<string name="detail_menu_notifications_disabled_until">Bildirishnomalar %1$s gacha ochirildi</string>
<string name="detail_menu_enable_instant">Darhol yuborishni yoqish</string>
<string name="detail_menu_disable_instant">Darhol yuborishni ochirish</string>
<string name="detail_menu_test">Sinov bildirishnomasini yuborish</string>
<string name="detail_menu_copy_url">Mavzu manzilini nusxalash</string>
<string name="detail_menu_settings">Obuna sozlamalari</string>
<string name="detail_menu_unsubscribe">Obunani bekor qilish</string>
<string name="detail_action_mode_menu_copy">Nusxalash</string>
<string name="detail_action_mode_menu_delete">Ochirish</string>
<string name="detail_action_mode_delete_dialog_message">Tanlangan bildirishnoma(lar) butunlay ochirilsinmi?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">Butunlay ochirish</string>
<string name="detail_action_mode_delete_dialog_cancel">Bekor qilish</string>
<string name="detail_settings_title">Obuna sozlamalari</string>
<string name="share_menu_send">Ulashish</string>
<string name="share_content_title">Xabarni oldindan korish</string>
<string name="share_content_text_hint">Ulashish uchun kontent qoshish</string>
<string name="share_content_image_text">Sizga ulashilgan rasm</string>
<string name="share_content_image_error">Rasmni oqib bolmaydi: %1$s</string>
<string name="share_content_file_text">Sizga ulashilgan fayl</string>
<string name="share_content_file_error">Fayl malumotlarini oqib bolmadi: %1$s</string>
<string name="share_suggested_topics">Taklif etilgan mavzular</string>
<string name="notification_dialog_cancel">Bekor qilish</string>
<string name="notification_dialog_save">Saqlash</string>
<string name="notification_dialog_enabled_toast_message">Bildirishnomalar davom ettirildi</string>
<string name="notification_dialog_1h">1 soat</string>
<string name="notification_popup_action_open">Ochish</string>
<string name="notification_popup_action_browse">Korib chiqish</string>
<string name="notification_popup_action_download">Yuklash</string>
<string name="notification_popup_action_cancel">Bekor qilish</string>
<string name="notification_popup_file">%1$s
\nFayl: %2$s</string>
<string name="notification_popup_file_downloading">Yuklab olinmoqda %1$s, %2$d%%
\n%3$s</string>
<string name="notification_popup_user_action_failed">%1$s bajarilmadi: %2$s</string>
<string name="settings_title">Sozlamalar</string>
<string name="settings_notifications_header">Bildirishnomalar</string>
<string name="settings_notifications_muted_until_title">Bildirishnomalarni ochirish</string>
<string name="settings_notifications_muted_until_show_all">Barcha bildirishnomalar korsatilmoqda</string>
<string name="settings_notifications_muted_until_forever">Davom etilgunga qadar bildirishnomalar ochirildi</string>
<string name="settings_notifications_muted_until_x">Bildirishnomalar %1$s gacha ochirildi</string>
<string name="settings_notifications_min_priority_summary_any">Barcha bildirishnomalar korsatilmoqda</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">Agar ustuvorlik %1$d (%2$s) yoki undan yuqori bolsa, bildirishnomalarni korsatish</string>
<string name="settings_notifications_min_priority_min">Har qanday ustuvorlik</string>
<string name="settings_notifications_min_priority_low">Kam ustuvorlik va undan yuqori</string>
<string name="settings_notifications_min_priority_high">Yuqori ustuvorlik va undan yuqori</string>
<string name="settings_notifications_min_priority_max">Faqat maksimal ustuvorlik</string>
<string name="settings_notifications_priority_min">min</string>
<string name="settings_notifications_priority_low">past</string>
<string name="settings_notifications_priority_default">standart</string>
<string name="settings_notifications_priority_high">yuqori</string>
<string name="settings_notifications_priority_max">maks</string>
<string name="settings_notifications_channel_prefs_title">Kanal sozlamalari</string>
<string name="settings_notifications_channel_prefs_summary">Bezovta qilinmasin (DND) rejimi, tovushlar va h.k.</string>
<string name="settings_notifications_auto_download_summary_always">Barcha biriktirmalarni avtomatik yuklab olish</string>
<string name="settings_notifications_auto_download_summary_never">Qoshimchalar hech qachon avtomatik yuklab olinmasin</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">%1$s gacha bolgan biriktirmalarni avtomatik yuklab olish</string>
<string name="settings_notifications_auto_download_never">Hech qachon biror narsa avtomatik yuklab olinmasin</string>
<string name="settings_notifications_auto_download_always">Hamma narsani avtomatik yuklab olish</string>
<string name="settings_notifications_auto_download_100k">100 kB dan past bolsa</string>
<string name="settings_notifications_auto_download_1m">1 MB dan past bolsa</string>
<string name="settings_notifications_auto_download_5m">5 MB dan past bolsa</string>
<string name="settings_notifications_auto_download_10m">10 MB dan past bolsa</string>
<string name="settings_notifications_auto_download_50m">50 MB dan past bolsa</string>
<string name="settings_notifications_auto_delete_summary_never">Hech qachon bildirishnomalar avtomatik ochirib tashlanmasin</string>
<string name="settings_notifications_auto_delete_summary_one_day">Bir kundan keyin bildirishnomalarni avtomatik ochirish</string>
<string name="settings_notifications_auto_delete_summary_one_month">Bir oydan keyin bildirishnomalarni avtomatik ochirish</string>
<string name="settings_notifications_auto_delete_never">Hech qachon</string>
<string name="settings_notifications_auto_delete_one_day">Bir kundan keyin</string>
<string name="settings_notifications_auto_delete_three_days">3 kundan keyin</string>
<string name="settings_notifications_auto_delete_one_week">Bir haftadan keyin</string>
<string name="settings_notifications_auto_delete_one_month">Bir oydan keyin</string>
<string name="settings_notifications_auto_delete_three_months">3 oydan keyin</string>
<string name="settings_notifications_insistent_max_priority_title">Yuqori ustuvorlik haqida ogohlantirish</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Maksimal ustuvor bildirishnomalar yopilmaguncha doimiy ravishda ogohlantiriladi</string>
<string name="settings_general_header">Umumiy</string>
<string name="settings_general_default_base_url_title">Standart server</string>
<string name="settings_general_default_base_url_message">Yangi mavzularga obuna bolish va/yoki mavzularga ulashishda oz serveringizdan standart foydalanish uchun serveringizning asosiy URL manzilini kiriting.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (standart)</string>
<string name="settings_general_users_title">Foydalanuvchilarni boshqarish</string>
<string name="settings_general_users_summary">Himoyalangan mavzular uchun foydalanuvchilarni qoshish/ochirish</string>
<string name="settings_general_users_prefs_user_not_used">Hech qanday mavzuda foydalanilmaydi</string>
<string name="settings_general_users_prefs_user_used_by_one">%1$s mavzusida foydalanilgan</string>
<string name="settings_general_users_prefs_user_used_by_many">%1$s mavzularida foydalaniladi</string>
<string name="settings_general_users_prefs_user_add">Foydalanuvchilarni qoshish</string>
<string name="settings_general_users_prefs_user_add_title">Yangi foydalanuvchi qoshish</string>
<string name="settings_general_users_prefs_user_add_summary">Yangi server uchun yangi foydalanuvchi yaratish</string>
<string name="settings_general_dark_mode_title">Qorongi rejim</string>
<string name="settings_general_dark_mode_summary_system">Standart tizimdan foydalanish</string>
<string name="settings_general_dark_mode_summary_light">Kunduzgi rejim yoqilgan</string>
<string name="settings_general_dark_mode_entry_light">Kunduzgi rejim</string>
<string name="settings_general_dark_mode_entry_dark">Qorongi rejim</string>
<string name="settings_backup_restore_header">Zaxiralash va Tiklash</string>
<string name="settings_backup_restore_backup_title">Faylga zaxiralash</string>
<string name="settings_backup_restore_backup_summary">Konfiguratsiya, bildirishnomalar va foydalanuvchilarni eksport qilish</string>
<string name="settings_backup_restore_backup_entry_everything">Hamma narsa</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">Foydalanuvchilardan tashqari hamma narsa</string>
<string name="settings_backup_restore_restore_title">Fayldan tiklash</string>
<string name="settings_backup_restore_restore_summary">Konfiguratsiya, bildirishnomalar va foydalanuvchilarni import qilish</string>
<string name="settings_advanced_broadcast_title">Xabarlarni uzatish</string>
<string name="settings_advanced_broadcast_summary_enabled">Ilovalar kiruvchi bildirishnomalarni translyatsiya sifatida qabul qilishi mumkin</string>
<string name="settings_advanced_unifiedpush_title">UnifiedPush-ni yoqing</string>
<string name="settings_advanced_export_logs_summary">Loglarni xotiraga nusxalash yoki nopaste.net saytiga yuklash (ntfy muallifiga tegishli). Xost nomlari va mavzular senzura qilinishi mumkin, bildirishnomalar hech qachon bo\'lmaydi.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Xotiraga nusxalash</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">Xotiraga nusxalash (senzura qilib)</string>
<string name="settings_advanced_export_logs_entry_upload_original">Havolani yuklash va nusxalash</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">Havolani yuklash va nusxalash (senzura qilib)</string>
<string name="settings_advanced_export_logs_copied_logs">Loglar xotiraga nusxalandi</string>
<string name="settings_advanced_export_logs_uploading">Log yuklanmoqda…</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">OK</string>
<string name="settings_advanced_clear_logs_deleted_toast">Loglar ochirildi</string>
<string name="settings_advanced_connection_protocol_title">Ulanish protokoli</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">Serverga ulanish uchun HTTP orqali JSON oqimidan foydalaning. Bu usul jangovar sinovdan otgan, lekin koproq batareyani istemol qilishi mumkin.</string>
<string name="settings_advanced_connection_protocol_summary_ws">Serverga ulanish uchun WebSocketlardan foydalaning. Bu tavsiya etilgan usul, lekin proksi-serveringizda qoshimcha sozlash talab qilinishi mumkin.</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">HTTP orqali JSON oqimi</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSocketlar</string>
<string name="settings_about_header">Haqida</string>
<string name="settings_about_version_title">Talqin</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="settings_about_version_copied_to_clipboard_message">Nusxalandi</string>
<string name="detail_settings_notifications_instant_title">Darhol yuborish</string>
<string name="detail_settings_notifications_instant_summary_on">Bildirishnomalar darhol yetkaziladi. Oldindan xizmat korsatishni talab qiladi va koproq batareya sarflaydi.</string>
<string name="detail_settings_notifications_instant_summary_off">Bildirishnomalar Firebase yordamida yetkaziladi. Yetkazib berish kechikishi mumkin, lekin batareyani kamroq sarflaydi.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Moslashtirilgan bildirishnoma sozlamalari</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Standart sozlamalardan foydalanish (tovushlar, Bezovta qilinmasin rejimini bekor qilish va h.k.)</string>
<string name="detail_settings_notifications_open_channels_title">Bildirishnoma sozlamalarini sozlash</string>
<string name="detail_settings_notifications_open_channels_summary">Bezovta qilinmasin (DND) rejimi, tovushlar va h.k.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Ogohlantirishni davom etish</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Faqat bir marta ogohlantirish</string>
<string name="detail_settings_appearance_header">Tashqi korinish</string>
<string name="detail_settings_appearance_icon_set_title">Obuna belgisi</string>
<string name="detail_settings_appearance_icon_set_summary">Bildirishnomalarda korsatiladigan belgini ornatish</string>
<string name="channel_subscriber_notification_noinstant_text_four">To\'rtta mavzuga obuna boldik</string>
<string name="channel_subscriber_notification_noinstant_text_six">Oltita mavzuga obuna boldik</string>
<string name="channel_subscriber_notification_instant_text_two">Ikkita darhol yuborish mavzulariga obuna boldik</string>
<string name="refresh_message_result">%1$d ta bildirishnoma qabul qilindi</string>
<string name="channel_subscriber_notification_instant_text_three">Uchta darhol yuborish mavzulariga obuna boldik</string>
<string name="main_menu_notifications_disabled_until">Bildirishnomalar %1$s gacha ochirilgan</string>
<string name="channel_subscriber_notification_noinstant_text_five">Beshta mavzuga obuna boldik</string>
<string name="main_menu_donate_title">Xayriya qiling 💸</string>
<string name="main_action_mode_delete_dialog_cancel">Bekor qilish</string>
<string name="add_dialog_use_another_server_description">Boshqa serverlardan mavzularga obuna bolish uchun quyida URL manzillarini kiriting.</string>
<string name="add_dialog_login_description">Ushbu mavzu tizimga kirishni talab qiladi. Iltimos, foydalanuvchi nomi va parolni kiriting.</string>
<string name="add_dialog_login_error_not_authorized">Tizimga kirishda xatolik yuz berdi. %1$s foydalanuvchiga ruxsat berilmagan.</string>
<string name="detail_no_notifications_text">Siz hali bu mavzu boyicha hech qanday bildirishnoma olmagansiz.</string>
<string name="detail_clear_dialog_cancel">Bekor qilish</string>
<string name="detail_delete_dialog_permanently_delete">Butunlay ochirish</string>
<string name="share_topic_title">Birovga ulashish</string>
<string name="detail_item_snack_undo">Qaytarish</string>
<string name="detail_item_menu_cancel">Yuklashni bekor qilish</string>
<string name="detail_item_menu_copy_contents_copied">Bildirishnoma xotiraga nusxalandi</string>
<string name="detail_item_download_failed">Biriktirma yuklab olinmadi: %1$s</string>
<string name="detail_item_download_info_download_failed">yuklab bolmadi</string>
<string name="detail_menu_clear">Barcha bildirishnomalarni tozalash</string>
<string name="share_title">Ulashish</string>
<string name="detail_test_message_error">Xabar yuborib bolmadi: %1$s</string>
<string name="detail_menu_notifications_enabled">Bildirishnomalar yoqilgan</string>
<string name="detail_test_message_error_unauthorized_anon">Xabar yuborib bolmadi: Anonim nashrga ruxsat berilmaydi.</string>
<string name="detail_test_message_error_unauthorized_user">Xabar yuborib bolmadi: \"%1$s\" foydalanuvchisiga ruxsat berilmagan.</string>
<string name="detail_item_cannot_open_url">URL manzilini ochib bolmadi: %1$s</string>
<string name="share_successful">Xabar yuborildi</string>
<string name="notification_dialog_title">Bildirishnomalar ovozini ochirish</string>
<string name="notification_dialog_muted_forever_toast_message">Bildirishnomalar ovozi ochirildi</string>
<string name="notification_dialog_muted_until_toast_message">Bildirishnomalar %1$s gacha ochirildi</string>
<string name="notification_dialog_show_all">Barcha bildirishnomalarni korsatish</string>
<string name="notification_dialog_30min">30 daqiqa</string>
<string name="notification_dialog_2h">2 soat</string>
<string name="notification_dialog_8h">8 soat</string>
<string name="notification_dialog_forever">Davom etgunga qadar</string>
<string name="notification_dialog_tomorrow">Ertaga qadar</string>
<string name="notification_popup_file_download_successful">%1$s
\nFayl: %2$s, yuklab olindi</string>
<string name="notification_popup_file_download_failed">%1$s
\nFayl: %2$s, yuklab olinmadi</string>
<string name="settings_notifications_min_priority_title">Minimum ustuvorlik</string>
<string name="settings_notifications_min_priority_summary_max">Agar ustuvorlik 5 (maksimal) bolsa, bildirishnomalarni korsatish</string>
<string name="settings_notifications_min_priority_default">Standart ustuvorlik va undan yuqori</string>
<string name="settings_notifications_auto_download_title">Biriktirmalarni yuklash</string>
<string name="settings_notifications_auto_download_500k">500 kB dan past bolsa</string>
<string name="settings_notifications_auto_delete_title">Bildirishnomalarni ochirib tashlash</string>
<string name="settings_backup_restore_backup_entry_settings_only">Faqat sozlamalar</string>
<string name="settings_general_dark_mode_summary_dark">Tungi rejim yoqilgan. Siz vampirmisiz?</string>
<string name="settings_general_dark_mode_entry_system">Tizim standartidan foydalanish</string>
<string name="settings_notifications_auto_delete_summary_three_days">3 kundan keyin bildirishnomalarni avtomatik ochirish</string>
<string name="settings_backup_restore_backup_successful">Zaxira yaratildi</string>
<string name="settings_advanced_broadcast_summary_disabled">Ilovalar bildirishnomalarni translyatsiya sifatida qabul qila olmaydi</string>
<string name="settings_advanced_record_logs_summary_enabled">Qurilmaga qayd qilinmoqda (1000 tagacha yozuvlar)…</string>
<string name="settings_notifications_auto_delete_summary_one_week">Bir haftadan song bildirishnomalarni avtomatik ochirish</string>
<string name="settings_backup_restore_backup_failed">Zaxiralash amalga oshmadi: %1$s</string>
<string name="settings_notifications_auto_delete_summary_three_months">3 oydan keyin bildirishnomalarni avtomatik ochirish</string>
<string name="settings_backup_restore_restore_successful">Qayta tiklash muvaffaqiyatli</string>
<string name="settings_backup_restore_restore_failed">Qayta tiklash amalga oshmadi: %1$s</string>
<string name="settings_advanced_header">Murakkab</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy UnifiedPush distribyutori sifatida ishlaydi</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Maksimal ustuvor bildirishnomalar faqat bir marta ogohlantiriladi</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy UnifiedPush distribyutori sifatida ishlamaydi</string>
<string name="settings_general_users_prefs_title">Foydalanuvchilar</string>
<string name="settings_advanced_record_logs_title">Loglarni yozib olish</string>
<string name="settings_advanced_record_logs_summary_disabled">Muammolarni aniqlash/ulashish uchun loggingni yoqish.</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Ushbu obuna uchun maxsus sozlamalardan foydalanish</string>
<string name="detail_settings_appearance_icon_remove_title">Obuna belgisi (olib tashlash uchun bosing)</string>
<string name="detail_settings_appearance_icon_remove_summary">Ushbu mavzu boyicha bildirishnomalarda korsatilgan belgi</string>
<string name="detail_settings_appearance_icon_error_saving">Belgini saqlab bolmadi: %1$s</string>
<string name="detail_settings_appearance_display_name_message">Ushbu obuna uchun maxsus korsatiladigan nomni ornating. Standart qoldirish uchun bosh qoldiring (%1$s).</string>
<string name="user_dialog_title_edit">Foydalanuvchini tahrirlash</string>
<string name="user_dialog_description_add">Siz bu yerga foydalanuvchi qoshishingiz mumkin. Berilgan server uchun barcha mavzular ushbu foydalanuvchidan foydalanadi.</string>
<string name="settings_advanced_export_logs_title">Loglarni nusxalash/yuklash</string>
<string name="settings_advanced_export_logs_copied_url">Loglar yuklandi va URL manzilidan nusxa olindi</string>
<string name="settings_advanced_export_logs_error_uploading">Loglarni yuklab bolmadi: %1$s</string>
<string name="settings_advanced_clear_logs_title">Loglarni tozalash</string>
<string name="detail_settings_appearance_display_name_title">Korsatiladigan ism</string>
<string name="user_dialog_description_edit">Tanlangan foydalanuvchi uchun foydalanuvchi nomi/parolni tahrirlashingiz yoki uni ochirishingiz mumkin.</string>
<string name="user_dialog_base_url_hint">Xizmat URL manzili</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">Ushbu mavzular/xost nomlari meva nomlari bilan almashtirildi, shuning uchun siz logni tashvishlanmasdan baham korishingiz mumkin:
\n
\n%1$s
\n
\nParollar tozalangan, ammo bu erda korsatilmagan.</string>
<string name="user_dialog_username_hint">Foydalanuvchi nomi</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (standart)</string>
<string name="user_dialog_password_hint_add">Parol</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">Hech qanday mavzu/xost nomlari tahrir qilinmadi. Balki sizda obuna yoqdir?</string>
<string name="detail_settings_about_topic_url_title">Mavzu manzili</string>
<string name="user_dialog_password_hint_edit">Parol (bosh qoldirilgan bo\'lsa, ozgartirilmagan)</string>
<string name="detail_settings_global_setting_title">Global sozlamalardan foydalanish</string>
<string name="user_dialog_button_add">Foydalanuvchi qoshish</string>
<string name="detail_settings_global_setting_suffix">global sozlamalardan foydalanilmoqda</string>
<string name="user_dialog_button_cancel">Bekor qilish</string>
<string name="settings_advanced_clear_logs_summary">Oldin yozilgan loglarni ochirib tashlang va qaytadan boshlang</string>
<string name="detail_settings_about_header">Haqida</string>
<string name="user_dialog_button_delete">Foydalanuvchini ochirish</string>
<string name="user_dialog_title_add">Foydalanuvchi qoshish</string>
<string name="user_dialog_button_save">Saqlash</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">Buferga nusxalandi</string>
</resources>

View file

@ -1,26 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_notifications_low_name">Ưu tiên thấp</string>
<string name="add_dialog_login_password_hint">Mật khẩu</string>
<string name="add_dialog_login_username_hint">Tên tài khoản</string>
<string name="add_dialog_login_description">Chủ đề này cần đăng nhập để truy cập. Vui lòng nhập tên tài khoản và mật khẩu.</string>
<string name="user_dialog_button_add">Thêm người dùng</string>
<string name="add_dialog_login_error_not_authorized">Đăng nhập thất bại. Không xác thực được tài khoản %1$s.</string>
<string name="user_dialog_description_edit">Bạn có thể chỉnh sửa tên tài khoản hoặc mật khẩu của người dùng này, hoặc xóa người dùng này khỏi hệ thống.</string>
<string name="user_dialog_button_save">Lưu</string>
<string name="user_dialog_password_hint_add">Mật khẩu</string>
<string name="add_dialog_topic_name_hint">Tên chủ đề, ví dụ: phils_alerts</string>
<string name="user_dialog_button_delete">Xóa người dùng</string>
<string name="user_dialog_button_cancel">Hủy</string>
<string name="add_dialog_use_another_server">Sử dụng máy chủ khác</string>
<string name="user_dialog_password_hint_edit">Mật khẩu (không đổi nếu để trống)</string>
<string name="add_dialog_title">Theo dõi chủ đề</string>
<string name="user_dialog_username_hint">Tên tài khoản</string>
<string name="channel_notifications_min_name">Ưu tiên thấp nhất</string>
<string name="channel_notifications_max_name">Ưu tiên cao nhất</string>
<string name="channel_notifications_group_default_name">Mặc định</string>
<string name="channel_subscriber_service_name">Dịch vụ thông báo</string>
<string name="channel_notifications_default_name">Mặc định</string>
<string name="channel_notifications_high_name">Ưu tiên cao</string>
<string name="channel_subscriber_notification_title">Chờ thông báo</string>
<string name="channel_notifications_low_name">Thông báo (ưu tiên thấp)</string>
</resources>

View file

@ -18,7 +18,7 @@
<string name="main_action_mode_delete_dialog_cancel">取消</string>
<string name="main_item_status_reconnecting">正在重新连接……</string>
<string name="main_item_date_yesterday">昨天</string>
<string name="main_item_status_unified_push">%1$s一推送)</string>
<string name="main_item_status_unified_push">%1$s一推送)</string>
<string name="main_how_to_link">详细的说明请见 ntfy.sh 和帮助文档。</string>
<string name="main_unified_push_toast">此通知由 %1$s 通过 UnifiedPush 管理</string>
<string name="main_banner_battery_text">请关闭对本应用的电量优化以避免通知推送问题。</string>
@ -69,7 +69,7 @@
<string name="detail_test_message_error">无法发送消息:%1$s</string>
<string name="detail_test_message_error_unauthorized_anon">无法发送消息:主题禁止匿名发布。</string>
<string name="detail_test_message_error_too_large">无法发送消息:附件体积过大。</string>
<string name="detail_copied_to_clipboard_message">复制到剪贴板</string>
<string name="detail_copied_to_clipboard_message">复制到剪贴板</string>
<string name="detail_instant_delivery_enabled">实时推送已开启</string>
<string name="detail_instant_delivery_disabled">实时推送已关闭</string>
<string name="detail_item_tags">标签:%1$s</string>
@ -139,11 +139,11 @@
<string name="notification_dialog_title">暂停通知</string>
<string name="notification_dialog_muted_forever_toast_message">通知已暂停</string>
<string name="notification_popup_action_download">下载</string>
<string name="channel_notifications_min_name">最低优先级</string>
<string name="channel_notifications_low_name">低优先级</string>
<string name="channel_notifications_default_name">默认优先级</string>
<string name="channel_notifications_high_name">高优先级</string>
<string name="channel_notifications_max_name">最高优先级</string>
<string name="channel_notifications_min_name">通知 (最低优先级)</string>
<string name="channel_notifications_low_name">通知 (低优先级)</string>
<string name="channel_notifications_default_name">通知 (默认优先级)</string>
<string name="channel_notifications_high_name">通知 (高优先级)</string>
<string name="channel_notifications_max_name">通知 (最高优先级)</string>
<string name="channel_subscriber_service_name">订阅服务</string>
<string name="channel_subscriber_notification_title">正在监听通知</string>
<string name="channel_subscriber_notification_noinstant_text">已订阅主题</string>
@ -219,7 +219,7 @@
<string name="settings_general_users_prefs_user_add_title">添加新用户</string>
<string name="settings_general_users_prefs_user_add_summary">为新服务器创建新用户</string>
<string name="settings_general_dark_mode_title">暗色模式</string>
<string name="settings_general_dark_mode_summary_system">使用系统默认</string>
<string name="settings_general_dark_mode_summary_system">跟随系统默认</string>
<string name="settings_general_dark_mode_entry_dark">暗色模式</string>
<string name="settings_general_dark_mode_summary_light">亮色模式已启用</string>
<string name="settings_backup_restore_backup_title">备份到文件</string>
@ -258,7 +258,7 @@
<string name="settings_general_dark_mode_entry_light">亮色模式</string>
<string name="settings_general_users_prefs_user_used_by_one">在主题 %1$s 使用</string>
<string name="settings_general_dark_mode_summary_dark">暗色模式已启用。您是吸血鬼吗?</string>
<string name="settings_general_dark_mode_entry_system">使用系统默认值</string>
<string name="settings_general_dark_mode_entry_system">跟随系统默认</string>
<string name="settings_advanced_clear_logs_summary">删除以前的日志并重新来过</string>
<string name="user_dialog_title_add">添加用户</string>
<string name="user_dialog_title_edit">编辑用户</string>
@ -271,7 +271,7 @@
<string name="settings_advanced_clear_logs_title">清除日志</string>
<string name="settings_advanced_clear_logs_deleted_toast">日志已删除</string>
<string name="settings_advanced_header">高级</string>
<string name="settings_advanced_record_logs_summary_disabled">记录日志以便稍后分享调试故障</string>
<string name="settings_advanced_record_logs_summary_disabled">记录日志以便调试错误</string>
<string name="settings_advanced_export_logs_title">复制 / 上传日志</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">以下主题/域名已被替换为水果名称,您可以放心分享日志:
\n
@ -325,22 +325,6 @@
<string name="add_dialog_base_urls_dropdown_clear">清除服务 URL</string>
<string name="main_banner_websocket_button_enable_now">马上开启</string>
<string name="detail_settings_about_header">关于</string>
<string name="detail_settings_about_topic_url_title">题 URL</string>
<string name="detail_settings_about_topic_url_title">题 URL</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">已复制到剪贴板</string>
<string name="main_menu_donate_title">捐赠 💸</string>
<string name="detail_item_cannot_open_apk">无法再安装应用。 请通过浏览器下载。 有关详细信息,请参阅问题 #531。</string>
<string name="channel_notifications_group_default_name">默认</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">持续以最高优先级通知进行提醒,直至取消</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">对这个订阅使用自定义通知</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">使用默认设置(声音、“勿扰模式”绕过等)</string>
<string name="detail_settings_notifications_open_channels_summary">“勿扰模式”绕过、声音等.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">持续提醒</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">只提醒一次</string>
<string name="detail_settings_notifications_dedicated_channels_title">自定义通知设置</string>
<string name="settings_notifications_insistent_max_priority_title">持续以最高优先级提醒</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">最高优先级通知,但只提醒一次</string>
<string name="detail_settings_notifications_open_channels_title">配置通知设置</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy 不再会作为 UnifiedPush 的一个分发器</string>
<string name="settings_advanced_unifiedpush_title">启用 UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy 将作为 UnifiedPush 的一个分发器</string>
</resources>

View file

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="channel_subscriber_notification_noinstant_text_six">已訂閱 6 個主題</string>
<string name="channel_notifications_default_name">預設優先</string>
<string name="main_menu_report_bug_title">問題回報</string>
<string name="channel_subscriber_notification_title">正在接收通知</string>
<string name="channel_subscriber_notification_noinstant_text_six">已訂閱6個主題</string>
<string name="channel_notifications_default_name">通知(預設優先)</string>
<string name="main_menu_report_bug_title">回報bug</string>
<string name="channel_subscriber_notification_title">監聽傳入通知</string>
<string name="channel_subscriber_notification_instant_text">已訂閱即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_one">已訂閱 1 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_two">已訂閱 2 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_four">已訂閱 4 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_five">已訂閱 5 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_six">已訂閱 6 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_more">已訂閱 %1$d 個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_one">已訂閱1個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_two">已訂閱2個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_four">已訂閱4個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_five">已訂閱5個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_six">已訂閱6個即時推送主題</string>
<string name="channel_subscriber_notification_instant_text_more">已訂閱%1$d個即時推送主題</string>
<string name="channel_subscriber_notification_noinstant_text">已訂閱主題</string>
<string name="refresh_message_result">收到 %1$d 個通知</string>
<string name="refresh_message_result">收到%1$d個通知</string>
<string name="refresh_message_no_results">已同步到最新</string>
<string name="refresh_message_error"> %1$d 個訂閱無法更新
<string name="refresh_message_error">有%1$d個訂閱無法更新
\n
\n%2$s</string>
<string name="refresh_message_error_one">訂閱無法更新 %1$s</string>
<string name="refresh_message_error_one">訂閱無法更新:%1$s</string>
<string name="main_action_bar_title">已訂閱主題</string>
<string name="main_menu_notifications_enabled">通知已開啟</string>
<string name="main_menu_notifications_disabled_forever">通知已靜音</string>
@ -27,16 +27,16 @@
<string name="main_action_mode_delete_dialog_message">取消訂閱已選取的主題且永久刪除所有通知?</string>
<string name="main_action_mode_delete_dialog_permanently_delete">永久刪除</string>
<string name="main_action_mode_delete_dialog_cancel">取消</string>
<string name="main_item_status_text_one">%1$d 個通知</string>
<string name="main_item_status_text_not_one">%1$d 個通知</string>
<string name="main_item_status_text_one">%1$d個通知</string>
<string name="main_item_status_text_not_one">%1$d個通知</string>
<string name="main_item_date_yesterday">昨天</string>
<string name="main_add_button_description">新增訂閱</string>
<string name="main_no_subscriptions_text">看來你還沒有訂閱任何主題。</string>
<string name="main_how_to_intro">點擊 + 來新增或訂閱一個主題。當透過 PUT 或 POST 來發送訊息你將會接收到通知。</string>
<string name="main_how_to_link">更多資訊請上 ntfy.shdocs會有更多說明。</string>
<string name="main_unified_push_toast">此訂閱已由 %1$s 透過 UnifiedPush 管理</string>
<string name="main_item_status_unified_push">%1$s(統一推送)</string>
<string name="main_banner_battery_text">為了避免通知傳送問題,請務必關閉電池最佳化功能</string>
<string name="main_item_status_unified_push">%1$s (UnifiedPush)</string>
<string name="main_banner_battery_text">為了避免通知傳送問題,電池最佳化必須關閉</string>
<string name="main_banner_battery_button_remind_later">稍後詢問我</string>
<string name="main_banner_battery_button_dismiss">略過</string>
<string name="main_banner_battery_button_fix_now">立即修正</string>
@ -47,300 +47,35 @@
<string name="add_dialog_description_below">因為主題不能受密碼保護,請盡量取一個難以猜測的主題名稱。在訂閱之後你就可以使用 PUT/POST 來發送通知。</string>
<string name="add_dialog_use_another_server">使用其他伺服器</string>
<string name="add_dialog_use_another_server_description">在下方輸入自訂的網址來訂閱主題。</string>
<string name="channel_notifications_min_name">最低優先</string>
<string name="channel_notifications_low_name">較低優先</string>
<string name="channel_notifications_high_name">較高優先</string>
<string name="channel_notifications_max_name">最高優先</string>
<string name="channel_notifications_min_name">通知(最低優先)</string>
<string name="channel_notifications_low_name">通知(低優先)</string>
<string name="channel_notifications_high_name">通知(高優先)</string>
<string name="channel_notifications_max_name">通知(最高優先)</string>
<string name="channel_subscriber_service_name">訂閱服務</string>
<string name="channel_subscriber_notification_instant_text_three">已訂閱 3 個即時推送主題</string>
<string name="main_menu_docs_title">閱讀技術文件</string>
<string name="main_banner_websocket_text">建議使用 WebSocket 來接收通知。這個連接方式能有效改善電池續航,但可能需要<a href="https://ntfy.sh/docs/config/#nginxapache2caddy">在伺服器端進行額外設定</a>。你可以在設定頁面更改不同的連接方式</string>
<string name="channel_subscriber_notification_noinstant_text_three">已訂閱 3 個主題</string>
<string name="channel_subscriber_notification_noinstant_text_more">已訂閱 %1$d 個主題</string>
<string name="channel_subscriber_notification_noinstant_text_one">已訂閱 1 個主題</string>
<string name="channel_subscriber_notification_noinstant_text_two">已訂閱 2 個主題</string>
<string name="channel_subscriber_notification_noinstant_text_four">已訂閱 4 個主題</string>
<string name="channel_subscriber_notification_noinstant_text_five">已訂閱 5 個主題</string>
<string name="main_item_status_reconnecting">重新連線中…</string>
<string name="main_menu_notifications_disabled_until">通知靜音到 %1$s</string>
<string name="add_dialog_topic_name_hint">主題名稱 (例如:phils_alerts)</string>
<string name="channel_subscriber_notification_instant_text_three">已訂閱3個即時推送主題</string>
<string name="main_menu_docs_title">閱讀文件</string>
<string name="main_banner_websocket_text">建議使用 WebSockets 來連線你的伺服器,此動作可以有效增加電池續航,但需要<a href="https://ntfy.sh/docs/config/#nginxapache2caddy">對proxy進行更多設定</a>。這個動作可以在設定中進行</string>
<string name="channel_subscriber_notification_noinstant_text_three">已訂閱3個主題</string>
<string name="channel_subscriber_notification_noinstant_text_more">已訂閱%1$d個主題</string>
<string name="channel_subscriber_notification_noinstant_text_one">已訂閱1個主題</string>
<string name="channel_subscriber_notification_noinstant_text_two">已訂閱2個主題</string>
<string name="channel_subscriber_notification_noinstant_text_four">已訂閱4個主題</string>
<string name="channel_subscriber_notification_noinstant_text_five">已訂閱5個主題</string>
<string name="main_item_status_reconnecting">重新連線中 </string>
<string name="main_menu_notifications_disabled_until">通知靜音到%1$s</string>
<string name="add_dialog_topic_name_hint">主題名稱(例如:phils_alerts)</string>
<string name="add_dialog_button_cancel">取消</string>
<string name="add_dialog_button_subscribe">訂閱</string>
<string name="add_dialog_button_back"></string>
<string name="add_dialog_error_connection_failed">連接失敗 %1$s</string>
<string name="add_dialog_button_back">退</string>
<string name="add_dialog_error_connection_failed">連接失敗: %1$s</string>
<string name="add_dialog_login_title">需要登入</string>
<string name="add_dialog_login_username_hint">使用者名</string>
<string name="add_dialog_login_username_hint">使用者名</string>
<string name="add_dialog_login_password_hint">密碼</string>
<string name="add_dialog_login_error_not_authorized">登入失敗,使用者 %1$s 並未授權訂閱這個主題。</string>
<string name="add_dialog_login_new_user">建立新使用者</string>
<string name="add_dialog_base_urls_dropdown_choose">選擇 ntfy 服務 URL</string>
<string name="add_dialog_base_urls_dropdown_clear">清除 URL</string>
<string name="detail_copied_to_clipboard_message">複製到剪貼簿</string>
<string name="add_dialog_login_error_not_authorized">登入失敗. 使用者%1$s 未獲得授權.</string>
<string name="add_dialog_login_new_user">新使用者</string>
<string name="add_dialog_base_urls_dropdown_choose">選擇服務網址</string>
<string name="add_dialog_base_urls_dropdown_clear">清除服務網址</string>
<string name="detail_copied_to_clipboard_message">複製到剪貼簿</string>
<string name="add_dialog_button_login">登入</string>
<string name="add_dialog_login_description">這個主題需要登入,請先輸入帳號密碼。</string>
<string name="add_dialog_instant_delivery">在省電模式下依然接收即時通知</string>
<string name="add_dialog_instant_delivery_description">確保通知能在未使用裝置時都能接收。</string>
<string name="detail_clear_dialog_cancel">取消</string>
<string name="detail_delete_dialog_cancel">取消</string>
<string name="detail_action_mode_delete_dialog_cancel">取消</string>
<string name="share_title">分享</string>
<string name="share_topic_title">分享到</string>
<string name="settings_notifications_priority_low"></string>
<string name="settings_notifications_priority_default">預設</string>
<string name="settings_notifications_priority_high"></string>
<string name="settings_notifications_priority_max">最高</string>
<string name="settings_notifications_auto_delete_summary_one_month">自動刪除 1 個月前的通知</string>
<string name="settings_notifications_auto_delete_one_day">1 天後</string>
<string name="settings_notifications_auto_delete_three_days">3 天後</string>
<string name="settings_notifications_auto_delete_one_week">1 週後</string>
<string name="settings_notifications_auto_delete_one_month">1 個月後</string>
<string name="settings_notifications_auto_delete_three_months">3 個月後</string>
<string name="settings_general_header">一般</string>
<string name="settings_general_default_base_url_title">預設伺服器</string>
<string name="settings_general_default_base_url_default_summary">%1$s (預設)</string>
<string name="settings_general_users_title">管理使用者</string>
<string name="settings_backup_restore_header">備份與還原</string>
<string name="settings_about_version_copied_to_clipboard_message">已複製到剪貼簿</string>
<string name="settings_about_header">關於</string>
<string name="settings_about_version_title">版本號</string>
<string name="settings_about_version_format">ntfy %1$s (%2$s)</string>
<string name="detail_settings_appearance_header">主題</string>
<string name="detail_settings_notifications_instant_title">即時通知</string>
<string name="detail_settings_global_setting_suffix">使用全域設定</string>
<string name="user_dialog_title_add">新增使用者</string>
<string name="main_menu_donate_title">捐獻 💸</string>
<string name="detail_item_snack_undo">復原</string>
<string name="detail_item_download_info_downloading_x_percent">已下載 %1$d%%</string>
<string name="detail_menu_enable_instant">啓用即時通知</string>
<string name="detail_menu_disable_instant">關閉即時通知</string>
<string name="detail_menu_clear">清除所有通知</string>
<string name="detail_action_mode_menu_copy">複製</string>
<string name="detail_action_mode_menu_delete">刪除</string>
<string name="share_menu_send">傳送</string>
<string name="share_content_title">預覽</string>
<string name="notification_dialog_cancel">取消</string>
<string name="notification_dialog_save">儲存</string>
<string name="notification_dialog_30min">30 分鐘</string>
<string name="notification_dialog_1h">1 小時</string>
<string name="notification_dialog_2h">2 小時</string>
<string name="notification_dialog_8h">8 小時</string>
<string name="notification_dialog_tomorrow">直到明天</string>
<string name="notification_dialog_forever">直到我解除為止</string>
<string name="notification_popup_action_open">開啓</string>
<string name="notification_popup_action_browse">瀏覽</string>
<string name="notification_popup_action_download">下載</string>
<string name="notification_popup_action_cancel">取消</string>
<string name="notification_popup_file">%1$s
\n檔案 %2$s</string>
<string name="notification_popup_file_downloading">下載中 %1$s, %2$d%%
\n%3$s</string>
<string name="notification_popup_file_download_successful">%1$s
\n檔案下載已完成 %2$s</string>
<string name="notification_popup_file_download_failed">%1$s
\n檔案下載失敗 %2$s</string>
<string name="notification_popup_user_action_failed">%1$s 失敗: %2$s</string>
<string name="settings_title">設定</string>
<string name="settings_notifications_muted_until_show_all">顯示所有通知</string>
<string name="settings_notifications_priority_min">最小</string>
<string name="settings_notifications_auto_download_title">下載附件</string>
<string name="settings_notifications_auto_download_summary_always">自動下載所有附件</string>
<string name="settings_notifications_auto_download_summary_never">從不自動下載附件</string>
<string name="settings_notifications_auto_download_summary_smaller_than_x">自動下載小於 %1$s 的附件</string>
<string name="settings_notifications_auto_download_never">從不自動下載</string>
<string name="settings_notifications_auto_download_always">自動下載所有東西</string>
<string name="settings_notifications_auto_download_500k">小於 500 kB</string>
<string name="settings_notifications_auto_download_100k">小於 100 kB</string>
<string name="settings_notifications_auto_download_1m">小於 1 MB</string>
<string name="settings_notifications_auto_download_5m">小於 5 MB</string>
<string name="settings_notifications_auto_download_50m">小於 50 MB</string>
<string name="settings_notifications_auto_delete_title">自動刪除通知</string>
<string name="settings_notifications_auto_delete_summary_never">永不自動刪除通知</string>
<string name="settings_notifications_auto_delete_summary_one_day">自動刪除 1 天前的通知</string>
<string name="settings_notifications_auto_delete_summary_three_days">自動刪除 3 天前的通知</string>
<string name="settings_notifications_auto_delete_summary_one_week">自動刪除 1 週前的通知</string>
<string name="settings_notifications_auto_delete_summary_three_months">自動刪除 3 個月前的通知</string>
<string name="settings_notifications_auto_delete_never">從不</string>
<string name="settings_general_users_prefs_title">使用者</string>
<string name="settings_general_users_prefs_user_add">新增使用者</string>
<string name="settings_general_users_prefs_user_add_title">建立新使用者</string>
<string name="settings_general_dark_mode_title">黑暗模式</string>
<string name="settings_backup_restore_backup_entry_everything">全部</string>
<string name="settings_backup_restore_backup_entry_settings_only">僅備份設定</string>
<string name="settings_backup_restore_backup_entry_everything_no_users">全部備份 (使用者檔案除外)</string>
<string name="settings_backup_restore_backup_successful">已成功備份</string>
<string name="settings_backup_restore_restore_successful">還原成功</string>
<string name="settings_backup_restore_restore_failed">還原失敗: %1$s</string>
<string name="settings_advanced_header">進階</string>
<string name="settings_advanced_export_logs_scrub_dialog_button_ok">確定</string>
<string name="settings_advanced_connection_protocol_title">連接方式</string>
<string name="settings_advanced_connection_protocol_summary_jsonhttp">透過 HTTP 連接伺服器來接收 JSON 串流,但可能會持續消耗較大電量。</string>
<string name="settings_advanced_connection_protocol_summary_ws">(建議) 透過 WebSocket 連接伺服器,但伺服器可能需要額外設定來啓用這種連接方式。</string>
<string name="settings_advanced_connection_protocol_entry_jsonhttp">JSON 串流 (透過 HTTP 連接)</string>
<string name="settings_advanced_connection_protocol_entry_ws">WebSocket</string>
<string name="detail_settings_about_topic_url_title">主題 URL</string>
<string name="detail_settings_about_topic_url_copied_to_clipboard_message">已複製到剪貼簿</string>
<string name="user_dialog_password_hint_add">密碼</string>
<string name="user_dialog_button_save">儲存</string>
<string name="user_dialog_button_add">新增使用者</string>
<string name="user_dialog_button_cancel">取消</string>
<string name="user_dialog_username_hint">使用者名稱</string>
<string name="settings_notifications_header">通知</string>
<string name="detail_menu_test">發送測試訊息</string>
<string name="settings_notifications_muted_until_title">暫停通知</string>
<string name="settings_notifications_auto_download_10m">小於 10 MB</string>
<string name="detail_settings_about_header">關於</string>
<string name="settings_backup_restore_backup_failed">備份失敗: %1$s</string>
<string name="add_dialog_foreground_description">除了 %1$s 以外伺服器有即時傳送。</string>
<string name="detail_item_menu_copy_contents_copied">通知已複製至剪貼簿</string>
<string name="channel_notifications_group_default_name">預設</string>
<string name="detail_how_to_link">可以再說明書 (ntfy.sh) 找到詳細指示。</string>
<string name="detail_clear_dialog_message">確定清除主題內的全部通訊?</string>
<string name="detail_clear_dialog_permanently_delete">永久刪除</string>
<string name="detail_delete_dialog_message">確定取消訂閱這個主題,並刪除所有通訊?</string>
<string name="detail_delete_dialog_permanently_delete">確定永久刪除</string>
<string name="detail_test_title">測試:你可以選一個你喜歡的標題。</string>
<string name="detail_test_message">這是從 ntfy Android 應用程式發送的測試信息,優先是 %1$d。如果你傳送另一個訊息它看起來可能會不一樣。</string>
<string name="detail_test_message_error_unauthorized_anon">不能夠傳送訊息:匿名發布不受批准。</string>
<string name="detail_test_message_error_too_large">不能夠傳送訊息:附件大小超出限制。</string>
<string name="detail_instant_delivery_disabled">關閉即時傳送</string>
<string name="detail_item_snack_deleted">已刪除通知</string>
<string name="detail_item_menu_open">開啟檔案</string>
<string name="detail_item_menu_delete">刪除檔案</string>
<string name="detail_item_menu_cancel">取消下載</string>
<string name="detail_item_menu_save_file">儲存檔案</string>
<string name="detail_item_menu_copy_contents">複製通知</string>
<string name="detail_item_cannot_open_url">無法開啟網址:%1$s</string>
<string name="detail_item_saved_successfully">儲存為 \"Downloads\" 資料中的 \"%1$s\"</string>
<string name="detail_test_message_error_unauthorized_user">不能夠發布信息:用戶 %1$s 不被授權。</string>
<string name="detail_how_to_intro">PUT 或 POST 主題網址以傳送通訊。</string>
<string name="detail_how_to_example">例如(使用 curl): <br/><tt>$ curl -d \"Hi\" %1$s</tt></string>
<string name="detail_test_message_error">不能夠傳送訊息:%1$s</string>
<string name="detail_item_tags">標籤:%1$s</string>
<string name="detail_instant_delivery_enabled">啟動即時傳送</string>
<string name="detail_item_menu_copy_url">複製網址</string>
<string name="detail_item_menu_copy_url_copied">網址已複製至剪貼簿</string>
<string name="detail_item_cannot_open">無法開啟附件:%1$s</string>
<string name="detail_item_cannot_open_not_found">無法開啟附件:檔案可能已被刪除或檔案無法被任何軟件開啟。</string>
<string name="detail_item_cannot_download">無法開啟或下載附件,網址無效而且找不到本地檔案。</string>
<string name="detail_deep_link_subscribed_toast_message">訂閱主題 %1$s</string>
<string name="detail_no_notifications_text">你未有在這個主題收到任何通訊。</string>
<string name="detail_item_menu_download">下載檔案</string>
<string name="detail_settings_title">訂閱設定</string>
<string name="share_content_image_text">一張圖片已與您分享</string>
<string name="share_content_text_hint">在此添加內容以進行分享</string>
<string name="share_suggested_topics">建議的主題</string>
<string name="share_content_file_error">無法圖取檔案資訊:%1$s</string>
<string name="settings_general_default_base_url_message">輸入你的伺服器的 root URL以便在訂閱新主題和/或分享到主題時,默認使用你自己的伺服器。</string>
<string name="detail_item_cannot_save">無法儲存附件:%1$s</string>
<string name="detail_item_download_failed">無法下載附件:%1$s</string>
<string name="detail_item_cannot_open_apk">無法再安裝應用程式。請改為使用瀏覽器下載。詳見問題#531。</string>
<string name="detail_item_download_info_not_downloaded">未下載</string>
<string name="detail_item_download_info_not_downloaded_expired">未下載,連結已過期</string>
<string name="detail_item_download_info_deleted_expired">已刪除,連結已過期</string>
<string name="detail_menu_notifications_disabled_forever">關閉通知</string>
<string name="detail_action_mode_delete_dialog_message">是否永久刪除所選的通知?</string>
<string name="detail_action_mode_delete_dialog_permanently_delete">永久刪除</string>
<string name="share_content_image_error">無法讀取圖片:%1$s</string>
<string name="share_content_file_text">一個檔案已與您分享</string>
<string name="share_successful">推送訊息</string>
<string name="notification_dialog_title">關閉通知</string>
<string name="notification_dialog_enabled_toast_message">恢復通知</string>
<string name="settings_notifications_min_priority_summary_max">如果優先級為 5 (最大值),顯示通知</string>
<string name="settings_notifications_min_priority_min">任意優先級</string>
<string name="settings_notifications_min_priority_max">僅最大優先級</string>
<string name="settings_notifications_insistent_max_priority_title">保持高優先級的警報</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">最高優先級的通知持續警報,直到被關閉</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">最高優先級的通知僅警報一次</string>
<string name="detail_item_cannot_delete">無法刪除附件:%1$s</string>
<string name="detail_item_download_info_deleted">已刪除</string>
<string name="detail_menu_notifications_enabled">開啟通知</string>
<string name="detail_item_download_info_download_failed">下載失敗</string>
<string name="detail_menu_notifications_disabled_until">關閉通知直到 %1$s</string>
<string name="detail_menu_copy_url">複製主題網址</string>
<string name="detail_menu_settings">訂閱設定</string>
<string name="detail_menu_unsubscribe">取消訂閱</string>
<string name="notification_dialog_muted_until_toast_message">關閉通知直到 %1$s</string>
<string name="notification_dialog_show_all">顯示所有通知</string>
<string name="notification_dialog_muted_forever_toast_message">關閉通知</string>
<string name="settings_notifications_muted_until_forever">關閉通知直到恢復</string>
<string name="settings_notifications_min_priority_title">最低優先級</string>
<string name="settings_notifications_min_priority_summary_any">顯示所有通知</string>
<string name="settings_notifications_muted_until_x">關閉通知直到 %1$s</string>
<string name="settings_notifications_min_priority_default">預設優先級和以上</string>
<string name="settings_notifications_min_priority_high">高優先級和以上</string>
<string name="settings_notifications_min_priority_low">低優先級和以上</string>
<string name="settings_notifications_channel_prefs_title">頻道設定</string>
<string name="settings_notifications_channel_prefs_summary">請勿打擾DND覆寫、聲音等。</string>
<string name="settings_notifications_min_priority_summary_x_or_higher">如果優先級為%1$d (%2$s) 或以上,顯示通知</string>
<string name="detail_item_download_info_not_downloaded_expires_x">已刪除,連結將於 %1$s 失效</string>
<string name="settings_general_dark_mode_summary_dark">暗色模式已啓用。您是吸血鬼嗎?</string>
<string name="settings_general_dark_mode_entry_system">跟隨系統默認</string>
<string name="settings_general_dark_mode_entry_light">亮色模式</string>
<string name="settings_advanced_export_logs_entry_copy_original">複製到剪貼板</string>
<string name="settings_advanced_export_logs_copied_logs">日誌已複製到剪貼板</string>
<string name="detail_settings_appearance_icon_set_summary">設置要在通知中顯示的圖標</string>
<string name="detail_item_download_info_deleted_expires_x">已刪除,鏈接將於 %1$s 失效</string>
<string name="settings_advanced_broadcast_title">廣播消息</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">只提醒一次</string>
<string name="user_dialog_description_add">您可以在此添加用戶。所有該服務器上的主題訂閱都將使用該用戶。</string>
<string name="detail_settings_appearance_display_name_title">顯示名</string>
<string name="detail_item_download_info_download_failed_expired">下載失敗,鏈接已失效</string>
<string name="detail_item_download_info_download_failed_expires_x">下載失敗,鏈接將於 %1$s 失效</string>
<string name="settings_general_users_summary">爲訪問受保護的主題添加或刪除用戶</string>
<string name="settings_general_users_prefs_user_used_by_one">在主題 %1$s 使用</string>
<string name="settings_general_users_prefs_user_used_by_many">在主題 %1$s 使用</string>
<string name="settings_general_users_prefs_user_not_used">未在任何主題使用</string>
<string name="settings_general_dark_mode_summary_system">跟隨系統默認</string>
<string name="settings_general_users_prefs_user_add_summary">爲新服務器創建新用戶</string>
<string name="settings_general_dark_mode_summary_light">亮色模式已啓用</string>
<string name="settings_backup_restore_restore_title">從文件恢復</string>
<string name="settings_backup_restore_restore_summary">導入配置、通知和用戶</string>
<string name="settings_advanced_broadcast_summary_enabled">允許應用以廣播的形式收到通知</string>
<string name="settings_advanced_broadcast_summary_disabled">禁止應用以廣播的形式收到通知</string>
<string name="settings_advanced_record_logs_title">記錄日誌</string>
<string name="settings_advanced_record_logs_summary_enabled">正在記錄日誌 (最多 1000 個條目) 到設備 …</string>
<string name="settings_advanced_record_logs_summary_disabled">記錄日誌以便稍後分享調試故障。</string>
<string name="settings_advanced_export_logs_title">複製 / 上傳日誌</string>
<string name="settings_advanced_export_logs_error_uploading">無法上傳日誌:%1$s</string>
<string name="settings_advanced_export_logs_scrub_dialog_text">以下主題/域名已被替換爲水果名稱,您可以放心分享日誌:
\n
\n%1$s
\n
\n密碼也已屏蔽但不在此列出。</string>
<string name="settings_advanced_clear_logs_summary">刪除以前的日誌並重新來過</string>
<string name="settings_advanced_clear_logs_deleted_toast">日誌已刪除</string>
<string name="detail_settings_appearance_display_name_default_summary">%1$s (默認)</string>
<string name="user_dialog_title_edit">編輯用戶</string>
<string name="user_dialog_base_url_hint">服務 URL</string>
<string name="user_dialog_password_hint_edit">密碼 (留空不變)</string>
<string name="settings_general_dark_mode_entry_dark">暗色模式</string>
<string name="settings_backup_restore_backup_title">備份到文件</string>
<string name="settings_backup_restore_backup_summary">導出配置、通知和用戶</string>
<string name="settings_advanced_export_logs_entry_upload_scrubbed">上傳並複製鏈接 (屏蔽敏感信息)</string>
<string name="settings_advanced_export_logs_uploading">正在上傳日誌…</string>
<string name="settings_advanced_export_logs_copied_url">日誌已上傳URL 已複製到剪貼板</string>
<string name="settings_advanced_export_logs_scrub_dialog_empty">未找到任何主題/域名。您似乎沒有任何訂閱?</string>
<string name="detail_settings_notifications_instant_summary_on">通知會立即發送。需要前臺服務,並消耗更多電池。</string>
<string name="detail_settings_notifications_instant_summary_off">通知使用 Firebase 發送。投遞可能會延遲,但消耗的電池更少。</string>
<string name="detail_settings_notifications_dedicated_channels_title">自定義通知設置</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">對這個訂閱使用自定義通知</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy 將作爲 UnifiedPush 的一個分發器</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy 不再會作爲 UnifiedPush 的一個分發器</string>
<string name="settings_advanced_export_logs_summary">複製日誌到剪貼板,或上傳到 nopaste.net (由 ntfy 作者所有)。域名和主題可以被屏蔽,但通知本身不會。</string>
<string name="settings_advanced_export_logs_entry_copy_scrubbed">複製到剪貼板 (屏蔽敏感信息)</string>
<string name="settings_advanced_export_logs_entry_upload_original">上傳並複製鏈接</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">使用默認設置(聲音、“勿擾模式”繞過等)</string>
<string name="detail_settings_appearance_display_name_message">爲這個訂閱設置一個自定義的顯示名。若留空將使用默認值(%1$s</string>
<string name="user_dialog_button_delete">刪除用戶</string>
<string name="settings_advanced_unifiedpush_title">啓用 UnifiedPush</string>
<string name="settings_advanced_clear_logs_title">清除日誌</string>
<string name="detail_settings_notifications_open_channels_title">配置通知設置</string>
<string name="detail_settings_notifications_open_channels_summary">“勿擾模式”繞過、聲音等.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">持續提醒</string>
<string name="detail_settings_appearance_icon_set_title">訂閱圖標</string>
<string name="detail_settings_appearance_icon_remove_title">訂閱圖標(點擊可刪除)</string>
<string name="detail_settings_appearance_icon_remove_summary">此主題的通知中顯示的圖標</string>
<string name="detail_settings_appearance_icon_error_saving">無法保存圖標:%1$s</string>
<string name="detail_settings_global_setting_title">使用全局設置</string>
<string name="user_dialog_description_edit">您可以編輯該用戶的用戶名和密碼,或刪除該用戶。</string>
<string name="add_dialog_login_description">這篇主題要求登入. 請輸入帳號密碼.</string>
</resources>

View file

@ -4,6 +4,7 @@
<color name="black_900">#121212</color> <!-- Main dark mode surface color, as per style guide -->
<color name="black_800b">#1b2023</color> <!-- Action bar & item selection (dark mode); this has a touch of blue! -->
<color name="black_700b">#282F33</color> <!-- Card selection (dark mode); this has a touch of blue! -->
<color name="gray_600">#aaaaaa</color> <!-- Message box drop shadow (light mode) -->
<color name="gray_500">#dddddd</color> <!-- Card selection (light mode) -->
<color name="gray_400">#eeeeee</color> <!-- Item selection (light mode) -->
<color name="white">#ffffffff</color>

View file

@ -2,12 +2,11 @@
tools:ignore="MissingTranslation">
<!-- Notification channels -->
<string name="channel_notifications_min_name">Min priority</string>
<string name="channel_notifications_low_name">Low priority</string>
<string name="channel_notifications_default_name">Default priority</string>
<string name="channel_notifications_high_name">High priority</string>
<string name="channel_notifications_max_name">Max priority</string>
<string name="channel_notifications_group_default_name">Default</string>
<string name="channel_notifications_min_name">Notifications (min priority)</string>
<string name="channel_notifications_low_name">Notifications (low priority)</string>
<string name="channel_notifications_default_name">Notifications (default priority)</string>
<string name="channel_notifications_high_name">Notifications (high priority)</string>
<string name="channel_notifications_max_name">Notifications (max priority)</string>
<string name="channel_subscriber_service_name">Subscription Service</string>
<string name="channel_subscriber_notification_title">Listening for incoming notifications</string>
<string name="channel_subscriber_notification_instant_text">Subscribed to instant delivery topics</string>
@ -42,7 +41,6 @@
<string name="main_menu_report_bug_title">Report a bug</string>
<string name="main_menu_docs_title">Read the docs</string>
<string name="main_menu_rate_title">Rate the app ⭐</string>
<string name="main_menu_donate_title">Donate 💸</string>
<!-- Main activity: Action mode -->
<string name="main_action_mode_menu_unsubscribe">Unsubscribe</string>
@ -154,7 +152,6 @@
<string name="detail_item_cannot_open">Cannot open attachment: %1$s</string>
<string name="detail_item_cannot_open_not_found">Cannot open attachment: The file may have been deleted, or no installed app can open the file.</string>
<string name="detail_item_cannot_open_url">Cannot open URL: %1$s</string>
<string name="detail_item_cannot_open_apk">Apps cannot be installed anymore. Download via browser instead. See issue #531 for details.</string>
<string name="detail_item_cannot_save">Cannot save attachment: %1$s</string>
<string name="detail_item_cannot_delete">Cannot delete attachment: %1$s</string>
<string name="detail_item_download_failed">Could not download attachment: %1$s</string>
@ -169,6 +166,10 @@
<string name="detail_item_download_info_download_failed_expired">download failed, link expired</string>
<string name="detail_item_download_info_download_failed_expires_x">download failed, link expires %1$s</string>
<!-- Detail activity: Message bar -->
<string name="detail_message_bar_hint">Type a message here</string>
<string name="detail_message_bar_empty_message">Type a message first</string>
<!-- Detail activity: Action bar -->
<string name="detail_menu_notifications_enabled">Notifications on</string>
<string name="detail_menu_notifications_disabled_forever">Notifications muted</string>
@ -281,9 +282,6 @@
<string name="settings_notifications_auto_delete_one_week">After one week</string>
<string name="settings_notifications_auto_delete_one_month">After one month</string>
<string name="settings_notifications_auto_delete_three_months">After 3 months</string>
<string name="settings_notifications_insistent_max_priority_title">Keep alerting for highest priority</string>
<string name="settings_notifications_insistent_max_priority_summary_enabled">Max priority notifications continuously alert until dismissed</string>
<string name="settings_notifications_insistent_max_priority_summary_disabled">Max priority notifications only alert once</string>
<string name="settings_general_header">General</string>
<string name="settings_general_default_base_url_title">Default server</string>
<string name="settings_general_default_base_url_message">Enter your server\'s root URL to use your own server as a default when subscribing to new topics and/or sharing to topics.</string>
@ -320,12 +318,9 @@
<string name="settings_advanced_broadcast_title">Broadcast messages</string>
<string name="settings_advanced_broadcast_summary_enabled">Apps can receive incoming notifications as broadcasts</string>
<string name="settings_advanced_broadcast_summary_disabled">Apps cannot receive notifications as broadcasts</string>
<string name="settings_advanced_unifiedpush_title">Enable UnifiedPush</string>
<string name="settings_advanced_unifiedpush_summary_enabled">ntfy will act as a UnifiedPush distributor</string>
<string name="settings_advanced_unifiedpush_summary_disabled">ntfy will not act as a UnifiedPush distributor</string>
<string name="settings_advanced_record_logs_title">Record logs</string>
<string name="settings_advanced_record_logs_summary_enabled">Logging (up to 1,000 entries) to device …</string>
<string name="settings_advanced_record_logs_summary_disabled">Turn on logging, so you can share logs later to diagnose issues.</string>
<string name="settings_advanced_record_logs_summary_disabled">Turn on logging so you can share logs later to diagnose issues.</string>
<string name="settings_advanced_export_logs_title">Copy/upload logs</string>
<string name="settings_advanced_export_logs_summary">Copy logs to the clipboard, or upload to nopaste.net (owned by the ntfy author). Hostnames and topics can be censored, notifications will never be.</string>
<string name="settings_advanced_export_logs_entry_copy_original">Copy to clipboard</string>
@ -356,13 +351,6 @@
<string name="detail_settings_notifications_instant_title">Instant delivery</string>
<string name="detail_settings_notifications_instant_summary_on">Notifications are delivered instantly. Requires a foreground service and consumes more battery.</string>
<string name="detail_settings_notifications_instant_summary_off">Notifications are delivered using Firebase. Delivery may be delayed, but consumes less battery.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Custom notification settings</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Using custom settings for this subscription</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Using default settings (sounds, Do Not Disturb override, etc.)</string>
<string name="detail_settings_notifications_open_channels_title">Configure notification settings</string>
<string name="detail_settings_notifications_open_channels_summary">Do Not Disturb (DND) override, sounds, etc.</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_enabled">Keep alerting</string>
<string name="detail_settings_notifications_insistent_max_priority_list_item_disabled">Alert only once</string>
<string name="detail_settings_appearance_header">Appearance</string>
<string name="detail_settings_appearance_icon_set_title">Subscription icon</string>
<string name="detail_settings_appearance_icon_set_summary">Set an icon to be displayed in notifications</string>
@ -391,10 +379,4 @@
<string name="user_dialog_button_cancel">Cancel</string>
<string name="user_dialog_button_delete">Delete user</string>
<string name="user_dialog_button_save">Save</string>
<!-- /e/OS integration preferences -->
<string name="eos_preference_key_is_enabled" translatable="false">isEnabled</string>
<string name="eos_settings_title" translatable="false">UnifiedPush</string>
<string name="eos_settings_enable_title" translatable="true">Enable the distributor</string>
<string name="eos_settings_enable_description" translatable="true">It allows 3rd party applications to receive UnifiedPush notifications</string>
</resources>

View file

@ -31,25 +31,15 @@
<item name="cornerSize">5dp</item>
</style>
<style name="PreferenceTheme" parent="PreferenceTheme.Base"/>
<style name="PreferenceTheme.Base" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/e_action_bar</item>
<item name="colorPrimaryDark">@color/e_action_bar</item>
<item name="colorAccent">@color/e_accent</item>
<item name="android:textColorPrimary">@color/e_primary_text_color</item>
<item name="android:textColorSecondary">@color/e_secondary_text_color</item>
<item name="android:textColorPrimaryInverse">@color/e_background</item>
<item name="android:windowBackground">@color/e_background</item>
<item name="colorControlActivated">@color/e_accent</item>
<item name="colorButtonNormal">@color/e_icon_color</item>
<item name="colorControlHighlight">@color/e_icon_color</item>
<item name="homeAsUpIndicator">@drawable/e_ic_back</item>
<item name="android:homeAsUpIndicator">@drawable/e_ic_back</item>
<item name="android:popupBackground">@color/e_floating_background</item>
<item name="android:divider">@color/e_divider_color</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:statusBarColor">@color/e_background</item>
<item name="switchStyle">@style/ETheme.Switch</item>
<style name="MessageBarBackground">
<item name="android:background">@color/gray_400</item>
</style>
<style name="MessageInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="hintTextColor">@color/black_700b</item>
</style>
<style name="MessageInputText" parent="Widget.AppCompat.EditText">
<item name="android:textSize">16sp</item>
</style>
</resources>

View file

@ -10,7 +10,6 @@
<!-- Main activity -->
<string name="main_menu_report_bug_url" translatable="false">https://github.com/binwiederhier/ntfy/issues</string>
<string name="main_menu_docs_url" translatable="false">https://ntfy.sh/docs</string>
<string name="main_menu_donate_url" translatable="false">https://github.com/sponsors/binwiederhier</string>
<!-- Settings constants -->
<string name="settings_notifications_muted_until_key" translatable="false">MutedUntil</string>
@ -18,14 +17,12 @@
<string name="settings_notifications_channel_prefs_key" translatable="false">ChannelPrefs</string>
<string name="settings_notifications_auto_download_key" translatable="false">AutoDownload</string>
<string name="settings_notifications_auto_delete_key" translatable="false">AutoDelete</string>
<string name="settings_notifications_insistent_max_priority_key" translatable="false">InsistentMaxPriority</string>
<string name="settings_general_default_base_url_key" translatable="false">DefaultBaseURL</string>
<string name="settings_general_users_key" translatable="false">ManageUsers</string>
<string name="settings_general_dark_mode_key" translatable="false">DarkMode</string>
<string name="settings_backup_restore_backup_key" translatable="false">Backup</string>
<string name="settings_backup_restore_restore_key" translatable="false">Restore</string>
<string name="settings_advanced_broadcast_key" translatable="false">BroadcastEnabled</string>
<string name="settings_advanced_unifiedpush_key" translatable="false">UnifiedPushEnabled</string>
<string name="settings_advanced_record_logs_key" translatable="false">RecordLogs</string>
<string name="settings_advanced_export_logs_key" translatable="false">ExportLogs</string>
<string name="settings_advanced_clear_logs_key" translatable="false">ClearLogs</string>
@ -36,11 +33,8 @@
<string name="detail_settings_notifications_header_key" translatable="false">SubscriptionNotifications</string>
<string name="detail_settings_notifications_instant_key" translatable="false">SubscriptionInstant</string>
<string name="detail_settings_notifications_muted_until_key" translatable="false">SubscriptionMutedUntil</string>
<string name="detail_settings_notifications_dedicated_channels_key" translatable="false">SubscriptionDedicatedChannels</string>
<string name="detail_settings_notifications_open_channels_key" translatable="false">SubscriptionOpenChannels</string>
<string name="detail_settings_notifications_min_priority_key" translatable="false">SubscriptionMinPriority</string>
<string name="detail_settings_notifications_auto_delete_key" translatable="false">SubscriptionAutoDelete</string>
<string name="detail_settings_notifications_insistent_max_priority_key" translatable="false">SubscriptionInsistentMaxPriority</string>
<string name="detail_settings_appearance_header_key" translatable="false">SubscriptionAppearance</string>
<string name="detail_settings_appearance_icon_set_key" translatable="false">SubscriptionIconSet</string>
<string name="detail_settings_appearance_icon_remove_key" translatable="false">SubscriptionIconRemove</string>
@ -151,16 +145,6 @@
<item>2592000</item>
<item>7776000</item>
</string-array>
<string-array name="detail_settings_notifications_insistent_max_priority_entries">
<item>@string/detail_settings_global_setting_title</item>
<item>@string/detail_settings_notifications_insistent_max_priority_list_item_enabled</item>
<item>@string/detail_settings_notifications_insistent_max_priority_list_item_disabled</item>
</string-array>
<string-array name="detail_settings_notifications_insistent_max_priority_values">
<item>-1</item> <!-- Same as Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL -->
<item>1</item>
<item>0</item>
</string-array>
<string-array name="settings_advanced_connection_protocol_entries">
<item>@string/settings_advanced_connection_protocol_entry_jsonhttp</item>
<item>@string/settings_advanced_connection_protocol_entry_ws</item>

View file

@ -28,22 +28,6 @@
app:entryValues="@array/detail_settings_notifications_auto_delete_values"
app:defaultValue="-1"
app:isPreferenceVisible="false"/> <!-- Same as Repository.AUTO_DELETE_USE_GLOBAL -->
<ListPreference
app:key="@string/detail_settings_notifications_insistent_max_priority_key"
app:title="@string/settings_notifications_insistent_max_priority_title"
app:entries="@array/detail_settings_notifications_insistent_max_priority_entries"
app:entryValues="@array/detail_settings_notifications_insistent_max_priority_values"
app:defaultValue="-1"
app:isPreferenceVisible="false"/> <!-- Same as Repository.INSISTENT_MAX_PRIORITY_USE_GLOBAL -->
<SwitchPreference
app:key="@string/detail_settings_notifications_dedicated_channels_key"
app:title="@string/detail_settings_notifications_dedicated_channels_title"
app:isPreferenceVisible="false"/>
<Preference
app:key="@string/detail_settings_notifications_open_channels_key"
app:title="@string/detail_settings_notifications_open_channels_title"
app:summary="@string/detail_settings_notifications_open_channels_summary"
app:isPreferenceVisible="false"/>
</PreferenceCategory>
<PreferenceCategory
app:key="@string/detail_settings_appearance_header_key"

View file

@ -25,10 +25,6 @@
app:entries="@array/settings_notifications_auto_delete_entries"
app:entryValues="@array/settings_notifications_auto_delete_values"
app:defaultValue="2592000"/>
<SwitchPreference
app:key="@string/settings_notifications_insistent_max_priority_key"
app:title="@string/settings_notifications_insistent_max_priority_title"
app:defaultValue="false"/>
<Preference
app:key="@string/settings_notifications_channel_prefs_key"
app:title="@string/settings_notifications_channel_prefs_title"
@ -76,10 +72,6 @@
app:key="@string/settings_advanced_broadcast_key"
app:title="@string/settings_advanced_broadcast_title"
app:enabled="true"/>
<SwitchPreference
app:key="@string/settings_advanced_unifiedpush_key"
app:title="@string/settings_advanced_unifiedpush_title"
app:enabled="true"/>
<SwitchPreference
app:key="@string/settings_advanced_record_logs_key"
app:title="@string/settings_advanced_record_logs_title"

View file

@ -1,11 +0,0 @@
<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat
app:icon="@drawable/ic_notification"
app:key="@string/eos_preference_key_is_enabled"
app:defaultValue="false"
app:title="@string/eos_settings_enable_title"
app:summary="@string/eos_settings_enable_description" />
</PreferenceScreen>

View file

@ -14,7 +14,6 @@ import io.heckel.ntfy.msg.ApiService
import io.heckel.ntfy.msg.NotificationDispatcher
import io.heckel.ntfy.msg.NotificationParser
import io.heckel.ntfy.service.SubscriberService
import io.heckel.ntfy.util.nullIfZero
import io.heckel.ntfy.util.toPriority
import io.heckel.ntfy.util.topicShortUrl
import io.heckel.ntfy.work.PollWorker
@ -95,8 +94,8 @@ class FirebaseService : FirebaseMessagingService() {
val encoding = data["encoding"]
val attachmentName = data["attachment_name"] ?: "attachment.bin"
val attachmentType = data["attachment_type"]
val attachmentSize = data["attachment_size"]?.toLongOrNull()?.nullIfZero()
val attachmentExpires = data["attachment_expires"]?.toLongOrNull()?.nullIfZero()
val attachmentSize = data["attachment_size"]?.toLongOrNull()
val attachmentExpires = data["attachment_expires"]?.toLongOrNull()
val attachmentUrl = data["attachment_url"]
val truncated = (data["truncated"] ?: "") == "1"
if (id == null || topic == null || message == null || timestamp == null) {
@ -125,7 +124,7 @@ class FirebaseService : FirebaseMessagingService() {
url = attachmentUrl,
)
} else null
val icon: Icon? = if (iconUrl != null && iconUrl != "") Icon(url = iconUrl) else null
val icon: Icon? = iconUrl?.let { Icon(url = it) }
val notification = Notification(
id = id,
subscriptionId = subscription.id,

View file

@ -1,13 +1,13 @@
buildscript {
ext.kotlin_version = '1.8.20'
ext.kotlin_version = '1.6.21'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.15' // This is removed in the "fdroid" flavor
classpath 'com.google.gms:google-services:4.3.14' // This is removed in the "fdroid" flavor
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@ -18,7 +18,6 @@ allprojects {
repositories {
google()
mavenCentral()
maven { url 'https://gitlab.e.foundation/api/v4/groups/9/-/packages/maven'}
maven { url "https://jitpack.io" } // For StfalconImageViewer
}
}

View file

@ -1 +0,0 @@
إرسال إشعارات إلى هاتفك من أي برنامج نصي باستخدام طلبات PUT / POST

View file

@ -1,17 +0,0 @@
Anfonwch cyhoeddiadau i'ch ffôn o unrhyw sgript Bash neu PowerShell, neu o'ch ap eich hun gan ddefnyddio ceisiadau PUT/POST, e.e. trwy curl ar Linux neu Invoke-WebRequest.
Mae ntfy yn gleient Android ar gyfer https://ntfy.sh, gwasanaeth pub-sub, ffynhonnell agor am ddim sy'n seiliedig ar HTTP. Gallwch danysgrifio i bynciau yn yr app hon, ac yna cyhoeddi negeseuon trwy API HTTP syml.
Defnyddiau:
* Hysbyswch eich hun pan fydd proses hir wedi'i chwblhau
* Pingiwch eich ffôn pan fydd copi wrth gefn wedi methu
* Rhybuddion pan fydd rhywun yn mewngofnodi i'ch gweinydd
Enghraifft:
$curl -d "Mae eich copi wrth gefn wedi'i wneud" ntfy.sh/fymhwnc
Dewch o hyd i ragor o enghreifftiau a chyfarwyddiadau defnydd yma:
* Gwefan: https://ntfy.sh
* GitHub (gweinydd): https://github.com/binwiederhier/ntfy
* GitHub (ap Android): https://github.com/binwiederhier/ntfy-android

View file

@ -1 +0,0 @@
Anfonwch cyhoeddiadau i'ch ffôn o unrhyw sgript drwy ceisiadau PUT/POST

View file

@ -1 +0,0 @@
ntfy - PUT/POST i'ch ffôn

View file

@ -1,17 +0,0 @@
Send meddelelser til din telefon fra et hvilket som helst Bash- eller PowerShell-script eller fra din egen app ved hjælp af PUT/POST-anmodninger, f.eks. via curl på Linux eller Invoke-WebRequest.
ntfy er en Android-klient til https://ntfy.sh, en gratis og open source HTTP-baseret pub-sub-tjeneste. Du kan abonnere på emner i denne app og derefter udgive beskeder via en simpel HTTP API.
Anvendelser:
* Giv dig selv besked, når en langvarig proces er færdig
* Ping din telefon, når en sikkerhedskopiering mislykkedes
* Advarsler, når nogen logger ind på din server
Eksempel:
$ curl -d "Din backup er færdig" ntfy.sh/mytopic
Find flere eksempler og brugsvejledning her:
* Hjemmeside: https://ntfy.sh
* GitHub (server): https://github.com/binwiederhier/ntfy
* GitHub (Android app): https://github.com/binwiederhier/ntfy-android

View file

@ -1 +0,0 @@
Send meddelelser til din telefon fra ethvert script med PUT/POST-anmodninger

View file

@ -1 +0,0 @@
ntfy - PUT/POST på din telefon

View file

@ -1,17 +0,0 @@
Sende Benachrichtigungen an Dein Telefon von jeden Bash- oder PowerShell-Skript oder Deiner eigenen App über einen PUT-/POST-Request, z.B. per curl unter Linux oder Invoke-WebRequest.
ntfy ist ein Android-Client für https://ntfy.sh, einen kostenlosen Open-Source pub-sub-Dienst auf HTTP-Basis. Du kannst in der App Themen abonnieren und dann Nachrichten über eine einfache HTTP-API veröffentlichen.
Anwendungen:
* Lass Dich benachrichtigen, wenn ein lang laufender Prozess fertig ist
* Benachrichtige Dein Telefon, wenn ein Backup fehlgeschlagen ist
* Erhalte Benachrichtigungen, wenn sich jemand an Deinem Server anmeldet
Beispiel:
$ curl -d "Backup ist abgeschlossen" ntfy.sh/meinthema
Weitere Beispiele und Dokumentation findest Du hier:
* Website: https://ntfy.sh
* GitHub (Server): https://github.com/binwiederhier/ntfy
* GitHub (Android App): https://github.com/binwiederhier/ntfy-android

View file

@ -1 +0,0 @@
Sende Benachrichtigungen von jedem Skript per PUT/POST-Request an Dein Telefon

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